| System boundary & classification | Documented as non-records auxiliary system; no GxP record creation, modification, or storage. | §11.10(a) — validation scope | §1 — scope and risk-based approach | Data integrity by design |
| Access control & authority checks | API key hashing + optional Cognito JWT; tenant resolved from registry; unknown/forbidden tenants rejected with 403; constant-time comparison. | §11.10(d) — access controls; §11.10(g) — authority checks | §7 — access control; §8 — audit trail | Physical/logical separation of tenants |
| Audit trails | Structured audit logs on dedicated audit channel: tenantId, principalId, tokenFingerprint, method, target, argHash, status, durationMs, ip. No secrets logged. | §11.10(e) — audit trails; §11.10(k) — system documentation | §9 — audit trail | ALCOA+ attributable and complete records |
| Data integrity — read-only DB | Catalog repository executes only SELECT statements; read-only DB user; parameterized queries; identifier whitelisting. | §11.10(b) — accurate records | §4 — data integrity | No unauthorized modification of data |
| Data integrity — output sanitization | sanitizeOutput.ts strips control chars, neutralizes code fences/role markers, caps length, and wraps untrusted data with a visible warning. | §11.10(b) — accurate records | §4 — data integrity | Prevent prompt injection affecting AI output |
| Electronic signature / identity | Bearer token or verified Cognito JWT; token fingerprint in audit logs; no shared credentials. | §11.100 — signature/identification | §7 — unique user identification | Non-repudiation of access |
| Validation evidence | Automated test suite (vitest) with 41 tests covering auth, tenant isolation, rate limiting, audit logging, secrets handling, and prompt-injection hardening. | §11.10(a) — validation | §4 — validation | Evidence-based qualification |
| Change control | Bitbucket pipeline runs npm test, npm audit --omit=dev --audit-level=high, and builds the container before deployment. | §11.10(k) — system documentation | §13 — change control | Controlled deployment of changes |
| Incident / security monitoring | Rate limiting; audit logs; health endpoint restricted by CIDR; nginx logs. | §11.10(c) — operational checks | §10 — security incidents | Detect and respond to misuse |
| Human review gate | AI-generated JSON is written to a local file; the customer must review and import it manually into the CSQ Cockpit. | §11.10(b) — human review | §4 — accuracy checks | Human-in-the-loop for regulated decisions |
| TLS / transport security | TLS 1.2/1.3 only; HSTS; nginx reverse proxy; loopback bind by default; DB TLS with certificate verification. | §11.30 — controls for open systems | §6 — security | Confidentiality in transit |
| Secrets rotation | API key hashes support multiple entries and expiresAt; SIGHUP reloads TENANT_REGISTRY_JSON from AWS Secrets Manager without restart; 90-day rotation recommended. | §11.300 — signature controls | §7 — password management | Key lifecycle management |