feat/Update_Controllers_to_Allow_for_Premium_Membership
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
# CORE-002 — application route uniqueness verification
|
||||
|
||||
Date: 2026-08-02
|
||||
|
||||
## Result
|
||||
|
||||
`IMPLEMENTED — NOT VERIFIED`. Backend route ambiguity and tenant behavior are verified locally. Browser and production checks remain.
|
||||
|
||||
## Contract
|
||||
|
||||
| Method/path | Single owner | Response purpose |
|
||||
|---|---|---|
|
||||
| `GET /api/jobapplications/{id}/timeline` | `ApplicationIntelligenceController` | grouped/filterable application timeline |
|
||||
| `GET /api/jobapplications/{id}/interview-prep` | `InterviewPrepController` | editable durable interview-prep board |
|
||||
| `GET /api/jobapplications/{id}/interview-prep/brief` | `JobApplicationsController` | cached generated brief with attachment context and explicit refresh |
|
||||
|
||||
The unused legacy flat timeline action/DTO were deleted. The generated brief moved because both interview representations are live and intentionally incompatible; neither was silently discarded or overloaded by query parameters.
|
||||
|
||||
## Evidence
|
||||
|
||||
- Reflection regression checks every public controller action and fails on duplicate normalized HTTP method/route pairs.
|
||||
- Focused backend timeline/interview/route suite: 31/31 passed.
|
||||
- Full backend: 511/511 passed.
|
||||
- Focused frontend route/timeline/interview suites: 21/21 passed.
|
||||
- Full frontend: 45 suites, 153/153 passed; production build passed.
|
||||
- Isolated SQLite HTTP matrix using synthetic users:
|
||||
|
||||
| Path | Owner | Other user | Anonymous |
|
||||
|---|---:|---:|---:|
|
||||
| `/timeline` | 200 | 404 | 401 |
|
||||
| `/interview-prep` | 200 | 404 | 401 |
|
||||
| `/interview-prep/brief` | 200 | 404 | 401 |
|
||||
|
||||
The exact isolated API process was stopped and port 5304 was confirmed closed. Logs are under `docs/audits/evidence/core-001-runtime/core-002.*.log`.
|
||||
|
||||
## Limitations
|
||||
|
||||
- In-app browser localhost remains blocked by administrator policy, so direct/deep-link, Back/Forward and rendered-panel behavior is not claimed.
|
||||
- No production deployment or MariaDB HTTP smoke was performed.
|
||||
- The route move is an API contract change for undocumented direct consumers of the old generated-brief URL; repository callers and documentation are updated.
|
||||
Reference in New Issue
Block a user