From 69aa2ae9761acd134fb68cbbd444001a34770656 Mon Sep 17 00:00:00 2001 From: aeluce Date: Wed, 2 Sep 2026 12:02:39 -0500 Subject: [PATCH] standardize product name --- .env.example | 2 +- .gitignore | 4 ++-- README.md | 14 +++++++------- flowctl/flow.yaml | 2 +- scripts/start.sh | 10 +++++----- scripts/teardown.sh | 8 ++++---- terraform/variables.tf | 2 +- 7 files changed, 21 insertions(+), 21 deletions(-) diff --git a/.env.example b/.env.example index c9f4b1d..83eb679 100644 --- a/.env.example +++ b/.env.example @@ -48,7 +48,7 @@ PGPASSWORD= # ----- Estuary --------------------------------------------------------------- # Refresh/CLI token from the Estuary dashboard: Admin -> CLI-API -> Generate token. ESTUARY_TOKEN= -# Your tenant prefix plus a demo namespace. All Flow tasks live under this. +# Your tenant prefix plus a demo namespace. All Estuary tasks live under this. ESTUARY_PREFIX= # e.g. yourTenant/estuary-cdc-demo # ----- Snowflake ------------------------------------------------------------- diff --git a/.gitignore b/.gitignore index 08ed7d5..8e8ef2b 100644 --- a/.gitignore +++ b/.gitignore @@ -9,12 +9,12 @@ shadowtraffic/license.env # Claude Code working config (session permission allowlists, not project config) .claude/ -# Personal pulled Flow catalog (contains SOPS-encrypted creds + real infra IDs). +# Personal pulled Estuary catalog (contains SOPS-encrypted creds + real infra IDs). # The shareable catalog template lives in flowctl/flow.yaml. /flow.yaml wassDemo/ -# Rendered Flow catalog (contains substituted credentials) +# Rendered Estuary catalog (contains substituted credentials) flowctl/flow.generated.yaml # Terraform local state & working dir diff --git a/README.md b/README.md index 18c34a3..286f6a8 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,8 @@ -# Estuary CDC Demo — Postgres → Estuary Flow → Snowflake +# Estuary CDC Demo — Postgres → Estuary → Snowflake A self-contained, one-command demo of real-time change data capture. Terraform stands up an RDS Postgres instance, ShadowTraffic streams realistic inserts and -updates into it, Estuary Flow captures the changes via logical replication, and +updates into it, Estuary captures the changes via logical replication, and a Snowflake materialization lands them in append-only tables. Everything spins up with `./scripts/start.sh` and tears down cleanly with @@ -31,7 +31,7 @@ Everything spins up with `./scripts/start.sh` and tears down cleanly with │ slot: flow_slot · pub: flow_publication ▼ ┌────────────────────────────────────┐ - │ Estuary Flow │ + │ Estuary │ │ source-postgres (capture) │ │ │ │ │ ▼ │ @@ -92,7 +92,7 @@ Accounts: - **AWS** — any account; the instance is free-tier eligible (`db.t3.micro`, 20 GB). - **ShadowTraffic** — free license from https://shadowtraffic.io/pricing.html -- **Estuary Flow** — https://dashboard.estuary.dev (note your tenant prefix). +- **Estuary** — https://dashboard.estuary.dev (note your tenant prefix). - **Snowflake** — a trial account works; this demo uses an X-SMALL warehouse. ## First-time setup @@ -221,9 +221,9 @@ CREATE WAREHOUSE IF NOT EXISTS ``` This runs Terraform → reads outputs → sets up Postgres CDC → starts -ShadowTraffic → publishes the Flow catalog. Re-running it is safe (idempotent). +ShadowTraffic → publishes the Estuary catalog. Re-running it is safe (idempotent). -If the Flow capture, collections, and materialization already exist under your +If the capture, collections, and materialization already exist under your Estuary prefix, `start.sh` detects them (via `flowctl catalog list`) and **skips the publish** so a running pipeline isn't disturbed — `flowctl` would update them in place anyway, never rename or recreate them. To force a republish (e.g. after @@ -286,7 +286,7 @@ frequently (more credits); to batch for cost instead, raise `syncFrequency` (e.g ./scripts/teardown.sh ``` -In order: stop ShadowTraffic → delete the Flow capture/collections/materialization +In order: stop ShadowTraffic → delete the Estuary capture/collections/materialization → `DROP SCHEMA IF EXISTS . CASCADE` in Snowflake (via `snowsql`) → `terraform destroy -auto-approve`. Steps 1–3 are best-effort so teardown always reaches the RDS destroy. diff --git a/flowctl/flow.yaml b/flowctl/flow.yaml index e710c48..2ef3e9c 100644 --- a/flowctl/flow.yaml +++ b/flowctl/flow.yaml @@ -1,4 +1,4 @@ -# Estuary Flow catalog: Postgres CDC capture -> 3 collections -> Snowflake. +# Estuary catalog: Postgres CDC capture -> 3 collections -> Snowflake. # # This is a TEMPLATE. scripts/start.sh renders the ${...} placeholders with # `envsubst` into flowctl/flow.generated.yaml (git-ignored), then publishes diff --git a/scripts/start.sh b/scripts/start.sh index 92574bf..dfea399 100755 --- a/scripts/start.sh +++ b/scripts/start.sh @@ -1,6 +1,6 @@ #!/usr/bin/env bash # -# Full startup orchestration for the Postgres -> Estuary Flow -> Snowflake +# Full startup orchestration for the Postgres -> Estuary -> Snowflake # CDC demo. Idempotent and safe to re-run. # # 1. terraform apply -> provision RDS Postgres @@ -153,9 +153,9 @@ info "ShadowTraffic running. Tail logs with:" info " docker compose -f shadowtraffic/docker-compose.yml logs -f" # --------------------------------------------------------------------------- -# 5. Deploy the Estuary Flow catalog +# 5. Deploy the Estuary catalog # --------------------------------------------------------------------------- -step "5/5 Deploying Estuary Flow catalog" +step "5/5 Deploying Estuary catalog" # Pin flowctl to THIS token's identity for every command below. # @@ -210,7 +210,7 @@ for _spec in "${EXPECTED_SPECS[@]}"; do done if [ "${#missing_specs[@]}" -eq 0 ] && [ "${FORCE_PUBLISH:-0}" != "1" ]; then - info "Flow catalog already deployed under ${ESTUARY_PREFIX}/ — all 5 specs present." + info "Estuary catalog already deployed under ${ESTUARY_PREFIX}/ — all 5 specs present." info "Skipping publish so the running pipeline isn't disturbed (FORCE_PUBLISH=1 to republish)." else if [ "${#missing_specs[@]}" -gt 0 ]; then @@ -248,7 +248,7 @@ step "Done." cat < Estuary Flow --delta-updates--> Snowflake + Postgres (RDS) --CDC--> Estuary --delta-updates--> Snowflake Collection storage (OPTIONAL later lab exercise — the demo already works on Estuary's default managed storage, so nothing here is required now): diff --git a/scripts/teardown.sh b/scripts/teardown.sh index fe74cd2..6a523a0 100755 --- a/scripts/teardown.sh +++ b/scripts/teardown.sh @@ -4,7 +4,7 @@ # order of creation, so nothing is left running (and billing). # # 1. docker compose down -> stop ShadowTraffic -# 2. flowctl delete -> remove Flow capture/collections/materialization +# 2. flowctl delete -> remove Estuary capture/collections/materialization # 3. DROP SCHEMA ... CASCADE -> remove Snowflake schema + tables # 4. terraform destroy -> tear down RDS Postgres # @@ -54,9 +54,9 @@ else fi # --------------------------------------------------------------------------- -# 2. Delete the Estuary Flow catalog +# 2. Delete the Estuary catalog # --------------------------------------------------------------------------- -step "2/4 Deleting Estuary Flow resources" +step "2/4 Deleting Estuary resources" if [ -n "${ESTUARY_TOKEN:-}" ] && [ -n "${ESTUARY_PREFIX:-}" ] && command -v flowctl >/dev/null 2>&1; then # Pin to ESTUARY_TOKEN's identity, isolated from your default flowctl login: # authenticate a dedicated, per-tenant profile with the .env token and pass @@ -92,7 +92,7 @@ if [ -n "${ESTUARY_TOKEN:-}" ] && [ -n "${ESTUARY_PREFIX:-}" ] && command -v flo warn "administers ('flowctl auth roles list') and re-run, or delete in the UI." fi else - warn "ESTUARY_TOKEN/ESTUARY_PREFIX/flowctl missing; skipping Flow cleanup." + warn "ESTUARY_TOKEN/ESTUARY_PREFIX/flowctl missing; skipping Estuary cleanup." fi # --------------------------------------------------------------------------- diff --git a/terraform/variables.tf b/terraform/variables.tf index 875fc52..5e13add 100644 --- a/terraform/variables.tf +++ b/terraform/variables.tf @@ -22,7 +22,7 @@ variable "allowed_cidr" { variable "estuary_cidrs" { description = <<-EOT - Estuary Flow data-plane egress IPs that must reach Postgres for the CDC + Estuary data-plane egress IPs that must reach Postgres for the CDC capture to connect. These are separate from your own IP. The default covers all of Estuary's public data planes; trim to just your tenant's data plane (shown under Admin -> "Allowlist IP addresses" in the dashboard;