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