Skip to content

feat: bootstrap enrollment for Central and Pilot#116

Open
prathameshkurunkar7 wants to merge 5 commits into
frappe:mainfrom
prathameshkurunkar7:feat/bootstrap-enrollment
Open

feat: bootstrap enrollment for Central and Pilot#116
prathameshkurunkar7 wants to merge 5 commits into
frappe:mainfrom
prathameshkurunkar7:feat/bootstrap-enrollment

Conversation

@prathameshkurunkar7

Copy link
Copy Markdown
Contributor

feat(atlas): bootstrap-token enrollment (seed, don't inject, the credential)

Provisioning now hands the bench a short-lived enrollment token instead of the durable credential.

  • create_site / deploy_site / guest deploy-site.py thread a single-use bootstrap_token (was central_auth_token); the bench runs bench enroll to mint its own long-lived credential. The durable secret is never written during provisioning.
  • Retires provision.regenerate_vm_login — bench-open no longer re-mints a login via Atlas (Central signs the SID, the bench verifies it against the JWKS). Site-login is unchanged.

What's next (separate PR — not in scope here)

Enrollment still rides the post-boot deploy SSH, so this doesn't yet remove the boot wait. Follow-up:

  1. Deliver the seed as VM create-time metadata (cloud-init / Firecracker MMDS) instead of over SSH — the seam already exists (ProvisionRequest.cloud_init, currently unused).
  2. Golden image: ship a first-boot bench enroll unit that reads the seed from the canonical path; then drop the SSH bench enroll from deploy-site.py.
  3. Then: a pre-warm bench pool (claim a booted, already-enrolled bench at signup) — the real signup-latency win, its own initiative.

Foundation is already in place on the Pilot side (bench enroll --seed-file + canonical-path auto-read);

Related PRs - Central Pilot

prathameshkurunkar7 and others added 2 commits July 14, 2026 17:45
create_site / deploy_site / site and the guest deploy-site.py thread a single-use
`bootstrap_token` (was `central_auth_token`) to the bench, which runs
`bench enroll` to mint its own long-lived credential. The durable secret is
never injected during provisioning — only a short-lived, single-use one.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Bench-open no longer re-mints a login via Atlas — Central signs the SID and the
bench verifies it against the JWKS — so provision.regenerate_vm_login has no
caller left. Remove it and its tests. Site-login (regenerate_site_login) is
unchanged.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@greptile-apps

greptile-apps Bot commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

Confidence Score: 5/5

Safe to merge — the rename is complete and consistent, and no call sites were missed.

All central_auth_token references are gone (only a comment remains), the argparse attribute name matches the dataclass field, and the enrollment flow is guarded by the same condition as before. No logic changes beyond the deliberate credential-handoff redesign.

No files require special attention.

Reviews (4): Last reviewed commit: "refactor: fix pre-commit checks" | Re-trigger Greptile

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.

1 participant