Skip to content

MongoDB Atlas Setup Runbook

Status: Phase 1 in progress. Last updated April 12, 2026. Purpose: SOC 2 evidence for CC7.1 (Infrastructure Management), CC8.1 (Change Management)


Cluster Details

FieldValue
Atlas OrganizationAskFlorence
Atlas ProjectAskFlorence
Cluster Nameaskflorence-prod-01
TierM10 (HIPAA-eligible)
Cloud ProviderAWS
Regionus-east-1
MongoDB Version7.x (latest stable)
Created DateApril 12, 2026
Created ByTaha Abbasi (Founder)

Compliance Configuration

SettingStatusNotes
BAA (HIPAA)Pending signatureAvailable in Atlas Organization → Compliance
Encryption at RestEnabledAES-256, Atlas default on M10+
Encryption in TransitRequiredTLS for all connections, Atlas default
Atlas Audit LoggingPending enablementCaptures auth events, CRUD operations
Continuous BackupEnabledAtlas default on M10+, verify ≥7 day retention
Network AccessIP allowlistDevelopment IPs only; VPC peering deferred until ECS deployment

Database

FieldValue
Database Nameaskflorence
CreatedApril 12, 2026

Phase 1 Collections

CollectionPurposeCreated
plan_yearsState+year configuration (FPL, SLCSP, contribution brackets, Essential Plan tiers, tier multipliers, standard cost-sharing)April 12, 2026
plansFull plan data: premiums by region, ~54 benefit/copay fields, deductible, MOOP, issuer, metal, URLs, counties servedApril 12, 2026
regionsRating regions with county lists, SLCSP, lowest Silver premium, plan countApril 12, 2026
zip_countyZip code → county name, FIPS code, state, region lookupApril 12, 2026
audit_logAPI access events, data ingestion actions, PHI access trailApril 12, 2026

Indexes

plan_years

{ state: 1, year: 1 }         — unique

plans

{ state: 1, year: 1, program: 1 }
{ countiesServed: 1 }
{ hiosId: 1, year: 1 }        — unique
{ state: 1, year: 1, metal: 1 }

regions

{ state: 1, year: 1, regionId: 1 }  — unique

zip_county

{ zip: 1 }                    — unique

audit_log

{ timestamp: -1 }             — query ordering
{ timestamp: 1 }              — TTL: 7 years (220,752,000 seconds)

Database Users

Bootstrap User (created during setup)

UserRolePurpose
atlas-admin-tahaAtlas adminInitial setup and administration

Scoped Service Users (deferred — to be created after collections exist)

UserAccessPurpose
app-readRead-only on plan_years, plans, regions, zip_countyAPI server queries
app-writeRead-write on all Phase 1 collectionsData ingestion scripts
audit-writeInsert-only on audit_logAPI audit trail writes

Status: Scoped users are intentionally deferred until Phase 1 collections are created and verified. This ensures permissions are scoped against real database resources, not overly broad bootstrap grants.

Connection String Format

mongodb+srv://<user>:<password>@askflorence-prod-01.njkihm.mongodb.net/askflorence?retryWrites=true&w=majority

Credentials are stored in:

  • Development: .env.local (gitignored)
  • Production: AWS Secrets Manager (future)

Never committed to source control. See .env.example for placeholder format.

Backup Configuration

SettingValue
Backup typeContinuous (Atlas managed)
RetentionMinimum 7 days
Point-in-time recoveryAvailable within retention window
Backup encryptionSame as cluster encryption (AES-256)

Network Access

EntryIP/CIDRPurposeAddedRemove By
Development (open)0.0.0.0/0Development phase — open accessApril 12, 2026Before production launch

Future: VPC peering with AWS ECS when the API service is deployed. At that point, development IPs will be removed and all access will flow through the VPC peer.

Setup Script

Database and collection creation is automated via:

node scripts/db/setup-collections.js

This script:

  • Connects using MONGODB_URI from .env.local
  • Creates the askflorence database
  • Creates all 5 Phase 1 collections
  • Creates all indexes (idempotent — safe to re-run)
  • Prints verification summary

Next Steps

  • [ ] Sign Atlas BAA
  • [ ] Enable Atlas audit logging
  • [ ] Create scoped service users after collections are verified
  • [ ] Verify backup retention is ≥7 days
  • [ ] Load NY 2026 plan data (Issue #45)
  • [ ] Set up VPC peering when ECS is deployed

AskFlorence Internal Documentation. Not for public distribution.