summaryrefslogtreecommitdiff
path: root/features
AgeCommit message (Collapse)AuthorFilesLines
2026-09-04openbmc_rest: Refactor subscribe onmessage lambdaYuvakumar Selvamani1-130/+126
Extract the long onmessage() websocket lambda in requestRoutes() into a named function, handleDbusMonitorMessage(), per the <10 line lambda coding standard in docs/COMMON_ERRORS.md. Tested: - No other functional change. - Tested on an AST2600 SoC platform. - Redfish Service Validator passed with no new errors or warnings introduced. Change-Id: I340df11dfbc626e26dab931f0ca0581cbd17e102 Signed-off-by: Yuvakumar Selvamani <yuvakumars@ami.com>
2026-07-01Flag long lambdasEd Tanous6-0/+30
Long lambdas have been documented as an anti-pattern for some time.[1] Despite this being generally understood, bmcweb has a long ways to go cleaning these up, and routinely code is submitted in violation of this anti-pattern. Invent an ast-grep rule that can identify when new examples of this anti-pattern are added, and ignore the existing 200+ examples that are in the codebase already using ast-grep ignore. These flags will give us something to search for as we clean this up, and will help to prevent new instances from being added unintentionally. [1] https://github.com/openbmc/docs/blob/master/anti-patterns.md#very-long-lambda-callbacks Tested: Comment only change. ast-grep passes. Manually removing an ast-grep ignore flag shows as a failure in ast-grep scan Change-Id: I77d634a393884969f184d2c39c02cc08288d5a29 Signed-off-by: Ed Tanous <etanous@nvidia.com>
2026-06-19sdbusplus: use shorter type aliasesPatrick Williams2-6/+6
The sdbusplus headers provide shortened aliases for many types. Switch to using them to provide better code clarity and shorter lines. Possible replacements are for: * exception_t * manager_t * match * match_rules * message_t * object_t * slot_t Change-Id: Iaf2a83fb67d57a6fafb664d27b349add17a96bcd Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
2026-04-15sdbusplus: use shorter type aliasesPatrick Williams5-7/+5
The sdbusplus headers provide shortened aliases for many types. Switch to using them to provide better code clarity and shorter lines. Possible replacements are for: * bus_t * exception_t * manager_t * match_t * message_t * object_t * slot_t * object_path Change-Id: Iace20f9ad26e8d9dc234979e7a4087d599da2641 Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
2026-03-31Port nlohmann::json::parse uses to saxEd Tanous1-9/+18
We should have a single entry point where we do json parsing. There are configurations for nlohmmann that we had previously documented, but were not well enforced. Move all uses to using the helper parse functions. Tested: Unit tests pass. Redfish service validator passes. Change-Id: I2a8aed9327b6b15219dc9b4d6db146b69bcd8eb3 Signed-off-by: Ed Tanous <etanous@nvidia.com>
2026-03-25Fix routes missing trailing slashDavy Marrero8-18/+18
bmcweb's route handler generates handlers for both /foo/ and /foo when a route is registered with a trailing slash. This change adds trailing slashes to 24 routes that were missing them. Existing clients are not affected: the router already accepted both forms. This change makes the route registrations consistent and lets the trailing-slash ast-grep rule pass without suppressions. Routes using <path> captures already match everything and do not need a trailing slash, so those are excluded in the ast-grep rule. Tested: ast-grep scan --error exits 0. Change-Id: I9de641bd8ffec773b313b7e4da9034be0fd7e8e8 Signed-off-by: Davy Marrero <dmarrero@nvidia.com>
2026-02-24Fix spelling mistakes using codespellGeorge Liu1-2/+2
Signed-off-by: George Liu <liuxiwei@ieisystem.com> Change-Id: If170e53077bc150d0062cd441394daea71f842b1
2026-02-03Remove old login routinesEd Tanous1-158/+49
At one point the bmcweb /login route has supported a bunch of different login mechanisms: 1. Sending username and password via headers, mirroring a non-openbmc implementation that has never been used in openbmc, and predates this repo being called bmcweb. 2. Sending username and password under a "data" object, mirroring phosphor-rest json webserver. 3. Sending username and password as an http multipart as part of the initial multipart parser patch. 4. Sending a json payload as {"username": <>, "password": <>} This commit removes all but the final login mechanism. Redfish login has been used exclusively for many many years, and only the webui used 4 above up until a few years ago in commit 1ff8e89fd2397c468ab0237158e5aeeff2692413 Keeping one viable login mechanism that's not Redfish is useful in the future if there are those that want to disable Redfish. All others could potentially be security issues, so keeping the code simple and conscise here is ideal. This commit does not attempt to make a backwards compatibility path, under the assumption that other than 4, none of the other code was ever used in any real capacity. If we find that to not be true, we can add back the portions where we need compatibility, but this seems unlikely. Tested: WIP Change-Id: I04b4968836f0f824f46b3dff180ad92feb16967c Signed-off-by: Ed Tanous <etanous@nvidia.com>
2026-01-30Remove usages of nlohmann::json::begin()Ed Tanous2-59/+100
nlohmann::json::begin() throws an uncaught exception. Tested: Redfish service validator passes. Signed-off-by: Ed Tanous <ed@tanous.net> Change-Id: I08244b0787cd4d6e592b0731196490a5160aba62
2025-08-26Fix includesEd Tanous1-1/+0
Our includes haven't been enforced by tidy in a while. Run the script, check in the result, minus the false positives. Change-Id: I6a6da26f5ba5082d9b4aa17cdc9f55ebd8cd41a6 Signed-off-by: Ed Tanous <etanous@nvidia.com>
2025-06-27Rearrange featuresEd Tanous22-0/+5442
The backends are different things compared to generic code. Today, these are all included in the /include folder, but it's not very clear what options control which backends, or how things map together. This also means that we can't separate ownership between the various companies. This commit is a proposal to try to create a features folder, separated by the code for the various backends, to make interacting with this easier. It takes the form features/<option name>/files.hpp features/<option name>/files_test.hpp Note, redfish-core was already at top level, and contains lots of code, so to prevent lots of conflicts, it's simply symlinked into that folder to make clear that it is a backend, but not to move the implementation and cause code conflicts. Tested: Unit tests pass. Code compiles. Change-Id: Idcc80ffcfd99c876734ee41d53f894ca5583fed5 Signed-off-by: Ed Tanous <etanous@nvidia.com>