You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Introduce the bookkeeping the future credential-rotation engine needs:
two tables (`sitewide_credential_rotation`,
`device_credential_rotation`)
plus a one-time backfill recording every already-ingested device at v0,
and a `db::credential_rotation` writer that idempotently records a
device
as converged to the current site-wide target.
Wire convergence recording at the points where NICo actually owns a
credential on the device, each committed atomically with the surrounding
write/transition:
* bmc -- when the per-device BMC secret is written
(site-explorer set_bmc_root_credentials)
* host_uefi -- alongside the bios_password_set_time stamp (API handler
and machine-controller UEFI setup)
* dpu_uefi -- after uefi_setup(dpu) succeeds in the DPU init flow
* lockdown_ikm -- when a SuperNIC card is confirmed locked (dpa-manager
handle_locking), keyed by NIC MAC
* nvos -- wired but gated off until REQ-6 (set-from-factory) lands;
today NICo only copies the operator credential into Vault
Add a dedicated, versioned site-wide lockdown IKM credential key
(`nic_lockdown_ikm/site/root/v{N}`) seeded from the BMC root, decoupling
NIC lockdown key derivation from the BMC root so the two rotate
independently. Make a known BMC MAC a hard precondition for UEFI
password
operations, failing up front instead of after driving the device.
## Related issues
<!-- Refer to existing GitHub issues here -->
## Type of Change
<!-- Check one that best describes this PR -->
- [x] **Add** - New feature or capability
- [ ] **Change** - Changes in existing functionality
- [ ] **Fix** - Bug fixes
- [ ] **Remove** - Removed features or deprecated functionality
- [ ] **Internal** - Internal changes (refactoring, tests, docs, etc.)
## Breaking Changes
<!-- If checked, describe the breaking changes and migration steps -->
<!-- Breaking changes are not generally permitted, please discuss on a
GitHub discussion or with the development team if you believe you need
to break a backward compatibility guarantee -->
- [ ] **This PR contains breaking changes**
## Testing
<!-- How was this tested? Check all that apply -->
- [ ] Unit tests added/updated
- [ ] Integration tests added/updated
- [ ] Manual testing performed
- [ ] No testing required (docs, internal refactor, etc.)
## Additional Notes
<!-- Any additional context, deployment notes, or reviewer guidance -->
0 commit comments