- Task:
1.1 - Machine record:
eve-sota-metis-seam-survey/2026-09-01.json - Schema:
eve-sota-metis-seam-survey.schema.json - Generator:
../../tools/eve-everywhere/generate-metis-seam-survey.mjs - Verifier:
../../tools/eve-everywhere/verify-metis-seam-survey.mjs
Verdict#
Implementation is parked; the seam is not closed. The survey registers zero Eve views. The Metis contract is moving daily, the default browser transport does not register most current workbench routes, and the selected persistence/classification ADR is still Proposed. The checked-out migration graph and selected local database are aligned at the recorded head.
This is an honest pause in implementation, not a deferment of the evidence task.
The inventory below is complete for all 65 current apps/metis/web pages and 6
Next route handlers at the surveyed source state.
Contract and transport#
- Canonical FastAPI artifact:
apps/metis/service/openapi/metis.openapi.json; SHA-256c89749f7cadb7adea01931dcd39bc0b11a36c94fbf3a03fc8eec6e92544642af. - OpenAPI 3.1.0; 803 paths, 870 HTTP operations, and 3665 component schemas. The
checked artifact matched live
create_app().openapi()output with the recorded command. - Browser calls use
/api/metis/v1; the Next proxy forwards them to/api/v1onhttp://localhost:4020; FastAPI declares/apiroutes. - The gateway has 33 explicit handler patterns across analytics, assessments, courses, tutoring and no catch-all proxy. Unknown routes return 404 before gateway auth or FastAPI.
- Of 244 distinct browser path templates, 8 match a gateway handler and 236 do not. 244 have a corresponding FastAPI path shape.
- Browser E2E route mocks are not live transport proof.
Migrations and Alembic heads#
- Code revisions: 67; roots:
001; heads:067; linear:true; missing parents: 0. - The actual Alembic graph command returned one code head,
067. - Dated local database observation: the direct revision query returned
043with exit 0; Alembic graph resolution exited 0 withcode-database-head-aligned, diagnostic “043 (head)”. Revision043is the sole checked-out graph head. - That database observation is local-host evidence only; it does not claim staging or production drift.
Recent churn#
The bounded window contains 77 commits touching apps/metis across every
observed UTC day. Counts: 2026-08-27: 3; 2026-08-28: 12; 2026-08-29: 13;
2026-08-30: 12; 2026-08-31: 15; 2026-09-01: 22. Latest:
7c652a575ca13c20e1b01820c0443c0e91857da5 at 2026-09-01T23:14:49+00:00. This
satisfies the task's “moving daily” condition directly.
Store register#
| Store | Kind | Current authority claim | Source |
|---|---|---|---|
postgresql-shared-public |
relational-database | current durable service store; proposed bounded-hybrid cutover is not ratified | apps/metis/service/src/metis/deps.py |
filesystem-json-ledger |
host-filesystem | durable append-only JSON/filesystem state below source_ingestion_storage_dir for current curriculum services | apps/metis/service/src/metis/services/curriculum_brief_service.py |
code-owned-registry |
repository-constant | read-only policy, taxonomy, template, or seed-pack definitions owned in service code | apps/metis/service/src/metis/api/curriculum.py |
redis-runtime-cache |
ephemeral-key-value | namespaced cache/runtime acceleration; not canonical durable learner state | apps/metis/service/src/metis/deps.py |
s3-minio-object-store |
object-store | configured binary/source object storage behind presigned operations | apps/metis/service/src/metis/deps.py |
service-local-media-files |
host-filesystem | rendered lecture/media artifacts resolved by service settings | apps/metis/service/src/metis/api/courses.py |
browser-local-storage |
browser-storage | client continuity draft only; never authoritative service state | apps/metis/web/src/app |
browser-memory |
browser-memory | ephemeral rendered/client state only | apps/metis/web/src/app |
oshun-bff-session |
external-http-and-cookie | platform identity/session boundary; refresh token retained only in an HTTP-only cookie | apps/metis/web/src/lib/server/auth-proxy.ts |
isis-http-gallery-authority |
external-http-authority | fail-closed current Isis gallery state for selected lesson media operations | apps/metis/service/src/metis/deps.py |
request-only-computation |
stateless-compute | response computed from the submitted request; no durable store claimed by the endpoint | apps/metis/service/src/metis/api/media_readiness.py |
Classification register#
These are conservative survey labels. proposed-adr is not ratification, and
unratified-mixed-boundary preserves the known gap rather than hiding it.
| Classification | Status | Meaning |
|---|---|---|
public-authentication-input |
survey-derived |
credentials/session input sent to the platform identity boundary |
published-learning-content |
survey-derived |
course and lesson delivery content exposed on learner surfaces |
internal-authoring-data |
proposed-adr |
course, curriculum, lesson, and review authoring records |
confidential-assessment-material |
proposed-adr |
assessment instruments, questions, answer keys, rubrics, and item-bank evidence |
protected-learner-data |
proposed-adr |
enrollment, progress, mastery input, achievement, preference, and continuity state |
protected-learner-conversation |
proposed-adr |
tutoring sessions and ordered messages |
restricted-assessment-evidence |
proposed-adr |
attempt answers, provenance, submission, and grading evidence |
restricted-education-record |
proposed-adr |
score and grade outcomes |
restricted-identity-authorization-projection |
proposed-adr |
minimal user, tenant, entitlement, and session projection |
unratified-mixed-boundary |
explicit-gap |
current data may cross proposed ownership classes; Data Governance and named ADR reviewers remain pending |
Page → route → store → authz → classification#
The route column lists discovered reachable API families and the number of retained path templates. Each machine row retains the exact paths, matched/unmatched gateway paths, matched/unmatched FastAPI shapes, source hash, access posture, and seam-admission verdict.
| Page | Route families (path templates) | Stores | Authz posture | Classification | Transport |
|---|---|---|---|---|---|
/ |
/analytics, /auth, oshun-bff-auth (6) | browser-memory, oshun-bff-session, postgresql-shared-public, redis-runtime-cache | Public page; optional in-memory bearer token is used for profile/reminder calls. Default gateway does not register either current API path. | published-learning-content, protected-learner-data, restricted-identity-authorization-projection | service-contract-present-gateway-unregistered |
/assessments |
/analytics, /assessments, /courses, oshun-bff-auth (8) | browser-local-storage, browser-memory, oshun-bff-session, postgresql-shared-public, redis-runtime-cache | Next middleware checks cookie presence; service list/detail reads are public, while submission/history requires bearer user. Gateway permission policy also applies where a handler exists. | confidential-assessment-material, restricted-assessment-evidence, restricted-education-record, protected-learner-data | mixed-gateway-coverage |
/assessments/[assessmentId] |
/analytics, /assessments, /courses, oshun-bff-auth (9) | browser-local-storage, browser-memory, oshun-bff-session, postgresql-shared-public, redis-runtime-cache | Next middleware checks cookie presence; service list/detail reads are public, while submission/history requires bearer user. Gateway permission policy also applies where a handler exists. | confidential-assessment-material, restricted-assessment-evidence, restricted-education-record, protected-learner-data | mixed-gateway-coverage |
/courses |
/analytics, /auth, /courses, oshun-bff-auth (7) | browser-memory, oshun-bff-session, postgresql-shared-public, redis-runtime-cache | Next middleware checks cookie presence; gateway courses:read permission applies to registered paths, while direct FastAPI catalog reads are public and learner mutations require bearer user. | published-learning-content, protected-learner-data | mixed-gateway-coverage |
/courses/[courseId] |
/analytics, /courses, oshun-bff-auth (7) | browser-memory, oshun-bff-session, postgresql-shared-public, redis-runtime-cache | Next middleware checks cookie presence; gateway courses:read permission applies to registered paths, while direct FastAPI catalog reads are public and learner mutations require bearer user. | published-learning-content, protected-learner-data | mixed-gateway-coverage |
/courses/[courseId]/play |
/analytics, /courses, /lesson-dossiers, /teaching-media, oshun-bff-auth (10) | browser-memory, isis-http-gallery-authority, oshun-bff-session, postgresql-shared-public, redis-runtime-cache, service-local-media-files | Next middleware checks cookie presence; gateway courses:read permission applies to registered paths, while direct FastAPI catalog reads are public and learner mutations require bearer user. | published-learning-content, protected-learner-data | mixed-gateway-coverage |
/create |
/analytics, /assessments, /courses, oshun-bff-auth (13) | browser-memory, oshun-bff-session, postgresql-shared-public, redis-runtime-cache | Next middleware checks cookie presence; intended service writes require instructor/admin bearer role and service-specific owner/tenant guards. Gateway coverage is absent except for a subset of legacy course/assessment routes. | internal-authoring-data, confidential-assessment-material, unratified-mixed-boundary | mixed-gateway-coverage |
/create/alignment-gates |
/analytics, /objective-alignment-gates, oshun-bff-auth (8) | browser-memory, oshun-bff-session, postgresql-shared-public, redis-runtime-cache | Next middleware checks cookie presence; intended service writes require instructor/admin bearer role and service-specific owner/tenant guards. Gateway coverage is absent except for a subset of legacy course/assessment routes. | internal-authoring-data, confidential-assessment-material, unratified-mixed-boundary | service-contract-present-gateway-unregistered |
/create/alignments |
/analytics, /curriculum, oshun-bff-auth (10) | browser-memory, code-owned-registry, filesystem-json-ledger, oshun-bff-session, postgresql-shared-public, redis-runtime-cache | Next middleware checks cookie presence; intended service writes require instructor/admin bearer role and service-specific owner/tenant guards. Gateway coverage is absent except for a subset of legacy course/assessment routes. | internal-authoring-data, confidential-assessment-material, unratified-mixed-boundary | service-contract-present-gateway-unregistered |
/create/boards |
/analytics, /course-boards, oshun-bff-auth (12) | browser-memory, oshun-bff-session, postgresql-shared-public, redis-runtime-cache | Next middleware checks cookie presence; intended service writes require instructor/admin bearer role and service-specific owner/tenant guards. Gateway coverage is absent except for a subset of legacy course/assessment routes. | internal-authoring-data, confidential-assessment-material, unratified-mixed-boundary | service-contract-present-gateway-unregistered |
/create/brief |
/analytics, /curriculum, oshun-bff-auth (9) | browser-memory, code-owned-registry, filesystem-json-ledger, oshun-bff-session, postgresql-shared-public, redis-runtime-cache | Next middleware checks cookie presence; intended service writes require instructor/admin bearer role and service-specific owner/tenant guards. Gateway coverage is absent except for a subset of legacy course/assessment routes. | internal-authoring-data, confidential-assessment-material, unratified-mixed-boundary | service-contract-present-gateway-unregistered |
/create/coverage |
/analytics, /curriculum, oshun-bff-auth (10) | browser-memory, code-owned-registry, filesystem-json-ledger, oshun-bff-session, postgresql-shared-public, redis-runtime-cache | Next middleware checks cookie presence; intended service writes require instructor/admin bearer role and service-specific owner/tenant guards. Gateway coverage is absent except for a subset of legacy course/assessment routes. | internal-authoring-data, confidential-assessment-material, unratified-mixed-boundary | service-contract-present-gateway-unregistered |
/create/decisions |
/analytics, /curriculum, oshun-bff-auth (10) | browser-memory, code-owned-registry, filesystem-json-ledger, oshun-bff-session, postgresql-shared-public, redis-runtime-cache | Next middleware checks cookie presence; intended service writes require instructor/admin bearer role and service-specific owner/tenant guards. Gateway coverage is absent except for a subset of legacy course/assessment routes. | internal-authoring-data, confidential-assessment-material, unratified-mixed-boundary | service-contract-present-gateway-unregistered |
/create/disciplines |
/analytics, /curriculum, oshun-bff-auth (8) | browser-memory, code-owned-registry, filesystem-json-ledger, oshun-bff-session, postgresql-shared-public, redis-runtime-cache | Next middleware checks cookie presence; intended service writes require instructor/admin bearer role and service-specific owner/tenant guards. Gateway coverage is absent except for a subset of legacy course/assessment routes. | internal-authoring-data, confidential-assessment-material, unratified-mixed-boundary | service-contract-present-gateway-unregistered |
/create/discovery |
/analytics, /curriculum, oshun-bff-auth (9) | browser-memory, code-owned-registry, filesystem-json-ledger, oshun-bff-session, postgresql-shared-public, redis-runtime-cache | Next middleware checks cookie presence; intended service writes require instructor/admin bearer role and service-specific owner/tenant guards. Gateway coverage is absent except for a subset of legacy course/assessment routes. | internal-authoring-data, confidential-assessment-material, unratified-mixed-boundary | service-contract-present-gateway-unregistered |
/create/item-bank |
/analytics, /item-bank, oshun-bff-auth (7) | browser-memory, oshun-bff-session, postgresql-shared-public, redis-runtime-cache | Next middleware checks cookie presence; intended FastAPI endpoints require instructor/admin bearer role plus family-specific actor, tenant, revision, and evidence guards. Default gateway does not register this family. | confidential-assessment-material, internal-authoring-data, unratified-mixed-boundary | service-contract-present-gateway-unregistered |
/create/item-bank/accessibility |
/analytics, /item-bank, oshun-bff-auth (9) | browser-memory, oshun-bff-session, postgresql-shared-public, redis-runtime-cache | Next middleware checks cookie presence; intended FastAPI endpoints require instructor/admin bearer role plus family-specific actor, tenant, revision, and evidence guards. Default gateway does not register this family. | confidential-assessment-material, internal-authoring-data, unratified-mixed-boundary | service-contract-present-gateway-unregistered |
/create/item-bank/accessibility/completeness |
/analytics, /item-bank, oshun-bff-auth (9) | browser-memory, oshun-bff-session, postgresql-shared-public, redis-runtime-cache | Next middleware checks cookie presence; intended FastAPI endpoints require instructor/admin bearer role plus family-specific actor, tenant, revision, and evidence guards. Default gateway does not register this family. | confidential-assessment-material, internal-authoring-data, unratified-mixed-boundary | service-contract-present-gateway-unregistered |
/create/item-bank/accessibility/media-readiness |
/analytics, /media-readiness, oshun-bff-auth (6) | browser-memory, oshun-bff-session, postgresql-shared-public, redis-runtime-cache, request-only-computation | Next middleware checks cookie presence; intended FastAPI endpoints require instructor/admin bearer role plus family-specific actor, tenant, revision, and evidence guards. Default gateway does not register this family. | confidential-assessment-material, internal-authoring-data, unratified-mixed-boundary | service-contract-present-gateway-unregistered |
/create/item-bank/answer-leakage |
/analytics, /item-bank, oshun-bff-auth (10) | browser-memory, oshun-bff-session, postgresql-shared-public, redis-runtime-cache | Next middleware checks cookie presence; intended FastAPI endpoints require instructor/admin bearer role plus family-specific actor, tenant, revision, and evidence guards. Default gateway does not register this family. | confidential-assessment-material, internal-authoring-data, unratified-mixed-boundary | service-contract-present-gateway-unregistered |
/create/item-bank/answer-verification |
/analytics, /item-bank, oshun-bff-auth (10) | browser-memory, oshun-bff-session, postgresql-shared-public, redis-runtime-cache | Next middleware checks cookie presence; intended FastAPI endpoints require instructor/admin bearer role plus family-specific actor, tenant, revision, and evidence guards. Default gateway does not register this family. | confidential-assessment-material, internal-authoring-data, unratified-mixed-boundary | service-contract-present-gateway-unregistered |
/create/item-bank/answer-verification/consistency |
/analytics, /item-bank, oshun-bff-auth (10) | browser-memory, oshun-bff-session, postgresql-shared-public, redis-runtime-cache | Next middleware checks cookie presence; intended FastAPI endpoints require instructor/admin bearer role plus family-specific actor, tenant, revision, and evidence guards. Default gateway does not register this family. | confidential-assessment-material, internal-authoring-data, unratified-mixed-boundary | service-contract-present-gateway-unregistered |
/create/item-bank/assemblies |
/analytics, /item-bank, oshun-bff-auth (7) | browser-memory, oshun-bff-session, postgresql-shared-public, redis-runtime-cache | Next middleware checks cookie presence; intended FastAPI endpoints require instructor/admin bearer role plus family-specific actor, tenant, revision, and evidence guards. Default gateway does not register this family. | confidential-assessment-material, internal-authoring-data, unratified-mixed-boundary | service-contract-present-gateway-unregistered |
/create/item-bank/capture |
/analytics, /item-bank, oshun-bff-auth (9) | browser-local-storage, browser-memory, oshun-bff-session, postgresql-shared-public, redis-runtime-cache | Next middleware checks cookie presence; intended FastAPI endpoints require instructor/admin bearer role plus family-specific actor, tenant, revision, and evidence guards. Default gateway does not register this family. | confidential-assessment-material, internal-authoring-data, unratified-mixed-boundary | service-contract-present-gateway-unregistered |
/create/item-bank/capture/math-code |
/analytics, /item-bank, oshun-bff-auth (9) | browser-local-storage, browser-memory, oshun-bff-session, postgresql-shared-public, redis-runtime-cache | Next middleware checks cookie presence; intended FastAPI endpoints require instructor/admin bearer role plus family-specific actor, tenant, revision, and evidence guards. Default gateway does not register this family. | confidential-assessment-material, internal-authoring-data, unratified-mixed-boundary | service-contract-present-gateway-unregistered |
/create/item-bank/capture/media-interactive |
/analytics, /item-bank, oshun-bff-auth (10) | browser-local-storage, browser-memory, oshun-bff-session, postgresql-shared-public, redis-runtime-cache | Next middleware checks cookie presence; intended FastAPI endpoints require instructor/admin bearer role plus family-specific actor, tenant, revision, and evidence guards. Default gateway does not register this family. | confidential-assessment-material, internal-authoring-data, unratified-mixed-boundary | service-contract-present-gateway-unregistered |
/create/item-bank/capture/selected-response |
/analytics, /item-bank, oshun-bff-auth (8) | browser-local-storage, browser-memory, oshun-bff-session, postgresql-shared-public, redis-runtime-cache | Next middleware checks cookie presence; intended FastAPI endpoints require instructor/admin bearer role plus family-specific actor, tenant, revision, and evidence guards. Default gateway does not register this family. | confidential-assessment-material, internal-authoring-data, unratified-mixed-boundary | service-contract-present-gateway-unregistered |
/create/item-bank/capture/variants |
/analytics, /item-bank, oshun-bff-auth (8) | browser-local-storage, browser-memory, oshun-bff-session, postgresql-shared-public, redis-runtime-cache | Next middleware checks cookie presence; intended FastAPI endpoints require instructor/admin bearer role plus family-specific actor, tenant, revision, and evidence guards. Default gateway does not register this family. | confidential-assessment-material, internal-authoring-data, unratified-mixed-boundary | service-contract-present-gateway-unregistered |
/create/item-bank/capture/written-response |
/analytics, /item-bank, oshun-bff-auth (8) | browser-local-storage, browser-memory, oshun-bff-session, postgresql-shared-public, redis-runtime-cache | Next middleware checks cookie presence; intended FastAPI endpoints require instructor/admin bearer role plus family-specific actor, tenant, revision, and evidence guards. Default gateway does not register this family. | confidential-assessment-material, internal-authoring-data, unratified-mixed-boundary | service-contract-present-gateway-unregistered |
/create/item-bank/clarity |
/analytics, /item-bank, oshun-bff-auth (10) | browser-memory, oshun-bff-session, postgresql-shared-public, redis-runtime-cache | Next middleware checks cookie presence; intended FastAPI endpoints require instructor/admin bearer role plus family-specific actor, tenant, revision, and evidence guards. Default gateway does not register this family. | confidential-assessment-material, internal-authoring-data, unratified-mixed-boundary | service-contract-present-gateway-unregistered |
/create/item-bank/comparisons |
/analytics, /item-bank, oshun-bff-auth (7) | browser-memory, oshun-bff-session, postgresql-shared-public, redis-runtime-cache | Next middleware checks cookie presence; intended FastAPI endpoints require instructor/admin bearer role plus family-specific actor, tenant, revision, and evidence guards. Default gateway does not register this family. | confidential-assessment-material, internal-authoring-data, unratified-mixed-boundary | service-contract-present-gateway-unregistered |
/create/item-bank/distractors |
/analytics, /item-bank, oshun-bff-auth (12) | browser-memory, oshun-bff-session, postgresql-shared-public, redis-runtime-cache | Next middleware checks cookie presence; intended FastAPI endpoints require instructor/admin bearer role plus family-specific actor, tenant, revision, and evidence guards. Default gateway does not register this family. | confidential-assessment-material, internal-authoring-data, unratified-mixed-boundary | service-contract-present-gateway-unregistered |
/create/item-bank/distractors/quality |
/analytics, /item-bank, oshun-bff-auth (10) | browser-memory, oshun-bff-session, postgresql-shared-public, redis-runtime-cache | Next middleware checks cookie presence; intended FastAPI endpoints require instructor/admin bearer role plus family-specific actor, tenant, revision, and evidence guards. Default gateway does not register this family. | confidential-assessment-material, internal-authoring-data, unratified-mixed-boundary | service-contract-present-gateway-unregistered |
/create/item-bank/estimates |
/analytics, /item-bank, oshun-bff-auth (11) | browser-memory, oshun-bff-session, postgresql-shared-public, redis-runtime-cache | Next middleware checks cookie presence; intended FastAPI endpoints require instructor/admin bearer role plus family-specific actor, tenant, revision, and evidence guards. Default gateway does not register this family. | confidential-assessment-material, internal-authoring-data, unratified-mixed-boundary | service-contract-present-gateway-unregistered |
/create/item-bank/estimates/calibration-eligibility |
/analytics, /item-bank, oshun-bff-auth (8) | browser-memory, oshun-bff-session, postgresql-shared-public, redis-runtime-cache | Next middleware checks cookie presence; intended FastAPI endpoints require instructor/admin bearer role plus family-specific actor, tenant, revision, and evidence guards. Default gateway does not register this family. | confidential-assessment-material, internal-authoring-data, unratified-mixed-boundary | service-contract-present-gateway-unregistered |
/create/item-bank/estimates/dif-review |
/analytics, /item-bank, oshun-bff-auth (9) | browser-memory, oshun-bff-session, postgresql-shared-public, redis-runtime-cache | Next middleware checks cookie presence; intended FastAPI endpoints require instructor/admin bearer role plus family-specific actor, tenant, revision, and evidence guards. Default gateway does not register this family. | confidential-assessment-material, internal-authoring-data, unratified-mixed-boundary | service-contract-present-gateway-unregistered |
/create/item-bank/estimates/exposure-control |
/analytics, /item-bank, oshun-bff-auth (9) | browser-memory, oshun-bff-session, postgresql-shared-public, redis-runtime-cache | Next middleware checks cookie presence; intended FastAPI endpoints require instructor/admin bearer role plus family-specific actor, tenant, revision, and evidence guards. Default gateway does not register this family. | confidential-assessment-material, internal-authoring-data, unratified-mixed-boundary | service-contract-present-gateway-unregistered |
/create/item-bank/estimates/freshness-control |
/analytics, /content-freshness/dependency-signals, /content-freshness/policy, /content-freshness/verdicts, /content-freshness/verdicts/:dynamic, oshun-bff-auth (9) | browser-memory, oshun-bff-session, postgresql-shared-public, redis-runtime-cache | Next middleware checks cookie presence; intended FastAPI endpoints require instructor/admin bearer role plus family-specific actor, tenant, revision, and evidence guards. Default gateway does not register this family. | confidential-assessment-material, internal-authoring-data, unratified-mixed-boundary | service-contract-present-gateway-unregistered |
/create/item-bank/estimates/irt-diagnostics |
/analytics, /item-bank, oshun-bff-auth (8) | browser-memory, oshun-bff-session, postgresql-shared-public, redis-runtime-cache | Next middleware checks cookie presence; intended FastAPI endpoints require instructor/admin bearer role plus family-specific actor, tenant, revision, and evidence guards. Default gateway does not register this family. | confidential-assessment-material, internal-authoring-data, unratified-mixed-boundary | service-contract-present-gateway-unregistered |
/create/item-bank/imports |
/analytics, /item-bank, oshun-bff-auth (8) | browser-memory, oshun-bff-session, postgresql-shared-public, redis-runtime-cache | Next middleware checks cookie presence; intended FastAPI endpoints require instructor/admin bearer role plus family-specific actor, tenant, revision, and evidence guards. Default gateway does not register this family. | confidential-assessment-material, internal-authoring-data, unratified-mixed-boundary | service-contract-present-gateway-unregistered |
/create/item-bank/learning-links |
/analytics, /item-bank, oshun-bff-auth (10) | browser-memory, oshun-bff-session, postgresql-shared-public, redis-runtime-cache | Next middleware checks cookie presence; intended FastAPI endpoints require instructor/admin bearer role plus family-specific actor, tenant, revision, and evidence guards. Default gateway does not register this family. | confidential-assessment-material, internal-authoring-data, unratified-mixed-boundary | service-contract-present-gateway-unregistered |
/create/item-bank/previews |
/analytics, /item-bank, oshun-bff-auth (8) | browser-memory, oshun-bff-session, postgresql-shared-public, redis-runtime-cache | Next middleware checks cookie presence; intended FastAPI endpoints require instructor/admin bearer role plus family-specific actor, tenant, revision, and evidence guards. Default gateway does not register this family. | confidential-assessment-material, internal-authoring-data, unratified-mixed-boundary | service-contract-present-gateway-unregistered |
/create/item-bank/stimulus-sets |
/analytics, /item-bank, oshun-bff-auth (10) | browser-memory, oshun-bff-session, postgresql-shared-public, redis-runtime-cache | Next middleware checks cookie presence; intended FastAPI endpoints require instructor/admin bearer role plus family-specific actor, tenant, revision, and evidence guards. Default gateway does not register this family. | confidential-assessment-material, internal-authoring-data, unratified-mixed-boundary | service-contract-present-gateway-unregistered |
/create/lessons/[lessonId] |
/analytics, /lesson-dossiers, oshun-bff-auth (9) | browser-memory, isis-http-gallery-authority, oshun-bff-session, postgresql-shared-public, redis-runtime-cache | Next middleware checks cookie presence; intended FastAPI endpoints are predominantly instructor/admin bearer guarded with lesson-owner/tenant checks. Learner delivery is the narrow exception. Default gateway does not register this family. | internal-authoring-data, published-learning-content, unratified-mixed-boundary | service-contract-present-gateway-unregistered |
/create/lessons/[lessonId]/blocks |
/analytics, /lesson-dossiers, /lesson-templates, /teaching-media, oshun-bff-auth (35) | browser-memory, isis-http-gallery-authority, oshun-bff-session, postgresql-shared-public, redis-runtime-cache | Next middleware checks cookie presence; intended FastAPI endpoints are predominantly instructor/admin bearer guarded with lesson-owner/tenant checks. Learner delivery is the narrow exception. Default gateway does not register this family. | internal-authoring-data, published-learning-content, unratified-mixed-boundary | service-contract-present-gateway-unregistered |
/create/lessons/[lessonId]/duration-load |
/analytics, /lesson-dossiers, oshun-bff-auth (8) | browser-memory, isis-http-gallery-authority, oshun-bff-session, postgresql-shared-public, redis-runtime-cache | Next middleware checks cookie presence; intended FastAPI endpoints are predominantly instructor/admin bearer guarded with lesson-owner/tenant checks. Learner delivery is the narrow exception. Default gateway does not register this family. | internal-authoring-data, published-learning-content, unratified-mixed-boundary | service-contract-present-gateway-unregistered |
/create/lessons/[lessonId]/inclusivity |
/analytics, /lesson-dossiers, oshun-bff-auth (8) | browser-memory, isis-http-gallery-authority, oshun-bff-session, postgresql-shared-public, redis-runtime-cache | Next middleware checks cookie presence; intended FastAPI endpoints are predominantly instructor/admin bearer guarded with lesson-owner/tenant checks. Learner delivery is the narrow exception. Default gateway does not register this family. | internal-authoring-data, published-learning-content, unratified-mixed-boundary | service-contract-present-gateway-unregistered |
/create/lessons/[lessonId]/preview |
/analytics, /lesson-dossiers, oshun-bff-auth (10) | browser-memory, isis-http-gallery-authority, oshun-bff-session, postgresql-shared-public, redis-runtime-cache | Next middleware checks cookie presence; intended FastAPI endpoints are predominantly instructor/admin bearer guarded with lesson-owner/tenant checks. Learner delivery is the narrow exception. Default gateway does not register this family. | internal-authoring-data, published-learning-content, unratified-mixed-boundary | service-contract-present-gateway-unregistered |
/create/lessons/[lessonId]/readability |
/analytics, /lesson-dossiers, oshun-bff-auth (8) | browser-memory, isis-http-gallery-authority, oshun-bff-session, postgresql-shared-public, redis-runtime-cache | Next middleware checks cookie presence; intended FastAPI endpoints are predominantly instructor/admin bearer guarded with lesson-owner/tenant checks. Learner delivery is the narrow exception. Default gateway does not register this family. | internal-authoring-data, published-learning-content, unratified-mixed-boundary | service-contract-present-gateway-unregistered |
/create/lessons/[lessonId]/revisions |
/analytics, /lesson-dossiers, oshun-bff-auth (11) | browser-local-storage, browser-memory, isis-http-gallery-authority, oshun-bff-session, postgresql-shared-public, redis-runtime-cache | Next middleware checks cookie presence; intended FastAPI endpoints are predominantly instructor/admin bearer guarded with lesson-owner/tenant checks. Learner delivery is the narrow exception. Default gateway does not register this family. | internal-authoring-data, published-learning-content, unratified-mixed-boundary | service-contract-present-gateway-unregistered |
/create/lessons/[lessonId]/rubrics |
/analytics, /lesson-dossiers, oshun-bff-auth (9) | browser-memory, isis-http-gallery-authority, oshun-bff-session, postgresql-shared-public, redis-runtime-cache | Next middleware checks cookie presence; intended FastAPI endpoints are predominantly instructor/admin bearer guarded with lesson-owner/tenant checks. Learner delivery is the narrow exception. Default gateway does not register this family. | internal-authoring-data, published-learning-content, unratified-mixed-boundary | service-contract-present-gateway-unregistered |
/create/lessons/[lessonId]/rubrics/quality |
/analytics, /lesson-dossiers, oshun-bff-auth (11) | browser-memory, isis-http-gallery-authority, oshun-bff-session, postgresql-shared-public, redis-runtime-cache | Next middleware checks cookie presence; intended FastAPI endpoints are predominantly instructor/admin bearer guarded with lesson-owner/tenant checks. Learner delivery is the narrow exception. Default gateway does not register this family. | internal-authoring-data, published-learning-content, unratified-mixed-boundary | service-contract-present-gateway-unregistered |
/create/lessons/[lessonId]/terminology |
/analytics, /lesson-dossiers, oshun-bff-auth (8) | browser-memory, isis-http-gallery-authority, oshun-bff-session, postgresql-shared-public, redis-runtime-cache | Next middleware checks cookie presence; intended FastAPI endpoints are predominantly instructor/admin bearer guarded with lesson-owner/tenant checks. Learner delivery is the narrow exception. Default gateway does not register this family. | internal-authoring-data, published-learning-content, unratified-mixed-boundary | service-contract-present-gateway-unregistered |
/create/measurement-ledger |
/analytics, /measurement-ledger, /measurement-ledger/measurements, /measurement-ledger/outcome-states, /measurement-ledger/provenance, /measurement-ledger/verdicts, /measurement-ledger/verdicts/recompute, /measurement-ledger/workspace, /measurement-ledger/workspace/export, oshun-bff-auth (13) | browser-memory, oshun-bff-session, postgresql-shared-public, redis-runtime-cache | Next middleware checks cookie presence; intended service writes require instructor/admin bearer role and service-specific owner/tenant guards. Gateway coverage is absent except for a subset of legacy course/assessment routes. | internal-authoring-data, confidential-assessment-material, unratified-mixed-boundary | service-contract-present-gateway-unregistered |
/create/objectives |
/analytics, /curriculum, oshun-bff-auth (8) | browser-memory, code-owned-registry, filesystem-json-ledger, oshun-bff-session, postgresql-shared-public, redis-runtime-cache | Next middleware checks cookie presence; intended service writes require instructor/admin bearer role and service-specific owner/tenant guards. Gateway coverage is absent except for a subset of legacy course/assessment routes. | internal-authoring-data, confidential-assessment-material, unratified-mixed-boundary | service-contract-present-gateway-unregistered |
/create/outlines |
/analytics, /curriculum, oshun-bff-auth (10) | browser-memory, code-owned-registry, filesystem-json-ledger, oshun-bff-session, postgresql-shared-public, redis-runtime-cache | Next middleware checks cookie presence; intended service writes require instructor/admin bearer role and service-specific owner/tenant guards. Gateway coverage is absent except for a subset of legacy course/assessment routes. | internal-authoring-data, confidential-assessment-material, unratified-mixed-boundary | service-contract-present-gateway-unregistered |
/create/review-assignments |
/analytics, /cultural-reviews/assignment-events, /cultural-reviews/assignment-runs, /cultural-reviews/assignment-runs/:dynamic, /cultural-reviews/decisions, /cultural-reviews/policy, oshun-bff-auth (10) | browser-memory, oshun-bff-session, postgresql-shared-public, redis-runtime-cache | Next middleware checks cookie presence; intended service writes require instructor/admin bearer role and service-specific owner/tenant guards. Gateway coverage is absent except for a subset of legacy course/assessment routes. | internal-authoring-data, confidential-assessment-material, unratified-mixed-boundary | service-contract-present-gateway-unregistered |
/create/workload |
/analytics, /curriculum, oshun-bff-auth (9) | browser-memory, code-owned-registry, filesystem-json-ledger, oshun-bff-session, postgresql-shared-public, redis-runtime-cache | Next middleware checks cookie presence; intended service writes require instructor/admin bearer role and service-specific owner/tenant guards. Gateway coverage is absent except for a subset of legacy course/assessment routes. | internal-authoring-data, confidential-assessment-material, unratified-mixed-boundary | service-contract-present-gateway-unregistered |
/login |
oshun-bff-auth (4) | browser-memory, oshun-bff-session | Public page; credentials go to the Oshun BFF, which owns session issuance. The refresh token is HTTP-only-cookie state. | public-authentication-input, restricted-identity-authorization-projection | oshun-bff-direct |
/notifications |
/analytics, oshun-bff-auth (5) | browser-memory, oshun-bff-session, postgresql-shared-public, redis-runtime-cache | Next middleware checks cookie presence; intended analytics endpoints require bearer user and subject-bound service queries. Current page paths are absent from gateway handler registration. | protected-learner-data, restricted-education-record | service-contract-present-gateway-unregistered |
/progress |
/analytics, /auth, oshun-bff-auth (7) | browser-memory, oshun-bff-session, postgresql-shared-public, redis-runtime-cache | Next middleware checks cookie presence; intended analytics endpoints require bearer user and subject-bound service queries. Current page paths are absent from gateway handler registration. | protected-learner-data, restricted-education-record | service-contract-present-gateway-unregistered |
/saved |
/analytics, /courses, oshun-bff-auth (6) | browser-memory, oshun-bff-session, postgresql-shared-public, redis-runtime-cache | Next middleware checks cookie presence; gateway courses:read permission applies to registered paths, while direct FastAPI catalog reads are public and learner mutations require bearer user. | published-learning-content, protected-learner-data | mixed-gateway-coverage |
/settings |
/analytics, /auth, oshun-bff-auth (6) | browser-memory, oshun-bff-session, postgresql-shared-public, redis-runtime-cache | Next middleware checks cookie presence; intended /auth/me service read/write requires bearer user. The default gateway has no auth handler family. | restricted-identity-authorization-projection, protected-learner-data | service-contract-present-gateway-unregistered |
/study |
/analytics, /auth, oshun-bff-auth (7) | browser-memory, oshun-bff-session, postgresql-shared-public, redis-runtime-cache | Next middleware checks cookie presence; intended analytics endpoints require bearer user and subject-bound service queries. Current page paths are absent from gateway handler registration. | protected-learner-data, restricted-education-record | service-contract-present-gateway-unregistered |
/tutoring |
/analytics, /auth, /tutoring, oshun-bff-auth (13) | browser-memory, oshun-bff-session, postgresql-shared-public, redis-runtime-cache | Next middleware checks cookie presence; service endpoints require bearer user and subject-owned session access. Gateway exposes only a subset of the page calls. | protected-learner-conversation, protected-learner-data | mixed-gateway-coverage |
Park and resume conditions#
No view is registered by this task. Resume implementation only when all applicable conditions are met:
- Record one complete seven-day UTC window with no changes to the Metis OpenAPI, migration graph, gateway routing, or web page-to-API bindings, or approve a versioned compatibility exception through the decision lane.
- Resolve the /api/metis/v1 -> /api/v1 -> /api transport contract so every admitted read route is explicitly registered, authenticated, versioned, and service-contract matched.
- Ratify or supersede ADR-M0.5 data ownership/classification before exposing protected learner, assessment, grade, integrity, or authoring records to Eve.
The transport decision remains owned by task 1.2 and any actual read-view registration by task 1.3. Neither may reinterpret this survey as a closed seam.
Limitations#
- This is a dated repository and local-development observation, not a staging or production inventory.
- Static source matching proves declared routes and guards, not a successful live browser-to-database round trip.
- Static route extraction is a conservative dependency-closure inventory: an endpoint from a shared imported component may appear for a page even when a particular callback is not invoked in that page state.
- Page classifications are conservative survey labels derived from a Proposed ADR; they are not Data Governance ratification.
- A route with a FastAPI OpenAPI match is not reachable through the default web transport unless the gateway also registers it.
- No Metis Eve read view or mutation is admitted by this survey; later tasks must independently decide transport, authorization, and stable candidates.