Repository navigation
Restore access to unmapped accounts and configure federated login - #364
Merged
Merged
Conversation
ctfbruce
marked this pull request as ready for review
October 2, 2026 13:34
Compose the account recovery and provider configuration change with the CILogon production deployment that landed on main. The merged deployment keeps main's variable names, its production enablement, its credential preflight that counts both entries without reading them, and its single example file, and adds the browser-approved CLI authentication settings, the issuer and URL checks, the configuration-update refresh of the unit and credentials, and the extended render fixture. The duplicate example file is dropped; the installed credential file name is unchanged. Go, SQL and documentation changes are those already on the branch; the render fixture passes inside the pinned provisioner against a retained package. GitHub issues #226, #223 and #227.
This was referenced Oct 5, 2026
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.
Historical accounts with no credentials or linked provider identity can now regain access through an explicitly approved host-administrator recovery. The command records a private support-case reference, writes a one-use 24-hour recovery code to an absent 0600 file in an owned 0700 directory, and revokes existing sessions. The existing recovery endpoint consumes the code and audit record atomically. Account IDs, roles and resource ownership stay unchanged; there is no public claim route or UUID/email-based ownership proof. Failed file publication rolls back issuance, and an uncertain commit preserves the private output with explicit inspection/revocation instructions.
Managed deployments can now render opt-in CILogon and browser-assisted CLI authentication settings, load the private provider environment file, and refresh the dispatcher unit when enabling, disabling or rotating provider credentials. A discovery outage now returns users to the existing sign-in error flow. Tests cover provider outages, recovery without restart, and preserving the old browser session until reauthentication succeeds.
References #226, #223 and #227. Dispatcher schema 20 requires the existing explicit stopped-service database upgrade; the migration adds recovery audit metadata without changing existing ownership. CILogon remains disabled by default, and existing GitHub configuration is preserved. Real provider registration, staging login acceptance and hosted cutover are not performed by this change.
Validation: complete dispatcher command, API, database and storage-check packages pass under the race detector on Linux. An owned native-TLS dispatcher rehearsal passed issuance, output-failure rollback, revocation/reissue, successful recovery, replay refusal, unchanged account/executor ownership and restart persistence. The offline Ansible rendering/update fixture passes 174 checks, including secret placement, rotation, disablement and absence of secret values in logs. Independent recovery and deployment source reviews found no P1/P2 issues. All 16 checks pass in candidate CI run 37012519490. No deployment is included.
Composition with the CILogon production deployment on main (#366): the merged deployment keeps main's variable names, production enablement, credential preflight and example file, and adds the browser-approved CLI authentication settings, the issuer and URL checks, the configuration-update refresh and the extended render fixture; the duplicate example file was dropped. The Go, SQL and documentation changes are unchanged from the previously validated head. The render fixture passed inside the pinned provisioner against a retained package (177 checks, none failing). Candidate CI on 5428cf7: https://github.com/netsec-ethz/debuglet/actions/runs/37278778224.