This document is the index and narrative for LastVet's security posture. Detailed controls live in linked companion documents. Where this document and a companion disagree, the companion with the more recent Status line wins until this index is updated.
Deployed and verifiable in staging and/or production as described
Designed, not yet built
Architecture or policy is decided; code or infra incomplete
Aspirational (Track 2+)
Directional commitment; no production dependency today
AWS legacy
Former production path; retained only as a documented rollback net
LastVet Phase 1 is mental-health care coordination in San Diego, powered by VA Lighthouse APIs (Patient Health FHIR + Veteran Service History & Eligibility) plus open-data Facilities/Forms. No real veteran PHI has been admitted to production as of this writing; environments hold synthetic sandbox data only. VA production API access (case #00015000) remains pending.
LastVet is a veteran-owned coordination layer, not an EHR. Veterans hold a sovereign health-and-service profile; providers receive consent-gated access to veteran-directed copies and LastVet-native coordination data. Clinical systems of record (progress notes, treatment plans, billable assessments) remain in provider EHRs.
Implemented today (August 2026): Production and staging API traffic is served from the R940 platform (lastvet-api, lastvet-db, lastvet-edge, lastvet-imaging). Public HTTPS terminates at Caddy on lastvet-edge (Let's Encrypt). DNS for api.last.vet and api-staging.last.vet is Cloudflare grey-cloud only (authoritative DNS, not proxied). No CDN or third-party TLS terminator sits in the API data path.
AWS legacy: ECS + RDS stacks in us-west-2 remain online as a time-boxed rollback net with frozen synthetic data. They take no production traffic after R940 cutover and must not receive veteran PHI (Gate 0.5 invariant).
DD-214 and vault document types use app-layer AES-256-GCM with a server-held key (LAST1_TOKEN_ENCRYPTION_KEY pattern). Distinct from imaging envelope (single key vs per-object DEK). See SECURITY_POSTURE_TOKEN_CUSTODY.md companion crypto module.
Implemented today on four clinical-content tables with FORCE ROW LEVEL SECURITY:
Table
Policy
documents
documents_request_context
health_record_items
health_record_items_request_context
provider_notes
provider_notes_request_context
self_reported_entries
self_reported_entries_request_context
Verified behavior: lastvet_app without request context sees zero rows on these tables. Provider reads set consent context before query (2026-07-21 fix).
Gap (documented, remediation planned): Thirteen veteran-scoped tables including consent_grants and part2_consents rely on application logic only. RLS batch 2 is required before real veteran admission. See SECURITY_POSTURE_DATABASE_ACCESS.md §3 and RLS_BATCH2_PLAN.md.
Rotation posture:kek_version field planned for imaging envelope. KEK rotation = re-wrap DEKs, not bulk re-encryption of objects. Rotation automation is not implemented day one (TODO comments at loader and repository boundaries in Track 1 implementation).
Never: log DEK/KEK values; write DEK/KEK to disk outside BWS; hardcode keys in source.
Implemented (August 2026): Prometheus + Loki ruler → Alertmanager (email + Slack #alerts-lastvet); critical/warning runbooks in repo. VM-stopped and cert-expiry alerts deferred. See OBSERVABILITY_STACK Phase 4
External synthetic uptime
Implemented (August 2026): UptimeRobot Pro on api.last.vet/health (1 min) and api-staging.last.vet/health (5 min); email + Slack outside R940. Defense in depth with internal alerting. See OBSERVABILITY_STACK Phase 5
Public availability transparency
Implemented (August 2026): UptimeRobot public status page at https://status.last.vet (CNAME to stats.uptimerobot.com; standard URL https://stats.uptimerobot.com/jKTZt8e5at until DNS). Shows live uptime, response times, and incident history for all public LastVet endpoints. Intentionally public: we monitor and we report. Aligns with the sovereignty posture (veterans and partners can verify platform health without trusting a private dashboard). See OBSERVABILITY_STACK § Public status page
Partially implemented: Loki retention_tier=audit holds 6 years on observability VM. Offsite immutable archive (B2) still required for site-disaster protection
Infrastructure log parity with AWS CloudTrail
Gap-with-mitigation on R940 (see migration plan parity table)
LastVet assumes long-lived health data may face harvest-now-decrypt-later adversaries. Symmetric and hash primitives are chosen for PQ resilience where NIST guidance applies; asymmetric migration is phased.
Implemented: Part 2 consent flows for SUD-sensitive categories; mental-health wedge in Phase 1. Consent records in part2_consents. Hogan Lovells copy lock tracked in Gate 0.5.
Implemented: Sandbox approved; production access pending (#00015000). OAuth scopes limited to approved APIs. Token custody posture documented for VA review.
Honest status: LastVet does not yet publish a standalone incident-response runbook in this repository. The following reflects policy intent and partial implementation. Counsel-reviewed breach notification procedures are tracked in Gate 0.5 and the LastVet Bible; they are not duplicated here as operational law.