Agent #7 — Senior Backend Engineer (multi-tenancy + API keys)
Reports to: Agent #2.
Mandate: Owns (tenant_id, environment) isolation, api_keys table, za_{live,test}_* keys, scope enforcement.
KPIs: see role 7 in ../03-team.md.
Week 1 (2026-05-25 → 2026-05-29)
A07-W1-Mon (2026-05-25) — Write failing test for C-005 (SSE access_token rejection)
- Done when:
tests/console-auth.test.ts::"SSE rejects access_token in query string"red. - Output: PR draft with red test.
- Verify: test fails before fix.
- Reviewer: Agent #23.
- Depends on: A02-W1-Mon.
A07-W1-Tue (2026-05-26) — Implement C-005 — remove access_token query fallback
- Done when: middleware rejects
?access_token=; cookie-based auth path verified for SSE. - Output: C-005 PR opened.
- Verify: test now green; security-reviewer sub-agent posted review.
- Reviewer: Agents #2, #26.
- Depends on: A07-W1-Mon.
A07-W1-Wed (2026-05-27) — Implement C-007 (cross-tenant rejection matrix) with Agent #23
- Done when: test enumerates every mounted
/v1/*route via Express introspection; cross-tenant 403 verified. - Output:
tests/tenant-isolation.test.tsv1. - Verify: every route in router has a test row.
- Reviewer: Agent #23.
- Depends on: A07-W1-Tue.
A07-W1-Thu (2026-05-28) — Design doc for Postgres-backed session store (C-025)
- Done when: schema + migration strategy + fallback flag designed.
- Output:
docs/team/backend/postgres-session-store-design.md. - Verify: covers TTL, eviction, concurrent access, dev fallback.
- Reviewer: Agent #2.
- Depends on: A07-W1-Wed.
A07-W1-Fri (2026-05-29) — Status post + rate-limit design doc
- Done when: status posted; rate-limit design doc drafted.
- Output:
docs/team/backend/rate-limit-design.md. - Verify: covers per-key + per-IP buckets, configurable.
- Reviewer: Agent #2.
- Depends on: A07-W1-Thu.
Week 2 (2026-06-01 → 2026-06-05)
A07-W2-Mon (2026-06-01) — Implement C-025 (Postgres session store) — first half
- Done when: session store schema migrated; service refactored.
- Output: PR draft.
- Verify: tests for persistence across process restart written.
- Reviewer: Agent #2.
- Depends on: A07-W1-Fri.
A07-W2-Tue (2026-06-02) — Implement C-025 — second half + ship
- Done when: PR merged; CI green;
SESSION_STORE_BACKEND=memoryfallback still works. - Output: C-025 merge commit.
- Verify:
tests/session-store-pg.test.ts::"sessions persist across process restart"green. - Reviewer: Agents #2, #21.
- Depends on: A07-W2-Mon.
A07-W2-Wed (2026-06-03) — Implement C-026 (rate-limit middleware) — first half
- Done when: middleware skeleton + Postgres-backed bucket store landed.
- Output: PR draft for C-026.
- Verify: load smoke test of 100 RPS.
- Reviewer: Agent #2.
- Depends on: A07-W2-Tue.
A07-W2-Thu (2026-06-04) — Implement C-026 — second half + C-027 (CORS hardening)
- Done when: both PRs opened; tests green.
- Output: C-026 + C-027 PRs.
- Verify:
tests/rate-limit.test.tsandtests/cors.test.tsgreen. - Reviewer: Agents #2, #26.
- Depends on: A07-W2-Wed.
A07-W2-Fri (2026-06-05) — Phase 0 backend sign-off + status post
- Done when: tenant-isolation + session + rate-limit + CORS work confirmed green.
- Output: row in
docs/team/phase-exits/phase-0-backend-signoff.md. - Verify: each commit referenced + merged.
- Reviewer: Agent #2.
- Depends on: A07-W2-Thu.
Week 3 (2026-06-08 → 2026-06-12)
A07-W3-Mon (2026-06-08) — Anchor Bank tenant-seed script design
- Done when: script idempotency + secret-handling design captured.
- Output:
docs/team/backend/anchor-bank-seed-design.md. - Verify: covers
live+testenvs; API keys printed only to operator, never committed. - Reviewer: Agents #2, #45.
- Depends on: A07-W2-Fri.
A07-W3-Tue (2026-06-09) — Implement C-108 (anchor_bank tenant seed) — first half
- Done when: script scaffold + tenant row + webhook secret rotation written.
- Output: PR draft for C-108.
- Verify:
tests/seed-demo-tenants.test.tswritten. - Reviewer: Agent #2.
- Depends on: A07-W3-Mon.
A07-W3-Wed (2026-06-10) — Implement C-108 — second half + ship
- Done when: PR opened; idempotency confirmed.
- Output: C-108 PR.
- Verify:
tests/seed-demo-tenants.test.ts::"anchor_bank tenant provisioned with right scopes"green. - Reviewer: Agent #2.
- Depends on: A07-W3-Tue.
A07-W3-Thu (2026-06-11) — Users-view API surface coordination with Agent #14
- Done when: API contract for users view confirmed (response shape, pagination, no PII).
- Output: API contract delta committed to
docs/api_contract.md. - Verify: Agent #14 confirms via PR comment.
- Reviewer: Agent #14, Agent #34.
- Depends on: A07-W3-Wed.
A07-W3-Fri (2026-06-12) — Status post + sprint-2 tenant feature-flag service spike
- Done when: status posted; feature-flag service refactor design drafted.
- Output:
docs/team/backend/tenant-feature-flags-design.md. - Verify: design covers workforce-mode toggle (precursor to C-189).
- Reviewer: Agent #2.
- Depends on: A07-W3-Thu.
Week 4 (2026-06-15 → 2026-06-19)
A07-W4-Mon (2026-06-15) — Merge C-108 + post-merge smoke
- Done when: C-108 merged; smoke run on test env confirms tenant ready.
- Output: merge commit + smoke log.
- Verify: webhook signing key rotated successfully.
- Reviewer: Agent #2.
- Depends on: A07-W3-Wed.
A07-W4-Tue (2026-06-16) — Tenant-config docs (precursor to workforce-mode in sprint 2)
- Done when:
docs/operations/tenant-config.mdv1 drafted. - Output: doc PR.
- Verify: covers
allowed_origins, scopes, webhook URLs, feature flags. - Reviewer: Agents #2, #34.
- Depends on: A07-W4-Mon.
A07-W4-Wed (2026-06-17) — Cross-line architecture sync attendance
- Done when: sync attended; tenant-config alignment with mobile + frontend confirmed.
- Output: sync notes contribution.
- Verify: notes published.
- Reviewer: Agent #1.
- Depends on: A07-W4-Tue.
A07-W4-Thu (2026-06-18) — Sprint 1 backend sign-off + spike for sprint-2 anchor commit C-122
- Done when: backend S1 exit-gate row signed; feature-flag enforcement spike written.
- Output: contribution to S1 exit doc;
docs/team/backend/a07-sprint-2-plan.md. - Verify: 5 daily tickets for week 5.
- Reviewer: Agent #2.
- Depends on: A02-W4-Thu.
A07-W4-Fri (2026-06-19) — Sprint 2 self-plan + status post
- Done when: tickets confirmed; status posted.
- Output: status post.
- Verify: week-5 tickets reference C-121 hash-chain backfill migration.
- Reviewer: Agent #2.
- Depends on: A07-W4-Thu.