| Field | Value |
|---|---|
| Version / Status | 1.0 · For approval |
| Date | 24 June 2026 |
| Cutover lead | Satish Kandagadla — Trilagen Engineering |
| Target environment | trilagen-prod (506997029654), us-east-1 |
| Promotion path | dev / staging → prod |
This is the controlled runbook for promoting the Trilagen Security and AI Agent platform from dev / staging into production. It defines what is cut over, who owns each step, the exact sequence, how success is validated, and how the change is rolled back if a gate fails.
All work targets one production landing zone: AWS account 506997029654 in us-east-1, deployed exclusively through the trilagen-prod CLI profile. The default profile points at a different account and must never be used.
| System | Subdomain | Function | Status |
|---|---|---|---|
| SailPoint ISC | isc.trilagen.bot | Identity governance co-pilot (Identity Security Cloud) | LIVE |
| Secure Vault | vault.trilagen.bot | Secrets / secure document handling | LIVE |
| AWS Agent | aws.trilagen.bot | Cross-account AWS ops via STS AssumeRole | LIVE |
| System | Subdomain | Function | Status |
|---|---|---|---|
| Agent Hub | hub.trilagen.bot | Portal listing & launching agents (JWT hand-off) | LIVE |
| Diagram / Transcript | diagram.trilagen.bot | Transcript → Lucidchart process diagrams | LIVE |
| SOW Builder | sow.trilagen.bot | Statement-of-Work drafting & review | LIVE |
| Salesforce | salesforce.trilagen.bot | Salesforce data co-pilot | BETA |
| Candidate Evaluation | candidate.trilagen.bot | Resume / candidate scoring | BETA |
| PMO | pmo.trilagen.bot | Project / portfolio assistant | BETA |
| OpenAir | openair.trilagen.bot | NetSuite OpenAir PSA assistant | DEV |
| Legal Review | legal.trilagen.bot | Contract / legal document review | DEV |
Every agent follows the same production reference pattern, which keeps the cutover repeatable and rollback predictable.
| Component | Production value |
|---|---|
| AWS account | 506997029654 |
| CLI profile | trilagen-prod (export AWS_PROFILE=trilagen-prod) |
| Region | us-east-1 |
| Cognito user pool | us-east-1_cYeALmJr6 (trilagen-hub-prod) |
| Cognito app client | 3bp1ppq928aom54kveof08hn7o |
| Allowed email domains | trilagen.com, trilagen.ai |
| Route53 hosted zone | Z02186353SN03930GPGID (trilagen.bot) |
| CloudFront alias zone | Z2FDTNDATAQYW2 (fixed AWS value) |
| SAM artifact bucket | trilagen-sam-deployments-prod |
/chat, DynamoDB conversation table with TTL, IAM role. Stack trilagen-<agent>-<env>.<agent>.trilagen.bot. Stack trilagen-<agent>-frontend-<env>.trilagen-<agent>/<env>), read by the Lambda at runtime — never plaintext env vars or CFN params.dev | staging | prod), so the same templates produce isolated stacks. The cutover is a controlled promotion of the same artifacts — not a re-architecture.Executed agent-by-agent in dependency-ordered waves, with a go/no-go gate after each wave.
| Wave | Scope | Rationale |
|---|---|---|
| 0 — Platform | Cognito, zone, SAM bucket | Foundation; verify-only, no change. |
| 1 — Hub | hub.trilagen.bot | Entry point + JWT hand-off must be live first. |
| 2 — Security | ISC, Vault, AWS Agent | Highest-sensitivity systems cut first. |
| 3 — AI (Live) | Diagram, SOW | Production-grade, already validated in staging. |
| 4 — AI (Beta/Dev) | Salesforce, Candidate, PMO, OpenAir, Legal | Lower-risk; promoted last, may stay feature-flagged. |
| Item | Detail |
|---|---|
| Proposed window | Saturday 04:00–08:00 ET (low-traffic) |
| Expected duration | ~3 h active + 1 h validation buffer |
| First-time frontend stacks | 10–15 min each (ACM validation + CloudFront rollout) |
| Freeze | No merges to release branch from T-24h until sign-off |
| Role | Owner | Responsibility |
|---|---|---|
| Cutover Lead | Satish Kandagadla | Owns runbook, calls go/no-go, final sign-off. |
| Platform Engineer | Engineering on-call | Executes deploys, manages Secrets Manager. |
| Security Reviewer | Security workstream | Validates ISC, Vault, AWS Agent IAM & least-privilege. |
| Validation / QA | Engineering | Runs smoke tests, confirms auth + chat round-trip. |
| Comms | Cutover Lead | Stakeholder updates at start, per-wave, completion. |
All items green before the window opens (T-24h review).
| # | Prerequisite | Owner |
|---|---|---|
| 1 | AWS CLI, SAM CLI, Node.js 18+ installed & verified | Platform Eng |
| 2 | AWS_PROFILE=trilagen-prod authenticates to 506997029654 | Platform Eng |
| 3 | All agent builds pass in staging; release branch tagged & frozen | Engineering |
| 4 | Prod secrets gathered: Anthropic key, ISC secret, Lucid OAuth, SF/OpenAir creds | Security |
| 5 | Cognito pool confirmed live with correct allowed domains | Platform Eng |
| 6 | Route53 zone reachable; no conflicting records for target subdomains | Platform Eng |
| 7 | SAM artifact bucket exists and is writable | Platform Eng |
| 8 | Rollback plan reviewed; previous stack template versions identified | Cutover Lead |
| 9 | Stakeholders notified; freeze in effect | Comms |
export AWS_PROFILE=trilagen-prod and export AWS_REGION=us-east-1. Replace <agent> with each system's slug.aws sts get-caller-identity → Account = 506997029654.aws cognito-idp describe-user-pool --user-pool-id us-east-1_cYeALmJr6.aws s3 ls s3://trilagen-sam-deployments-prod.aws cloudfront create-invalidation --distribution-id <id> --paths "/*".https://hub.trilagen.bot loads and Cognito login renders.cd lambda && npm install && cd ..trilagen-<agent>/prod with API keys & OAuth.cd infrastructure && sam buildEnvironment=prod, Cognito pool/client, domains, SecretId — review change set before executing.ApiUrl from stack outputs.trilagen-<agent>-frontend-prod (first run 10–15 min).Per-wave gate (G2 / G3 / G4): all agents in the wave pass smoke tests → proceed.
| Wave | Agents (in order) |
|---|---|
| 2 — Security | 1. SailPoint ISC · 2. Secure Vault · 3. AWS Agent (deploy cross-account roles first) |
| 3 — AI Live | 1. Diagram / Transcript · 2. SOW Builder |
| 4 — AI Beta/Dev | 1. Salesforce · 2. Candidate · 3. PMO · 4. OpenAir · 5. Legal Review |
Run for every agent immediately after deploy. All must pass to clear the wave gate.
| # | Test | Pass criterion |
|---|---|---|
| 1 | Frontend loads over HTTPS at <agent>.trilagen.bot | 200, valid ACM cert, no mixed content |
| 2 | Cognito login with a trilagen.com account | JWT issued, app screen renders |
| 3 | Hub launch hand-off | Opens authenticated via #token=… (no re-login) |
| 4 | Chat round-trip | Message → Lambda → model → response within timeout |
| 5 | Secrets resolve at runtime | No "missing credential" errors in CloudWatch |
| 6 | Conversation persistence | Item written to DynamoDB with TTL set |
| 7 | Integration call (per agent) | ISC / Lucid / SF / OpenAir API returns 200 |
| 8 | CloudWatch error scan | No ERROR / Throttle in first 15 min |
Rollback is per-agent and fast — the edge is blue/green and stacks are versioned.
/*.trilagen-<agent>-prod.| Risk | Impact | Likelihood | Mitigation |
|---|---|---|---|
| Deploy to wrong AWS account | High | Low | get-caller-identity gate at T-0; AWS_PROFILE enforced every step. |
| ACM validation delay on first deploy | Medium | Medium | Pre-create certs at T-24h; budget 10–15 min each. |
| Secret missing / incorrect at runtime | High | Medium | Seed & verify secrets before backend deploy; smoke test 5. |
| Cognito domain misconfig blocks login | High | Low | Wave-1 hub login gate before any agent. |
| Cross-account AssumeRole trust gap | High | Medium | Deploy role stacks in both accounts first; Security review. |
| CloudFront serves stale build | Low | Medium | Invalidate /* after upload; verify content hash. |
| External API rate limit | Medium | Low | Stagger Wave 4; validate one call per integration. |
| When | Audience | Message |
|---|---|---|
| T-24h | Stakeholders | Freeze in effect; window confirmed |
| T-0 (start) | Eng + stakeholders | Cutover started; hub going first |
| Per wave | Engineering | Wave N complete, gate GN passed/failed |
| Completion | All | Platform live; URLs + status summary |
| On rollback | Eng + Lead | Agent reverted; root cause + next attempt |
This cutover proceeds only with the approvals below.
| Role | Name | Approval / Date |
|---|---|---|
| Cutover Lead | Satish Kandagadla | |
| Platform Engineering | ||
| Security | ||
| Product / Owner |
| Key | Value |
|---|---|
| Production account | 506997029654 |
| Non-prod / sub account | 878112346062 (AssumeRole target) |
| Region / profile | us-east-1 / trilagen-prod |
| Cognito pool / client | us-east-1_cYeALmJr6 / 3bp1ppq928aom54kveof08hn7o |
| Route53 zone | Z02186353SN03930GPGID |
| CloudFront alias zone | Z2FDTNDATAQYW2 |
| SAM artifact bucket | trilagen-sam-deployments-prod |
| Stack naming | trilagen-<agent>-prod / trilagen-<agent>-frontend-prod |
| Secret naming | trilagen-<agent>/prod |
| Agent | URL |
|---|---|
| Hub | https://hub.trilagen.bot |
| SailPoint ISC | https://isc.trilagen.bot |
| Secure Vault | https://vault.trilagen.bot |
| AWS Agent | https://aws.trilagen.bot |
| Diagram / Transcript | https://diagram.trilagen.bot |
| SOW Builder | https://sow.trilagen.bot |
| Salesforce | https://salesforce.trilagen.bot |
| Candidate Evaluation | https://candidate.trilagen.bot |
| PMO | https://pmo.trilagen.bot |
| OpenAir | https://openair.trilagen.bot |
| Legal Review | https://legal.trilagen.bot |