xref: /openbmc/bmcweb/docs/CLIENTS.md (revision 24e758ab10526cd5e383894e36c260879fbaab2f)
1*24e758abSAlexander Hansen# Client overview
2*24e758abSAlexander Hansen
3*24e758abSAlexander Hansenbmcweb being a user and network facing daemon, is subject to a vast array of
4*24e758abSAlexander Hansentests and clients that could target it. The below attempts to provide a
5*24e758abSAlexander Hansennon-exhaustive list of tests and clients that bmcweb is expected to be
6*24e758abSAlexander Hansencompatible with, they are split into a couple categories. Entries in the test
7*24e758abSAlexander Hansencategory are intended to be qualification tests to ensure the bmcweb meets the
8*24e758abSAlexander Hansenspecification. Entries in the clients category are intended to host user-facing
9*24e758abSAlexander Hansenfunctionality.
10*24e758abSAlexander Hansen
11*24e758abSAlexander HansenThe base expectation is that for master versions of bmcweb, and master versions
12*24e758abSAlexander Hansenof these tools, the tests pass 100%. There may be cases where we workaround
13*24e758abSAlexander Hansenlimitations in the testing tools behavior within bmcweb to make the tools pass,
14*24e758abSAlexander Hansenregardless of whether there is user impact.
15*24e758abSAlexander Hansen
16*24e758abSAlexander Hansen## Tests
17*24e758abSAlexander Hansen
18*24e758abSAlexander HansenRedfish-Service-Validator: A tool to verify through GET requests that bmcweb
19*24e758abSAlexander Hansenproperly implements the Redfish schemas in the responded Resource.
20*24e758abSAlexander Hansen<https://github.com/DMTF/Redfish-Service-Validator.git>
21*24e758abSAlexander Hansen
22*24e758abSAlexander HansenStatus: 100% passing. Integrated with CI to ensure no regressions.
23*24e758abSAlexander Hansen
24*24e758abSAlexander HansenRedfish-Protocol-Validator: A tool to verify the protocol-level interactions
25*24e758abSAlexander Hansenwith the Redfish wire-protocol, and checks those against the Redfish
26*24e758abSAlexander Hansenspecification. <https://github.com/DMTF/Redfish-Protocol-Validator>
27*24e758abSAlexander Hansen
28*24e758abSAlexander HansenStatus: 100% of assertions passing. No CI integration.
29*24e758abSAlexander Hansen
30*24e758abSAlexander HansenOpenBMC-test-automation: A tool based on robot framework for testing some
31*24e758abSAlexander Hansenportion of the OpenBMC Redfish use cases.
32*24e758abSAlexander Hansen
33*24e758abSAlexander HansenStatus: Passing for some machines with CI integration.
34*24e758abSAlexander Hansen
35*24e758abSAlexander Hansenslowloris: A tool to verify timeouts and DOS attack mitigation is implemented
36*24e758abSAlexander Hansenproperly. <https://github.com/gkbrk/slowloris>
37*24e758abSAlexander Hansen
38*24e758abSAlexander HansenStatus: Passing, no automated enforcement.
39*24e758abSAlexander Hansen
40*24e758abSAlexander Hansentestssl.sh: A tool for verifying the correctness of the bmcweb cipher suites
41*24e758abSAlexander Hansenagainst current recommended security standards
42*24e758abSAlexander Hansen<https://github.com/drwetter/testssl.sh>
43*24e758abSAlexander Hansen
44*24e758abSAlexander HansenStatus: Unknown
45*24e758abSAlexander Hansen
46*24e758abSAlexander Hansen## Clients
47*24e758abSAlexander Hansen
48*24e758abSAlexander Hansenfwupd: Is a client implementation that allows updating firmware components in a
49*24e758abSAlexander Hansengeneric way, and includes redfish as one of its plugins.
50*24e758abSAlexander Hansen<https://github.com/fwupd/fwupd>
51*24e758abSAlexander Hansen
52*24e758abSAlexander HansenStatus: Unknown
53*24e758abSAlexander Hansen
54*24e758abSAlexander Hansenpython-redfish-library: A python library used by a number of tools.
55*24e758abSAlexander Hansen<https://github.com/DMTF/python-redfish-library>
56*24e758abSAlexander Hansen
57*24e758abSAlexander HansenStatus: Compatible
58*24e758abSAlexander Hansen
59*24e758abSAlexander HansenRedfish-Event-Listener: An example client for testing and implementing
60*24e758abSAlexander HansenEventService handlers. <https://github.com/DMTF/Redfish-Event-Listener>
61*24e758abSAlexander Hansen
62*24e758abSAlexander HansenStatus: Compatible. No CI integration.
63*24e758abSAlexander Hansen
64*24e758abSAlexander HansenRedfish-Tacklebox: A collection of common utilities for managing redfish servers
65*24e758abSAlexander Hansen<https://github.com/DMTF/Redfish-Tacklebox>
66*24e758abSAlexander Hansen
67*24e758abSAlexander HansenStatus: Unknown.
68*24e758abSAlexander Hansen
69*24e758abSAlexander Hansenredfishtool: A generic command line tool for reading and writing operations to
70*24e758abSAlexander Hansenthe Redfish server. <https://github.com/DMTF/Redfishtool>
71*24e758abSAlexander Hansen
72*24e758abSAlexander HansenStatus: Compatible. No automated testing.
73