1.7 KiB
1.7 KiB
M015 Hostile Fixture Setup
Goal
Produce a trustworthy local runtime for cross-user authorization probes.
Key discovery
The default development SQLite database in JobTrackerApi/jobtracker.db is not a trustworthy authorization-test target:
- it contains Identity and some later feature tables
- it does not contain the core domain tables needed for real cross-user job/correspondence/attachment probing
- current startup
Migrate()behavior is therefore insufficient as the only hostile-test setup path
Chosen fixture strategy
Use a dedicated clean SQLite fixture database created from the current EF model with EnsureCreated() semantics through a tiny helper program:
- helper project:
tools/hostile-fixture-db/ - bootstrap script:
scripts/m015-hostile-fixture.sh
This keeps the hostile runtime inside repo code and the real API host while avoiding ad-hoc manual SQL.
What the helper does
- creates a clean
jobtracker.dbunder a caller-provided data root - builds the schema from the current
JobTrackerContextmodel - verifies the presence of core tables needed for M015:
CompaniesJobApplicationsCorrespondencesAttachmentsRuleSettingsAspNetUsers
Runtime plan for S02
- Run
scripts/m015-hostile-fixture.sh. - Start the API with
Data__Rootpointing at that clean fixture root. - Mint an admin dev token against the fixture DB.
- Create/reuse Alice and Bob through real API paths.
- Seed Alice-owned company/job/correspondence/attachment fixtures through the real API.
- Capture ids for cross-user hostile probes.
Honest boundary
This slice establishes the trusted runtime path and fixture strategy. The full two-user seeded dataset and exploit execution belong in the next slice.