Skip to content

Add pilotctl verify status with offline check and how-to#297

Merged
TeoSlayer merged 1 commit into
mainfrom
feat/verify-status
Jun 21, 2026
Merged

Add pilotctl verify status with offline check and how-to#297
TeoSlayer merged 1 commit into
mainfrom
feat/verify-status

Conversation

@TeoSlayer

Copy link
Copy Markdown
Collaborator

Lets a user see whether their own address is verified, with a how-to hint when it is not. Deliberately low-key: a single explicit command, no verified marks scattered across other output.

pilotctl verify status (also bare pilotctl verify)

  • Resolves the node's own ID (from the daemon, or --node <addr|id>), reads its badge from the registry (untrusted transport), and verifies it offline via badgeverify.VerifyForNode against the pinned issuer key — never trusting the registry's word.
  • States:
    • verified✓ Verified via <provider> (since <date>)
    • badge_present_unvalidated — a badge is on file but the issuer key is not pinned in this build (fail-closed), so it cannot be validated.
    • not_verified — prints the two-step how-to (pilot-verify verify … then pilotctl verify --badge …).
  • JSON and human output. pilotctl verify --badge … --badge-sig … still submits, unchanged.

Note: the handshake intentionally does not carry the badge — verification is a property of the address, surfaced on demand. Apps check verification via the offline badgeverify helper (library-level today; SDK wrappers later).

Tests

  • not-verified → how-to hint present; badge-present-but-placeholder-key → fail-closed (verified=false), provider still surfaced; human output shows the headline + how-to.
  • go test -race ./cmd/pilotctl/ green; gofmt + vet clean.

@TeoSlayer TeoSlayer merged commit e075061 into main Jun 21, 2026
9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants