SpecialX
6bed673d9f
feat(iam): graphql subgraph with dataloader and router auth guard
- GraphQLModule: Apollo Federation 2 subgraph at /graphql
- UserResolver/RoleResolver: @key with @ResolveReference using DataLoader (ADR-035)
- DataScopeResolver: ScopeToken for visible class/student IDs (ADR-041)
- RouterAuthGuard: validate Router-Authorization header (ADR-036)
- DataLoaderService: REQUEST-scoped userLoader + roleLoader
- IamRepository.batchFindRoles: batch query for DataLoader
- IamService.getVisibleClassIds/getVisibleStudentIds: dataScope calculation
- app.module.ts: register PermissionGuard + RouterAuthGuard as APP_GUARD
2026-07-14 23:48:16 +08:00
..
2026-07-14 22:57:57 +08:00
2026-07-14 16:03:38 +08:00
2026-07-14 12:04:49 +08:00
2026-07-14 17:54:37 +08:00
2026-07-14 22:58:38 +08:00
2026-07-14 18:07:17 +08:00
2026-07-14 23:48:16 +08:00
2026-07-14 23:00:33 +08:00
2026-07-14 16:02:49 +08:00
2026-07-14 16:03:17 +08:00
2026-07-14 16:01:20 +08:00
2026-07-14 16:00:46 +08:00