Disciplines · Audits

Eve SOTA Metis seam survey — 2026-09

Eve views.

9sections25 minread

On this page

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-256 c89749f7cadb7adea01931dcd39bc0b11a36c94fbf3a03fc8eec6e92544642af.
  • 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/v1 on http://localhost:4020; FastAPI declares /api routes.
  • 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 043 with exit 0; Alembic graph resolution exited 0 with code-database-head-aligned, diagnostic “043 (head)”. Revision 043 is 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.