| auth |
12001 |
✓ | ✓ | ✓ | ✓ | ✓ |
○ unreachable |
— |
17/17 |
— |
7 endpoints: POST /token (password/esignet/refresh_token grants), POST /refresh, POST /logout (idempotent), GET /validate (internal), POST /service-token, GET /userinfo, GET /jwks (cached). Valkey for JWKS cache/revocation/userinfo/rate-limit. PostgreSQL login_events. 27/27 tests passing (unit+integration). All 17 acceptance criteria covered. |
| farmer |
12002 |
✓ | ✓ | ✓ | ✓ | ✓ |
○ unreachable |
pass |
10/10 |
merged |
4 endpoints: GET /farmer/:id (cache+AgriStack), GET /farmer/search (local DB), GET /farmer/:id/delegation-eligibility, PATCH /farmer/:id/status (suspension cascade). Valkey cache 1800s. Mock mode from fixtures. 19/19 tests. MR !9 merged. |
| land |
12003 |
✓ | ✓ | ✓ | ✓ | ✓ |
○ unreachable |
pass |
7/7 |
merged |
2 endpoints: GET /land/:farmerID, GET /land/:farmerID/plot/:plotID. Valkey 7200s cache. soilZone/irrigated defaults with dataWarnings. 8/8 tests. MR !10 merged. |
| crop |
12004 |
✓ | ✓ | ✓ | ✓ | ✓ |
○ unreachable |
pass |
8/8 |
merged |
2 endpoints: GET /crop/:farmerID?season=, POST /crop/:farmerID/declare. Hindi+English crop name mapping (10 variants). Valkey 14400s cache invalidated on declare. 17/17 tests. MR !11 merged. |
| formula |
12005 |
✓ | ✓ | ✓ | ✓ | ✓ |
○ unreachable |
pass |
13/13 |
merged |
5 endpoints: GET /allocation/:farmerID, POST /compute, GET /versions, GET /versions/:version, POST /versions. Pure engine: Math.round(raw/5)*5, min threshold 5kg. Seeded v1.0-MoA-DoF-Kharif2026 on startup. Valkey cache 14400s. 18 tests (8 unit engine + 10 integration). All 5 gates passed. MR !12 merged. |
| credential |
12006 |
✓ | ✓ | ✓ | ✓ | ✓ |
○ unreachable |
pass |
11/11 |
merged |
6 endpoints: POST /issue (dedup/delegation), GET /:vcID, GET /farmer/:farmerID, POST /:vcID/revoke, POST /farmer/:farmerID/revoke-all, GET /jwks. RSA-2048 RS256 JWT. Key persisted in Valkey with no TTL. Season-end TTL on active VC key. 12 tests passing. MR !13 merged. |
| qr |
12007 |
✓ | ✓ | ✓ | ✓ | ✓ |
○ unreachable |
pass |
7/7 |
merged |
3 endpoints: POST /generate (standard 400px M + printable 800px H), GET /:vcID/standard, GET /:vcID/printable. Pure-JS qrcode PNG (no native deps). Valkey cache TTL=season-end. 8 tests. MR !14 merged. |
| verify |
12008 |
✓ | ✓ | ✓ | ✓ | ✓ |
○ unreachable |
pass |
5/5 |
merged |
2 endpoints: GET /verify/:vcID (200 for all states), GET /verify/jwks (proxied from credential). Selective disclosure. 300s result cache. 8 tests. MR !15 merged. |
| delegation |
12009 |
✓ | ✓ | ✓ | ✓ | ✓ |
○ unreachable |
pass |
8/8 |
merged |
6 endpoints: POST /delegation/:farmerID, GET /delegation/:farmerID, DELETE /delegation/:delegationID, POST /delegation/:farmerID/emergency, POST /delegation/:delegationID/cosign, GET /delegation/validate/:delegationID. HS256 consent tokens via Valkey-persisted secret. Prisma delegation schema. 10/10 tests passing. All 5 gates passed: typecheck ✓ lint ✓ license ✓ tests ✓ self-test pass=true ✓. MR !16 merged. |
| redemption |
12010 |
✓ | ✓ | ✓ | ✓ | ✓ |
○ unreachable |
pass |
9/9 |
— |
4 endpoints: POST /redemption/:vcID (atomic NX lock, verify-first, over-dispense audit), GET /redemption/:vcID/status, GET /redemption/farmer/:farmerID, POST /redemption/sync (clientID idempotency, batch limit 50). Prisma redemption schema. 11/11 tests passing. All 5 gates passed: typecheck ✓ lint ✓ license ✓ tests ✓ self-test pass=true ✓. |
| reconciliation |
12011 |
✓ | ✓ | ✓ | ✓ | ✓ |
● healthy |
pass |
6/6 |
passing |
all gates passed |
| exception |
12012 |
✓ | ✓ | ✓ | ✓ | ✓ |
● healthy |
pass |
7/7 |
passing |
all gates passed |
| grievance |
12013 |
✓ | ✓ | ✓ | ✓ | ✓ |
● healthy |
pass |
6/6 |
passing |
all gates passed |
| notification |
12014 |
✓ | ✓ | ✓ | ✓ | ✓ |
○ unreachable |
pass |
6/6 |
merged |
2 endpoints: POST /api/v1/notification/send (202 async, fire-and-forget), GET /api/v1/notification/history/:recipientID. 10 bilingual templates (Hindi default). Keycloak phone lookup, silent skip on unknown. 3-retry SMS. 11/11 tests passing. MR !8 merged. |
| audit |
12015 |
✓ | ✓ | ✓ | ✓ | ✓ |
● healthy |
— |
8/8 |
— |
4 endpoints: POST /log (202 always, fire-and-forget), GET /farmer/:id, GET /export (CSV+JSON), GET /:id/verify-chain. SHA-256 hash chain. Append-only enforced by PostgreSQL trigger. 15/15 tests passing. |
| dashboard |
12016 |
✓ | ✓ | ✓ | ✓ | ✓ |
● healthy |
pass |
6/6 |
passing |
all gates passed |
| admin |
12017 |
✓ | ✓ | ✓ | ✓ | ✓ |
● healthy |
pass |
5/5 |
passing |
all gates passed |
| web |
12000 |
✓ | ✓ | ✓ | ✓ | ✓ |
ok |
pass |
5/5 |
passing |
all gates passed |