AEROSIM-TS-61
Define the supported preference persistence model
Supported preference values can be stored against one pilot with deterministic defaults and validation while unsupported or malformed values cannot become canonical state.
- Verified flow state
- Done
- Owner
- AeroSim Architecture and Delivery
- Feature
- AEROSIM-FT-32
- Component
- Pilot Data Store — Preferences and Prisma schema/migrations
- Repository
- corp-v1-aerosim/corp-v1-aerosim
Delivery scope
Define a normalized pilot-preference Prisma model with one row per supported key and pilot, typed value constraints, defaults, update timestamps, a unique pilot/key constraint, and a reversible migration. Concrete artifacts are prisma/schema.prisma, prisma/migrations/define-the-supported-preference-persistence-model/migration.sql, and tests/integration/define-the-supported-preference-persistence-model.spec.ts.
Implementation contract
Implementation artifacts
- prisma/schema.prisma
- prisma/migrations/define-the-supported-preference-persistence-model/migration.sql
- tests/integration/define-the-supported-preference-persistence-model.spec.ts
Inputs
- Approved preference-key allowlist with value type, allowed values or bounds, and default for each key
- Pilot foreign-key relationship and current Prisma migration baseline
- Timestamp and last-valid-value semantics for preference updates
Outputs
- Supported preference values can be stored against one pilot with deterministic defaults and validation while unsupported or malformed values cannot become canonical state.
Failure boundaries
- Reject unknown keys, values outside the declared type or bounds, and records without a valid pilot owner
- Migration failure must leave the prior schema usable and must not create duplicate key records for one pilot
Excluded scope
- Arbitrary user-defined settings, secrets, tokens, and browser-only transient state
- Global or shared preferences that are not owned by one pilot
Verification steps
- Run tests/integration/define-the-supported-preference-persistence-model.spec.ts against the exact implementation revision and retain the complete passing result.
- Exercise the positive contract with approved preference-key allowlist with value type, allowed values or bounds, and default for each key, then assert: Supported preference values can be stored against one pilot with deterministic defaults and validation while unsupported or malformed values cannot become canonical state.
- Exercise every negative boundary: Reject unknown keys, values outside the declared type or bounds, and records without a valid pilot owner; Migration failure must leave the prior schema usable and must not create duplicate key records for one pilot
Traceability
Dependencies
- AEROSIM-TS-60Canonical ID: TASK-0060
UI/UX applicability
non_visual
This Task owns technical or behavioral acceptance and does not claim direct visual conformance to the approved UI/UX package.
Acceptance evidence
Verified delivery: application PR #85 reviewed head 816bb4dafa3125082cbe5bc9fa56ed1797b108da passed exact-head application validation run 3922, merged as 594656e7e7e7b732f04fdd97de7667e915340c9d, and integration runs 3924 and 3925 succeeded. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.
Current evidence boundary
No current implementation, acceptance, release, or deployment evidence is claimed for this planned Task. Any prior implementation may be used only as prototype and discovery evidence.