-
Notifications
You must be signed in to change notification settings - Fork 14
feat(cms): add client content type and refactor content types #8601
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat(cms): add client content type and refactor content types #8601
Conversation
- Add new client content type API (controllers, routes, services, schema) - Remove about and global content type APIs - Update schemas for article, author, and category content types - Update generated TypeScript types Refs: AI-5
WalkthroughRemoves the "about" and "global" Strapi APIs, adds a new "client" collectionType (schema, controller, routes, service), updates article/author/category schemas, modifies CI workflow matrix/Doppler steps, updates Dockerfile and CMS configs, and adds Changes
Sequence Diagram(s)sequenceDiagram
participant GH as GitHub Actions
participant Doppler as Doppler Action
participant NX as nx/build
participant ECR as ECR/Registry
participant ECS as AWS ECS
GH->>Doppler: run dopplerhq/cli-action (load secrets)
GH->>NX: run build for apps/cms (pnpm, nx)
NX->>ECR: build & push image
ECR->>ECS: update task definition / restart service
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes Possibly related PRs
Suggested reviewers
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 inconclusive)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing touches
🧪 Generate unit tests (beta)
📜 Recent review detailsConfiguration used: Repository UI Review profile: CHILL Plan: Pro Disabled knowledge base sources:
📒 Files selected for processing (2)
🧰 Additional context used📓 Path-based instructions (3)**/*.{ts,tsx,js,jsx}📄 CodeRabbit inference engine (.cursor/rules/base.mdc)
Files:
**/*.{ts,tsx}📄 CodeRabbit inference engine (.cursor/rules/base.mdc)
Files:
apps/**/*.{js,jsx,ts,tsx}📄 CodeRabbit inference engine (.cursor/rules/apps.mdc)
Files:
🧠 Learnings (4)📓 Common learnings📚 Learning: 2025-07-22T18:37:46.814ZApplied to files:
📚 Learning: 2025-07-22T18:37:46.814ZApplied to files:
📚 Learning: 2025-02-25T22:33:13.028ZApplied to files:
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (14)
🔇 Additional comments (2)
✏️ Tip: You can disable this entire section by setting 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 |
|
View your CI Pipeline Execution ↗ for commit fac8e29
☁️ Nx Cloud last updated this comment at |
|
I see you added the "on stage" label, I'll get this merged to the stage branch! |
- Added '@strapi/plugin-graphql' dependency to the CMS. - Updated pnpm-lock.yaml with new versions for various dependencies. - Refactored GitHub Actions workflow to streamline the deployment process by removing unnecessary steps and integrating Doppler CLI for environment management. - Introduced a new command for extracting translations in the project configuration. Refs: AI-6
…tps://github.com/JesusFilm/core into tataihono/feat-5-cms-api-add-client-content-type
|
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
🤖 Fix all issues with AI agents
In `@apps/cms/package.json`:
- Around line 11-14: The `@strapi/plugin-graphql` dependency is declared with a
caret and not configured; either remove the dependency entry for
`@strapi/plugin-graphql` from package.json, or pin it to "5.33.3" (remove the
caret) and add a graphql plugin config entry named "graphql" in your plugins
config (enable it and provide an empty config object) so the plugin is actually
enabled and version-aligned with Strapi core.
🧹 Nitpick comments (3)
.github/workflows/ecs-frontend-deploy-prod-worker.yml (1)
150-152: Unused output:imageis written but not exposed.This step writes
imageto$GITHUB_OUTPUT, but there's nooutputs:section defined at the job level to expose this value to workflow callers. Either:
- Remove this step if the output is no longer needed, or
- Add job-level outputs to expose the image reference if callers need it.
Option 2: Expose the output at job level
jobs: build-and-deploy: environment: Production + outputs: + image: ${{ steps.set-image.outputs.image }} env:And update the step to have an
id:- name: Set image output + id: set-image run: | echo "image=${{ steps.login-ecr-ecs.outputs.registry }}/${{ env.ECR_REPOSITORY }}:${{ env.IMAGE_TAG }}" >> $GITHUB_OUTPUT.github/workflows/ecs-frontend-deploy-stage-worker.yml (1)
150-152: Same unused output issue as production workflow.The
imageoutput written here is not exposed at the job level. Apply the same fix as suggested for the production workflow if this output is needed by callers.apps/cms/project.json (1)
60-68: Make the placeholder target fail fast or document it clearly.Right now it succeeds without doing any work, which can hide missing translation extraction if CI or developers call it. Consider exiting non‑zero (or documenting prominently elsewhere) until it’s implemented.
🔧 Suggested tweak (fail fast)
- "command": "echo 'extract-translations not implemented for cms'" + "command": "echo 'extract-translations not implemented for cms' && exit 1"
📜 Review details
Configuration used: Repository UI
Review profile: CHILL
Plan: Pro
Disabled knowledge base sources:
- Linear integration is disabled by default for public repositories
You can enable these sources in your CodeRabbit configuration.
⛔ Files ignored due to path filters (1)
pnpm-lock.yamlis excluded by!**/pnpm-lock.yaml
📒 Files selected for processing (4)
.github/workflows/ecs-frontend-deploy-prod-worker.yml.github/workflows/ecs-frontend-deploy-stage-worker.ymlapps/cms/package.jsonapps/cms/project.json
🧰 Additional context used
🧠 Learnings (4)
📚 Learning: 2025-07-22T18:37:46.814Z
Learnt from: CR
Repo: JesusFilm/core PR: 0
File: .cursor/rules/infrastructure.mdc:0-0
Timestamp: 2025-07-22T18:37:46.814Z
Learning: Applies to infrastructure/**/.github/workflows/*.yml : Integrate Terraform with CI/CD pipelines (e.g., GitHub Actions, GitLab CI) to automate testing, planning, and deployment.
Applied to files:
.github/workflows/ecs-frontend-deploy-stage-worker.yml.github/workflows/ecs-frontend-deploy-prod-worker.yml
📚 Learning: 2025-12-19T04:58:24.460Z
Learnt from: CR
Repo: JesusFilm/core PR: 0
File: apps/watch/AGENTS.md:0-0
Timestamp: 2025-12-19T04:58:24.460Z
Learning: Applies to apps/watch/src/**/*.graphql : After editing GraphQL documents, run `pnpm dlx nx run watch:codegen` to regenerate artifacts in `apps/watch/__generated__` and stage those artifacts with changes.
Applied to files:
.github/workflows/ecs-frontend-deploy-stage-worker.ymlapps/cms/package.json.github/workflows/ecs-frontend-deploy-prod-worker.yml
📚 Learning: 2025-12-19T19:18:43.790Z
Learnt from: CR
Repo: JesusFilm/core PR: 0
File: apps/resources/AGENTS.md:0-0
Timestamp: 2025-12-19T19:18:43.790Z
Learning: Applies to apps/resources/**/*.graphql : After editing GraphQL documents, run `pnpm dlx nx run resources:codegen`. The task clears and regenerates `apps/resources/__generated__`, so stage those artifacts with your changes
Applied to files:
.github/workflows/ecs-frontend-deploy-stage-worker.yml.github/workflows/ecs-frontend-deploy-prod-worker.yml
📚 Learning: 2025-09-04T04:01:06.341Z
Learnt from: mikeallisonJS
Repo: JesusFilm/core PR: 7549
File: apps/arclight/Dockerfile:20-20
Timestamp: 2025-09-04T04:01:06.341Z
Learning: In the JesusFilm/core repository, the build process for apps includes package.json with the necessary scripts, so Docker containers can safely use `pnpm start` after copying the dist directory.
Applied to files:
.github/workflows/ecs-frontend-deploy-stage-worker.yml.github/workflows/ecs-frontend-deploy-prod-worker.yml
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (8)
- GitHub Check: affected (22)
- GitHub Check: test (22, 3/3)
- GitHub Check: test (22, 2/3)
- GitHub Check: test (22, 1/3)
- GitHub Check: build (22)
- GitHub Check: danger (22)
- GitHub Check: lint (22)
- GitHub Check: Analyze (javascript)
🔇 Additional comments (2)
.github/workflows/ecs-frontend-deploy-stage-worker.yml (1)
86-88: Consistent with production workflow changes.Same improvements applied here: using
dopplerhq/cli-action@v3and removing--silentfrom nx installation. Maintaining parity between stage and prod workflows is good practice..github/workflows/ecs-frontend-deploy-prod-worker.yml (1)
86-88: Good refactor: using official Doppler action instead of manual installation.Switching from manual
apt-getinstallation todopplerhq/cli-action@v3is cleaner and more maintainable. The action handles installation, caching, and updates automatically. Removing--silentfrom the nx installation provides better visibility into installation progress during CI runs.
✏️ Tip: You can disable this entire section by setting review_details to false in your review settings.
|
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.
|
|
Ran Plan for dir: Plan Error |
|
atlantis plan |
|
Ran Plan for dir: Plan Error |
|
Ran Plan for dir: Show OutputTerraform used the selected providers to generate the following execution
plan. Resource actions are indicated with the following symbols:
+ create
~ update in-place
- destroy
+/- create replacement and then destroy
Terraform will perform the following actions:
# module.prod.module.arclight.module.ecs-task.aws_ecs_service.ecs_service will be updated in-place
~ resource "aws_ecs_service" "ecs_service" {
~ desired_count = 2 -> 4
id = "arn:aws:ecs:us-east-2:410965620680:service/jfp-ecs-cluster-prod/arclight-prod-service"
name = "arclight-prod-service"
tags = {}
# (18 unchanged attributes hidden)
# (4 unchanged blocks hidden)
}
# module.prod.module.cms.module.ecs-task.aws_ecs_service.ecs_service will be updated in-place
~ resource "aws_ecs_service" "ecs_service" {
id = "arn:aws:ecs:us-east-2:410965620680:service/jfp-ecs-cluster-prod/cms-prod-service"
name = "cms-prod-service"
tags = {}
~ task_definition = "arn:aws:ecs:us-east-2:410965620680:task-definition/jfp-cms-prod:1" -> (known after apply)
# (18 unchanged attributes hidden)
# (4 unchanged blocks hidden)
}
# module.prod.module.cms.module.ecs-task.aws_ecs_task_definition.ecs_task_definition must be replaced
+/- resource "aws_ecs_task_definition" "ecs_task_definition" {
~ arn = "arn:aws:ecs:us-east-2:410965620680:task-definition/jfp-cms-prod:1" -> (known after apply)
~ arn_without_revision = "arn:aws:ecs:us-east-2:410965620680:task-definition/jfp-cms-prod" -> (known after apply)
~ container_definitions = jsonencode(
[
- {
- cpu = 1024
- environment = [
- {
- name = "NODE_ENV"
- value = "production"
},
- {
- name = "SERVICE_ENV"
- value = "prod"
},
- {
- name = "SERVICE_NAME"
- value = "cms"
},
]
- essential = true
- image = "410965620680.dkr.ecr.us-east-2.amazonaws.com/jfp-cms-prod:latest"
- logConfiguration = {
- logDriver = "awsfirelens"
- options = {
- Host = "http-intake.logs.datadoghq.com"
- Name = "datadog"
- TLS = "on"
- compress = "gzip"
- dd_service = "cms"
- dd_source = "strapi"
- dd_tags = "env:prod"
- provider = "ecs"
- retry_limit = "2"
}
- secretOptions = [
- {
- name = "apikey"
- valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/terraform/prd/DATADOG_API_KEY"
},
]
}
- memory = 2048
- mountPoints = []
- name = "jfp-cms-prod-app"
- portMappings = [
- {
- containerPort = 1337
- hostPort = 1337
- protocol = "tcp"
},
]
- secrets = [
- {
- name = "ADMIN_JWT_SECRET"
- valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/cms/prod/ADMIN_JWT_SECRET"
},
- {
- name = "API_TOKEN_SALT"
- valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/cms/prod/API_TOKEN_SALT"
},
- {
- name = "APP_KEYS"
- valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/cms/prod/APP_KEYS"
},
- {
- name = "DD_API_KEY"
- valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/terraform/prd/DATADOG_API_KEY"
},
- {
- name = "ENCRYPTION_KEY"
- valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/cms/prod/ENCRYPTION_KEY"
},
- {
- name = "MUX_ACCESS_TOKEN_ID"
- valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/cms/prod/MUX_ACCESS_TOKEN_ID"
},
- {
- name = "MUX_PLAYBACK_SIGNING_ID"
- valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/cms/prod/MUX_PLAYBACK_SIGNING_ID"
},
- {
- name = "MUX_PLAYBACK_SIGNING_SECRET"
- valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/cms/prod/MUX_PLAYBACK_SIGNING_SECRET"
},
- {
- name = "MUX_SECRET_KEY"
- valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/cms/prod/MUX_SECRET_KEY"
},
- {
- name = "MUX_WEBHOOK_SIGNING_SECRET"
- valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/cms/prod/MUX_WEBHOOK_SIGNING_SECRET"
},
- {
- name = "PG_DATABASE_URL_CMS"
- valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/cms/prod/PG_DATABASE_URL_CMS"
},
- {
- name = "TRANSFER_TOKEN_SALT"
- valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/cms/prod/TRANSFER_TOKEN_SALT"
},
]
- systemControls = []
- volumesFrom = []
},
- {
- environment = [
- {
- name = "DD_APM_ENABLED"
- value = "true"
},
- {
- name = "DD_APM_NON_LOCAL_TRAFFIC"
- value = "true"
},
- {
- name = "DD_DOGSTATSD_NON_LOCAL_TRAFFIC"
- value = "true"
},
- {
- name = "DD_LOGS_INJECTION"
- value = "true"
},
- {
- name = "DD_OTLP_CONFIG_RECEIVER_PROTOCOLS_GRPC_ENDPOINT"
- value = "0.0.0.0:4317"
},
- {
- name = "DD_OTLP_CONFIG_RECEIVER_PROTOCOLS_HTTP_ENDPOINT"
- value = "0.0.0.0:4318"
},
- {
- name = "DD_PROCESS_AGENT_ENABLED"
- value = "true"
},
- {
- name = "DD_PROFILING_ENABLED"
- value = "true"
},
- {
- name = "DD_RUNTIME_METRICS_ENABLED"
- value = "true"
},
- {
- name = "DD_TAGS"
- value = "env:prod app:cms"
},
- {
- name = "DD_TRACE_ANALYTICS_ENABLED"
- value = "true"
},
- {
- name = "ECS_FARGATE"
- value = "true"
},
]
- essential = true
- image = "public.ecr.aws/datadog/agent:latest"
- logConfiguration = {
- logDriver = "awslogs"
- options = {
- awslogs-group = "cms-prod-logs"
- awslogs-region = "us-east-2"
- awslogs-stream-prefix = "core"
}
}
- memoryReservation = 128
- mountPoints = []
- name = "jfp-cms-prod-datadog-agent"
- portMappings = [
- {
- containerPort = 4317
- hostPort = 4317
- protocol = "tcp"
},
- {
- containerPort = 4318
- hostPort = 4318
- protocol = "tcp"
},
- {
- containerPort = 8125
- hostPort = 8125
- protocol = "udp"
},
]
- secrets = [
- {
- name = "DD_API_KEY"
- valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/terraform/prd/DATADOG_API_KEY"
},
]
- systemControls = []
- volumesFrom = []
},
- {
- environment = []
- essential = true
- firelensConfiguration = {
- options = {
- config-file-type = "file"
- config-file-value = "/fluent-bit/configs/parse-json.conf"
- enable-ecs-log-metadata = "true"
}
- type = "fluentbit"
}
- image = "amazon/aws-for-fluent-bit:stable"
- logConfiguration = {
- logDriver = "awslogs"
- options = {
- awslogs-group = "cms-prod-logs"
- awslogs-region = "us-east-2"
- awslogs-stream-prefix = "core"
}
}
- memoryReservation = 100
- mountPoints = []
- name = "jfp-cms-prod-log-router"
- portMappings = []
- systemControls = []
- user = "0"
- volumesFrom = []
},
]
) -> (known after apply) # forces replacement
~ enable_fault_injection = false -> (known after apply)
~ id = "jfp-cms-prod" -> (known after apply)
~ revision = 1 -> (known after apply)
- tags = {} -> null
~ tags_all = {} -> (known after apply)
# (12 unchanged attributes hidden)
}
# module.prod.module.cms.module.ecs-task.aws_ssm_parameter.parameters["JWT_SECRET"] will be created
+ resource "aws_ssm_parameter" "parameters" {
+ arn = (known after apply)
+ data_type = (known after apply)
+ has_value_wo = (known after apply)
+ id = (known after apply)
+ insecure_value = (known after apply)
+ key_id = (known after apply)
+ name = "/ecs/cms/prod/JWT_SECRET"
+ overwrite = true
+ region = "us-east-2"
+ tags = {
+ "name" = "JWT_SECRET"
}
+ tags_all = {
+ "name" = "JWT_SECRET"
}
+ tier = (known after apply)
+ type = "SecureString"
+ value = (sensitive value)
+ value_wo = (write-only attribute)
+ version = (known after apply)
}
# module.stage.module.api-journeys-modern.module.ecs-task.aws_ecs_service.ecs_service will be updated in-place
~ resource "aws_ecs_service" "ecs_service" {
id = "arn:aws:ecs:us-east-2:410965620680:service/jfp-ecs-cluster-stage/api-journeys-modern-stage-service"
name = "api-journeys-modern-stage-service"
tags = {}
~ task_definition = "arn:aws:ecs:us-east-2:410965620680:task-definition/jfp-api-journeys-modern-stage:18" -> (known after apply)
# (18 unchanged attributes hidden)
# (4 unchanged blocks hidden)
}
# module.stage.module.api-journeys-modern.module.ecs-task.aws_ecs_task_definition.ecs_task_definition must be replaced
+/- resource "aws_ecs_task_definition" "ecs_task_definition" {
~ arn = "arn:aws:ecs:us-east-2:410965620680:task-definition/jfp-api-journeys-modern-stage:18" -> (known after apply)
~ arn_without_revision = "arn:aws:ecs:us-east-2:410965620680:task-definition/jfp-api-journeys-modern-stage" -> (known after apply)
~ container_definitions = jsonencode(
~ [
~ {
name = "jfp-api-journeys-modern-stage-app"
~ secrets = [
# (26 unchanged elements hidden)
{
name = "PG_DATABASE_URL_JOURNEYS"
valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-journeys/stage/PG_DATABASE_URL_JOURNEYS"
},
- {
- name = "PG_DATABASE_URL_USERS"
- valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-journeys/stage/PG_DATABASE_URL_USERS"
},
{
name = "PLAUSIBLE_API_KEY"
valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-journeys/stage/PLAUSIBLE_API_KEY"
},
# (21 unchanged elements hidden)
]
- systemControls = []
# (9 unchanged attributes hidden)
},
~ {
name = "jfp-api-journeys-modern-stage-datadog-agent"
- systemControls = []
# (9 unchanged attributes hidden)
},
~ {
name = "jfp-api-journeys-modern-stage-log-router"
- systemControls = []
# (10 unchanged attributes hidden)
},
] # forces replacement
)
~ enable_fault_injection = false -> (known after apply)
~ id = "jfp-api-journeys-modern-stage" -> (known after apply)
~ revision = 18 -> (known after apply)
- tags = {} -> null
~ tags_all = {} -> (known after apply)
# (12 unchanged attributes hidden)
}
# module.stage.module.api-journeys-modern.module.ecs-task.aws_ssm_parameter.parameters["PG_DATABASE_URL_USERS"] will be destroyed
# (because key ["PG_DATABASE_URL_USERS"] is not in for_each map)
- resource "aws_ssm_parameter" "parameters" {
- arn = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-journeys/stage/PG_DATABASE_URL_USERS" -> null
- data_type = "text" -> null
- has_value_wo = false -> null
- id = "/ecs/api-journeys/stage/PG_DATABASE_URL_USERS" -> null
- key_id = "alias/aws/ssm" -> null
- name = "/ecs/api-journeys/stage/PG_DATABASE_URL_USERS" -> null
- overwrite = true -> null
- region = "us-east-2" -> null
- tags = {
- "name" = "PG_DATABASE_URL_USERS"
} -> null
- tags_all = {
- "name" = "PG_DATABASE_URL_USERS"
} -> null
- tier = "Standard" -> null
- type = "SecureString" -> null
- value = (sensitive value) -> null
- value_wo = (write-only attribute) -> null
- version = 2 -> null
# (2 unchanged attributes hidden)
}
# module.stage.module.arclight.module.ecs-task.aws_ecs_service.ecs_service will be updated in-place
~ resource "aws_ecs_service" "ecs_service" {
~ desired_count = 1 -> 4
id = "arn:aws:ecs:us-east-2:410965620680:service/jfp-ecs-cluster-stage/arclight-stage-service"
name = "arclight-stage-service"
tags = {}
# (18 unchanged attributes hidden)
# (4 unchanged blocks hidden)
}
# module.stage.module.cms.module.ecs-task.aws_ecs_service.ecs_service will be updated in-place
~ resource "aws_ecs_service" "ecs_service" {
id = "arn:aws:ecs:us-east-2:410965620680:service/jfp-ecs-cluster-stage/cms-stage-service"
name = "cms-stage-service"
tags = {}
~ task_definition = "arn:aws:ecs:us-east-2:410965620680:task-definition/jfp-cms-stage:1" -> (known after apply)
# (18 unchanged attributes hidden)
# (4 unchanged blocks hidden)
}
# module.stage.module.cms.module.ecs-task.aws_ecs_task_definition.ecs_task_definition must be replaced
+/- resource "aws_ecs_task_definition" "ecs_task_definition" {
~ arn = "arn:aws:ecs:us-east-2:410965620680:task-definition/jfp-cms-stage:1" -> (known after apply)
~ arn_without_revision = "arn:aws:ecs:us-east-2:410965620680:task-definition/jfp-cms-stage" -> (known after apply)
~ container_definitions = jsonencode(
[
- {
- cpu = 1024
- environment = [
- {
- name = "NODE_ENV"
- value = "production"
},
- {
- name = "SERVICE_ENV"
- value = "stage"
},
- {
- name = "SERVICE_NAME"
- value = "cms"
},
]
- essential = true
- image = "410965620680.dkr.ecr.us-east-2.amazonaws.com/jfp-cms-stage:latest"
- logConfiguration = {
- logDriver = "awsfirelens"
- options = {
- Host = "http-intake.logs.datadoghq.com"
- Name = "datadog"
- TLS = "on"
- compress = "gzip"
- dd_service = "cms"
- dd_source = "strapi"
- dd_tags = "env:stage"
- provider = "ecs"
- retry_limit = "2"
}
- secretOptions = [
- {
- name = "apikey"
- valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/terraform/prd/DATADOG_API_KEY"
},
]
}
- memory = 2048
- mountPoints = []
- name = "jfp-cms-stage-app"
- portMappings = [
- {
- containerPort = 1337
- hostPort = 1337
- protocol = "tcp"
},
]
- secrets = [
- {
- name = "ADMIN_JWT_SECRET"
- valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/cms/stage/ADMIN_JWT_SECRET"
},
- {
- name = "API_TOKEN_SALT"
- valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/cms/stage/API_TOKEN_SALT"
},
- {
- name = "APP_KEYS"
- valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/cms/stage/APP_KEYS"
},
- {
- name = "DD_API_KEY"
- valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/terraform/prd/DATADOG_API_KEY"
},
- {
- name = "ENCRYPTION_KEY"
- valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/cms/stage/ENCRYPTION_KEY"
},
- {
- name = "MUX_ACCESS_TOKEN_ID"
- valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/cms/stage/MUX_ACCESS_TOKEN_ID"
},
- {
- name = "MUX_PLAYBACK_SIGNING_ID"
- valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/cms/stage/MUX_PLAYBACK_SIGNING_ID"
},
- {
- name = "MUX_PLAYBACK_SIGNING_SECRET"
- valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/cms/stage/MUX_PLAYBACK_SIGNING_SECRET"
},
- {
- name = "MUX_SECRET_KEY"
- valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/cms/stage/MUX_SECRET_KEY"
},
- {
- name = "MUX_WEBHOOK_SIGNING_SECRET"
- valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/cms/stage/MUX_WEBHOOK_SIGNING_SECRET"
},
- {
- name = "PG_DATABASE_URL_CMS"
- valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/cms/stage/PG_DATABASE_URL_CMS"
},
- {
- name = "TRANSFER_TOKEN_SALT"
- valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/cms/stage/TRANSFER_TOKEN_SALT"
},
]
- systemControls = []
- volumesFrom = []
},
- {
- environment = [
- {
- name = "DD_APM_ENABLED"
- value = "true"
},
- {
- name = "DD_APM_NON_LOCAL_TRAFFIC"
- value = "true"
},
- {
- name = "DD_DOGSTATSD_NON_LOCAL_TRAFFIC"
- value = "true"
},
- {
- name = "DD_LOGS_INJECTION"
- value = "true"
},
- {
- name = "DD_OTLP_CONFIG_RECEIVER_PROTOCOLS_GRPC_ENDPOINT"
- value = "0.0.0.0:4317"
},
- {
- name = "DD_OTLP_CONFIG_RECEIVER_PROTOCOLS_HTTP_ENDPOINT"
- value = "0.0.0.0:4318"
},
- {
- name = "DD_PROCESS_AGENT_ENABLED"
- value = "true"
},
- {
- name = "DD_PROFILING_ENABLED"
- value = "true"
},
- {
- name = "DD_RUNTIME_METRICS_ENABLED"
- value = "true"
},
- {
- name = "DD_TAGS"
- value = "env:stage app:cms"
},
- {
- name = "DD_TRACE_ANALYTICS_ENABLED"
- value = "true"
},
- {
- name = "ECS_FARGATE"
- value = "true"
},
]
- essential = true
- image = "public.ecr.aws/datadog/agent:latest"
- logConfiguration = {
- logDriver = "awslogs"
- options = {
- awslogs-group = "cms-stage-logs"
- awslogs-region = "us-east-2"
- awslogs-stream-prefix = "core"
}
}
- memoryReservation = 128
- mountPoints = []
- name = "jfp-cms-stage-datadog-agent"
- portMappings = [
- {
- containerPort = 4317
- hostPort = 4317
- protocol = "tcp"
},
- {
- containerPort = 4318
- hostPort = 4318
- protocol = "tcp"
},
- {
- containerPort = 8125
- hostPort = 8125
- protocol = "udp"
},
]
- secrets = [
- {
- name = "DD_API_KEY"
- valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/terraform/prd/DATADOG_API_KEY"
},
]
- systemControls = []
- volumesFrom = []
},
- {
- environment = []
- essential = true
- firelensConfiguration = {
- options = {
- config-file-type = "file"
- config-file-value = "/fluent-bit/configs/parse-json.conf"
- enable-ecs-log-metadata = "true"
}
- type = "fluentbit"
}
- image = "amazon/aws-for-fluent-bit:stable"
- logConfiguration = {
- logDriver = "awslogs"
- options = {
- awslogs-group = "cms-stage-logs"
- awslogs-region = "us-east-2"
- awslogs-stream-prefix = "core"
}
}
- memoryReservation = 100
- mountPoints = []
- name = "jfp-cms-stage-log-router"
- portMappings = []
- systemControls = []
- user = "0"
- volumesFrom = []
},
]
) -> (known after apply) # forces replacement
~ enable_fault_injection = false -> (known after apply)
~ id = "jfp-cms-stage" -> (known after apply)
~ revision = 1 -> (known after apply)
- tags = {} -> null
~ tags_all = {} -> (known after apply)
# (12 unchanged attributes hidden)
}
# module.stage.module.cms.module.ecs-task.aws_ssm_parameter.parameters["JWT_SECRET"] will be created
+ resource "aws_ssm_parameter" "parameters" {
+ arn = (known after apply)
+ data_type = (known after apply)
+ has_value_wo = (known after apply)
+ id = (known after apply)
+ insecure_value = (known after apply)
+ key_id = (known after apply)
+ name = "/ecs/cms/stage/JWT_SECRET"
+ overwrite = true
+ region = "us-east-2"
+ tags = {
+ "name" = "JWT_SECRET"
}
+ tags_all = {
+ "name" = "JWT_SECRET"
}
+ tier = (known after apply)
+ type = "SecureString"
+ value = (sensitive value)
+ value_wo = (write-only attribute)
+ version = (known after apply)
}
Plan: 5 to add, 5 to change, 4 to destroy.
╷
│ Warning: Deprecated Resource
│
│ with module.datadog.datadog_integration_aws.sandbox,
│ on modules/aws/datadog/main.tf line 118, in resource "datadog_integration_aws" "sandbox":
│ 118: resource "datadog_integration_aws" "sandbox" {
│
│ **This resource is deprecated - use the `datadog_integration_aws_account`
│ resource instead**:
│ https://registry.terraform.io/providers/DataDog/datadog/latest/docs/resources/integration_aws_account
╵
╷
│ Warning: Deprecated attribute
│
│ on .terraform/modules/datadog.datadog_log_forwarder/modules/log_forwarder/main.tf line 2, in locals:
│ 2: bucket_name = var.bucket_name != "" ? var.bucket_name : "datadog-forwarder-${data.aws_caller_identity.current.account_id}-${data.aws_region.current.name}"
│
│ The attribute "name" is deprecated. Refer to the provider documentation for
│ details.
│
│ (and 2 more similar warnings elsewhere)
╵
Plan: 5 to add, 5 to change, 4 to destroy.
|
|
atlantis apply |
|
Ran Apply for dir: Apply Error |
|
atlantis apply |
|
Apply Error |
|
atlantis plan |
|
Ran Plan for dir: Show OutputTerraform used the selected providers to generate the following execution
plan. Resource actions are indicated with the following symbols:
+ create
~ update in-place
- destroy
+/- create replacement and then destroy
Terraform will perform the following actions:
# module.prod.module.arclight.module.ecs-task.aws_ecs_service.ecs_service will be updated in-place
~ resource "aws_ecs_service" "ecs_service" {
~ desired_count = 2 -> 4
id = "arn:aws:ecs:us-east-2:410965620680:service/jfp-ecs-cluster-prod/arclight-prod-service"
name = "arclight-prod-service"
tags = {}
# (18 unchanged attributes hidden)
# (4 unchanged blocks hidden)
}
# module.prod.module.cms.module.ecs-task.aws_ecs_service.ecs_service will be updated in-place
~ resource "aws_ecs_service" "ecs_service" {
id = "arn:aws:ecs:us-east-2:410965620680:service/jfp-ecs-cluster-prod/cms-prod-service"
name = "cms-prod-service"
tags = {}
~ task_definition = "arn:aws:ecs:us-east-2:410965620680:task-definition/jfp-cms-prod:1" -> (known after apply)
# (18 unchanged attributes hidden)
# (4 unchanged blocks hidden)
}
# module.prod.module.cms.module.ecs-task.aws_ecs_task_definition.ecs_task_definition must be replaced
+/- resource "aws_ecs_task_definition" "ecs_task_definition" {
~ arn = "arn:aws:ecs:us-east-2:410965620680:task-definition/jfp-cms-prod:1" -> (known after apply)
~ arn_without_revision = "arn:aws:ecs:us-east-2:410965620680:task-definition/jfp-cms-prod" -> (known after apply)
~ container_definitions = jsonencode(
[
- {
- cpu = 1024
- environment = [
- {
- name = "NODE_ENV"
- value = "production"
},
- {
- name = "SERVICE_ENV"
- value = "prod"
},
- {
- name = "SERVICE_NAME"
- value = "cms"
},
]
- essential = true
- image = "410965620680.dkr.ecr.us-east-2.amazonaws.com/jfp-cms-prod:latest"
- logConfiguration = {
- logDriver = "awsfirelens"
- options = {
- Host = "http-intake.logs.datadoghq.com"
- Name = "datadog"
- TLS = "on"
- compress = "gzip"
- dd_service = "cms"
- dd_source = "strapi"
- dd_tags = "env:prod"
- provider = "ecs"
- retry_limit = "2"
}
- secretOptions = [
- {
- name = "apikey"
- valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/terraform/prd/DATADOG_API_KEY"
},
]
}
- memory = 2048
- mountPoints = []
- name = "jfp-cms-prod-app"
- portMappings = [
- {
- containerPort = 1337
- hostPort = 1337
- protocol = "tcp"
},
]
- secrets = [
- {
- name = "ADMIN_JWT_SECRET"
- valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/cms/prod/ADMIN_JWT_SECRET"
},
- {
- name = "API_TOKEN_SALT"
- valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/cms/prod/API_TOKEN_SALT"
},
- {
- name = "APP_KEYS"
- valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/cms/prod/APP_KEYS"
},
- {
- name = "DD_API_KEY"
- valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/terraform/prd/DATADOG_API_KEY"
},
- {
- name = "ENCRYPTION_KEY"
- valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/cms/prod/ENCRYPTION_KEY"
},
- {
- name = "MUX_ACCESS_TOKEN_ID"
- valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/cms/prod/MUX_ACCESS_TOKEN_ID"
},
- {
- name = "MUX_PLAYBACK_SIGNING_ID"
- valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/cms/prod/MUX_PLAYBACK_SIGNING_ID"
},
- {
- name = "MUX_PLAYBACK_SIGNING_SECRET"
- valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/cms/prod/MUX_PLAYBACK_SIGNING_SECRET"
},
- {
- name = "MUX_SECRET_KEY"
- valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/cms/prod/MUX_SECRET_KEY"
},
- {
- name = "MUX_WEBHOOK_SIGNING_SECRET"
- valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/cms/prod/MUX_WEBHOOK_SIGNING_SECRET"
},
- {
- name = "PG_DATABASE_URL_CMS"
- valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/cms/prod/PG_DATABASE_URL_CMS"
},
- {
- name = "TRANSFER_TOKEN_SALT"
- valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/cms/prod/TRANSFER_TOKEN_SALT"
},
]
- systemControls = []
- volumesFrom = []
},
- {
- environment = [
- {
- name = "DD_APM_ENABLED"
- value = "true"
},
- {
- name = "DD_APM_NON_LOCAL_TRAFFIC"
- value = "true"
},
- {
- name = "DD_DOGSTATSD_NON_LOCAL_TRAFFIC"
- value = "true"
},
- {
- name = "DD_LOGS_INJECTION"
- value = "true"
},
- {
- name = "DD_OTLP_CONFIG_RECEIVER_PROTOCOLS_GRPC_ENDPOINT"
- value = "0.0.0.0:4317"
},
- {
- name = "DD_OTLP_CONFIG_RECEIVER_PROTOCOLS_HTTP_ENDPOINT"
- value = "0.0.0.0:4318"
},
- {
- name = "DD_PROCESS_AGENT_ENABLED"
- value = "true"
},
- {
- name = "DD_PROFILING_ENABLED"
- value = "true"
},
- {
- name = "DD_RUNTIME_METRICS_ENABLED"
- value = "true"
},
- {
- name = "DD_TAGS"
- value = "env:prod app:cms"
},
- {
- name = "DD_TRACE_ANALYTICS_ENABLED"
- value = "true"
},
- {
- name = "ECS_FARGATE"
- value = "true"
},
]
- essential = true
- image = "public.ecr.aws/datadog/agent:latest"
- logConfiguration = {
- logDriver = "awslogs"
- options = {
- awslogs-group = "cms-prod-logs"
- awslogs-region = "us-east-2"
- awslogs-stream-prefix = "core"
}
}
- memoryReservation = 128
- mountPoints = []
- name = "jfp-cms-prod-datadog-agent"
- portMappings = [
- {
- containerPort = 4317
- hostPort = 4317
- protocol = "tcp"
},
- {
- containerPort = 4318
- hostPort = 4318
- protocol = "tcp"
},
- {
- containerPort = 8125
- hostPort = 8125
- protocol = "udp"
},
]
- secrets = [
- {
- name = "DD_API_KEY"
- valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/terraform/prd/DATADOG_API_KEY"
},
]
- systemControls = []
- volumesFrom = []
},
- {
- environment = []
- essential = true
- firelensConfiguration = {
- options = {
- config-file-type = "file"
- config-file-value = "/fluent-bit/configs/parse-json.conf"
- enable-ecs-log-metadata = "true"
}
- type = "fluentbit"
}
- image = "amazon/aws-for-fluent-bit:stable"
- logConfiguration = {
- logDriver = "awslogs"
- options = {
- awslogs-group = "cms-prod-logs"
- awslogs-region = "us-east-2"
- awslogs-stream-prefix = "core"
}
}
- memoryReservation = 100
- mountPoints = []
- name = "jfp-cms-prod-log-router"
- portMappings = []
- systemControls = []
- user = "0"
- volumesFrom = []
},
]
) -> (known after apply) # forces replacement
~ enable_fault_injection = false -> (known after apply)
~ id = "jfp-cms-prod" -> (known after apply)
~ revision = 1 -> (known after apply)
- tags = {} -> null
~ tags_all = {} -> (known after apply)
# (12 unchanged attributes hidden)
}
# module.prod.module.cms.module.ecs-task.aws_ssm_parameter.parameters["JWT_SECRET"] will be created
+ resource "aws_ssm_parameter" "parameters" {
+ arn = (known after apply)
+ data_type = (known after apply)
+ has_value_wo = (known after apply)
+ id = (known after apply)
+ insecure_value = (known after apply)
+ key_id = (known after apply)
+ name = "/ecs/cms/prod/JWT_SECRET"
+ overwrite = true
+ region = "us-east-2"
+ tags = {
+ "name" = "JWT_SECRET"
}
+ tags_all = {
+ "name" = "JWT_SECRET"
}
+ tier = (known after apply)
+ type = "SecureString"
+ value = (sensitive value)
+ value_wo = (write-only attribute)
+ version = (known after apply)
}
# module.stage.module.api-journeys-modern.module.ecs-task.aws_ecs_service.ecs_service will be updated in-place
~ resource "aws_ecs_service" "ecs_service" {
id = "arn:aws:ecs:us-east-2:410965620680:service/jfp-ecs-cluster-stage/api-journeys-modern-stage-service"
name = "api-journeys-modern-stage-service"
tags = {}
~ task_definition = "arn:aws:ecs:us-east-2:410965620680:task-definition/jfp-api-journeys-modern-stage:18" -> (known after apply)
# (18 unchanged attributes hidden)
# (4 unchanged blocks hidden)
}
# module.stage.module.api-journeys-modern.module.ecs-task.aws_ecs_task_definition.ecs_task_definition must be replaced
+/- resource "aws_ecs_task_definition" "ecs_task_definition" {
~ arn = "arn:aws:ecs:us-east-2:410965620680:task-definition/jfp-api-journeys-modern-stage:18" -> (known after apply)
~ arn_without_revision = "arn:aws:ecs:us-east-2:410965620680:task-definition/jfp-api-journeys-modern-stage" -> (known after apply)
~ container_definitions = jsonencode(
~ [
~ {
name = "jfp-api-journeys-modern-stage-app"
~ secrets = [
# (26 unchanged elements hidden)
{
name = "PG_DATABASE_URL_JOURNEYS"
valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-journeys/stage/PG_DATABASE_URL_JOURNEYS"
},
- {
- name = "PG_DATABASE_URL_USERS"
- valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-journeys/stage/PG_DATABASE_URL_USERS"
},
{
name = "PLAUSIBLE_API_KEY"
valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-journeys/stage/PLAUSIBLE_API_KEY"
},
# (21 unchanged elements hidden)
]
- systemControls = []
# (9 unchanged attributes hidden)
},
~ {
name = "jfp-api-journeys-modern-stage-datadog-agent"
- systemControls = []
# (9 unchanged attributes hidden)
},
~ {
name = "jfp-api-journeys-modern-stage-log-router"
- systemControls = []
# (10 unchanged attributes hidden)
},
] # forces replacement
)
~ enable_fault_injection = false -> (known after apply)
~ id = "jfp-api-journeys-modern-stage" -> (known after apply)
~ revision = 18 -> (known after apply)
- tags = {} -> null
~ tags_all = {} -> (known after apply)
# (12 unchanged attributes hidden)
}
# module.stage.module.api-journeys-modern.module.ecs-task.aws_ssm_parameter.parameters["PG_DATABASE_URL_USERS"] will be destroyed
# (because key ["PG_DATABASE_URL_USERS"] is not in for_each map)
- resource "aws_ssm_parameter" "parameters" {
- arn = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-journeys/stage/PG_DATABASE_URL_USERS" -> null
- data_type = "text" -> null
- has_value_wo = false -> null
- id = "/ecs/api-journeys/stage/PG_DATABASE_URL_USERS" -> null
- key_id = "alias/aws/ssm" -> null
- name = "/ecs/api-journeys/stage/PG_DATABASE_URL_USERS" -> null
- overwrite = true -> null
- region = "us-east-2" -> null
- tags = {
- "name" = "PG_DATABASE_URL_USERS"
} -> null
- tags_all = {
- "name" = "PG_DATABASE_URL_USERS"
} -> null
- tier = "Standard" -> null
- type = "SecureString" -> null
- value = (sensitive value) -> null
- value_wo = (write-only attribute) -> null
- version = 2 -> null
# (2 unchanged attributes hidden)
}
# module.stage.module.arclight.module.ecs-task.aws_ecs_service.ecs_service will be updated in-place
~ resource "aws_ecs_service" "ecs_service" {
~ desired_count = 1 -> 4
id = "arn:aws:ecs:us-east-2:410965620680:service/jfp-ecs-cluster-stage/arclight-stage-service"
name = "arclight-stage-service"
tags = {}
# (18 unchanged attributes hidden)
# (4 unchanged blocks hidden)
}
# module.stage.module.cms.module.ecs-task.aws_ecs_service.ecs_service will be updated in-place
~ resource "aws_ecs_service" "ecs_service" {
id = "arn:aws:ecs:us-east-2:410965620680:service/jfp-ecs-cluster-stage/cms-stage-service"
name = "cms-stage-service"
tags = {}
~ task_definition = "arn:aws:ecs:us-east-2:410965620680:task-definition/jfp-cms-stage:1" -> (known after apply)
# (18 unchanged attributes hidden)
# (4 unchanged blocks hidden)
}
# module.stage.module.cms.module.ecs-task.aws_ecs_task_definition.ecs_task_definition must be replaced
+/- resource "aws_ecs_task_definition" "ecs_task_definition" {
~ arn = "arn:aws:ecs:us-east-2:410965620680:task-definition/jfp-cms-stage:1" -> (known after apply)
~ arn_without_revision = "arn:aws:ecs:us-east-2:410965620680:task-definition/jfp-cms-stage" -> (known after apply)
~ container_definitions = jsonencode(
[
- {
- cpu = 1024
- environment = [
- {
- name = "NODE_ENV"
- value = "production"
},
- {
- name = "SERVICE_ENV"
- value = "stage"
},
- {
- name = "SERVICE_NAME"
- value = "cms"
},
]
- essential = true
- image = "410965620680.dkr.ecr.us-east-2.amazonaws.com/jfp-cms-stage:latest"
- logConfiguration = {
- logDriver = "awsfirelens"
- options = {
- Host = "http-intake.logs.datadoghq.com"
- Name = "datadog"
- TLS = "on"
- compress = "gzip"
- dd_service = "cms"
- dd_source = "strapi"
- dd_tags = "env:stage"
- provider = "ecs"
- retry_limit = "2"
}
- secretOptions = [
- {
- name = "apikey"
- valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/terraform/prd/DATADOG_API_KEY"
},
]
}
- memory = 2048
- mountPoints = []
- name = "jfp-cms-stage-app"
- portMappings = [
- {
- containerPort = 1337
- hostPort = 1337
- protocol = "tcp"
},
]
- secrets = [
- {
- name = "ADMIN_JWT_SECRET"
- valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/cms/stage/ADMIN_JWT_SECRET"
},
- {
- name = "API_TOKEN_SALT"
- valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/cms/stage/API_TOKEN_SALT"
},
- {
- name = "APP_KEYS"
- valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/cms/stage/APP_KEYS"
},
- {
- name = "DD_API_KEY"
- valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/terraform/prd/DATADOG_API_KEY"
},
- {
- name = "ENCRYPTION_KEY"
- valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/cms/stage/ENCRYPTION_KEY"
},
- {
- name = "MUX_ACCESS_TOKEN_ID"
- valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/cms/stage/MUX_ACCESS_TOKEN_ID"
},
- {
- name = "MUX_PLAYBACK_SIGNING_ID"
- valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/cms/stage/MUX_PLAYBACK_SIGNING_ID"
},
- {
- name = "MUX_PLAYBACK_SIGNING_SECRET"
- valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/cms/stage/MUX_PLAYBACK_SIGNING_SECRET"
},
- {
- name = "MUX_SECRET_KEY"
- valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/cms/stage/MUX_SECRET_KEY"
},
- {
- name = "MUX_WEBHOOK_SIGNING_SECRET"
- valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/cms/stage/MUX_WEBHOOK_SIGNING_SECRET"
},
- {
- name = "PG_DATABASE_URL_CMS"
- valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/cms/stage/PG_DATABASE_URL_CMS"
},
- {
- name = "TRANSFER_TOKEN_SALT"
- valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/cms/stage/TRANSFER_TOKEN_SALT"
},
]
- systemControls = []
- volumesFrom = []
},
- {
- environment = [
- {
- name = "DD_APM_ENABLED"
- value = "true"
},
- {
- name = "DD_APM_NON_LOCAL_TRAFFIC"
- value = "true"
},
- {
- name = "DD_DOGSTATSD_NON_LOCAL_TRAFFIC"
- value = "true"
},
- {
- name = "DD_LOGS_INJECTION"
- value = "true"
},
- {
- name = "DD_OTLP_CONFIG_RECEIVER_PROTOCOLS_GRPC_ENDPOINT"
- value = "0.0.0.0:4317"
},
- {
- name = "DD_OTLP_CONFIG_RECEIVER_PROTOCOLS_HTTP_ENDPOINT"
- value = "0.0.0.0:4318"
},
- {
- name = "DD_PROCESS_AGENT_ENABLED"
- value = "true"
},
- {
- name = "DD_PROFILING_ENABLED"
- value = "true"
},
- {
- name = "DD_RUNTIME_METRICS_ENABLED"
- value = "true"
},
- {
- name = "DD_TAGS"
- value = "env:stage app:cms"
},
- {
- name = "DD_TRACE_ANALYTICS_ENABLED"
- value = "true"
},
- {
- name = "ECS_FARGATE"
- value = "true"
},
]
- essential = true
- image = "public.ecr.aws/datadog/agent:latest"
- logConfiguration = {
- logDriver = "awslogs"
- options = {
- awslogs-group = "cms-stage-logs"
- awslogs-region = "us-east-2"
- awslogs-stream-prefix = "core"
}
}
- memoryReservation = 128
- mountPoints = []
- name = "jfp-cms-stage-datadog-agent"
- portMappings = [
- {
- containerPort = 4317
- hostPort = 4317
- protocol = "tcp"
},
- {
- containerPort = 4318
- hostPort = 4318
- protocol = "tcp"
},
- {
- containerPort = 8125
- hostPort = 8125
- protocol = "udp"
},
]
- secrets = [
- {
- name = "DD_API_KEY"
- valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/terraform/prd/DATADOG_API_KEY"
},
]
- systemControls = []
- volumesFrom = []
},
- {
- environment = []
- essential = true
- firelensConfiguration = {
- options = {
- config-file-type = "file"
- config-file-value = "/fluent-bit/configs/parse-json.conf"
- enable-ecs-log-metadata = "true"
}
- type = "fluentbit"
}
- image = "amazon/aws-for-fluent-bit:stable"
- logConfiguration = {
- logDriver = "awslogs"
- options = {
- awslogs-group = "cms-stage-logs"
- awslogs-region = "us-east-2"
- awslogs-stream-prefix = "core"
}
}
- memoryReservation = 100
- mountPoints = []
- name = "jfp-cms-stage-log-router"
- portMappings = []
- systemControls = []
- user = "0"
- volumesFrom = []
},
]
) -> (known after apply) # forces replacement
~ enable_fault_injection = false -> (known after apply)
~ id = "jfp-cms-stage" -> (known after apply)
~ revision = 1 -> (known after apply)
- tags = {} -> null
~ tags_all = {} -> (known after apply)
# (12 unchanged attributes hidden)
}
# module.stage.module.cms.module.ecs-task.aws_ssm_parameter.parameters["JWT_SECRET"] will be created
+ resource "aws_ssm_parameter" "parameters" {
+ arn = (known after apply)
+ data_type = (known after apply)
+ has_value_wo = (known after apply)
+ id = (known after apply)
+ insecure_value = (known after apply)
+ key_id = (known after apply)
+ name = "/ecs/cms/stage/JWT_SECRET"
+ overwrite = true
+ region = "us-east-2"
+ tags = {
+ "name" = "JWT_SECRET"
}
+ tags_all = {
+ "name" = "JWT_SECRET"
}
+ tier = (known after apply)
+ type = "SecureString"
+ value = (sensitive value)
+ value_wo = (write-only attribute)
+ version = (known after apply)
}
Plan: 5 to add, 5 to change, 4 to destroy.
╷
│ Warning: Deprecated Resource
│
│ with module.datadog.datadog_integration_aws.sandbox,
│ on modules/aws/datadog/main.tf line 118, in resource "datadog_integration_aws" "sandbox":
│ 118: resource "datadog_integration_aws" "sandbox" {
│
│ **This resource is deprecated - use the `datadog_integration_aws_account`
│ resource instead**:
│ https://registry.terraform.io/providers/DataDog/datadog/latest/docs/resources/integration_aws_account
╵
╷
│ Warning: Deprecated attribute
│
│ on .terraform/modules/datadog.datadog_log_forwarder/modules/log_forwarder/main.tf line 2, in locals:
│ 2: bucket_name = var.bucket_name != "" ? var.bucket_name : "datadog-forwarder-${data.aws_caller_identity.current.account_id}-${data.aws_region.current.name}"
│
│ The attribute "name" is deprecated. Refer to the provider documentation for
│ details.
│
│ (and 2 more similar warnings elsewhere)
╵
Plan: 5 to add, 5 to change, 4 to destroy.
|
|
atlantis apply |
|
Ran Apply for dir: Show Outputmodule.prod.module.cms.module.ecs-task.aws_ssm_parameter.parameters["JWT_SECRET"]: Creating...
module.stage.module.cms.module.ecs-task.aws_ssm_parameter.parameters["JWT_SECRET"]: Creating...
module.prod.module.arclight.module.ecs-task.aws_ecs_service.ecs_service: Modifying... [id=arn:aws:ecs:us-east-2:410965620680:service/jfp-ecs-cluster-prod/arclight-prod-service]
module.stage.module.arclight.module.ecs-task.aws_ecs_service.ecs_service: Modifying... [id=arn:aws:ecs:us-east-2:410965620680:service/jfp-ecs-cluster-stage/arclight-stage-service]
module.stage.module.api-journeys-modern.module.ecs-task.aws_ecs_task_definition.ecs_task_definition: Creating...
module.stage.module.api-journeys-modern.module.ecs-task.aws_ecs_task_definition.ecs_task_definition: Creation complete after 0s [id=jfp-api-journeys-modern-stage]
module.stage.module.api-journeys-modern.module.ecs-task.aws_ecs_service.ecs_service: Modifying... [id=arn:aws:ecs:us-east-2:410965620680:service/jfp-ecs-cluster-stage/api-journeys-modern-stage-service]
module.prod.module.cms.module.ecs-task.aws_ssm_parameter.parameters["JWT_SECRET"]: Creation complete after 1s [id=/ecs/cms/prod/JWT_SECRET]
module.prod.module.cms.module.ecs-task.aws_ecs_task_definition.ecs_task_definition: Creating...
module.stage.module.cms.module.ecs-task.aws_ssm_parameter.parameters["JWT_SECRET"]: Creation complete after 0s [id=/ecs/cms/stage/JWT_SECRET]
module.stage.module.cms.module.ecs-task.aws_ecs_task_definition.ecs_task_definition: Creating...
module.prod.module.cms.module.ecs-task.aws_ecs_task_definition.ecs_task_definition: Creation complete after 0s [id=jfp-cms-prod]
module.stage.module.cms.module.ecs-task.aws_ecs_task_definition.ecs_task_definition: Creation complete after 0s [id=jfp-cms-stage]
module.prod.module.cms.module.ecs-task.aws_ecs_service.ecs_service: Modifying... [id=arn:aws:ecs:us-east-2:410965620680:service/jfp-ecs-cluster-prod/cms-prod-service]
module.stage.module.cms.module.ecs-task.aws_ecs_service.ecs_service: Modifying... [id=arn:aws:ecs:us-east-2:410965620680:service/jfp-ecs-cluster-stage/cms-stage-service]
module.stage.module.arclight.module.ecs-task.aws_ecs_service.ecs_service: Modifications complete after 0s [id=arn:aws:ecs:us-east-2:410965620680:service/jfp-ecs-cluster-stage/arclight-stage-service]
module.prod.module.arclight.module.ecs-task.aws_ecs_service.ecs_service: Modifications complete after 0s [id=arn:aws:ecs:us-east-2:410965620680:service/jfp-ecs-cluster-prod/arclight-prod-service]
module.stage.module.api-journeys-modern.module.ecs-task.aws_ecs_service.ecs_service: Modifications complete after 0s [id=arn:aws:ecs:us-east-2:410965620680:service/jfp-ecs-cluster-stage/api-journeys-modern-stage-service]
module.stage.module.api-journeys-modern.module.ecs-task.aws_ecs_task_definition.ecs_task_definition (deposed object b5c2392d): Destroying... [id=jfp-api-journeys-modern-stage]
module.stage.module.api-journeys-modern.module.ecs-task.aws_ecs_task_definition.ecs_task_definition: Destruction complete after 1s
module.stage.module.api-journeys-modern.module.ecs-task.aws_ssm_parameter.parameters["PG_DATABASE_URL_USERS"]: Destroying... [id=/ecs/api-journeys/stage/PG_DATABASE_URL_USERS]
module.stage.module.api-journeys-modern.module.ecs-task.aws_ssm_parameter.parameters["PG_DATABASE_URL_USERS"]: Destruction complete after 0s
module.prod.module.cms.module.ecs-task.aws_ecs_service.ecs_service: Modifications complete after 1s [id=arn:aws:ecs:us-east-2:410965620680:service/jfp-ecs-cluster-prod/cms-prod-service]
module.prod.module.cms.module.ecs-task.aws_ecs_task_definition.ecs_task_definition (deposed object 8ae49334): Destroying... [id=jfp-cms-prod]
module.prod.module.cms.module.ecs-task.aws_ecs_task_definition.ecs_task_definition: Destruction complete after 0s
module.stage.module.cms.module.ecs-task.aws_ecs_service.ecs_service: Modifications complete after 1s [id=arn:aws:ecs:us-east-2:410965620680:service/jfp-ecs-cluster-stage/cms-stage-service]
module.stage.module.cms.module.ecs-task.aws_ecs_task_definition.ecs_task_definition (deposed object 812fc9a9): Destroying... [id=jfp-cms-stage]
module.stage.module.cms.module.ecs-task.aws_ecs_task_definition.ecs_task_definition: Destruction complete after 0s
╷
│ Warning: Deprecated attribute
│
│ on .terraform/modules/datadog.datadog_log_forwarder/modules/log_forwarder/main.tf line 2, in locals:
│ 2: bucket_name = var.bucket_name != "" ? var.bucket_name : "datadog-forwarder-${data.aws_caller_identity.current.account_id}-${data.aws_region.current.name}"
│
│ The attribute "name" is deprecated. Refer to the provider documentation for
│ details.
╵
Apply complete! Resources: 5 added, 5 changed, 4 destroyed. |
|
Automatically merging because all plans have been successfully applied. |
|
Automerging failed: |
|
Locks and plans deleted for the projects and workspaces modified in this pull request:
|
Changes
clientcontent type API (controllers, routes, services, schema)aboutandglobalcontent type APIsarticle,author, andcategorycontent typesRefs: AI-5
Summary by CodeRabbit
New Features
Updates
Removals
Chores
✏️ Tip: You can customize this high-level summary in your review settings.