Fits the shared shell (00-shared/05_Global_Information_Architecture.md).
Teachers is a Staff-adjacent, Academics-linked module: routes live under a
People/Staff destination, while assignment data lives in the Academics domain.
Primary home:Staff destination (/staff, role-gated admin/HR per
05_Global_Information_Architecture.md:39) — teachers and staff share the
"people/employment" cluster (same user+department+designation model).
Teacher self surface:(planned) dedicated "My Teaching" entry for the
teacher role — today the client composes it from timetable + assignments
(03 §5). Not a top-level destination in the shared IA (Teachers isn't listed
there at all — derivation: only Staff exists).
read ((proposed) — staff.read exists at permissions.constants.ts:19)
Teacher detail
full
full
own only (planned)
read
Create / edit / deactivate
full
full
—
—
Assignments (by teacher / by class)
full
full
own (read)
read
My Teaching
—
—
full
—
Server reality: no endpoint carries role metadata (rbac.guard.ts:29 passes
metadata-less routes) → the client is the only gate. Cross-tenant access is still
structurally blocked server-side via scopedFilter (base.repository.ts:20-30).