Cert-IX MVP1 β Compliance Baseline Matrix (38 Services)
Date: 2026-02-22
Scope: Minimum launchable compliance baseline on critical flows
Estimated remediation: 2β4 days (validated below)
Table of Contentsβ
- Service Compliance Matrix (38 services)
- Critical Flows & Dependencies
- P0/P1/P2 Gap Summary
- Remediation Plan per Flow
- E2E Testing Strategy by Flow
- Kafka Event Contract Freeze
- Go/No-Go Criteria
- Timeline
1. Service Compliance Matrixβ
Legendβ
| Symbol | Meaning |
|---|---|
| β | Implemented and verified |
| β οΈ | Partially implemented / needs hardening |
| β | Missing / not implemented |
| N/A | Not applicable for this service type |
Compliance Dimensionsβ
| # | Dimension | Code |
|---|---|---|
| A | AuthN/AuthZ & Access Control | AUTHN |
| B | Audit Logging (who/what/when + traceId) | AUDIT |
| C | Secrets Management (no hardcoded secrets) | SECRETS |
| D | Encryption in Transit (TLS) + at Rest | ENCRYPT |
| E | Input Validation/Sanitization + Rate Limiting | INPUT |
| F | Monitoring/Alerting (health, logs, APM) | MONITOR |
1.1 Admin Servicesβ
| # | Service | Criticality | A:AUTHN | B:AUDIT | C:SECRETS | D:ENCRYPT | E:INPUT | F:MONITOR | Kafka Role | Dependencies |
|---|---|---|---|---|---|---|---|---|---|---|
| 1 | admin-backend | P1 | β
JWT+Passport, RBAC via rbac.service, token blacklist (Redis) | β
authAuditLogger middleware, session.service.createAuditLog, DB-persisted | β οΈ Env vars via Joi validation; DB_SSL defaults false | β οΈ Helmet headers; DB_SSL=false default; session cookie secure only in prod | β
Joi validate middleware on all routes | β οΈ Winston logger; no APM agent detected | None | PG (cert_ix_admin), Redis, auth DB, assets DB, messages DB |
| 2 | admin-ui | P1 | β JWT auth via admin-backend API | N/A (frontend) | β No secrets in client code | β HTTPS via Nginx/Kong | β DOMPurify, client-side validation | β οΈ Elastic APM RUM | Consumer of admin-backend API | admin-backend |
1.2 Authentication & Identity Servicesβ
| # | Service | Criticality | A:AUTHN | B:AUDIT | C:SECRETS | D:ENCRYPT | E:INPUT | F:MONITOR | Kafka Role | Dependencies |
|---|---|---|---|---|---|---|---|---|---|---|
| 3 | qr-auth-service | P0 | β JWT+session, CSRF (Redis-backed), WebAuthn, MFA, device fingerprint, token blacklist, bot detection, IP reputation | β
AuditLogger class with tamper-resistant hashes (SHA-384 chain), DB+Kafka dual write, compliance tags (SOC2/GDPR/PCI) | β οΈ Env vars; CSRF_ENCRYPTION_KEY falls back to crypto.randomBytes (ephemeral) | β οΈ Kafka SSL configurable but ssl: process.env.KAFKA_SSL === 'true'; Redis TLS conditional | β Joi validation, CAPTCHA integration, email validation, SQL injection patterns, rate limiting (DB-backed, 10 req/15min auth) | β οΈ Structured logging; no APM | Producer: 50+ topics (auth events, CSRF, sessions, security) | PG (cert_ix_auth), Redis, Kafka, captcha-service |
| 4 | qr-auth-ui | P1 | β Login/register/2FA/WebAuthn UI | N/A (frontend) | β No secrets in client | β HTTPS | β Client-side validation, DOMPurify | β οΈ Elastic APM RUM | N/A | qr-auth-service |
| 5 | otp-service | P0 |