Create a Pilot Profile From the Authenticated Identity
Overview
Resolve one AeroSim pilot profile for the Keycloak subject
User
An AeroSim player
What the user can do
Resolve one AeroSim pilot profile for the Keycloak subject
Why the user benefits
The player receives one coherent, observable capability.
User need
The player needs AeroSim to resolve one AeroSim pilot profile for the Keycloak subject.
In scope
Resolve one AeroSim pilot profile for the Keycloak subject
- StatusProposed
- OwnerAeroSim Scope (proposed; not accepted)
- Parent EpicAEROSIM-EP-2
- Depends onAEROSIM-FT-30, AEROSIM-FT-43
Tasks
AEROSIM-TS-57Planning status: DoneAdd the unique Keycloak-subject pilot linkage
The data model can store exactly one AeroSim pilot profile for each Keycloak subject without storing identity-provider credentials.
- ComponentPilot Data Store — Pilot identity linkage and Prisma schema/migrations
- Depends onAEROSIM-TS-20, AEROSIM-TS-56
- RequirementsFR-0038, NFR-0008
AEROSIM-TS-58Planning status: DoneImplement idempotent pilot-profile resolution
The first authorized request creates one linked pilot profile, while concurrent or later requests for the same Keycloak subject return that same profile.
- ComponentAPI Service — Pilot profile service, Fastify HTTP boundary, and Prisma data adapter
- Depends onAEROSIM-TS-57
- RequirementsFR-0038, NFR-0008
AEROSIM-TS-59Planning status: DoneBootstrap the active pilot profile in the browser
After authentication, the Web Application loads and retains the profile linked to the active Keycloak subject and reuses it in later sessions.
- ComponentWeb Application — Profile and catalogue API client and pilot-session state
- Depends onAEROSIM-TS-58
- RequirementsFR-0038, NFR-0008
AEROSIM-TS-60Planning status: DoneVerify profile idempotency and cross-pilot isolation
Reviewed evidence demonstrates first-session creation, repeated-session reuse, concurrency-safe non-duplication, and denial of access to another subject's pilot profile.
- ComponentPilot Data Store, API Service, and Web Application — pilot-profile test suites
- Depends onAEROSIM-TS-59
- RequirementsFR-0038, NFR-0008
AEROSIM-TS-119Planning status: DoneConform the Pilot Profile experience to the approved design
The pilot sees the approved profile identity, progress summary, controls, and close behavior without visual or navigation drift.
- ComponentWeb Application — Release 1.0.0 user journey
- Depends onAEROSIM-TS-60
- RequirementsFR-0038, NFR-0008
Acceptance outcomes
- 01
The first authorized Keycloak subject creates one linked pilot profile.
- 02
Later sessions resolve the same profile without duplication.
Functional requirements and measurable criteria
Create a Pilot Profile From the Authenticated Identity
The system shall resolve one AeroSim pilot profile for the Keycloak subject.
Acceptance 01
GivenAEROSIM-FT-31 is exercised within its governed scope under supported conditions
Whenthe primary capability path is completed
ThenThe first authorized Keycloak subject creates one linked pilot profile
EvidenceFuture reviewed automated and browser evidence must verify this exact outcome against the current requirement.
Acceptance 02
GivenAEROSIM-FT-31 is exercised within its governed scope under supported conditions
Whenthe continuation or repeat path is completed
ThenLater sessions resolve the same profile without duplication
EvidenceFuture reviewed automated and browser evidence must verify this exact outcome against the current requirement.
Non-functional requirements
- NFR-0008 — Pilot identity security and data isolation
Every authenticated operation resolves only the active Keycloak subject’s pilot data; AeroSim stores no local password; cross-pilot access attempts are denied and produce reviewable security evidence.
Risks
- Risk
Representative browser or input configurations may expose an unmet outcome.
Original source and prototype evidence
- discord: Agreed eight-Epic portfolio and Feature decomposition.
- discord: Agreed eight-Epic portfolio and Feature decomposition continuation.
- discord: RootAtSkic directed publication of the agreed Scope update.
Prototype and discovery boundary
Existing implementation is discovery evidence only; it establishes no current approval, acceptance, or release state.