FLIGHT MANUAL / 12 · PROGRAM
Administration & releases
The admin portal is a server-authorized control plane. Hidden links and client-side locks are not treated as security boundaries.
Roles
Owner controls all program state. Admin manages access and operations. Release Manager creates and transitions releases. Support reviews testers and diagnostics. Tester accesses authorized beta artifacts only.
Release lifecycle
Normal releases move from draft to validated to published, with revocation as a terminal safety action. The local publisher validates the Windows executable, supports -WhatIf, uploads to a deterministic private R2 key, and creates release, artifact, and audit records.
.\scripts\Publish-Release.ps1 -Version 0.1.0-beta.4 -Channel closed_beta -ArtifactPath <exe> -NotesPath <md> -WhatIfChannels
Owner is the smallest internal audience. Canary is for fast technical validation. Closed Beta is for invited testers. Public is reserved for redistribution-cleared releases. Promotion never changes the bytes behind an existing artifact identity.
Audit and revocation
Authentication, enrollment, administrative changes, publication, failures, and downloads create immutable audit events. Revoking a release or artifact stops new authorized downloads without pretending the historical event never occurred.
Cloudflare architecture
Workers serves the app and authenticated API. D1 stores identity, passkeys, sessions, releases, component metadata, diagnostics, and audit records. R2 stores private artifacts. ksp.kodydennon.com is the only production hostname. There is no Vercel deployment and no Cloudflare telemetry relay to the game.
Process a beta request
- Open Access Program and read the applicant's test context.
- Approve one request, or approve every pending request. Each approval emails a tester invitation.
- Or invite people directly: one address, a pasted list, or a CSV of up to 40. An optional note is included in that batch.
- Confirm Email Delivery reports sent; if it failed, use Replace + Resend or the copied backup URL only through a trusted channel.
- Watch Invitation controls for acceptance and the user roster for active enrollment.
- Suspend or revoke access when a tester leaves the program.
Invitation email delivery
Cloudflare Email Service sends from missions@kodydennon.com with SPF, DKIM, DMARC, and bounce routing on the domain. Each attempt records recipient, subject, provider message ID, status, error, related object, and UTC time.
Every role receives the same branded invitation: what the suite is, the six mission domains, the closed-beta boundary, an optional operator note, and one enrollment button. The control plane never emails a password. Invitation URLs contain a high-entropy secret, are stored only as hashes, expire after seven days, and are consumed once.
Release operator checklist
- Build and test the installer and payload from a clean workspace.
- Generate the manifest and SHA-256 digest.
- Run the publisher with -WhatIf and inspect the deterministic R2 key.
- Upload once, create D1 records, and validate authorized streaming.
- Promote the release state only after a round-trip hash check.
- Revoke immediately if identity, metadata, or bytes are wrong.