Repository navigation
feat(adopt): confirm the installed node's fingerprint in the adopt wizard - #143
Merged
Merged
Conversation
Bugs5382
marked this pull request as ready for review
September 30, 2026 18:15
This was referenced Sep 30, 2026
Merged
…zard After the node installs and reboots, the manager pauses the adoption on the awaiting-fingerprint-confirmation phase with the certificate the installed node presents. The wizard shows that fingerprint in readable pairs to compare with the Mgmt SHA-256 line on the node's console, and offers a confirm action (ConfirmAdoptionFingerprint) or a cancel that ends the stream so nothing is trusted or recorded. Mock mode pauses the same way so the flow can be tried offline. Signed-off-by: Bugs5382 <12115015+Bugs5382@users.noreply.github.com>
Bugs5382
force-pushed
the
feat/144-adopt-fingerprint-confirm
branch
from
October 1, 2026 13:39
9101963 to
a9fafc4
Compare
Contributor
Author
|
Merging for the v0.1.0 test run: CI green and mergeable at merge time. |
4 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What and why
After a node installs and reboots during adoption, it presents a new management certificate that nothing links to the maintenance fingerprint confirmed in step 1. The manager now pauses the adoption on the
awaiting-fingerprint-confirmationphase until the operator confirms that certificate against the node's console. This adds that step to the adopt wizard.Mgmt SHA-256line on the node's console.ConfirmAdoptionFingerprintwith the stream'sadoption_idand the presented fingerprint, and progress continues on the same stream. A refusal from the manager is shown inline.src/gen/fleet/onmainalready carriesAdoptNodeResponse.adoption_id,presented_cert_sha256and the new RPC (refreshed to apimainby feat(operators): credential requests, complete, deny and a client-side request page #145), so this PR doesn't touch it.wire-fields.test.tspins the two fields.Existing test changed: the "streams phase progress and shows the node established" page test now also expects the
AbortSignalthe wizard passes toadoptNode, because the new cancel action needs it.Refs CryptOS-PKI/cryptos-manager#144
Refs CryptOS-PKI/cryptos-manager#135
Merge order: after CryptOS-PKI/api#133. CryptOS-PKI/cryptos-manager#150 and CryptOS-PKI/docs#71 are merged; merge this next. Until it merges, the deployed wizard sits on the new phase until the manager gives up after 15 minutes.
Docs: the docs site companion is CryptOS-PKI/docs#71 (it covers this wizard step), with the manager side in CryptOS-PKI/cryptos-manager#150. The README is unchanged (it lists adoption at a level this doesn't change).
Verification
How this was verified
src/lib/adopt.test.ts(the mock pause until confirm, mismatch refusal, the live relay ofadoptionIdandpresentedCertSha256, the stop signal, the confirm call and its refusal, the fingerprint compare and format helpers),src/pages/adopt.test.tsx(show and confirm, a refused confirm inline, cancel aborts the stream without confirming),src/lib/wire-fields.test.ts(failed against the old stubs).main(e8099d6),npm run lint,npm test(85 files, 500 tests),npm run buildandtask licensepass locally.