Caitlyn — Ephemeral Review App Environments
Deploy a fully functional, isolated Caitlyn environment for each open merge request. This requires the application to self-provision its own resources (DynamoDB tables with Streams, Bedrock Knowledge Bases) so that ephemeral environments can be spun up and torn down without Terraform. Prerequisite: &105 (Separate Staging and Production Infrastructure) establishes the `TABLE_NAME_PREFIX` mechanism and decoupled ingestion triggers that make per-MR environments possible. ### Dependency order ``` ── Self-provisioning (app owns resource lifecycle) ────────────────── custom-d/labs/demos/caitlyn#1743 Migration creates KB Files table with Streams └── custom-d/caitlyn/services/caitlyn-data-ingestion#175 Remove KB Files table from TF custom-d/labs/demos/caitlyn#1744 App handles Bedrock KB creation └── custom-d/caitlyn/services/caitlyn-data-ingestion#176 Remove Bedrock KB from TF ── Review app deployment ──────────────────────────────────────────── custom-d/labs/demos/caitlyn#1733 MR container builds └── custom-d/labs/demos/caitlyn#1745 Deploy ephemeral review app per MR └── custom-d/labs/demos/caitlyn#1746 Review app lifecycle & teardown ```
epic