refactor: remove Strapi CMS and related infrastructure#8932
refactor: remove Strapi CMS and related infrastructure#8932
Conversation
The Strapi CMS (apps/cms/) was dead infrastructure with no active consumers. This removes the entire app, Terraform module references, CI/CD workflow entries, Doppler token declarations, devcontainer database setup, and stale gitignore/docs references. Phase A (terraform destroy) and Phase C (secret cleanup) are manual steps to be completed separately. Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
WalkthroughRemoves the Strapi CMS app and all associated artifacts: application source, build/config, Terraform infra, CI/CD secrets/jobs, devcontainer DB setup, package override, .gitignore entries, and adds documentation describing the removal plan and requirements. Changes
Estimated code review effort🎯 5 (Critical) | ⏱️ ~120 minutes 🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
💰 Infracost reportMonthly estimate decreased by $72 📉
*Usage costs can be estimated by updating Infracost Cloud settings, see docs for other options. Estimate details (includes details of unsupported resources) |
|
View your CI Pipeline Execution ↗ for commit d6ea433
☁️ Nx Cloud last updated this comment at |
|
View your CI Pipeline Execution ↗ for commit d6ea433
☁️ Nx Cloud last updated this comment at |
There was a problem hiding this comment.
🧹 Nitpick comments (1)
docs/brainstorms/2026-03-30-remove-strapi-cms-requirements.md (1)
58-60: Minor: Markdown lint warnings on bracketed labels.The
[Needs research]and[Technical]labels are being parsed as undefined reference links by markdownlint. Since these are status labels rather than links, consider escaping the brackets or using a different format to silence the warnings.✏️ Suggested fix
-- [Affects R2, R3][Needs research] Confirm exact Terraform module names and state paths for the CMS in prod and stage environments -- [Affects R4][Needs research] Identify all GitHub Actions workflow files that reference the CMS app and determine which references to remove vs. which workflows to delete entirely -- [Affects R8][Technical] Determine how Doppler CMS tokens are configured and the process to remove them +- \[Affects R2, R3\]\[Needs research\] Confirm exact Terraform module names and state paths for the CMS in prod and stage environments +- \[Affects R4\]\[Needs research\] Identify all GitHub Actions workflow files that reference the CMS app and determine which references to remove vs. which workflows to delete entirely +- \[Affects R8\]\[Technical\] Determine how Doppler CMS tokens are configured and the process to remove them🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@docs/brainstorms/2026-03-30-remove-strapi-cms-requirements.md` around lines 58 - 60, The bracketed status labels like [Needs research] and [Technical] are being treated as undefined Markdown links; update the markdown in the listed bullet lines to prevent lint warnings by either escaping the brackets (e.g., \[Needs research\]), replacing square brackets with a non-link format such as parentheses or an inline tag (e.g., (Needs research) or `Needs research`), or moving labels to a prefix/suffix outside square brackets so the items retain the same meaning but no longer trigger markdownlint; apply this change to each occurrence of [Needs research] and [Technical] in the shown bullets.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Nitpick comments:
In `@docs/brainstorms/2026-03-30-remove-strapi-cms-requirements.md`:
- Around line 58-60: The bracketed status labels like [Needs research] and
[Technical] are being treated as undefined Markdown links; update the markdown
in the listed bullet lines to prevent lint warnings by either escaping the
brackets (e.g., \[Needs research\]), replacing square brackets with a non-link
format such as parentheses or an inline tag (e.g., (Needs research) or `Needs
research`), or moving labels to a prefix/suffix outside square brackets so the
items retain the same meaning but no longer trigger markdownlint; apply this
change to each occurrence of [Needs research] and [Technical] in the shown
bullets.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Repository UI
Review profile: CHILL
Plan: Pro
Run ID: 7c915323-5c33-4509-986f-a6b0f3bbae5a
⛔ Files ignored due to path filters (4)
apps/cms/favicon.pngis excluded by!**/*.pngapps/cms/types/generated/components.d.tsis excluded by!**/generated/**apps/cms/types/generated/contentTypes.d.tsis excluded by!**/generated/**pnpm-lock.yamlis excluded by!**/pnpm-lock.yaml
📒 Files selected for processing (64)
.claude/rules/frontend/apps.md.devcontainer/post-create-command.sh.github/workflows/ai-build-spike.yml.github/workflows/ecs-frontend-deploy-prod-worker.yml.github/workflows/ecs-frontend-deploy-prod.yml.github/workflows/ecs-frontend-deploy-stage-worker.yml.github/workflows/ecs-frontend-deploy-stage.yml.github/workflows/main.yml.gitignoreapps/cms/.gitignoreapps/cms/Dockerfileapps/cms/README.mdapps/cms/config/admin.tsapps/cms/config/api.tsapps/cms/config/database.tsapps/cms/config/middlewares.tsapps/cms/config/plugins.tsapps/cms/config/server.tsapps/cms/database/migrations/.gitkeepapps/cms/eslint.config.mjsapps/cms/index.tsapps/cms/infrastructure/locals.tfapps/cms/infrastructure/main.tfapps/cms/infrastructure/variables.tfapps/cms/package.jsonapps/cms/project.jsonapps/cms/public/robots.txtapps/cms/public/uploads/.gitkeepapps/cms/src/admin/app.example.tsxapps/cms/src/admin/tsconfig.jsonapps/cms/src/admin/vite.config.example.tsapps/cms/src/api/.gitkeepapps/cms/src/api/article/content-types/article/schema.jsonapps/cms/src/api/article/controllers/article.tsapps/cms/src/api/article/routes/article.tsapps/cms/src/api/article/services/article.tsapps/cms/src/api/author/content-types/author/schema.jsonapps/cms/src/api/author/controllers/author.tsapps/cms/src/api/author/routes/author.tsapps/cms/src/api/author/services/author.tsapps/cms/src/api/category/content-types/category/schema.jsonapps/cms/src/api/category/controllers/category.tsapps/cms/src/api/category/routes/category.tsapps/cms/src/api/category/services/category.tsapps/cms/src/api/client/content-types/client/schema.jsonapps/cms/src/api/client/controllers/client.tsapps/cms/src/api/client/routes/client.tsapps/cms/src/api/client/services/client.tsapps/cms/src/components/shared/media.jsonapps/cms/src/components/shared/quote.jsonapps/cms/src/components/shared/rich-text.jsonapps/cms/src/components/shared/seo.jsonapps/cms/src/components/shared/slider.jsonapps/cms/src/extensions/.gitkeepapps/cms/src/index.tsapps/cms/tsconfig.jsonapps/watch/public/images/thumbnails/README.mddocs/brainstorms/2026-03-30-remove-strapi-cms-requirements.mddocs/plans/2026-03-30-001-refactor-remove-strapi-cms-plan.mdinfrastructure/environments/prod/data.tfinfrastructure/environments/prod/main.tfinfrastructure/environments/stage/data.tfinfrastructure/environments/stage/main.tfpackage.json
💤 Files with no reviewable changes (56)
- .gitignore
- apps/cms/public/robots.txt
- apps/cms/.gitignore
- .claude/rules/frontend/apps.md
- apps/cms/README.md
- apps/cms/config/middlewares.ts
- apps/cms/src/api/category/routes/category.ts
- apps/cms/src/api/author/controllers/author.ts
- apps/cms/src/admin/tsconfig.json
- apps/cms/src/api/article/controllers/article.ts
- .devcontainer/post-create-command.sh
- apps/cms/config/api.ts
- apps/cms/src/api/article/routes/article.ts
- apps/cms/src/components/shared/quote.json
- apps/cms/src/api/author/routes/author.ts
- apps/cms/config/database.ts
- apps/cms/package.json
- apps/cms/tsconfig.json
- .github/workflows/main.yml
- infrastructure/environments/prod/data.tf
- apps/cms/config/server.ts
- infrastructure/environments/stage/data.tf
- apps/cms/src/api/author/services/author.ts
- apps/watch/public/images/thumbnails/README.md
- apps/cms/src/api/category/services/category.ts
- apps/cms/src/api/client/services/client.ts
- apps/cms/src/admin/app.example.tsx
- apps/cms/infrastructure/main.tf
- .github/workflows/ecs-frontend-deploy-stage-worker.yml
- apps/cms/src/api/author/content-types/author/schema.json
- apps/cms/src/api/client/routes/client.ts
- apps/cms/config/admin.ts
- apps/cms/src/components/shared/rich-text.json
- apps/cms/config/plugins.ts
- apps/cms/project.json
- .github/workflows/ecs-frontend-deploy-prod-worker.yml
- apps/cms/eslint.config.mjs
- infrastructure/environments/prod/main.tf
- apps/cms/src/api/category/controllers/category.ts
- infrastructure/environments/stage/main.tf
- apps/cms/src/api/client/controllers/client.ts
- apps/cms/src/index.ts
- .github/workflows/ecs-frontend-deploy-prod.yml
- apps/cms/src/admin/vite.config.example.ts
- apps/cms/src/api/category/content-types/category/schema.json
- apps/cms/src/components/shared/media.json
- apps/cms/src/components/shared/slider.json
- apps/cms/src/api/client/content-types/client/schema.json
- .github/workflows/ecs-frontend-deploy-stage.yml
- apps/cms/infrastructure/variables.tf
- apps/cms/src/components/shared/seo.json
- apps/cms/src/api/article/content-types/article/schema.json
- apps/cms/infrastructure/locals.tf
- apps/cms/index.ts
- apps/cms/src/api/article/services/article.ts
- apps/cms/Dockerfile
|
The latest updates on your projects.
|
|
The latest updates on your projects.
|
|
The latest updates on your projects.
|
|
The latest updates on your projects.
|
|
The latest updates on your projects.
|
|
The latest updates on your projects.
|
|
The latest updates on your projects.
|
|
The latest updates on your projects.
|
|
The latest updates on your projects.
|
There was a problem hiding this comment.
Actionable comments posted: 3
🧹 Nitpick comments (1)
docs/plans/2026-03-30-001-refactor-remove-strapi-cms-plan.md (1)
142-146: Consider verifying the worker workflow caller assumption.The plan assumes no external repositories call the reusable worker workflows. This assumption could be verified before proceeding with the changes.
🔍 Suggested verification step
Add a verification note to Phase B or as a pre-flight check:
**Verify worker workflow usage:** Check if any external repositories reference the worker workflows: - Search GitHub for references to `ecs-frontend-deploy-prod-worker.yml` - Search GitHub for references to `ecs-frontend-deploy-stage-worker.yml` - Confirm no external callers exist before removing `required: true` declarationsAlternatively, you could use GitHub's "Used by" feature in the Actions tab to check for external callers.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@docs/plans/2026-03-30-001-refactor-remove-strapi-cms-plan.md` around lines 142 - 146, The plan assumes no external repositories call the reusable worker workflows; add an explicit verification pre-flight step to Phase B (or before removing required: true) that searches for external usages of ecs-frontend-deploy-prod-worker.yml and ecs-frontend-deploy-stage-worker.yml (e.g., GitHub code search for those filenames and use the Actions "Used by" UI) and record the results; if any external callers are found, do not remove the required: true declarations until callers are updated or coordinate migration.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@docs/plans/2026-03-30-001-refactor-remove-strapi-cms-plan.md`:
- Line 86: Update the fallback text for using "terraform state rm module.cms" to
warn that it decouples Terraform state from real AWS resources and can leave
orphaned cloud resources; instruct the reader to treat this as a last-resort
action only after exhausting attempts to recover the Terraform module source,
backing up the state, and manually verifying via AWS Console/CLI/SDK that every
CMS-related resource has been deleted (or to delete them manually first), then
document the removal and run a targeted drift check/plan to confirm no remaining
resources; ensure the wording replaces the current brief mention of "terraform
state rm module.cms" with these explicit verification and backup steps.
- Around line 68-86: Add a pre-flight check step before "Phase A: Terraform
Destroy" that verifies and clears Terraform locks (e.g., check remote/state
locks and any outstanding lock from PR `#8875`) so destroy won't be blocked;
explicitly state to run the lock-status check against the environment
(stage/prod), note the lock identifier to inspect, and include guidance to
either run the appropriate unlock operation or coordinate with the owner of the
lock before proceeding with terraform destroy -target=module.cms and the
subsequent terraform plan; reference "Phase A", "terraform destroy
-target=module.cms", and the outstanding lock from "PR `#8875`" so reviewers can
find and follow the new checklist entry.
- Around line 126-130: Replace the invalid nx command "nx graph --verify" in the
plan with a supported alternative: use "nx graph --print" if you need JSON
output for validation scripting, "nx graph" for the interactive visualization,
or "nx graph --affected --base=main" if the intent was to verify affected
projects; update the line referencing nx graph to one of these valid commands so
the plan runs on Nx 22.0.2.
---
Nitpick comments:
In `@docs/plans/2026-03-30-001-refactor-remove-strapi-cms-plan.md`:
- Around line 142-146: The plan assumes no external repositories call the
reusable worker workflows; add an explicit verification pre-flight step to Phase
B (or before removing required: true) that searches for external usages of
ecs-frontend-deploy-prod-worker.yml and ecs-frontend-deploy-stage-worker.yml
(e.g., GitHub code search for those filenames and use the Actions "Used by" UI)
and record the results; if any external callers are found, do not remove the
required: true declarations until callers are updated or coordinate migration.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Repository UI
Review profile: CHILL
Plan: Pro
Run ID: 4889ae42-0248-48e9-a720-633b73dbb34a
⛔ Files ignored due to path filters (6)
apis/api-journeys/src/__generated__/graphql.tsis excluded by!**/__generated__/**apps/journeys-admin/__generated__/globalTypes.tsis excluded by!**/__generated__/**apps/journeys/__generated__/globalTypes.tsis excluded by!**/__generated__/**apps/resources/__generated__/globalTypes.tsis excluded by!**/__generated__/**apps/watch/__generated__/globalTypes.tsis excluded by!**/__generated__/**libs/journeys/ui/__generated__/globalTypes.tsis excluded by!**/__generated__/**
📒 Files selected for processing (1)
docs/plans/2026-03-30-001-refactor-remove-strapi-cms-plan.md
| ## Implementation Plan | ||
|
|
||
| ### Phase A: Terraform Destroy (Manual, Pre-PR) | ||
|
|
||
| Run in staging first to validate, then production. | ||
|
|
||
| ```bash | ||
| # Staging | ||
| cd infrastructure/environments/stage | ||
| terraform destroy -target=module.cms | ||
| terraform plan # Confirm zero CMS-related changes | ||
|
|
||
| # Production | ||
| cd infrastructure/environments/prod | ||
| terraform destroy -target=module.cms | ||
| terraform plan # Confirm zero CMS-related changes | ||
| ``` | ||
|
|
||
| **Fallback:** If destroy fails partially, resolve the blocking resource manually, then retry. If code removal has already happened, use `terraform state rm module.cms` to decouple state. |
There was a problem hiding this comment.
🛠️ Refactor suggestion | 🟠 Major
Add pre-flight checks for Terraform locks before Phase A.
The PR objectives comments mention an outstanding infrastructure lock from PR #8875 that blocks the plan. The implementation plan should include an explicit pre-flight check to identify and resolve any Terraform locks before attempting terraform destroy.
📋 Suggested addition before Phase A instructions
Add a pre-flight checklist section:
### Phase A: Terraform Destroy (Manual, Pre-PR)
+**Pre-flight checks:**
+
+1. Check for outstanding Terraform locks: `atlantis plan` or check Atlantis UI
+2. Resolve any blocking locks from other PRs (apply/merge or delete the lock)
+3. Verify CMS endpoints return no active traffic in last 30 days (check ALB/CloudWatch logs)
+4. Confirm with stakeholders that CMS data can be permanently deleted
+
Run in staging first to validate, then production.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@docs/plans/2026-03-30-001-refactor-remove-strapi-cms-plan.md` around lines 68
- 86, Add a pre-flight check step before "Phase A: Terraform Destroy" that
verifies and clears Terraform locks (e.g., check remote/state locks and any
outstanding lock from PR `#8875`) so destroy won't be blocked; explicitly state to
run the lock-status check against the environment (stage/prod), note the lock
identifier to inspect, and include guidance to either run the appropriate unlock
operation or coordinate with the owner of the lock before proceeding with
terraform destroy -target=module.cms and the subsequent terraform plan;
reference "Phase A", "terraform destroy -target=module.cms", and the outstanding
lock from "PR `#8875`" so reviewers can find and follow the new checklist entry.
| terraform plan # Confirm zero CMS-related changes | ||
| ``` | ||
|
|
||
| **Fallback:** If destroy fails partially, resolve the blocking resource manually, then retry. If code removal has already happened, use `terraform state rm module.cms` to decouple state. |
There was a problem hiding this comment.
Strengthen warning about terraform state rm fallback.
Using terraform state rm module.cms as a fallback decouples Terraform state from actual AWS resources, which can leave orphaned resources in the cloud. This fallback should only be used after manually verifying that all CMS resources have been deleted from AWS, or after exhausting all other options to recover the Terraform module source.
⚠️ Suggested improved fallback guidance
-**Fallback:** If destroy fails partially, resolve the blocking resource manually, then retry. If code removal has already happened, use `terraform state rm module.cms` to decouple state.
+**Fallback:** If destroy fails partially, resolve the blocking resource manually in AWS console, then retry `terraform destroy`. If code removal has already happened and Terraform cannot manage the resources, first manually verify all CMS resources are deleted from AWS (ECS services, task definitions, ALB rules, target groups, DNS records, security groups), then use `terraform state rm module.cms` to decouple state. Document any orphaned resources found.📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| **Fallback:** If destroy fails partially, resolve the blocking resource manually, then retry. If code removal has already happened, use `terraform state rm module.cms` to decouple state. | |
| **Fallback:** If destroy fails partially, resolve the blocking resource manually in AWS console, then retry `terraform destroy`. If code removal has already happened and Terraform cannot manage the resources, first manually verify all CMS resources are deleted from AWS (ECS services, task definitions, ALB rules, target groups, DNS records, security groups), then use `terraform state rm module.cms` to decouple state. Document any orphaned resources found. |
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@docs/plans/2026-03-30-001-refactor-remove-strapi-cms-plan.md` at line 86,
Update the fallback text for using "terraform state rm module.cms" to warn that
it decouples Terraform state from real AWS resources and can leave orphaned
cloud resources; instruct the reader to treat this as a last-resort action only
after exhausting attempts to recover the Terraform module source, backing up the
state, and manually verifying via AWS Console/CLI/SDK that every CMS-related
resource has been deleted (or to delete them manually first), then document the
removal and run a targeted drift check/plan to confirm no remaining resources;
ensure the wording replaces the current brief mention of "terraform state rm
module.cms" with these explicit verification and backup steps.
| ```bash | ||
| pnpm install # Regenerates pnpm-lock.yaml without CMS deps | ||
| nx graph --verify # Confirm clean project graph | ||
| nx affected --target=build --base=main # Confirm no broken references | ||
| ``` |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
# Description: Verify the correct Nx command for validating the project graph
# Check if --verify flag is documented
nx graph --help 2>&1 | grep -i verify
# Alternative: Check what flags are available for nx graph
echo "Available nx graph options:"
nx graph --help 2>&1 | grep -E '^\s+--' | head -20Repository: JesusFilm/core
Length of output: 85
🏁 Script executed:
#!/bin/bash
# Test 1: Try running nx graph --verify to see if it works or produces an error
echo "=== Testing: nx graph --verify ==="
nx graph --verify 2>&1 | head -20
echo ""
echo "=== Test result exit code: $? ==="
# Test 2: Check Nx version
echo ""
echo "=== Nx Version ==="
nx --version
# Test 3: Run nx graph without flags to see what it does
echo ""
echo "=== Running: nx graph (without flags) ==="
nx graph 2>&1 | head -20
# Test 4: Look for valid verification commands in nx
echo ""
echo "=== Check for nx show projects command ==="
nx show projects --help 2>&1 | head -15Repository: JesusFilm/core
Length of output: 417
🏁 Script executed:
#!/bin/bash
# Search for existing uses of "nx graph" in the codebase
echo "=== Searching for 'nx graph' usage in codebase ==="
rg "nx graph" --type md --type yaml --type json --type ts --type js -i 2>/dev/null | head -20
echo ""
echo "=== Searching for 'nx' verification or validation commands ==="
rg "nx (graph|show|verify)" --type md --type yaml -i 2>/dev/null | head -20
# Check nx.json and package.json for version info
echo ""
echo "=== Checking nx.json ==="
if [ -f "nx.json" ]; then
cat nx.json | head -30
else
echo "nx.json not found"
fi
echo ""
echo "=== Checking package.json for nx version ==="
if [ -f "package.json" ]; then
rg '"nx":|"@nrwl' package.json
else
echo "package.json not found"
fi
# Check for any documentation about nx commands in the repo
echo ""
echo "=== Searching for Nx documentation/guides in docs ==="
find docs -name "*.md" -type f 2>/dev/null | xargs rg "nx graph" -l 2>/dev/null | head -5Repository: JesusFilm/core
Length of output: 1280
🌐 Web query:
Nx graph --verify command syntax valid flag options
💡 Result:
The nx graph --verify command does not exist in Nx. No official documentation or sources mention a --verify flag or subcommand for nx graph. The nx graph command visualizes project dependencies in the workspace. Basic syntax: nx graph Valid flags/options from official Nx documentation include: --affected: Highlight affected projects --base: Base git branch (usually main) --exclude: Exclude projects (comma-separated) --file: Output file (e.g., --file=output.json or --file=dep-graph.html) --files: Specify changed files for affected calculation --focus: Focus on a project and its ancestors/descendants --groupByFolder: Group projects by folder --head: Head git commit (usually HEAD) --help: Show help --host: Server host IP --open: Open in browser (default: true) --port: Server port --print: Print graph as JSON to stdout --targets: Targets for task graph --uncommitted: Include uncommitted changes --untracked: Include untracked changes --verbose: Additional logging --version: Show version --view: projects or tasks (default: projects) --watch: Watch for changes (default: true) Examples: nx graph --focus=my-project nx graph --file=graph.json nx graph --print nx graph --affected --base=main --head=HEAD Note: affected:graph was deprecated; use nx graph --affected instead. For project graph computation issues, use nx reset or set NX_DAEMON=false. No verification-specific command found across Nx docs, GitHub issues/PRs, or CLI help outputs.
Citations:
- 1: https://nx.dev/docs/reference/nx-commands
- 2: https://19.nx.dev/nx-api/nx/documents/dep-graph
- 3: https://nx.dev/reference/core-api/nx/documents/dep-graph
- 4: https://nx.dev/nx-api/nx/documents/dep-graph
- 5: https://www.nx.dev
- 6: https://nx.dev/deprecated/affected-graph
- 7: https://fig.io/manual/nx/affected:graph
Replace nx graph --verify with a valid Nx command.
The --verify flag does not exist for nx graph in Nx 22.0.2. Use nx graph --print to output the project graph as JSON (useful for validation via scripting), or simply nx graph to view the interactive visualization. If the intent is to verify affected projects, use nx graph --affected --base=main.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@docs/plans/2026-03-30-001-refactor-remove-strapi-cms-plan.md` around lines
126 - 130, Replace the invalid nx command "nx graph --verify" in the plan with a
supported alternative: use "nx graph --print" if you need JSON output for
validation scripting, "nx graph" for the interactive visualization, or "nx graph
--affected --base=main" if the intent was to verify affected projects; update
the line referencing nx graph to one of these valid commands so the plan runs on
Nx 22.0.2.
Summary
apps/cms/Strapi application (dead infrastructure with no active consumers)DOPPLER_CMS_TOKENfrom all GitHub Actions workflows (includingrequired: truedeclarations in worker workflows).gitignoreentries, and documentation referencespnpm-lock.yaml(8,500+ lines of Strapi dependencies removed)Before Merging (Manual Steps)
After Merging (Manual Steps)
DOPPLER_CMS_TOKENfrom GitHub repository secrets/terraform/prd/DOPPLER_CMS_PROD_TOKEN,/terraform/prd/DOPPLER_CMS_STAGE_TOKENdd_source = "strapi"Files Changed (16 modified + 50 deleted)
apps/cms/(50 files)infrastructure/environments/{prod,stage}/{main,data}.tf.github/workflows/requireddeclarationspackage.json,.gitignore,.devcontainer/post-create-command.sh.claude/rules/frontend/apps.mdapps/watch/.../README.mdPost-Deploy Monitoring & Validation
No additional operational monitoring required: this removes dead infrastructure with no active consumers. After terraform destroy, verify that
cms.central.jesusfilm.organdcms.stage.central.jesusfilm.orgno longer resolve.Test Plan
pnpm installsucceeds with regenerated lockfileDOPPLER_CMS_TOKENrequired secret🤖 Generated with Claude Code
Co-Authored-By: Claude Opus 4.6 (1M context) [email protected]
Summary by CodeRabbit
Chores
Documentation