Skip to content

DC-250: Provision rotation app-user across all target databases - #495

Merged
spokenbird merged 3 commits into
mainfrom
feature/DC-250-rotation-lambda-multi-db
Jul 21, 2026
Merged

DC-250: Provision rotation app-user across all target databases#495
spokenbird merged 3 commits into
mainfrom
feature/DC-250-rotation-lambda-multi-db

Conversation

@spokenbird

Copy link
Copy Markdown
Contributor

🔗 Jira ticket

DC-250

✍️ Description

The DC dev environment's API container has been stuck in a restart loop. Root cause: the credential-rotation Lambda's set_secret/test_secret steps only ever provisioned the app user (appuser/appuser_clone) in the SebtPortal database. DC also points the DC-connector plugin at a second database on the same RDS instance, DcSource, using the same rotating credentials — but nothing ever created a database user for the app login there. Once appuser_clone became the active credential, the API could reach SebtPortal fine but every DcSource connection (including the dc-sql-connectivity health check) failed with SQL error 4060 ("Cannot open database... login failed"), keeping ECS in a permanent restart loop.

This PR:

  • Adds additional_db_names to the sebt_database module and threads it from sebt_application as [var.dc_source_db_name] — empty for CO, ["DcSource"] for DC, so the Lambda only touches databases that actually exist for a given state.
  • Updates rotate_db_credentials.py so set_secret/test_secret loop over every target database (primary + ADDITIONAL_DB_NAMES) instead of just the primary one.
  • Fixes ecs_service_name in sebt_application/main.tf, which was aliasing module.api.cluster_name — currently correct only because the CfA fargate module happens to name the ECS cluster and service identically (not because that's a documented contract. Now derived explicitly via a new local.api_ecs_service_name, so a future upstream naming change can't silently break the Lambda's ecs:UpdateService call.
  • Adds a distinct, greppable log line (DB_ROTATION_ECS_RESTART_FAILED) when that ECS restart call fails, so it can be wired to a Datadog log monitor instead of failing silently.

✅ Completion tasks

  • Added relevant tests (new Lambda unit tests for multi-database provisioning, _target_db_names, and per-db connection testing — 18/18 passing)
  • Meets acceptance criteria in ticket (restores the "two dedicated SQL Server logins... alternate as the active credential" behavior described in ADR 0018, across every database the app actually needs)
  • Configuration changes:
    • If new environment variables are added, update in Tofu (ADDITIONAL_DB_NAMES on the rotation Lambda)
    • If new environment secrets are added, update in Tofu and set in AWS Secret Manager (n/a)
    • If you're adding an appsetting, add it to the requisite example file, and update it in the AWS AppConfig (n/a)
    • If appsettings are changed, update in AWS AppConfig (n/a)

@github-actions github-actions Bot added the feature New feature, enhancement or request label Jul 21, 2026
@github-actions

github-actions Bot commented Jul 21, 2026

Copy link
Copy Markdown

Plan output — dev-dc

module.app.module.database.terraform_data.lambda_dependencies: Refreshing state... [id=4c43f46f-1484-6300-1ca2-1134f7485b29]
module.app.module.database.random_password.app_user_initial: Refreshing state... [id=none]
module.app.module.redis.random_password.auth_token: Refreshing state... [id=none]
module.app.module.database.data.archive_file.rotation_lambda: Reading...
module.app.module.ses.data.archive_file.rotation_lambda: Reading...
module.app.module.ses.data.archive_file.rotation_lambda: Read complete after 0s [id=ebb1c44568c3089bff88d24266d0869cceab99fc]
module.app.module.database.data.archive_file.rotation_lambda: Read complete after 0s [id=bd9ab85bc5a72445cbefd4a1798cb287fc60f142]
module.app.module.web.aws_ssm_parameter.otel_config: Refreshing state... [id=/sebt-portal-dc/development/web/otel]
module.app.module.ses.data.aws_region.current: Reading...
module.app.module.ses.aws_iam_user.smtp: Refreshing state... [id=sebt-portal-dc-development-ses-smtp]
module.app.module.api.module.ecs.aws_ecs_cluster.main: Refreshing state... [id=arn:aws:ecs:us-east-1:382156381095:cluster/sebt-portal-dc-development-api]
module.logging.module.s3.data.aws_organizations_organization.current: Reading...
module.vpc.module.vpc.data.aws_region.current[0]: Reading...
data.aws_ecr_repository.api: Reading...
module.app.module.redis.data.aws_caller_identity.current: Reading...
module.app.module.ses.aws_secretsmanager_secret.smtp: Refreshing state... [id=arn:aws:secretsmanager:us-east-1:382156381095:secret:sebt-portal-dc-development-ses-smtp-credentials-27jZOh]
module.logging.module.s3.aws_s3_bucket.main: Refreshing state... [id=sebt-portal-dc-development-logs]
module.app.module.ses.data.aws_region.current: Read complete after 0s [id=us-east-1]
module.vpc.module.vpc.data.aws_region.current[0]: Read complete after 0s [id=us-east-1]
module.app.module.api.aws_iam_role.task: Refreshing state... [id=sebt-portal-dc-development-api-task]
module.app.module.secrets.data.aws_caller_identity.identity: Reading...
module.app.module.redis.data.aws_caller_identity.current: Read complete after 0s [id=382156381095]
module.logging.module.s3.data.aws_partition.current: Reading...
module.logging.module.s3.data.aws_partition.current: Read complete after 0s [id=aws]
module.logging.module.s3.data.aws_region.current: Reading...
module.logging.module.s3.data.aws_region.current: Read complete after 0s [id=us-east-1]
module.logging.data.aws_elb_service_account.current: Reading...
module.logging.data.aws_elb_service_account.current: Read complete after 0s [id=127311923021]
module.app.module.ses.data.aws_caller_identity.current: Reading...
module.app.module.secrets.data.aws_caller_identity.identity: Read complete after 0s [id=382156381095]
module.dc_source_seed.aws_iam_role.task_execution: Refreshing state... [id=sebt-portal-dc-development-dc-source-seed-execution]
module.app.module.ses.data.aws_caller_identity.current: Read complete after 0s [id=382156381095]
module.app.data.aws_secretsmanager_secrets.datadog_key: Reading...
module.app.module.ses.aws_ses_domain_identity.main: Refreshing state... [id=dev.dc.sebt-portal.codeforamerica.app]
module.app.data.aws_secretsmanager_secrets.datadog_key: Read complete after 0s [id=us-east-1]
module.app.module.web.module.alb["this"].data.aws_partition.current: Reading...
module.app.module.web.module.alb["this"].data.aws_partition.current: Read complete after 0s [id=aws]
module.app.module.redis.data.aws_region.current: Reading...
module.app.module.redis.data.aws_region.current: Read complete after 0s [id=us-east-1]
module.app.module.redis.data.aws_partition.current: Reading...
module.app.module.redis.data.aws_partition.current: Read complete after 0s [id=aws]
module.app.data.aws_ec2_managed_prefix_list.cloudfront: Reading...
module.app.module.secrets.data.aws_partition.current: Reading...
module.app.module.secrets.data.aws_partition.current: Read complete after 0s [id=aws]
module.app.module.api.aws_acm_certificate.endpoint["this"]: Refreshing state... [id=arn:aws:acm:us-east-1:382156381095:certificate/a202bb33-aebb-4af0-8cec-7ed1131c625a]
module.vpc.data.aws_vpc_endpoint_service.services["ssm"]: Reading...
module.vpc.data.aws_vpc_endpoint_service.services["ec2messages"]: Reading...
module.vpc.data.aws_vpc_endpoint_service.services["guardduty-data"]: Reading...
module.logging.module.s3.data.aws_organizations_organization.current: Read complete after 0s [id=o-f5mr0gq6lc]
module.vpc.data.aws_vpc_endpoint_service.services["ecr.api"]: Reading...
module.vpc.data.aws_vpc_endpoint_service.services["ssm-contacts"]: Reading...
module.vpc.data.aws_vpc_endpoint_service.services["ssm-incidents"]: Reading...
module.vpc.data.aws_vpc_endpoint_service.services["ssm"]: Read complete after 0s [id=874300523]
module.vpc.data.aws_vpc_endpoint_service.services["ssmmessages"]: Reading...
module.vpc.data.aws_vpc_endpoint_service.services["ec2"]: Reading...
module.vpc.data.aws_vpc_endpoint_service.services["ec2messages"]: Read complete after 1s [id=2187510914]
module.vpc.data.aws_vpc_endpoint_service.services["ecr.dkr"]: Reading...
module.vpc.data.aws_vpc_endpoint_service.services["ecr.api"]: Read complete after 1s [id=1808222790]
module.dc_source_seed.data.aws_region.current: Reading...
module.dc_source_seed.data.aws_region.current: Read complete after 0s [id=us-east-1]
module.vpc.data.aws_vpc_endpoint_service.services["guardduty-data"]: Read complete after 1s [id=3795168285]
module.vpc.module.vpc.data.aws_iam_policy_document.flow_log_cloudwatch_assume_role[0]: Reading...
module.vpc.module.vpc.data.aws_iam_policy_document.flow_log_cloudwatch_assume_role[0]: Read complete after 0s [id=1021377347]
module.app.module.ses.aws_iam_role.rotation_lambda: Refreshing state... [id=sebt-portal-dc-development-ses-smtp-rotation]
module.bastion.data.aws_ami.bastion: Reading...
module.vpc.data.aws_vpc_endpoint_service.services["ssm-contacts"]: Read complete after 1s [id=3701104373]
module.app.module.web.data.aws_partition.current: Reading...
module.app.module.web.data.aws_partition.current: Read complete after 0s [id=aws]
module.app.module.api.data.aws_caller_identity.identity: Reading...
module.vpc.data.aws_vpc_endpoint_service.services["ssm-incidents"]: Read complete after 1s [id=3798321550]
module.app.module.database.data.aws_rds_engine_version.this: Reading...
module.app.data.aws_ec2_managed_prefix_list.cloudfront: Read complete after 1s [id=pl-3b927c52]
module.vpc.data.aws_vpc_endpoint_service.services["ssmmessages"]: Read complete after 1s [id=1315226949]
module.logging.data.aws_region.current: Reading...
module.logging.data.aws_region.current: Read complete after 0s [id=us-east-1]
module.vpc.module.vpc.data.aws_caller_identity.current[0]: Reading...
module.app.module.web.data.aws_region.current: Reading...
module.app.module.web.data.aws_region.current: Read complete after 0s [id=us-east-1]
module.app.data.aws_lambda_functions.all: Reading...
module.app.module.api.data.aws_caller_identity.identity: Read complete after 0s [id=382156381095]
module.app.module.ses.aws_cloudwatch_log_group.rotation_lambda: Refreshing state... [id=/aws/lambda/sebt-portal-dc-development-ses-smtp-rotation]
module.vpc.data.aws_vpc_endpoint_service.services["ecr.dkr"]: Read complete after 0s [id=1314884315]
module.vpc.data.aws_vpc_endpoint_service.services["ec2"]: Read complete after 1s [id=2644592029]
module.state_secrets.data.aws_caller_identity.identity: Reading...
module.app.module.web.data.aws_caller_identity.identity: Reading...
module.vpc.module.vpc.data.aws_caller_identity.current[0]: Read complete after 0s [id=382156381095]
module.app.module.api.data.aws_region.current: Reading...
module.app.module.api.data.aws_region.current: Read complete after 0s [id=us-east-1]
module.app.module.database.data.aws_caller_identity.current: Reading...
module.app.module.web.data.aws_caller_identity.identity: Read complete after 0s [id=382156381095]
data.aws_route53_zone.main: Reading...
module.state_secrets.data.aws_caller_identity.identity: Read complete after 0s [id=382156381095]
module.app.module.ses.data.aws_partition.current: Reading...
module.app.module.ses.data.aws_partition.current: Read complete after 0s [id=aws]
module.app.module.api.aws_iam_role.execution: Refreshing state... [id=sebt-portal-dc-development-api-exec]
module.app.module.database.data.aws_caller_identity.current: Read complete after 0s [id=382156381095]
module.app.module.web.aws_iam_role.task: Refreshing state... [id=sebt-portal-dc-development-web-task]
module.app.module.database.data.aws_rds_engine_version.this: Read complete after 0s [id=16.00.4215.2.v1]
module.app.module.database.data.aws_region.current: Reading...
module.app.module.database.data.aws_region.current: Read complete after 0s [id=us-east-1]
module.vpc.module.vpc.data.aws_partition.current[0]: Reading...
module.vpc.module.vpc.data.aws_partition.current[0]: Read complete after 0s [id=aws]
module.app.module.api.module.alb["this"].data.aws_partition.current: Reading...
module.app.module.api.module.alb["this"].data.aws_partition.current: Read complete after 0s [id=aws]
module.bastion.data.aws_caller_identity.identity: Reading...
module.dc_source_seed.data.aws_ecr_repository.this: Reading...
module.app.data.aws_lambda_functions.all: Read complete after 0s [id=us-east-1]
module.app.module.database.data.aws_partition.current: Reading...
data.aws_ecr_repository.api: Read complete after 1s [id=sebt-portal-dc-development-api]
module.app.module.database.data.aws_partition.current: Read complete after 0s [id=aws]
module.logging.module.s3.data.aws_caller_identity.current: Reading...
module.state_secrets.data.aws_region.current: Reading...
module.state_secrets.data.aws_region.current: Read complete after 0s [id=us-east-1]
module.vpc.data.aws_availability_zones.available: Reading...
module.bastion.data.aws_caller_identity.identity: Read complete after 0s [id=382156381095]
module.app.module.web.module.ecs.aws_ecs_cluster.main: Refreshing state... [id=arn:aws:ecs:us-east-1:382156381095:cluster/sebt-portal-dc-development-web]
module.app.module.api.data.aws_partition.current: Reading...
module.app.module.api.data.aws_partition.current: Read complete after 0s [id=aws]
module.app.module.database.aws_iam_role.rotation_lambda: Refreshing state... [id=sebt-portal-dc-development-db-rotation]
module.logging.module.s3.data.aws_caller_identity.current: Read complete after 0s [id=382156381095]
data.aws_ecr_repository.web: Reading...
module.app.module.appconfig[0].aws_appconfig_application.this: Refreshing state... [id=ejawvnk]
module.app.module.secrets.data.aws_region.current: Reading...
module.app.module.secrets.data.aws_region.current: Read complete after 0s [id=us-east-1]
module.logging.data.aws_partition.current: Reading...
module.logging.data.aws_partition.current: Read complete after 0s [id=aws]
module.app.module.database.aws_secretsmanager_secret.app_user: Refreshing state... [id=arn:aws:secretsmanager:us-east-1:382156381095:secret:sebt-portal-dc-development-db-app-user-yrRiwg]
module.vpc.data.aws_availability_zones.available: Read complete after 0s [id=us-east-1]
module.state_secrets.data.aws_partition.current: Reading...
module.state_secrets.data.aws_partition.current: Read complete after 0s [id=aws]
module.vpc.module.vpc.aws_vpc.this[0]: Refreshing state... [id=vpc-01fb1a10ad1f6cc36]
module.app.module.web.aws_iam_role.execution: Refreshing state... [id=sebt-portal-dc-development-web-exec]
module.bastion.data.aws_ami.bastion: Read complete after 0s [id=ami-0b826bb6d96d2afe4]
module.bastion.data.aws_region.current: Reading...
module.bastion.data.aws_region.current: Read complete after 0s [id=us-east-1]
module.bastion.data.aws_partition.current: Reading...
module.bastion.data.aws_partition.current: Read complete after 0s [id=aws]
module.logging.data.aws_lambda_functions.all: Reading...
module.app.module.web.aws_acm_certificate.endpoint["this"]: Refreshing state... [id=arn:aws:acm:us-east-1:382156381095:certificate/e2e06f94-e8b6-427d-bbc0-daa7a3065572]
module.logging.data.aws_caller_identity.identity: Reading...
data.aws_route53_zone.main: Read complete after 0s [id=Z099642439GM3YJ1G5DMR]
module.app.module.ses.aws_iam_user_policy.smtp: Refreshing state... [id=sebt-portal-dc-development-ses-smtp:ses-send]
module.logging.data.aws_lambda_functions.all: Read complete after 0s [id=us-east-1]
module.app.data.aws_secretsmanager_secret.datadog_key["this"]: Reading...
module.logging.data.aws_caller_identity.identity: Read complete after 0s [id=382156381095]
module.app.module.redis.aws_kms_key.redis: Refreshing state... [id=9cbda4dc-89b3-4548-8741-56fd451d8344]
module.app.module.api.module.ecs.aws_ecs_cluster_capacity_providers.main[0]: Refreshing state... [id=sebt-portal-dc-development-api]
module.dc_source_seed.data.aws_ecr_repository.this: Read complete after 1s [id=sebt-portal-dc-development-dc-source-seed]
module.app.module.ses.aws_ses_domain_dkim.main: Refreshing state... [id=dev.dc.sebt-portal.codeforamerica.app]
module.app.module.ses.aws_ses_domain_mail_from.main: Refreshing state... [id=dev.dc.sebt-portal.codeforamerica.app]
module.dc_source_seed.aws_iam_role_policy_attachment.task_execution_managed: Refreshing state... [id=sebt-portal-dc-development-dc-source-seed-execution/arn:aws:iam::aws:policy/service-role/AmazonECSTaskExecutionRolePolicy]
module.vpc.module.vpc.aws_iam_role.vpc_flow_log_cloudwatch[0]: Refreshing state... [id=vpc-flow-log-role-20260226064209208000000004]
module.app.data.aws_secretsmanager_secret.datadog_key["this"]: Read complete after 1s [id=arn:aws:secretsmanager:us-east-1:382156381095:secret:DdApiKeySecret-8005bRfvsNFm-B9NCfv]
module.app.module.ses.aws_iam_role_policy.rotation_lambda: Refreshing state... [id=sebt-portal-dc-development-ses-smtp-rotation:ses-smtp-rotation]
module.app.module.database.aws_kms_key.database: Refreshing state... [id=d6cd4c15-f2f8-401a-af1e-5ab1e79a26f5]
module.app.module.api.aws_kms_key.fargate: Refreshing state... [id=269a097b-a66a-434d-8ad3-b13101d49af6]
module.app.module.secrets.aws_kms_key.secrets: Refreshing state... [id=a8c1f38b-c8bf-4ebd-b918-08c31f8b77b1]
module.state_secrets.aws_kms_key.secrets: Refreshing state... [id=d2e856fb-f9c9-44db-a332-449a5e7ecadf]
module.app.module.web.module.ecs.aws_ecs_cluster_capacity_providers.main[0]: Refreshing state... [id=sebt-portal-dc-development-web]
module.bastion.aws_kms_key.this: Refreshing state... [id=7d119d4d-ced3-45fc-93e9-5ec47b384338]
module.logging.module.s3.aws_s3_bucket_public_access_block.main: Refreshing state... [id=sebt-portal-dc-development-logs]
module.logging.module.s3.aws_s3_bucket_server_side_encryption_configuration.main: Refreshing state... [id=sebt-portal-dc-development-logs]
module.logging.module.s3.aws_s3_bucket_versioning.main: Refreshing state... [id=sebt-portal-dc-development-logs]
module.logging.module.s3.aws_s3_bucket_ownership_controls.main: Refreshing state... [id=sebt-portal-dc-development-logs]
module.app.module.appconfig[0].aws_appconfig_configuration_profile.feature_flags: Refreshing state... [id=yiien0k:ejawvnk]
module.app.module.appconfig[0].aws_appconfig_environment.this: Refreshing state... [id=2msrwpp:ejawvnk]
module.app.module.appconfig[0].aws_appconfig_configuration_profile.app_settings: Refreshing state... [id=cp0vnz7:ejawvnk]
module.app.module.web.aws_kms_key.fargate: Refreshing state... [id=d7719898-d4b9-496f-94bd-5a0775d6ca2b]
module.app.module.database.aws_iam_role_policy_attachment.rotation_lambda_vpc_execution: Refreshing state... [id=sebt-portal-dc-development-db-rotation/arn:aws:iam::aws:policy/service-role/AWSLambdaVPCAccessExecutionRole]
module.app.module.ses.aws_lambda_function.rotation: Refreshing state... [id=sebt-portal-dc-development-ses-smtp-rotation]
module.app.data.aws_lambda_function.datadog["this"]: Reading...
module.logging.module.s3.data.aws_iam_policy_document.default: Reading...
module.logging.module.s3.data.aws_iam_policy_document.default: Read complete after 0s [id=2022588387]
module.logging.aws_kms_key.logs: Refreshing state... [id=2dcf416c-59e2-456b-bc6a-d3e510a7029b]
data.aws_ecr_repository.web: Read complete after 1s [id=sebt-portal-dc-development-web]
module.logging.aws_s3_bucket_object_lock_configuration.lock["this"]: Refreshing state... [id=sebt-portal-dc-development-logs]
module.app.module.redis.aws_kms_alias.redis: Refreshing state... [id=alias/sebt-portal-dc/development/redis]
module.app.module.redis.aws_secretsmanager_secret.auth_token: Refreshing state... [id=arn:aws:secretsmanager:us-east-1:382156381095:secret:sebt-portal-dc-development-redis-auth-token-OugQxX]
module.logging.data.aws_lambda_function.datadog["this"]: Reading...
module.app.module.api.aws_kms_alias.fargate: Refreshing state... [id=alias/sebt-portal-dc/development/api]
module.app.module.database.aws_kms_alias.database: Refreshing state... [id=alias/sebt-portal-dc/development/database]
module.app.module.secrets.aws_kms_alias.secrets: Refreshing state... [id=alias/sebt-portal-dc/development/api/secrets]
module.state_secrets.aws_kms_alias.secrets: Refreshing state... [id=alias/sebt-portal-dc/development/state-secrets/secrets]
module.bastion.aws_kms_alias.this: Refreshing state... [id=alias/sebt-portal-dc/development/bastion]
module.vpc.module.vpc.aws_default_network_acl.this[0]: Refreshing state... [id=acl-03fe4c8e4cfeee863]
module.vpc.module.vpc.aws_default_security_group.this[0]: Refreshing state... [id=sg-0438a8bd6702d454b]
module.vpc.module.vpc.aws_default_route_table.default[0]: Refreshing state... [id=rtb-0278b420ff87850df]
module.app.module.web.aws_kms_alias.fargate: Refreshing state... [id=alias/sebt-portal-dc/development/web]
module.logging.module.s3.data.aws_iam_policy_document.combined: Reading...
module.logging.module.s3.data.aws_iam_policy_document.combined: Read complete after 0s [id=1902672782]
module.app.module.redis.aws_secretsmanager_secret_version.auth_token: Refreshing state... [id=arn:aws:secretsmanager:us-east-1:382156381095:secret:sebt-portal-dc-development-redis-auth-token-OugQxX|terraform-qPHnmtHPM5aJMsIFNE7bzUNVrb]
module.vpc.module.vpc.aws_internet_gateway.this[0]: Refreshing state... [id=igw-0f5f9331439c57e0e]
module.app.module.api.aws_ssm_parameter.otel_config: Refreshing state... [id=/sebt-portal-dc/development/api/otel]
module.app.module.api.aws_iam_policy.appconfig["this"]: Refreshing state... [id=arn:aws:iam::382156381095:policy/sebt-portal-dc-development-api-appconfig]
module.vpc.module.vpc.aws_route_table.public[0]: Refreshing state... [id=rtb-0376ad602af7cc7bc]
module.vpc.module.vpc.aws_subnet.public[0]: Refreshing state... [id=subnet-09b25082bc6938853]
module.vpc.module.vpc.aws_subnet.public[1]: Refreshing state... [id=subnet-06a8110ca599eb013]
module.app.data.aws_lambda_function.datadog["this"]: Read complete after 1s [id=DatadogIntegration-ForwarderStack-1PQDD0-Forwarder-4ePp3oGyUnhq]
module.vpc.module.vpc.aws_subnet.public[2]: Refreshing state... [id=subnet-0ec93c6d65c987400]
module.vpc.module.vpc.aws_subnet.private[1]: Refreshing state... [id=subnet-0f036da4082ff6e28]
module.vpc.module.vpc.aws_subnet.private[2]: Refreshing state... [id=subnet-0bd46cf8067c947f6]
module.vpc.module.vpc.aws_subnet.private[0]: Refreshing state... [id=subnet-0c6242f4dce650e92]
module.logging.module.s3.aws_s3_bucket_policy.main: Refreshing state... [id=sebt-portal-dc-development-logs]
module.logging.aws_kms_alias.logs: Refreshing state... [id=alias/sebt-portal-dc/development/logs]
module.logging.aws_cloudwatch_log_group.logs["waf"]: Refreshing state... [id=aws-waf-logs-cfa/sebt-portal-dc/development]
module.logging.data.aws_lambda_function.datadog["this"]: Read complete after 1s [id=DatadogIntegration-ForwarderStack-1PQDD0-Forwarder-4ePp3oGyUnhq]
module.app.module.ses.aws_secretsmanager_secret_rotation.smtp: Refreshing state... [id=arn:aws:secretsmanager:us-east-1:382156381095:secret:sebt-portal-dc-development-ses-smtp-credentials-27jZOh]
module.app.module.ses.aws_lambda_permission.secrets_manager: Refreshing state... [id=AllowSecretsManagerInvocation]
module.app.module.ses.aws_route53_record.ses_verification: Refreshing state... [id=Z099642439GM3YJ1G5DMR__amazonses.dev.dc.sebt-portal.codeforamerica.app_TXT]
module.app.module.ses.aws_route53_record.mx_mail_from: Refreshing state... [id=Z099642439GM3YJ1G5DMR_bounce.dev.dc.sebt-portal.codeforamerica.app_MX]
module.app.module.ses.aws_route53_record.dkim[0]: Refreshing state... [id=Z099642439GM3YJ1G5DMR_lq3g2pprib6se7isrpwq7tw7odxjhx2n._domainkey.dev.dc.sebt-portal.codeforamerica.app_CNAME]
module.app.module.ses.aws_route53_record.dkim[1]: Refreshing state... [id=Z099642439GM3YJ1G5DMR_j3d7nyk5tgi2nww6iypap36bqfw5znsi._domainkey.dev.dc.sebt-portal.codeforamerica.app_CNAME]
module.app.module.ses.aws_route53_record.dkim[2]: Refreshing state... [id=Z099642439GM3YJ1G5DMR_ivgcxgm7nlpp5njkuq6nklpqomxj6r76._domainkey.dev.dc.sebt-portal.codeforamerica.app_CNAME]
module.app.module.ses.aws_route53_record.dmarc: Refreshing state... [id=Z099642439GM3YJ1G5DMR__dmarc.dev.dc.sebt-portal.codeforamerica.app_TXT]
module.app.module.ses.aws_route53_record.spf_mail_from: Refreshing state... [id=Z099642439GM3YJ1G5DMR_bounce.dev.dc.sebt-portal.codeforamerica.app_TXT]
module.app.module.api.aws_iam_policy.execution: Refreshing state... [id=arn:aws:iam::382156381095:policy/sebt-portal-dc-development-api-execution]
module.vpc.module.vpc.aws_route_table.private[0]: Refreshing state... [id=rtb-094d6b219a46987c0]
module.vpc.module.vpc.aws_eip.nat[0]: Refreshing state... [id=eipalloc-0b0a0cf8d9d8ad3e3]
module.vpc.module.vpc.aws_route.public_internet_gateway[0]: Refreshing state... [id=r-rtb-0376ad602af7cc7bc1080289494]
module.app.module.secrets.module.secrets_manager["smarty"].aws_secretsmanager_secret.this[0]: Refreshing state... [id=arn:aws:secretsmanager:us-east-1:382156381095:secret:sebt-portal-dc/development/api/smarty-20260416194325121900000003-yoIXy5]
module.app.module.secrets.module.secrets_manager["auth"].aws_secretsmanager_secret.this[0]: Refreshing state... [id=arn:aws:secretsmanager:us-east-1:382156381095:secret:sebt-portal-dc/development/api/auth-20260416194325120600000001-tmp6i4]
module.vpc.module.endpoints.aws_security_group.this[0]: Refreshing state... [id=sg-0409795f746797b00]
module.state_secrets.module.secrets_manager["socure"].aws_secretsmanager_secret.this[0]: Refreshing state... [id=arn:aws:secretsmanager:us-east-1:382156381095:secret:sebt-portal-dc/development/state-secrets/socure-20260416194337990300000007-GWe7oD]
module.state_secrets.module.secrets_manager["pii_encryption"].aws_secretsmanager_secret.this[0]: Refreshing state... [id=arn:aws:secretsmanager:us-east-1:382156381095:secret:sebt-portal-dc/development/state-secrets/pii_encryption-03b088d6ca47eff3265e54e7c5-4UpizQ]
module.app.module.web.aws_route53_record.endpoint_validation["origin.dev.dc.sebt-portal.codeforamerica.app"]: Refreshing state... [id=Z099642439GM3YJ1G5DMR__08a94d6767534b48bf7e060b53a11b56.origin.dev.dc.sebt-portal.codeforamerica.app._CNAME]
module.vpc.module.vpc.aws_route_table_association.public[0]: Refreshing state... [id=rtbassoc-0d5c37174c7c68499]
module.vpc.module.vpc.aws_route_table_association.public[1]: Refreshing state... [id=rtbassoc-0109a18cbe52fc926]
module.vpc.module.vpc.aws_route_table_association.public[2]: Refreshing state... [id=rtbassoc-03439bf16878a81ef]
module.app.module.api.aws_route53_record.endpoint_validation["api.dev.dc.sebt-portal.codeforamerica.app"]: Refreshing state... [id=Z099642439GM3YJ1G5DMR__19ee8f977989ce98b6a8bfa4f94ad08c.api.dev.dc.sebt-portal.codeforamerica.app._CNAME]
module.logging.aws_cloudwatch_log_subscription_filter.datadog["waf"]: Refreshing state... [id=cwlsf-4068264731]
module.vpc.module.vpc.aws_route_table_association.private[1]: Refreshing state... [id=rtbassoc-069e9655e2a2f0cc5]
module.vpc.module.vpc.aws_route_table_association.private[2]: Refreshing state... [id=rtbassoc-024b0f7d0c188801f]
module.vpc.module.vpc.aws_route_table_association.private[0]: Refreshing state... [id=rtbassoc-0345ab7955792e118]
module.app.module.web.aws_iam_policy.secrets: Refreshing state... [id=arn:aws:iam::382156381095:policy/sebt-portal-dc-development-web-secrets-access-2026022606425388580000000f]
module.logging.module.s3.aws_s3_bucket_lifecycle_configuration.main[0]: Refreshing state... [id=sebt-portal-dc-development-logs]
module.vpc.module.endpoints.aws_security_group_rule.this["ingress_https"]: Refreshing state... [id=sgrule-2264104593]
module.vpc.data.aws_subnets.endpoints["ssmmessages"]: Reading...
module.vpc.data.aws_subnets.endpoints["ecr.dkr"]: Reading...
module.vpc.data.aws_subnets.endpoints["guardduty-data"]: Reading...
module.vpc.data.aws_subnets.endpoints["ssm"]: Reading...
module.vpc.data.aws_subnets.endpoints["ssm-incidents"]: Reading...
module.vpc.data.aws_subnets.endpoints["ssm-contacts"]: Reading...
module.vpc.data.aws_subnets.endpoints["ec2messages"]: Reading...
module.vpc.data.aws_subnets.endpoints["ecr.api"]: Reading...
module.vpc.data.aws_subnets.endpoints["ssmmessages"]: Read complete after 1s [id=us-east-1]
module.vpc.data.aws_subnets.endpoints["ec2"]: Reading...
module.vpc.data.aws_subnets.endpoints["ecr.dkr"]: Read complete after 1s [id=us-east-1]
module.app.module.web.aws_iam_policy.execution: Refreshing state... [id=arn:aws:iam::382156381095:policy/sebt-portal-dc-development-web-execution]
module.app.module.secrets.module.secrets_manager["smarty"].aws_secretsmanager_secret_version.ignore_changes[0]: Refreshing state... [id=arn:aws:secretsmanager:us-east-1:382156381095:secret:sebt-portal-dc/development/api/smarty-20260416194325121900000003-yoIXy5|terraform-20260416194325472900000006]
module.vpc.data.aws_subnets.endpoints["guardduty-data"]: Read complete after 0s [id=us-east-1]
module.app.module.secrets.module.secrets_manager["auth"].aws_secretsmanager_secret_version.ignore_changes[0]: Refreshing state... [id=arn:aws:secretsmanager:us-east-1:382156381095:secret:sebt-portal-dc/development/api/auth-20260416194325120600000001-tmp6i4|terraform-20260416194325470000000005]
module.vpc.data.aws_subnets.endpoints["ssm"]: Read complete after 0s [id=us-east-1]
module.vpc.data.aws_subnets.endpoints["ssm-contacts"]: Read complete after 0s [id=us-east-1]
module.dc_source_seed.aws_cloudwatch_log_group.task: Refreshing state... [id=/ecs/sebt-portal-dc-development-dc-source-seed]
module.vpc.module.vpc.aws_nat_gateway.this[0]: Refreshing state... [id=nat-0e159cc8ac6757246]
module.vpc.data.aws_subnets.endpoints["ssm-incidents"]: Read complete after 0s [id=us-east-1]
module.state_secrets.module.secrets_manager["socure"].aws_secretsmanager_secret_version.ignore_changes[0]: Refreshing state... [id=arn:aws:secretsmanager:us-east-1:382156381095:secret:sebt-portal-dc/development/state-secrets/socure-20260416194337990300000007-GWe7oD|terraform-20260416194338267200000009]
module.vpc.data.aws_subnets.endpoints["ec2messages"]: Read complete after 0s [id=us-east-1]
module.state_secrets.module.secrets_manager["pii_encryption"].aws_secretsmanager_secret_version.ignore_changes[0]: Refreshing state... [id=arn:aws:secretsmanager:us-east-1:382156381095:secret:sebt-portal-dc/development/state-secrets/pii_encryption-03b088d6ca47eff3265e54e7c5-4UpizQ|terraform-Ojrnwrsx94kPj4NzM6a65OEyBQ]
module.vpc.data.aws_subnets.endpoints["ecr.api"]: Read complete after 0s [id=us-east-1]
module.app.module.web.aws_acm_certificate_validation.endpoint["this"]: Refreshing state... [id=2026-02-26 06:42:54.104 +0000 UTC]
module.vpc.data.aws_subnets.endpoints["ec2"]: Read complete after 0s [id=us-east-1]
module.app.module.api.aws_acm_certificate_validation.endpoint["this"]: Refreshing state... [id=2026-02-26 06:42:42.263 +0000 UTC]
module.app.module.web.aws_iam_role_policy_attachments_exclusive.execution: Refreshing state...
module.app.module.web.aws_iam_role_policy_attachments_exclusive.task: Refreshing state...
module.app.module.database.aws_security_group.rotation_lambda: Refreshing state... [id=sg-0ea3b529f32cc379f]
module.bastion.module.security_group.aws_security_group.this_name_prefix[0]: Refreshing state... [id=sg-0711302d55769ffea]
module.app.module.database.aws_security_group.database: Refreshing state... [id=sg-023f096dd98694bc3]
module.app.module.api.data.aws_vpc.current: Reading...
module.app.module.redis.aws_security_group.redis: Refreshing state... [id=sg-05361c9fded669857]
module.app.module.web.data.aws_vpc.current: Reading...
module.vpc.module.vpc.aws_route.private_nat_gateway[0]: Refreshing state... [id=r-rtb-094d6b219a46987c01080289494]
module.app.module.api.aws_cloudwatch_log_group.this["service"]: Refreshing state... [id=/aws/ecs/sebt-portal-dc/development/api]
module.app.module.database.aws_cloudwatch_log_group.agent: Refreshing state... [id=/aws/rds/instance/sebt-portal-dc-development-db/agent]
module.app.module.database.aws_cloudwatch_log_group.rotation_lambda: Refreshing state... [id=/aws/lambda/sebt-portal-dc-development-db-rotation]
module.bastion.random_shuffle.subnet: Refreshing state... [id=-]
module.app.module.database.aws_cloudwatch_log_group.error: Refreshing state... [id=/aws/rds/instance/sebt-portal-dc-development-db/error]
module.vpc.module.vpc.aws_cloudwatch_log_group.flow_log[0]: Refreshing state... [id=/aws/vpc-flow-log/vpc-01fb1a10ad1f6cc36]
module.app.module.web.aws_cloudwatch_log_group.this["service"]: Refreshing state... [id=/aws/ecs/sebt-portal-dc/development/web]
module.app.module.web.module.prefix_security_group["this"].aws_security_group.this_name_prefix[0]: Refreshing state... [id=sg-007584e9674a55cc3]
module.app.module.web.module.endpoint_security_group.aws_security_group.this_name_prefix[0]: Refreshing state... [id=sg-0b86ebb5fa6843585]
module.app.module.web.module.task_security_group.aws_security_group.this_name_prefix[0]: Refreshing state... [id=sg-004f357f095a33de3]
module.app.module.web.module.alb["this"].aws_lb_target_group.this["endpoint"]: Refreshing state... [id=arn:aws:elasticloadbalancing:us-east-1:382156381095:targetgroup/sebt-development-web-app/fae0330e3876b715]
module.app.module.web.module.alb["this"].aws_security_group.this[0]: Refreshing state... [id=sg-053f9b450b7b32bf0]
module.app.module.database.aws_security_group_rule.rotation_lambda_egress_https: Refreshing state... [id=sgrule-1224416778]
module.app.module.api.module.endpoint_security_group.aws_security_group.this_name_prefix[0]: Refreshing state... [id=sg-0df3a41a95f89b362]
module.app.module.api.module.alb["this"].aws_lb_target_group.this["endpoint"]: Refreshing state... [id=arn:aws:elasticloadbalancing:us-east-1:382156381095:targetgroup/sebt-development-api-app/5c17561ece9aa129]
module.app.module.api.module.alb["this"].aws_security_group.this[0]: Refreshing state... [id=sg-0ce7b0809867b7270]
module.app.module.database.aws_security_group_rule.db_ingress_rotation_lambda: Refreshing state... [id=sgrule-533216632]
module.app.module.database.aws_security_group_rule.rotation_lambda_egress_db: Refreshing state... [id=sgrule-2872209574]
module.app.module.api.data.aws_vpc.current: Read complete after 0s [id=vpc-01fb1a10ad1f6cc36]
module.app.module.redis.aws_elasticache_subnet_group.main: Refreshing state... [id=sebt-portal-dc-development-redis-subnet-group]
module.app.module.database.aws_db_subnet_group.main: Refreshing state... [id=sebt-portal-dc-development-db-subnet-group]
module.bastion.module.security_group.aws_security_group_rule.egress_rules[0]: Refreshing state... [id=sgrule-4175170921]
module.bastion.aws_instance.this: Refreshing state... [id=i-0e619aa066eb7921e]
module.app.module.web.module.prefix_security_group["this"].aws_security_group_rule.ingress_rules[0]: Refreshing state... [id=sgrule-139445643]
module.app.module.web.module.task_security_group.aws_security_group_rule.egress_rules[0]: Refreshing state... [id=sgrule-3393881033]
module.vpc.module.vpc.aws_flow_log.this[0]: Refreshing state... [id=fl-096b45d6b1fac0137]
module.app.module.web.data.aws_vpc.current: Read complete after 1s [id=vpc-01fb1a10ad1f6cc36]
module.vpc.module.vpc.data.aws_iam_policy_document.vpc_flow_log_cloudwatch[0]: Reading...
module.vpc.module.vpc.data.aws_iam_policy_document.vpc_flow_log_cloudwatch[0]: Read complete after 0s [id=2181973308]
module.vpc.module.endpoints.data.aws_vpc_endpoint_service.this["ssm"]: Reading...
module.vpc.module.endpoints.data.aws_vpc_endpoint_service.this["ssm-incidents"]: Reading...
module.vpc.module.endpoints.data.aws_vpc_endpoint_service.this["ec2messages"]: Reading...
module.vpc.module.endpoints.data.aws_vpc_endpoint_service.this["ecr.dkr"]: Reading...
module.vpc.module.endpoints.data.aws_vpc_endpoint_service.this["ssm"]: Read complete after 0s [id=874300523]
module.vpc.module.endpoints.data.aws_vpc_endpoint_service.this["s3"]: Reading...
module.vpc.module.endpoints.data.aws_vpc_endpoint_service.this["ec2"]: Reading...
module.vpc.module.endpoints.data.aws_vpc_endpoint_service.this["ssm-incidents"]: Read complete after 0s [id=3798321550]
module.vpc.module.endpoints.data.aws_vpc_endpoint_service.this["ecr.api"]: Reading...
module.vpc.module.endpoints.data.aws_vpc_endpoint_service.this["guardduty-data"]: Reading...
module.vpc.module.endpoints.data.aws_vpc_endpoint_service.this["ssm-contacts"]: Reading...
module.vpc.module.endpoints.data.aws_vpc_endpoint_service.this["ssmmessages"]: Reading...
module.vpc.module.endpoints.data.aws_vpc_endpoint_service.this["ecr.dkr"]: Read complete after 0s [id=1314884315]
module.app.aws_cloudwatch_log_subscription_filter.datadog["database-agent"]: Refreshing state... [id=cwlsf-57562143]
module.vpc.module.endpoints.data.aws_vpc_endpoint_service.this["s3"]: Read complete after 0s [id=195798706]
module.app.aws_cloudwatch_log_subscription_filter.datadog["database-error"]: Refreshing state... [id=cwlsf-2863246444]
module.vpc.module.endpoints.data.aws_vpc_endpoint_service.this["ecr.api"]: Read complete after 0s [id=1808222790]
module.vpc.module.vpc.aws_iam_policy.vpc_flow_log_cloudwatch[0]: Refreshing state... [id=arn:aws:iam::382156381095:policy/vpc-flow-log-to-cloudwatch-20260226064255546800000017]
module.vpc.module.endpoints.data.aws_vpc_endpoint_service.this["ec2"]: Read complete after 0s [id=2644592029]
module.app.module.api.module.endpoint_security_group.aws_security_group_rule.ingress_rules[1]: Refreshing state... [id=sgrule-1137939634]
module.vpc.module.endpoints.data.aws_vpc_endpoint_service.this["guardduty-data"]: Read complete after 0s [id=3795168285]
module.app.module.api.module.endpoint_security_group.aws_security_group_rule.ingress_rules[0]: Refreshing state... [id=sgrule-803642062]
module.vpc.module.endpoints.data.aws_vpc_endpoint_service.this["ssm-contacts"]: Read complete after 0s [id=3701104373]
module.vpc.module.endpoints.data.aws_vpc_endpoint_service.this["ssmmessages"]: Read complete after 0s [id=1315226949]
module.app.module.api.module.endpoint_security_group.aws_security_group_rule.egress_rules[0]: Refreshing state... [id=sgrule-1597936268]
module.app.module.database.aws_db_instance.main: Refreshing state... [id=db-3UP3UVPGJXVBEKOPIAMU3BFDUQ]
module.app.module.web.module.task_security_group.aws_security_group_rule.ingress_with_source_security_group_id[0]: Refreshing state... [id=sgrule-2020654350]
module.app.module.web.module.alb["this"].aws_lb.this[0]: Refreshing state... [id=arn:aws:elasticloadbalancing:us-east-1:382156381095:loadbalancer/app/sebt-development-web/047fda3ce1cc1fe6]
module.app.module.web.module.endpoint_security_group.aws_security_group_rule.egress_rules[0]: Refreshing state... [id=sgrule-3646936215]
module.vpc.module.endpoints.data.aws_vpc_endpoint_service.this["ec2messages"]: Read complete after 0s [id=2187510914]
module.app.module.web.module.endpoint_security_group.aws_security_group_rule.ingress_rules[0]: Refreshing state... [id=sgrule-3571609149]
module.app.module.web.module.endpoint_security_group.aws_security_group_rule.ingress_rules[1]: Refreshing state... [id=sgrule-3331517389]
module.app.module.redis.aws_elasticache_replication_group.main: Refreshing state... [id=sebt-portal-dc-development-redis]
module.vpc.module.endpoints.aws_vpc_endpoint.this["ssmmessages"]: Refreshing state... [id=vpce-0770ed769eefb4797]
module.vpc.module.endpoints.aws_vpc_endpoint.this["s3"]: Refreshing state... [id=vpce-09dcd6d2a82a53263]
module.vpc.module.endpoints.aws_vpc_endpoint.this["ssm-incidents"]: Refreshing state... [id=vpce-0ec523f73506a6291]
module.vpc.module.endpoints.aws_vpc_endpoint.this["ecr.dkr"]: Refreshing state... [id=vpce-0f3d22c3b3529c229]
module.vpc.module.endpoints.aws_vpc_endpoint.this["ssm-contacts"]: Refreshing state... [id=vpce-0dd08d3f7fbcd2fb6]
module.vpc.module.endpoints.aws_vpc_endpoint.this["ecr.api"]: Refreshing state... [id=vpce-0d4ec787552926e4d]
module.vpc.module.endpoints.aws_vpc_endpoint.this["ssm"]: Refreshing state... [id=vpce-05e47026619464630]
module.vpc.module.endpoints.aws_vpc_endpoint.this["ec2"]: Refreshing state... [id=vpce-07703ee6d10ad7daa]
module.vpc.module.endpoints.aws_vpc_endpoint.this["guardduty-data"]: Refreshing state... [id=vpce-0f5d362a5cdfcd3bf]
module.vpc.module.endpoints.aws_vpc_endpoint.this["ec2messages"]: Refreshing state... [id=vpce-0b6a2aec4168bc930]
module.app.module.api.module.alb["this"].aws_lb.this[0]: Refreshing state... [id=arn:aws:elasticloadbalancing:us-east-1:382156381095:loadbalancer/app/sebt-development-api/189f37944ccc954a]
module.vpc.module.vpc.aws_iam_role_policy_attachment.vpc_flow_log_cloudwatch[0]: Refreshing state... [id=vpc-flow-log-role-20260226064209208000000004/arn:aws:iam::382156381095:policy/vpc-flow-log-to-cloudwatch-20260226064255546800000017]
module.app.module.api.aws_iam_policy.secrets: Refreshing state... [id=arn:aws:iam::382156381095:policy/sebt-portal-dc-development-api-secrets-access-20260226071124729800000024]
module.app.module.database.aws_iam_role_policy.rotation_lambda: Refreshing state... [id=sebt-portal-dc-development-db-rotation:db-rotation]
module.app.module.database.aws_secretsmanager_secret_version.app_user_initial: Refreshing state... [id=arn:aws:secretsmanager:us-east-1:382156381095:secret:sebt-portal-dc-development-db-app-user-yrRiwg|terraform-jUfxve7D8o8dlHK1AVBa32iGoY]
module.app.module.database.aws_lambda_function.rotation: Refreshing state... [id=sebt-portal-dc-development-db-rotation]
module.app.module.web.module.alb["this"].aws_lb_listener.this["http"]: Refreshing state... [id=arn:aws:elasticloadbalancing:us-east-1:382156381095:listener/app/sebt-development-web/047fda3ce1cc1fe6/24a9e05f5dc81b30]
module.app.module.web.module.alb["this"].aws_lb_listener.this["https"]: Refreshing state... [id=arn:aws:elasticloadbalancing:us-east-1:382156381095:listener/app/sebt-development-web/047fda3ce1cc1fe6/b6a2b1fd9a595e3e]
module.app.module.api.module.task_security_group.aws_security_group.this_name_prefix[0]: Refreshing state... [id=sg-0e519b6eb305882a0]
module.app.module.api.aws_iam_role_policy_attachments_exclusive.execution: Refreshing state...
module.app.module.api.aws_iam_role_policy_attachments_exclusive.task: Refreshing state...
module.app.module.web.aws_route53_record.endpoint["this"]: Refreshing state... [id=Z099642439GM3YJ1G5DMR_origin.dev.dc.sebt-portal.codeforamerica.app_A]
module.app.module.api.module.alb["this"].aws_lb_listener.this["https"]: Refreshing state... [id=arn:aws:elasticloadbalancing:us-east-1:382156381095:listener/app/sebt-development-api/189f37944ccc954a/c24439d9fda5ae13]
module.app.module.api.module.alb["this"].aws_lb_listener.this["http"]: Refreshing state... [id=arn:aws:elasticloadbalancing:us-east-1:382156381095:listener/app/sebt-development-api/189f37944ccc954a/66c8e3d130180e0e]
module.app.module.api.aws_route53_record.endpoint["this"]: Refreshing state... [id=Z099642439GM3YJ1G5DMR_api.dev.dc.sebt-portal.codeforamerica.app_A]
module.app.module.api.module.task_security_group.aws_security_group_rule.egress_rules[0]: Refreshing state... [id=sgrule-1198318042]
module.app.module.api.module.task_security_group.aws_security_group_rule.ingress_with_source_security_group_id[0]: Refreshing state... [id=sgrule-1506675781]
module.app.module.cloudfront_waf.data.aws_cloudfront_response_headers_policy.policy: Reading...
module.app.module.cloudfront_waf.data.aws_cloudfront_cache_policy.policy: Reading...
module.dc_source_seed.aws_ecs_task_definition.this: Refreshing state... [id=sebt-portal-dc-development-dc-source-seed]
module.dc_source_seed.aws_iam_role_policy.task_secrets: Refreshing state... [id=sebt-portal-dc-development-dc-source-seed-execution:sebt-portal-dc-development-dc-source-seed-secrets]
module.app.module.database.aws_lambda_permission.secrets_manager: Refreshing state... [id=AllowSecretsManagerInvocation]
module.app.module.cloudfront_waf.data.aws_cloudfront_origin_request_policy.policy: Reading...
module.app.module.cloudfront_waf.terraform_data.origin_alb: Refreshing state... [id=fc22f524-b83a-4607-7328-ac533f323882]
module.app.module.cloudfront_waf.data.aws_lb_listener.origin["this"]: Reading...
module.app.module.cloudfront_waf.data.aws_lb.origin["this"]: Reading...
module.app.module.cloudfront_waf.terraform_data.prefix: Refreshing state... [id=f5f78e98-e8e2-2612-7c0c-b772869a0cab]
module.app.module.redis.aws_security_group_rule.this["ingress_sg_0"]: Refreshing state... [id=sgrule-2967512032]
module.app.module.database.aws_security_group_rule.this["ingress_cidrs"]: Refreshing state... [id=sgrule-1137597560]
module.app.module.database.aws_security_group_rule.this["ingress_sg_0"]: Refreshing state... [id=sgrule-2718927651]
module.app.module.cloudfront_waf.data.aws_lb_listener.origin["this"]: Read complete after 0s [id=arn:aws:elasticloadbalancing:us-east-1:382156381095:listener/app/sebt-development-web/047fda3ce1cc1fe6/b6a2b1fd9a595e3e]
module.app.module.cloudfront_waf.aws_acm_certificate.subdomain: Refreshing state... [id=arn:aws:acm:us-east-1:382156381095:certificate/4cc9acbf-fde7-4d34-87df-3c607dc9eb34]
module.app.module.database.aws_secretsmanager_secret_rotation.app_user: Refreshing state... [id=arn:aws:secretsmanager:us-east-1:382156381095:secret:sebt-portal-dc-development-db-app-user-yrRiwg]
module.app.module.cloudfront_waf.data.aws_cloudfront_response_headers_policy.policy: Read complete after 1s [id=60669652-455b-4ae9-85a4-c4c02393f86c]
module.app.module.cloudfront_waf.aws_cloudfront_vpc_origin.this["this"]: Refreshing state... [id=vo_1alVSFMEk4uFBbNmXS4dNY]
module.app.module.cloudfront_waf.data.aws_cloudfront_cache_policy.policy: Read complete after 1s [id=4135ea2d-6df8-44a3-9df3-4b5a84be39ad]
module.app.module.cloudfront_waf.data.aws_lb.origin["this"]: Read complete after 0s [id=arn:aws:elasticloadbalancing:us-east-1:382156381095:loadbalancer/app/sebt-development-web/047fda3ce1cc1fe6]
module.app.module.web.module.ecs_service.module.fargate.module.task.aws_ecs_task_definition.main[0]: Refreshing state... [id=sebt-portal-dc-development-web]
module.app.module.api.module.ecs_service.module.fargate.module.task.aws_ecs_task_definition.main[0]: Refreshing state... [id=sebt-portal-dc-development-api]
module.app.module.cloudfront_waf.aws_wafv2_rule_group.webhooks["this"]: Refreshing state... [id=62e4132b-ed04-439d-b7d1-36101a484ee0]
module.app.module.cloudfront_waf.data.aws_cloudfront_origin_request_policy.policy: Read complete after 0s [id=216adef6-5c7f-47e4-b989-5492eafa07d3]
module.app.module.web.module.ecs_service.module.fargate.aws_ecs_service.main[0]: Refreshing state... [id=arn:aws:ecs:us-east-1:382156381095:service/sebt-portal-dc-development-web/sebt-portal-dc-development-web]
module.app.module.cloudfront_waf.aws_route53_record.validation["dev.dc.sebt-portal.codeforamerica.app"]: Refreshing state... [id=Z099642439GM3YJ1G5DMR__ffd7cfd855150ab19fbb5d4e82676bed.dev.dc.sebt-portal.codeforamerica.app._CNAME]
module.app.module.cloudfront_waf.aws_lb_listener_certificate.origin["this"]: Refreshing state... [id=arn:aws:elasticloadbalancing:us-east-1:382156381095:listener/app/sebt-development-web/047fda3ce1cc1fe6/b6a2b1fd9a595e3e_arn:aws:acm:us-east-1:382156381095:certificate/4cc9acbf-fde7-4d34-87df-3c607dc9eb34]
module.app.module.api.module.ecs_service.module.fargate.aws_ecs_service.main[0]: Refreshing state... [id=arn:aws:ecs:us-east-1:382156381095:service/sebt-portal-dc-development-api/sebt-portal-dc-development-api]
module.app.module.cloudfront_waf.aws_acm_certificate_validation.validation: Refreshing state... [id=2026-02-26 06:46:18.798 +0000 UTC]
module.app.module.cloudfront_waf.aws_wafv2_web_acl.waf: Refreshing state... [id=9ad50ebd-b363-4dde-9741-c95c4c49dc22]
module.app.module.cloudfront_waf.aws_wafv2_web_acl_logging_configuration.waf: Refreshing state... [id=arn:aws:wafv2:us-east-1:382156381095:global/webacl/sebt-portal-dc-development/9ad50ebd-b363-4dde-9741-c95c4c49dc22]
module.app.module.cloudfront_waf.aws_cloudfront_distribution.waf: Refreshing state... [id=ECZGG0ZHBJWDV]
module.app.module.cloudfront_waf.aws_route53_record.subdomain: Refreshing state... [id=Z099642439GM3YJ1G5DMR_dev.dc.sebt-portal.codeforamerica.app_A]

OpenTofu used the selected providers to generate the following execution
plan. Resource actions are indicated with the following symbols:
  ~ update in-place
+/- create replacement and then destroy

OpenTofu will perform the following actions:

  # module.app.module.database.aws_lambda_function.rotation will be updated in-place
  ~ resource "aws_lambda_function" "rotation" {
        id                             = "sebt-portal-dc-development-db-rotation"
      ~ last_modified                  = "2026-07-20T20:37:55.000+0000" -> (known after apply)
      ~ source_code_hash               = "Xsxmjh86o0TulYsQVLJfLxesE2ooSVKzmPW5twOp/SI=" -> "MXqmWvXEFYBcw21XDlohQTvPMPHtdTvcETJa9yVxL3A="
        tags                           = {
            "Name" = "sebt-portal-dc-development-db-rotation"
        }
        # (24 unchanged attributes hidden)

      ~ environment {
          ~ variables = {
              + "ADDITIONAL_DB_NAMES" = "DcSource"
                # (6 unchanged elements hidden)
            }
        }

        # (4 unchanged blocks hidden)
    }

  # module.app.module.api.module.ecs_service.module.fargate.aws_ecs_service.main[0] will be updated in-place
  ~ resource "aws_ecs_service" "main" {
        id                                 = "arn:aws:ecs:us-east-1:382156381095:service/sebt-portal-dc-development-api/sebt-portal-dc-development-api"
        name                               = "sebt-portal-dc-development-api"
        tags                               = {}
      ~ task_definition                    = "arn:aws:ecs:us-east-1:382156381095:task-definition/sebt-portal-dc-development-api:350" -> (known after apply)
        # (20 unchanged attributes hidden)

        # (5 unchanged blocks hidden)
    }

  # module.app.module.web.module.ecs_service.module.fargate.aws_ecs_service.main[0] will be updated in-place
  ~ resource "aws_ecs_service" "main" {
        id                                 = "arn:aws:ecs:us-east-1:382156381095:service/sebt-portal-dc-development-web/sebt-portal-dc-development-web"
        name                               = "sebt-portal-dc-development-web"
        tags                               = {}
      ~ task_definition                    = "arn:aws:ecs:us-east-1:382156381095:task-definition/sebt-portal-dc-development-web:350" -> (known after apply)
        # (20 unchanged attributes hidden)

        # (5 unchanged blocks hidden)
    }

  # module.app.module.api.module.ecs_service.module.fargate.module.task.aws_ecs_task_definition.main[0] must be replaced
+/- resource "aws_ecs_task_definition" "main" {
      ~ arn                      = "arn:aws:ecs:us-east-1:382156381095:task-definition/sebt-portal-dc-development-api:350" -> (known after apply)
      ~ arn_without_revision     = "arn:aws:ecs:us-east-1:382156381095:task-definition/sebt-portal-dc-development-api" -> (known after apply)
      ~ container_definitions    = jsonencode(
          ~ [
              ~ {
                  - mountPoints      = []
                    name             = "appconfig-agent"
                  ~ portMappings     = [
                      ~ {
                          - hostPort      = 2772
                          - protocol      = "tcp"
                            # (1 unchanged attribute hidden)
                        },
                    ]
                  - systemControls   = []
                  - volumesFrom      = []
                    # (4 unchanged attributes hidden)
                },
              ~ {
                  - mountPoints      = []
                    name             = "otel-collector"
                  - portMappings     = []
                  - systemControls   = []
                  - volumesFrom      = []
                    # (8 unchanged attributes hidden)
                },
              ~ {
                  ~ image             = "382156381095.dkr.ecr.us-east-1.amazonaws.com/sebt-portal-dc-development-api:e8cf4153d7ab3fd56471dea30b6aa227bac26468" -> "382156381095.dkr.ecr.us-east-1.amazonaws.com/sebt-portal-dc-development-api:a0e35ace1b5fb296f4b23e6f6608815aa82bd945"
                  - mountPoints       = []
                    name              = "sebt-portal-dc-development-api"
                  ~ portMappings      = [
                      ~ {
                          - hostPort      = 8080
                          - protocol      = "tcp"
                            # (1 unchanged attribute hidden)
                        },
                    ]
                  - systemControls    = []
                  - volumesFrom       = []
                    # (9 unchanged attributes hidden)
                },
            ] # forces replacement
        )
      ~ id                       = "sebt-portal-dc-development-api" -> (known after apply)
      ~ revision                 = 350 -> (known after apply)
      - tags                     = {} -> null
        # (12 unchanged attributes hidden)
    }

  # module.app.module.web.module.ecs_service.module.fargate.module.task.aws_ecs_task_definition.main[0] must be replaced
+/- resource "aws_ecs_task_definition" "main" {
      ~ arn                      = "arn:aws:ecs:us-east-1:382156381095:task-definition/sebt-portal-dc-development-web:350" -> (known after apply)
      ~ arn_without_revision     = "arn:aws:ecs:us-east-1:382156381095:task-definition/sebt-portal-dc-development-web" -> (known after apply)
      ~ container_definitions    = jsonencode(
          ~ [
              ~ {
                  - mountPoints      = []
                    name             = "otel-collector"
                  - portMappings     = []
                  - systemControls   = []
                  - volumesFrom      = []
                    # (8 unchanged attributes hidden)
                },
              ~ {
                  ~ image             = "382156381095.dkr.ecr.us-east-1.amazonaws.com/sebt-portal-dc-development-web:e8cf4153d7ab3fd56471dea30b6aa227bac26468" -> "382156381095.dkr.ecr.us-east-1.amazonaws.com/sebt-portal-dc-development-web:a0e35ace1b5fb296f4b23e6f6608815aa82bd945"
                  - mountPoints       = []
                    name              = "sebt-portal-dc-development-web"
                  ~ portMappings      = [
                      ~ {
                          - hostPort      = 3000
                          - protocol      = "tcp"
                            # (1 unchanged attribute hidden)
                        },
                    ]
                  - systemControls    = []
                  - volumesFrom       = []
                    # (7 unchanged attributes hidden)
                },
            ] # forces replacement
        )
      ~ id                       = "sebt-portal-dc-development-web" -> (known after apply)
      ~ revision                 = 350 -> (known after apply)
      - tags                     = {} -> null
        # (12 unchanged attributes hidden)
    }

Plan: 2 to add, 3 to change, 2 to destroy.

Warning: Deprecated attribute

  on .terraform/modules/app.api/iam.tf line 96, in resource "aws_iam_policy" "appconfig":
  96:           data.aws_region.current.name,

The attribute "name" is deprecated. Refer to the provider documentation for
details.

(and 49 more similar warnings elsewhere)

─────────────────────────────────────────────────────────────────────────────

Note: You didn't use the -out option to save this plan, so OpenTofu can't
guarantee to take exactly these actions if you run "tofu apply" now.

Plan output — dev-co

module.app.module.database.terraform_data.lambda_dependencies: Refreshing state... [id=fcd42dd2-a839-8959-0f38-0a4660a430c4]
module.app.module.database.random_password.app_user_initial: Refreshing state... [id=none]
module.app.module.redis.random_password.auth_token: Refreshing state... [id=none]
module.app.module.ses.data.archive_file.rotation_lambda: Reading...
module.app.module.database.data.archive_file.rotation_lambda: Reading...
module.app.module.database.data.archive_file.rotation_lambda: Read complete after 1s [id=bd9ab85bc5a72445cbefd4a1798cb287fc60f142]
module.app.module.ses.data.archive_file.rotation_lambda: Read complete after 1s [id=ebb1c44568c3089bff88d24266d0869cceab99fc]
module.bastion.data.aws_caller_identity.identity: Reading...
module.bastion.data.aws_partition.current: Reading...
module.logging.data.aws_elb_service_account.current: Reading...
module.app.module.redis.data.aws_partition.current: Reading...
module.app.module.appconfig[0].aws_appconfig_application.this: Refreshing state... [id=g4moa3r]
module.app.module.database.aws_secretsmanager_secret.app_user: Refreshing state... [id=arn:aws:secretsmanager:us-east-1:929751802067:secret:sebt-portal-co-development-db-app-user-euYT9F]
module.enrollment_checker.data.aws_partition.current: Reading...
module.app.data.aws_secretsmanager_secrets.datadog_key: Reading...
module.app.module.api.data.aws_caller_identity.identity: Reading...
module.enrollment_checker.data.aws_partition.current: Read complete after 0s [id=aws]
module.logging.data.aws_elb_service_account.current: Read complete after 0s [id=127311923021]
module.app.module.redis.data.aws_partition.current: Read complete after 0s [id=aws]
module.bastion.data.aws_partition.current: Read complete after 0s [id=aws]
module.logging.data.aws_caller_identity.identity: Reading...
module.vpc.module.vpc.data.aws_caller_identity.current[0]: Reading...
module.state_secrets.data.aws_partition.current: Reading...
module.app.module.secrets.data.aws_partition.current: Reading...
module.logging.module.s3.aws_s3_bucket.main: Refreshing state... [id=sebt-portal-co-development-logs]
module.app.module.secrets.data.aws_partition.current: Read complete after 0s [id=aws]
module.state_secrets.data.aws_partition.current: Read complete after 0s [id=aws]
module.app.module.web.module.alb["this"].data.aws_partition.current: Reading...
module.app.module.database.data.aws_rds_engine_version.this: Reading...
module.app.module.web.module.alb["this"].data.aws_partition.current: Read complete after 0s [id=aws]
module.app.data.aws_lambda_functions.all: Reading...
module.app.module.api.data.aws_caller_identity.identity: Read complete after 0s [id=929751802067]
module.app.module.web.module.ecs.aws_ecs_cluster.main: Refreshing state... [id=arn:aws:ecs:us-east-1:929751802067:cluster/sebt-portal-co-development-web]
module.bastion.data.aws_caller_identity.identity: Read complete after 0s [id=929751802067]
module.app.module.web.data.aws_region.current: Reading...
module.app.module.web.data.aws_region.current: Read complete after 0s [id=us-east-1]
data.aws_route53_zone.enrollment_checker: Reading...
module.vpc.module.vpc.data.aws_caller_identity.current[0]: Read complete after 0s [id=929751802067]
module.app.module.web.aws_acm_certificate.endpoint["this"]: Refreshing state... [id=arn:aws:acm:us-east-1:929751802067:certificate/acf0812f-e439-4f4a-91a1-706e2da03d71]
module.app.data.aws_secretsmanager_secrets.datadog_key: Read complete after 0s [id=us-east-1]
module.app.module.redis.data.aws_region.current: Reading...
module.app.module.redis.data.aws_region.current: Read complete after 0s [id=us-east-1]
module.logging.data.aws_caller_identity.identity: Read complete after 0s [id=929751802067]
module.app.module.ses.aws_iam_role.rotation_lambda: Refreshing state... [id=sebt-portal-co-development-ses-smtp-rotation]
module.app.module.ses.aws_cloudwatch_log_group.rotation_lambda: Refreshing state... [id=/aws/lambda/sebt-portal-co-development-ses-smtp-rotation]
module.app.module.redis.data.aws_caller_identity.current: Reading...
module.app.module.database.data.aws_rds_engine_version.this: Read complete after 0s [id=16.00.4215.2.v1]
module.app.module.web.aws_iam_role.execution: Refreshing state... [id=sebt-portal-co-development-web-exec]
module.app.module.ses.data.aws_region.current: Reading...
module.app.module.ses.data.aws_region.current: Read complete after 0s [id=us-east-1]
module.app.data.aws_ec2_managed_prefix_list.cloudfront: Reading...
module.logging.module.s3.data.aws_region.current: Reading...
module.logging.module.s3.data.aws_region.current: Read complete after 0s [id=us-east-1]
module.app.data.aws_lambda_functions.all: Read complete after 0s [id=us-east-1]
module.app.module.ses.aws_ses_domain_identity.main: Refreshing state... [id=dev.co.sebt-portal.codeforamerica.app]
module.app.module.ses.aws_secretsmanager_secret.smtp: Refreshing state... [id=arn:aws:secretsmanager:us-east-1:929751802067:secret:sebt-portal-co-development-ses-smtp-credentials-KJpZRz]
module.app.module.redis.data.aws_caller_identity.current: Read complete after 0s [id=929751802067]
module.app.module.database.data.aws_region.current: Reading...
module.app.module.database.data.aws_region.current: Read complete after 0s [id=us-east-1]
module.app.module.api.aws_acm_certificate.endpoint["this"]: Refreshing state... [id=arn:aws:acm:us-east-1:929751802067:certificate/f4b3ef50-abb3-4b22-89c3-31e841eb0908]
module.app.module.secrets.data.aws_region.current: Reading...
module.app.module.secrets.data.aws_region.current: Read complete after 0s [id=us-east-1]
module.logging.module.s3.data.aws_partition.current: Reading...
module.logging.module.s3.data.aws_partition.current: Read complete after 0s [id=aws]
module.app.module.ses.data.aws_caller_identity.current: Reading...
module.app.module.ses.data.aws_caller_identity.current: Read complete after 0s [id=929751802067]
module.logging.module.s3.data.aws_caller_identity.current: Reading...
module.app.module.web.data.aws_partition.current: Reading...
module.app.module.api.data.aws_region.current: Reading...
module.app.module.web.data.aws_partition.current: Read complete after 0s [id=aws]
module.app.module.api.data.aws_region.current: Read complete after 0s [id=us-east-1]
module.state_secrets.data.aws_region.current: Reading...
module.app.module.api.module.ecs.aws_ecs_cluster.main: Refreshing state... [id=arn:aws:ecs:us-east-1:929751802067:cluster/sebt-portal-co-development-api]
module.state_secrets.data.aws_region.current: Read complete after 0s [id=us-east-1]
module.app.module.ses.aws_iam_user.smtp: Refreshing state... [id=sebt-portal-co-development-ses-smtp]
module.logging.module.s3.data.aws_caller_identity.current: Read complete after 0s [id=929751802067]
module.state_secrets.data.aws_caller_identity.identity: Reading...
module.logging.data.aws_region.current: Reading...
module.logging.data.aws_region.current: Read complete after 0s [id=us-east-1]
module.enrollment_checker.aws_acm_certificate.site: Refreshing state... [id=arn:aws:acm:us-east-1:929751802067:certificate/d7753fa3-1c28-4974-8606-c67f8ac78dec]
data.aws_route53_zone.main: Reading...
module.state_secrets.data.aws_caller_identity.identity: Read complete after 0s [id=929751802067]
data.aws_ecr_repository.api: Reading...
data.aws_route53_zone.enrollment_checker: Read complete after 1s [id=Z04027231YIV777218UZY]
data.aws_ecr_repository.web: Reading...
module.app.module.ses.data.aws_partition.current: Reading...
module.app.module.ses.data.aws_partition.current: Read complete after 0s [id=aws]
module.app.module.api.module.alb["this"].data.aws_partition.current: Reading...
module.app.module.api.module.alb["this"].data.aws_partition.current: Read complete after 0s [id=aws]
module.app.module.database.data.aws_caller_identity.current: Reading...
module.logging.module.s3.data.aws_organizations_organization.current: Reading...
module.app.module.database.data.aws_caller_identity.current: Read complete after 0s [id=929751802067]
module.vpc.data.aws_availability_zones.available: Reading...
module.app.module.web.aws_iam_role.task: Refreshing state... [id=sebt-portal-co-development-web-task]
module.app.data.aws_ec2_managed_prefix_list.cloudfront: Read complete after 1s [id=pl-3b927c52]
module.enrollment_checker.data.aws_caller_identity.current: Reading...
module.app.module.database.data.aws_partition.current: Reading...
module.app.module.database.data.aws_partition.current: Read complete after 0s [id=aws]
module.bastion.data.aws_region.current: Reading...
module.bastion.data.aws_region.current: Read complete after 0s [id=us-east-1]
module.logging.data.aws_lambda_functions.all: Reading...
module.app.module.web.data.aws_caller_identity.identity: Reading...
module.enrollment_checker.data.aws_caller_identity.current: Read complete after 0s [id=929751802067]
module.app.module.database.aws_iam_role.rotation_lambda: Refreshing state... [id=sebt-portal-co-development-db-rotation]
module.vpc.data.aws_availability_zones.available: Read complete after 0s [id=us-east-1]
module.bastion.data.aws_ami.bastion: Reading...
module.app.module.web.data.aws_caller_identity.identity: Read complete after 0s [id=929751802067]
module.vpc.module.vpc.aws_vpc.this[0]: Refreshing state... [id=vpc-09df7d35c6a7e86e4]
data.aws_route53_zone.main: Read complete after 0s [id=Z098414410HX6MSQGTBR7]
module.vpc.module.vpc.data.aws_iam_policy_document.flow_log_cloudwatch_assume_role[0]: Reading...
module.vpc.module.vpc.data.aws_iam_policy_document.flow_log_cloudwatch_assume_role[0]: Read complete after 0s [id=1021377347]
module.vpc.module.vpc.data.aws_region.current[0]: Reading...
module.vpc.module.vpc.data.aws_region.current[0]: Read complete after 0s [id=us-east-1]
module.enrollment_checker.aws_s3_bucket.site: Refreshing state... [id=sebt-portal-co-development-enrollment-checker]
module.logging.data.aws_lambda_functions.all: Read complete after 0s [id=us-east-1]
module.app.module.api.data.aws_partition.current: Reading...
module.app.module.api.data.aws_partition.current: Read complete after 0s [id=aws]
module.logging.data.aws_partition.current: Reading...
module.logging.data.aws_partition.current: Read complete after 0s [id=aws]
module.vpc.module.vpc.data.aws_partition.current[0]: Reading...
module.vpc.module.vpc.data.aws_partition.current[0]: Read complete after 0s [id=aws]
module.app.module.api.aws_iam_role.execution: Refreshing state... [id=sebt-portal-co-development-api-exec]
module.vpc.data.aws_vpc_endpoint_service.services["ecr.api"]: Reading...
module.vpc.data.aws_vpc_endpoint_service.services["ecr.api"]: Read complete after 0s [id=1808222790]
module.vpc.data.aws_vpc_endpoint_service.services["ssm-incidents"]: Reading...
module.logging.module.s3.data.aws_organizations_organization.current: Read complete after 0s [id=o-f5mr0gq6lc]
module.vpc.data.aws_vpc_endpoint_service.services["ec2"]: Reading...
module.vpc.data.aws_vpc_endpoint_service.services["ssmmessages"]: Reading...
module.vpc.data.aws_vpc_endpoint_service.services["ecr.dkr"]: Reading...
module.vpc.data.aws_vpc_endpoint_service.services["ssm-incidents"]: Read complete after 1s [id=3798321550]
module.vpc.data.aws_vpc_endpoint_service.services["ssm"]: Reading...
module.vpc.data.aws_vpc_endpoint_service.services["ec2"]: Read complete after 1s [id=2644592029]
module.vpc.data.aws_vpc_endpoint_service.services["ec2messages"]: Reading...
module.vpc.data.aws_vpc_endpoint_service.services["ssm-contacts"]: Reading...
module.vpc.data.aws_vpc_endpoint_service.services["ecr.dkr"]: Read complete after 0s [id=1314884315]
module.vpc.data.aws_vpc_endpoint_service.services["guardduty-data"]: Reading...
module.bastion.data.aws_ami.bastion: Read complete after 1s [id=ami-0b826bb6d96d2afe4]
module.app.module.secrets.data.aws_caller_identity.identity: Reading...
module.vpc.data.aws_vpc_endpoint_service.services["ssmmessages"]: Read complete after 0s [id=1315226949]
module.app.module.api.aws_iam_role.task: Refreshing state... [id=sebt-portal-co-development-api-task]
module.vpc.data.aws_vpc_endpoint_service.services["ssm"]: Read complete after 0s [id=874300523]
module.enrollment_checker.aws_cloudfront_origin_access_control.site: Refreshing state... [id=E26GBS6M2LJ5RG]
module.app.module.secrets.data.aws_caller_identity.identity: Read complete after 0s [id=929751802067]
module.app.module.web.aws_ssm_parameter.otel_config: Refreshing state... [id=/sebt-portal-co/development/web/otel]
module.vpc.data.aws_vpc_endpoint_service.services["ssm-contacts"]: Read complete after 0s [id=3701104373]
module.vpc.data.aws_vpc_endpoint_service.services["ec2messages"]: Read complete after 0s [id=2187510914]
module.app.data.aws_secretsmanager_secret.datadog_key["this"]: Reading...
module.app.module.appconfig[0].aws_appconfig_environment.this: Refreshing state... [id=matqn1h:g4moa3r]
module.vpc.data.aws_vpc_endpoint_service.services["guardduty-data"]: Read complete after 0s [id=3795168285]
module.app.module.appconfig[0].aws_appconfig_configuration_profile.feature_flags: Refreshing state... [id=dmpwqd0:g4moa3r]
module.app.data.aws_secretsmanager_secret.datadog_key["this"]: Read complete after 0s [id=arn:aws:secretsmanager:us-east-1:929751802067:secret:DdApiKeySecret-L23VNGijXX9I-LAnnou]
module.app.module.appconfig[0].aws_appconfig_configuration_profile.app_settings: Refreshing state... [id=3indmpo:g4moa3r]
module.app.module.web.module.ecs.aws_ecs_cluster_capacity_providers.main[0]: Refreshing state... [id=sebt-portal-co-development-web]
module.app.module.redis.aws_kms_key.redis: Refreshing state... [id=39dc1d91-81a4-4ca2-b2d7-b3cb925d63f6]
module.app.module.ses.aws_ses_domain_dkim.main: Refreshing state... [id=dev.co.sebt-portal.codeforamerica.app]
module.app.module.ses.aws_ses_domain_mail_from.main: Refreshing state... [id=dev.co.sebt-portal.codeforamerica.app]
module.state_secrets.aws_kms_key.secrets: Refreshing state... [id=cb4cfbd6-1584-4c48-9798-9c33f51075dc]
module.app.module.api.module.ecs.aws_ecs_cluster_capacity_providers.main[0]: Refreshing state... [id=sebt-portal-co-development-api]
module.app.module.ses.aws_iam_user_policy.smtp: Refreshing state... [id=sebt-portal-co-development-ses-smtp:ses-send]
module.app.module.ses.aws_iam_role_policy.rotation_lambda: Refreshing state... [id=sebt-portal-co-development-ses-smtp-rotation:ses-smtp-rotation]
data.aws_ecr_repository.api: Read complete after 1s [id=sebt-portal-co-development-api]
module.app.module.database.aws_kms_key.database: Refreshing state... [id=e60d9f8e-80bc-4bc2-8801-fe6cb0ed49ae]
data.aws_ecr_repository.web: Read complete after 1s [id=sebt-portal-co-development-web]
module.bastion.aws_kms_key.this: Refreshing state... [id=f063e957-9ffd-4e65-a44a-2cb27e3ec8df]
module.vpc.module.vpc.aws_iam_role.vpc_flow_log_cloudwatch[0]: Refreshing state... [id=vpc-flow-log-role-20260226193035366500000001]
module.app.module.database.aws_iam_role_policy_attachment.rotation_lambda_vpc_execution: Refreshing state... [id=sebt-portal-co-development-db-rotation/arn:aws:iam::aws:policy/service-role/AWSLambdaVPCAccessExecutionRole]
module.app.module.web.aws_kms_key.fargate: Refreshing state... [id=8d04999d-d45c-453b-98e6-370d3f45eb5c]
module.logging.module.s3.aws_s3_bucket_server_side_encryption_configuration.main: Refreshing state... [id=sebt-portal-co-development-logs]
module.logging.module.s3.aws_s3_bucket_public_access_block.main: Refreshing state... [id=sebt-portal-co-development-logs]
module.logging.module.s3.aws_s3_bucket_versioning.main: Refreshing state... [id=sebt-portal-co-development-logs]
module.logging.module.s3.aws_s3_bucket_ownership_controls.main: Refreshing state... [id=sebt-portal-co-development-logs]
module.app.module.secrets.aws_kms_key.secrets: Refreshing state... [id=d194ddaf-3030-4fdf-ba60-5d4d0a8a9445]
module.app.module.api.aws_kms_key.fargate: Refreshing state... [id=64a4625b-4636-4492-8c5d-aeca669de17f]
module.app.data.aws_lambda_function.datadog["this"]: Reading...
module.logging.module.s3.data.aws_iam_policy_document.default: Reading...
module.logging.module.s3.data.aws_iam_policy_document.default: Read complete after 0s [id=269892978]
module.app.module.ses.aws_lambda_function.rotation: Refreshing state... [id=sebt-portal-co-development-ses-smtp-rotation]
module.logging.data.aws_lambda_function.datadog["this"]: Reading...
module.logging.aws_kms_key.logs: Refreshing state... [id=0ad7fb2a-aebc-4c41-8adc-a6da6a8d5b0d]
module.logging.aws_s3_bucket_object_lock_configuration.lock["this"]: Refreshing state... [id=sebt-portal-co-development-logs]
module.vpc.module.vpc.aws_default_security_group.this[0]: Refreshing state... [id=sg-0d9ecc4fb03dbac9e]
module.vpc.module.vpc.aws_default_network_acl.this[0]: Refreshing state... [id=acl-0ff2644875029eba6]
module.vpc.module.vpc.aws_default_route_table.default[0]: Refreshing state... [id=rtb-0cddf6915e6107b7b]
module.enrollment_checker.aws_s3_bucket_public_access_block.site: Refreshing state... [id=sebt-portal-co-development-enrollment-checker]
module.enrollment_checker.aws_s3_bucket_versioning.site: Refreshing state... [id=sebt-portal-co-development-enrollment-checker]
module.enrollment_checker.aws_s3_bucket_lifecycle_configuration.site: Refreshing state... [id=sebt-portal-co-development-enrollment-checker]
module.app.module.redis.aws_kms_alias.redis: Refreshing state... [id=alias/sebt-portal-co/development/redis]
module.app.module.redis.aws_secretsmanager_secret.auth_token: Refreshing state... [id=arn:aws:secretsmanager:us-east-1:929751802067:secret:sebt-portal-co-development-redis-auth-token-UTJOcD]
module.enrollment_checker.aws_route53_record.certificate_validation["dev.co.sebt-enrollment.codeforamerica.app"]: Refreshing state... [id=Z04027231YIV777218UZY__a19e9602466ca4f6ed09934e0a9e91bd.dev.co.sebt-enrollment.codeforamerica.app._CNAME]
module.app.module.database.aws_kms_alias.database: Refreshing state... [id=alias/sebt-portal-co/development/database]
module.state_secrets.aws_kms_alias.secrets: Refreshing state... [id=alias/sebt-portal-co/development/state-secrets/secrets]
module.bastion.aws_kms_alias.this: Refreshing state... [id=alias/sebt-portal-co/development/bastion]
module.app.module.web.aws_kms_alias.fargate: Refreshing state... [id=alias/sebt-portal-co/development/web]
module.logging.data.aws_lambda_function.datadog["this"]: Read complete after 0s [id=DatadogIntegration-ForwarderStack-1K1TB2-Forwarder-flQjPvHTM027]
module.vpc.module.vpc.aws_internet_gateway.this[0]: Refreshing state... [id=igw-0261cee59a2002f3f]
module.app.module.secrets.aws_kms_alias.secrets: Refreshing state... [id=alias/sebt-portal-co/development/api/secrets]
module.app.module.api.aws_kms_alias.fargate: Refreshing state... [id=alias/sebt-portal-co/development/api]
module.app.module.api.aws_iam_policy.appconfig["this"]: Refreshing state... [id=arn:aws:iam::929751802067:policy/sebt-portal-co-development-api-appconfig]
module.logging.aws_kms_alias.logs: Refreshing state... [id=alias/sebt-portal-co/development/logs]
module.app.data.aws_lambda_function.datadog["this"]: Read complete after 0s [id=DatadogIntegration-ForwarderStack-1K1TB2-Forwarder-flQjPvHTM027]
module.logging.aws_cloudwatch_log_group.logs["waf"]: Refreshing state... [id=aws-waf-logs-cfa/sebt-portal-co/development]
module.logging.module.s3.data.aws_iam_policy_document.combined: Reading...
module.logging.module.s3.data.aws_iam_policy_document.combined: Read complete after 0s [id=1790112856]
module.app.module.ses.aws_lambda_permission.secrets_manager: Refreshing state... [id=AllowSecretsManagerInvocation]
module.app.module.ses.aws_secretsmanager_secret_rotation.smtp: Refreshing state... [id=arn:aws:secretsmanager:us-east-1:929751802067:secret:sebt-portal-co-development-ses-smtp-credentials-KJpZRz]
module.app.module.redis.aws_secretsmanager_secret_version.auth_token: Refreshing state... [id=arn:aws:secretsmanager:us-east-1:929751802067:secret:sebt-portal-co-development-redis-auth-token-UTJOcD|terraform-K3wBoHRfaUPZeWGpnpHIft6Pxr]
module.app.module.api.aws_ssm_parameter.otel_config: Refreshing state... [id=/sebt-portal-co/development/api/otel]
module.enrollment_checker.aws_acm_certificate_validation.site: Refreshing state... [id=2026-04-15 21:38:10.444 +0000 UTC]
module.app.module.ses.aws_route53_record.mx_mail_from: Refreshing state... [id=Z098414410HX6MSQGTBR7_bounce.dev.co.sebt-portal.codeforamerica.app_MX]
module.app.module.ses.aws_route53_record.dkim[1]: Refreshing state... [id=Z098414410HX6MSQGTBR7_bxhxojcloutuzauhmqs5ctoypxd5fj2w._domainkey.dev.co.sebt-portal.codeforamerica.app_CNAME]
module.app.module.ses.aws_route53_record.ses_verification: Refreshing state... [id=Z098414410HX6MSQGTBR7__amazonses.dev.co.sebt-portal.codeforamerica.app_TXT]
module.app.module.ses.aws_route53_record.spf_mail_from: Refreshing state... [id=Z098414410HX6MSQGTBR7_bounce.dev.co.sebt-portal.codeforamerica.app_TXT]
module.vpc.module.vpc.aws_subnet.public[1]: Refreshing state... [id=subnet-0a337046812576f4e]
module.app.module.ses.aws_route53_record.dmarc: Refreshing state... [id=Z098414410HX6MSQGTBR7__dmarc.dev.co.sebt-portal.codeforamerica.app_TXT]
module.app.module.ses.aws_route53_record.dkim[2]: Refreshing state... [id=Z098414410HX6MSQGTBR7_lddrcz3tg2maq2ypc72codxg2dlfuxr4._domainkey.dev.co.sebt-portal.codeforamerica.app_CNAME]
module.app.module.ses.aws_route53_record.dkim[0]: Refreshing state... [id=Z098414410HX6MSQGTBR7_uxuf6sp3e3tb3xxij3hyjdfwlqdz7omq._domainkey.dev.co.sebt-portal.codeforamerica.app_CNAME]
module.vpc.module.vpc.aws_subnet.public[0]: Refreshing state... [id=subnet-0f28b78a7ee509b9a]
module.vpc.module.vpc.aws_subnet.public[2]: Refreshing state... [id=subnet-056a10a2352671318]
module.vpc.module.vpc.aws_route_table.public[0]: Refreshing state... [id=rtb-0e451d480795185bd]
module.vpc.module.vpc.aws_subnet.private[0]: Refreshing state... [id=subnet-0348b4d82b7002887]
module.vpc.module.vpc.aws_subnet.private[1]: Refreshing state... [id=subnet-07d75117e34ffa63c]
module.vpc.module.vpc.aws_subnet.private[2]: Refreshing state... [id=subnet-0f47031cd8dcf8d0d]
module.logging.module.s3.aws_s3_bucket_policy.main: Refreshing state... [id=sebt-portal-co-development-logs]
module.enrollment_checker.aws_s3_bucket_logging.site: Refreshing state... [id=sebt-portal-co-development-enrollment-checker]
module.vpc.module.endpoints.aws_security_group.this[0]: Refreshing state... [id=sg-03afd050e686c413e]
module.logging.aws_cloudwatch_log_subscription_filter.datadog["waf"]: Refreshing state... [id=cwlsf-1133008172]
module.app.module.api.aws_route53_record.endpoint_validation["api.dev.co.sebt-portal.codeforamerica.app"]: Refreshing state... [id=Z098414410HX6MSQGTBR7__b56b1d8120cb28c37d2bb360f6d0dccc.api.dev.co.sebt-portal.codeforamerica.app._CNAME]
module.vpc.module.vpc.aws_route_table.private[0]: Refreshing state... [id=rtb-062f607b1d566de00]
module.vpc.module.vpc.aws_eip.nat[0]: Refreshing state... [id=eipalloc-0e8acccbd48c8fcde]
module.enrollment_checker.aws_cloudfront_distribution.site: Refreshing state... [id=E17M9UMULJMAL3]
module.vpc.module.vpc.aws_route.public_internet_gateway[0]: Refreshing state... [id=r-rtb-0e451d480795185bd1080289494]
module.state_secrets.module.secrets_manager["oidc"].aws_secretsmanager_secret.this[0]: Refreshing state... [id=arn:aws:secretsmanager:us-east-1:929751802067:secret:sebt-portal-co/development/state-secrets/oidc-20260318005754476000000001-AcAzxg]
module.app.module.web.aws_route53_record.endpoint_validation["origin.dev.co.sebt-portal.codeforamerica.app"]: Refreshing state... [id=Z098414410HX6MSQGTBR7__975406988c46fbfd36f5365f751b121a.origin.dev.co.sebt-portal.codeforamerica.app._CNAME]
module.state_secrets.module.secrets_manager["cbms"].aws_secretsmanager_secret.this[0]: Refreshing state... [id=arn:aws:secretsmanager:us-east-1:929751802067:secret:sebt-portal-co/development/state-secrets/cbms-20260318005754476400000003-he0WHi]
module.vpc.module.vpc.aws_route_table_association.public[0]: Refreshing state... [id=rtbassoc-06f24bcc3e8c9a365]
module.vpc.module.vpc.aws_route_table_association.public[1]: Refreshing state... [id=rtbassoc-01a694e43c16e04df]
module.vpc.module.vpc.aws_route_table_association.public[2]: Refreshing state... [id=rtbassoc-02e10ce14415555aa]
module.app.module.api.aws_iam_policy.execution: Refreshing state... [id=arn:aws:iam::929751802067:policy/sebt-portal-co-development-api-execution]
module.app.module.web.aws_iam_policy.execution: Refreshing state... [id=arn:aws:iam::929751802067:policy/sebt-portal-co-development-web-execution]
module.logging.module.s3.aws_s3_bucket_lifecycle_configuration.main[0]: Refreshing state... [id=sebt-portal-co-development-logs]
module.vpc.module.endpoints.aws_security_group_rule.this["ingress_https"]: Refreshing state... [id=sgrule-3367030384]
module.vpc.module.vpc.aws_route_table_association.private[0]: Refreshing state... [id=rtbassoc-0362ec936b984d320]
module.vpc.module.vpc.aws_route_table_association.private[1]: Refreshing state... [id=rtbassoc-0c75ccb6eb8eaa1d3]
module.vpc.module.vpc.aws_route_table_association.private[2]: Refreshing state... [id=rtbassoc-0714600e0fc91d8e3]
module.app.module.secrets.module.secrets_manager["smarty"].aws_secretsmanager_secret.this[0]: Refreshing state... [id=arn:aws:secretsmanager:us-east-1:929751802067:secret:sebt-portal-co/development/api/smarty-20260416194322421600000001-wPvqdw]
module.app.module.secrets.module.secrets_manager["auth"].aws_secretsmanager_secret.this[0]: Refreshing state... [id=arn:aws:secretsmanager:us-east-1:929751802067:secret:sebt-portal-co/development/api/auth-20260416194322424400000003-9FSckt]
module.app.module.api.aws_acm_certificate_validation.endpoint["this"]: Refreshing state... [id=2026-02-26 19:31:28.056 +0000 UTC]
module.state_secrets.module.secrets_manager["oidc"].aws_secretsmanager_secret_version.ignore_changes[0]: Refreshing state... [id=arn:aws:secretsmanager:us-east-1:929751802067:secret:sebt-portal-co/development/state-secrets/oidc-20260318005754476000000001-AcAzxg|terraform-20260318005755090100000006]
module.state_secrets.module.secrets_manager["cbms"].aws_secretsmanager_secret_version.ignore_changes[0]: Refreshing state... [id=arn:aws:secretsmanager:us-east-1:929751802067:secret:sebt-portal-co/development/state-secrets/cbms-20260318005754476400000003-he0WHi|terraform-20260318005755072200000005]
module.app.module.web.data.aws_vpc.current: Reading...
module.app.module.redis.aws_security_group.redis: Refreshing state... [id=sg-0caaf1ca9fe3fb535]
module.app.module.api.data.aws_vpc.current: Reading...
module.bastion.module.security_group.aws_security_group.this_name_prefix[0]: Refreshing state... [id=sg-0e3a614eea7ac7199]
module.vpc.data.aws_subnets.endpoints["ecr.api"]: Reading...
module.vpc.data.aws_subnets.endpoints["ec2"]: Reading...
module.vpc.data.aws_subnets.endpoints["ssm-contacts"]: Reading...
module.vpc.data.aws_subnets.endpoints["ec2messages"]: Reading...
module.vpc.data.aws_subnets.endpoints["ecr.dkr"]: Reading...
module.vpc.data.aws_subnets.endpoints["guardduty-data"]: Reading...
module.vpc.data.aws_subnets.endpoints["ssm"]: Reading...
module.vpc.data.aws_subnets.endpoints["ecr.api"]: Read complete after 1s [id=us-east-1]
module.vpc.data.aws_subnets.endpoints["ssmmessages"]: Reading...
module.vpc.data.aws_subnets.endpoints["ec2"]: Read complete after 1s [id=us-east-1]
module.vpc.data.aws_subnets.endpoints["ssm-contacts"]: Read complete after 0s [id=us-east-1]
module.vpc.data.aws_subnets.endpoints["ssm-incidents"]: Reading...
module.app.module.database.aws_security_group.rotation_lambda: Refreshing state... [id=sg-0f65c34f7bfd578cb]
module.vpc.data.aws_subnets.endpoints["ecr.dkr"]: Read complete after 0s [id=us-east-1]
module.vpc.data.aws_subnets.endpoints["guardduty-data"]: Read complete after 0s [id=us-east-1]
module.app.module.database.aws_security_group.database: Refreshing state... [id=sg-0fb19db60ed1b372b]
module.vpc.data.aws_subnets.endpoints["ec2messages"]: Read complete after 0s [id=us-east-1]
module.enrollment_checker.aws_kms_key.site: Refreshing state... [id=2c6e62f9-8673-4c01-a6c0-01c2148954f5]
module.enrollment_checker.aws_route53_record.site: Refreshing state... [id=Z04027231YIV777218UZY_dev.co.sebt-enrollment.codeforamerica.app_A]
module.vpc.data.aws_subnets.endpoints["ssm"]: Read complete after 0s [id=us-east-1]
module.enrollment_checker.aws_s3_bucket_policy.site: Refreshing state... [id=sebt-portal-co-development-enrollment-checker]
module.vpc.data.aws_subnets.endpoints["ssmmessages"]: Read complete after 0s [id=us-east-1]
module.app.module.web.aws_acm_certificate_validation.endpoint["this"]: Refreshing state... [id=2026-02-26 19:31:28.131 +0000 UTC]
module.vpc.data.aws_subnets.endpoints["ssm-incidents"]: Read complete after 0s [id=us-east-1]
module.app.module.database.aws_cloudwatch_log_group.error: Refreshing state... [id=/aws/rds/instance/sebt-portal-co-development-db/error]
module.app.module.api.aws_cloudwatch_log_group.this["service"]: Refreshing state... [id=/aws/ecs/sebt-portal-co/development/api]
module.app.module.web.aws_cloudwatch_log_group.this["service"]: Refreshing state... [id=/aws/ecs/sebt-portal-co/development/web]
module.app.module.database.aws_cloudwatch_log_group.agent: Refreshing state... [id=/aws/rds/instance/sebt-portal-co-development-db/agent]
module.app.module.database.aws_cloudwatch_log_group.rotation_lambda: Refreshing state... [id=/aws/lambda/sebt-portal-co-development-db-rotation]
module.vpc.module.vpc.aws_cloudwatch_log_group.flow_log[0]: Refreshing state... [id=/aws/vpc-flow-log/vpc-09df7d35c6a7e86e4]
module.app.module.secrets.module.secrets_manager["smarty"].aws_secretsmanager_secret_version.ignore_changes[0]: Refreshing state... [id=arn:aws:secretsmanager:us-east-1:929751802067:secret:sebt-portal-co/development/api/smarty-20260416194322421600000001-wPvqdw|terraform-20260416194322760000000006]
module.app.module.secrets.module.secrets_manager["auth"].aws_secretsmanager_secret_version.ignore_changes[0]: Refreshing state... [id=arn:aws:secretsmanager:us-east-1:929751802067:secret:sebt-portal-co/development/api/auth-20260416194322424400000003-9FSckt|terraform-20260416194322744400000005]
module.app.module.web.data.aws_vpc.current: Read complete after 1s [id=vpc-09df7d35c6a7e86e4]
module.vpc.module.vpc.aws_nat_gateway.this[0]: Refreshing state... [id=nat-034f5f692a56a2d14]
module.app.module.database.aws_security_group_rule.rotation_lambda_egress_https: Refreshing state... [id=sgrule-2949709523]
module.app.module.database.aws_security_group_rule.db_ingress_rotation_lambda: Refreshing state... [id=sgrule-737095172]
module.app.module.api.data.aws_vpc.current: Read complete after 1s [id=vpc-09df7d35c6a7e86e4]
module.app.module.database.aws_security_group_rule.rotation_lambda_egress_db: Refreshing state... [id=sgrule-3611870831]
module.app.module.web.module.prefix_security_group["this"].aws_security_group.this_name_prefix[0]: Refreshing state... [id=sg-049b03248976b6f15]
module.app.module.web.module.endpoint_security_group.aws_security_group.this_name_prefix[0]: Refreshing state... [id=sg-07c5a05c0bd2776f7]
module.app.module.web.module.alb["this"].aws_lb_target_group.this["endpoint"]: Refreshing state... [id=arn:aws:elasticloadbalancing:us-east-1:929751802067:targetgroup/sebt-development-web-app/ef6c6670a2e6bba4]
module.app.module.web.module.task_security_group.aws_security_group.this_name_prefix[0]: Refreshing state... [id=sg-0541c7c14184bc1f4]
module.app.module.web.module.alb["this"].aws_security_group.this[0]: Refreshing state... [id=sg-081296c6d8049cb54]
module.app.module.api.module.alb["this"].aws_security_group.this[0]: Refreshing state... [id=sg-09f89e7250bc8678e]
module.app.module.api.module.alb["this"].aws_lb_target_group.this["endpoint"]: Refreshing state... [id=arn:aws:elasticloadbalancing:us-east-1:929751802067:targetgroup/sebt-development-api-app/2883df76fe788399]
module.app.module.api.module.endpoint_security_group.aws_security_group.this_name_prefix[0]: Refreshing state... [id=sg-0b9d32128a53b731b]
module.enrollment_checker.aws_s3_bucket_server_side_encryption_configuration.site: Refreshing state... [id=sebt-portal-co-development-enrollment-checker]
module.enrollment_checker.aws_kms_alias.site: Refreshing state... [id=alias/sebt-portal/co/development/enrollment-checker]
module.bastion.module.security_group.aws_security_group_rule.egress_rules[0]: Refreshing state... [id=sgrule-1668669253]
module.vpc.module.vpc.aws_route.private_nat_gateway[0]: Refreshing state... [id=r-rtb-062f607b1d566de001080289494]
module.bastion.random_shuffle.subnet: Refreshing state... [id=-]
module.vpc.module.vpc.data.aws_iam_policy_document.vpc_flow_log_cloudwatch[0]: Reading...
module.vpc.module.vpc.aws_flow_log.this[0]: Refreshing state... [id=fl-0dab778ac4c113691]
module.vpc.module.vpc.data.aws_iam_policy_document.vpc_flow_log_cloudwatch[0]: Read complete after 0s [id=2268756278]
module.bastion.aws_instance.this: Refreshing state... [id=i-0a34044f7cf690c3b]
module.app.module.web.module.prefix_security_group["this"].aws_security_group_rule.ingress_rules[0]: Refreshing state... [id=sgrule-638938419]
module.app.module.web.module.endpoint_security_group.aws_security_group_rule.ingress_rules[0]: Refreshing state... [id=sgrule-1134792546]
module.app.module.web.module.endpoint_security_group.aws_security_group_rule.ingress_rules[1]: Refreshing state... [id=sgrule-3065888246]
module.app.module.web.module.endpoint_security_group.aws_security_group_rule.egress_rules[0]: Refreshing state... [id=sgrule-3567680197]
module.app.module.database.aws_db_subnet_group.main: Refreshing state... [id=sebt-portal-co-development-db-subnet-group]
module.app.aws_cloudwatch_log_subscription_filter.datadog["database-agent"]: Refreshing state... [id=cwlsf-848527837]
module.app.aws_cloudwatch_log_subscription_filter.datadog["database-error"]: Refreshing state... [id=cwlsf-2606004654]
module.app.module.web.module.task_security_group.aws_security_group_rule.egress_rules[0]: Refreshing state... [id=sgrule-2292720514]
module.app.module.redis.aws_elasticache_subnet_group.main: Refreshing state... [id=sebt-portal-co-development-redis-subnet-group]
module.vpc.module.vpc.aws_iam_policy.vpc_flow_log_cloudwatch[0]: Refreshing state... [id=arn:aws:iam::929751802067:policy/vpc-flow-log-to-cloudwatch-20260226193124499600000017]
module.vpc.module.endpoints.data.aws_vpc_endpoint_service.this["guardduty-data"]: Reading...
module.vpc.module.endpoints.data.aws_vpc_endpoint_service.this["ssm"]: Reading...
module.vpc.module.endpoints.data.aws_vpc_endpoint_service.this["ecr.api"]: Reading...
module.vpc.module.endpoints.data.aws_vpc_endpoint_service.this["ssm-incidents"]: Reading...
module.vpc.module.endpoints.data.aws_vpc_endpoint_service.this["ec2"]: Reading...
module.vpc.module.endpoints.data.aws_vpc_endpoint_service.this["guardduty-data"]: Read complete after 0s [id=3795168285]
module.vpc.module.endpoints.data.aws_vpc_endpoint_service.this["ssm-contacts"]: Reading...
module.vpc.module.endpoints.data.aws_vpc_endpoint_service.this["ecr.api"]: Read complete after 0s [id=1808222790]
module.vpc.module.endpoints.data.aws_vpc_endpoint_service.this["s3"]: Reading...
module.vpc.module.endpoints.data.aws_vpc_endpoint_service.this["ssm"]: Read complete after 0s [id=874300523]
module.vpc.module.endpoints.data.aws_vpc_endpoint_service.this["ec2messages"]: Reading...
module.vpc.module.endpoints.data.aws_vpc_endpoint_service.this["ssmmessages"]: Reading...
module.vpc.module.endpoints.data.aws_vpc_endpoint_service.this["ecr.dkr"]: Reading...
module.vpc.module.endpoints.data.aws_vpc_endpoint_service.this["ssm-incidents"]: Read complete after 0s [id=3798321550]
module.app.module.web.module.task_security_group.aws_security_group_rule.ingress_with_source_security_group_id[0]: Refreshing state... [id=sgrule-3873024403]
module.app.module.database.aws_db_instance.main: Refreshing state... [id=db-FWQHH27OSR772SGWVBX4CLXCPI]
module.vpc.module.endpoints.data.aws_vpc_endpoint_service.this["ec2"]: Read complete after 0s [id=2644592029]
module.vpc.module.endpoints.data.aws_vpc_endpoint_service.this["ssm-contacts"]: Read complete after 0s [id=3701104373]
module.vpc.module.vpc.aws_iam_role_policy_attachment.vpc_flow_log_cloudwatch[0]: Refreshing state... [id=vpc-flow-log-role-20260226193035366500000001/arn:aws:iam::929751802067:policy/vpc-flow-log-to-cloudwatch-20260226193124499600000017]
module.app.module.api.module.endpoint_security_group.aws_security_group_rule.ingress_rules[0]: Refreshing state... [id=sgrule-3804531847]
module.vpc.module.endpoints.data.aws_vpc_endpoint_service.this["s3"]: Read complete after 0s [id=195798706]
module.vpc.module.endpoints.data.aws_vpc_endpoint_service.this["ssmmessages"]: Read complete after 0s [id=1315226949]
module.app.module.api.module.endpoint_security_group.aws_security_group_rule.ingress_rules[1]: Refreshing state... [id=sgrule-213731970]
module.app.module.api.module.endpoint_security_group.aws_security_group_rule.egress_rules[0]: Refreshing state... [id=sgrule-1937214784]
module.vpc.module.endpoints.data.aws_vpc_endpoint_service.this["ecr.dkr"]: Read complete after 0s [id=1314884315]
module.vpc.module.endpoints.data.aws_vpc_endpoint_service.this["ec2messages"]: Read complete after 0s [id=2187510914]
module.app.module.web.module.alb["this"].aws_lb.this[0]: Refreshing state... [id=arn:aws:elasticloadbalancing:us-east-1:929751802067:loadbalancer/app/sebt-development-web/5b2e35348ce03418]
module.vpc.module.endpoints.aws_vpc_endpoint.this["ssm"]: Refreshing state... [id=vpce-0513530116f346a97]
module.vpc.module.endpoints.aws_vpc_endpoint.this["guardduty-data"]: Refreshing state... [id=vpce-0b5238be9d78a77bb]
module.vpc.module.endpoints.aws_vpc_endpoint.this["ssmmessages"]: Refreshing state... [id=vpce-07c1a2a552afdf079]
module.vpc.module.endpoints.aws_vpc_endpoint.this["ecr.dkr"]: Refreshing state... [id=vpce-009fc5ad6648a1376]
module.vpc.module.endpoints.aws_vpc_endpoint.this["s3"]: Refreshing state... [id=vpce-08525e6db06733eab]
module.vpc.module.endpoints.aws_vpc_endpoint.this["ecr.api"]: Refreshing state... [id=vpce-01a7ba3d39d8371d3]
module.vpc.module.endpoints.aws_vpc_endpoint.this["ssm-incidents"]: Refreshing state... [id=vpce-0f04bb41a13acb3ba]
module.vpc.module.endpoints.aws_vpc_endpoint.this["ec2"]: Refreshing state... [id=vpce-049dfb2380f803abd]
module.vpc.module.endpoints.aws_vpc_endpoint.this["ssm-contacts"]: Refreshing state... [id=vpce-007e5a78b4198a226]
module.vpc.module.endpoints.aws_vpc_endpoint.this["ec2messages"]: Refreshing state... [id=vpce-0cea1864aef8b4739]
module.app.module.database.aws_iam_role_policy.rotation_lambda: Refreshing state... [id=sebt-portal-co-development-db-rotation:db-rotation]
module.app.module.database.aws_secretsmanager_secret_version.app_user_initial: Refreshing state... [id=arn:aws:secretsmanager:us-east-1:929751802067:secret:sebt-portal-co-development-db-app-user-euYT9F|terraform-dpnBT09xq7Qjrg7o5YaGDVmmyh]
module.app.module.database.aws_lambda_function.rotation: Refreshing state... [id=sebt-portal-co-development-db-rotation]
module.app.module.redis.aws_elasticache_replication_group.main: Refreshing state... [id=sebt-portal-co-development-redis]
module.app.module.web.module.alb["this"].aws_lb_listener.this["http"]: Refreshing state... [id=arn:aws:elasticloadbalancing:us-east-1:929751802067:listener/app/sebt-development-web/5b2e35348ce03418/e3fba68c6620db6b]
module.app.module.web.module.alb["this"].aws_lb_listener.this["https"]: Refreshing state... [id=arn:aws:elasticloadbalancing:us-east-1:929751802067:listener/app/sebt-development-web/5b2e35348ce03418/cd6ddd06abf44432]
module.app.module.api.module.alb["this"].aws_lb.this[0]: Refreshing state... [id=arn:aws:elasticloadbalancing:us-east-1:929751802067:loadbalancer/app/sebt-development-api/bd09888620fda826]
module.app.module.web.aws_iam_policy.secrets: Refreshing state... [id=arn:aws:iam::929751802067:policy/sebt-portal-co-development-web-secrets-access-2026022619312043760000000d]
module.app.module.api.aws_iam_policy.secrets: Refreshing state... [id=arn:aws:iam::929751802067:policy/sebt-portal-co-development-api-secrets-access-20260226195703698300000024]
module.app.module.web.aws_route53_record.endpoint["this"]: Refreshing state... [id=Z098414410HX6MSQGTBR7_origin.dev.co.sebt-portal.codeforamerica.app_A]
module.app.module.api.module.task_security_group.aws_security_group.this_name_prefix[0]: Refreshing state... [id=sg-00c205d0b5ce4a60e]
module.app.module.web.aws_iam_role_policy_attachments_exclusive.execution: Refreshing state...
module.app.module.web.aws_iam_role_policy_attachments_exclusive.task: Refreshing state...
module.app.module.database.aws_lambda_permission.secrets_manager: Refreshing state... [id=AllowSecretsManagerInvocation]
module.app.module.api.aws_iam_role_policy_attachments_exclusive.execution: Refreshing state...
module.app.module.api.aws_iam_role_policy_attachments_exclusive.task: Refreshing state...
module.app.module.cloudfront_waf.data.aws_cloudfront_cache_policy.policy: Reading...
module.app.module.cloudfront_waf.data.aws_cloudfront_response_headers_policy.policy: Reading...
module.app.module.api.module.alb["this"].aws_lb_listener.this["https"]: Refreshing state... [id=arn:aws:elasticloadbalancing:us-east-1:929751802067:listener/app/sebt-development-api/bd09888620fda826/478e4d187d3b3c11]
module.app.module.api.module.alb["this"].aws_lb_listener.this["http"]: Refreshing state... [id=arn:aws:elasticloadbalancing:us-east-1:929751802067:listener/app/sebt-development-api/bd09888620fda826/3ba3e0fdca65cfe9]
module.app.module.database.aws_secretsmanager_secret_rotation.app_user: Refreshing state... [id=arn:aws:secretsmanager:us-east-1:929751802067:secret:sebt-portal-co-development-db-app-user-euYT9F]
module.app.module.cloudfront_waf.data.aws_cloudfront_origin_request_policy.policy: Reading...
module.app.module.api.module.task_security_group.aws_security_group_rule.ingress_with_source_security_group_id[0]: Refreshing state... [id=sgrule-1244517283]
module.app.module.api.module.task_security_group.aws_security_group_rule.egress_rules[0]: Refreshing state... [id=sgrule-1170694496]
module.app.module.api.aws_route53_record.endpoint["this"]: Refreshing state... [id=Z098414410HX6MSQGTBR7_api.dev.co.sebt-portal.codeforamerica.app_A]
module.app.module.cloudfront_waf.terraform_data.origin_alb: Refreshing state... [id=6de7dbfd-d630-651f-9cc8-69cb8b219b17]
module.app.module.cloudfront_waf.data.aws_lb.origin["this"]: Reading...
module.app.module.cloudfront_waf.data.aws_lb_listener.origin["this"]: Reading...
module.app.module.cloudfront_waf.data.aws_cloudfront_cache_policy.policy: Read complete after 1s [id=4135ea2d-6df8-44a3-9df3-4b5a84be39ad]
module.app.module.cloudfront_waf.terraform_data.prefix: Refreshing state... [id=140edc95-c4c3-ecbb-ba17-946dcfb3794f]
module.app.module.cloudfront_waf.aws_acm_certificate.subdomain: Refreshing state... [id=arn:aws:acm:us-east-1:929751802067:certificate/e1f24eb8-3864-4d49-986d-522d41f1a0f9]
module.app.module.cloudfront_waf.data.aws_cloudfront_response_headers_policy.policy: Read complete after 1s [id=60669652-455b-4ae9-85a4-c4c02393f86c]
module.app.module.cloudfront_waf.aws_cloudfront_vpc_origin.this["this"]: Refreshing state... [id=vo_6DbhJejq6MZF1pA34wKF5e]
module.app.module.redis.aws_security_group_rule.this["ingress_sg_0"]: Refreshing state... [id=sgrule-1689251358]
module.app.module.database.aws_security_group_rule.this["ingress_cidrs"]: Refreshing state... [id=sgrule-1422780690]
module.app.module.cloudfront_waf.data.aws_cloudfront_origin_request_policy.policy: Read complete after 1s [id=216adef6-5c7f-47e4-b989-5492eafa07d3]
module.app.module.database.aws_security_group_rule.this["ingress_sg_0"]: Refreshing state... [id=sgrule-2221677209]
module.app.module.cloudfront_waf.data.aws_lb_listener.origin["this"]: Read complete after 1s [id=arn:aws:elasticloadbalancing:us-east-1:929751802067:listener/app/sebt-development-web/5b2e35348ce03418/cd6ddd06abf44432]
module.app.module.web.module.ecs_service.module.fargate.module.task.aws_ecs_task_definition.main[0]: Refreshing state... [id=sebt-portal-co-development-web]
module.app.module.cloudfront_waf.data.aws_lb.origin["this"]: Read complete after 1s [id=arn:aws:elasticloadbalancing:us-east-1:929751802067:loadbalancer/app/sebt-development-web/5b2e35348ce03418]
module.app.module.api.module.ecs_service.module.fargate.module.task.aws_ecs_task_definition.main[0]: Refreshing state... [id=sebt-portal-co-development-api]
module.app.module.cloudfront_waf.aws_lb_listener_certificate.origin["this"]: Refreshing state... [id=arn:aws:elasticloadbalancing:us-east-1:929751802067:listener/app/sebt-development-web/5b2e35348ce03418/cd6ddd06abf44432_arn:aws:acm:us-east-1:929751802067:certificate/e1f24eb8-3864-4d49-986d-522d41f1a0f9]
module.app.module.cloudfront_waf.aws_route53_record.validation["dev.co.sebt-portal.codeforamerica.app"]: Refreshing state... [id=Z098414410HX6MSQGTBR7__444cc5928f2ee842f697814343f156b0.dev.co.sebt-portal.codeforamerica.app._CNAME]
module.app.module.cloudfront_waf.aws_wafv2_rule_group.webhooks["this"]: Refreshing state... [id=f0289d18-4831-4570-973b-78933f9f7e2e]
module.app.module.cloudfront_waf.aws_acm_certificate_validation.validation: Refreshing state... [id=2026-02-26 19:35:44.882 +0000 UTC]
module.app.module.web.module.ecs_service.module.fargate.aws_ecs_service.main[0]: Refreshing state... [id=arn:aws:ecs:us-east-1:929751802067:service/sebt-portal-co-development-web/sebt-portal-co-development-web]
module.app.module.api.module.ecs_service.module.fargate.aws_ecs_service.main[0]: Refreshing state... [id=arn:aws:ecs:us-east-1:929751802067:service/sebt-portal-co-development-api/sebt-portal-co-development-api]
module.app.module.cloudfront_waf.aws_wafv2_web_acl.waf: Refreshing state... [id=a4f8e938-a3b4-47cd-ac85-4ba1a83e5ac6]
module.app.module.cloudfront_waf.aws_wafv2_web_acl_logging_configuration.waf: Refreshing state... [id=arn:aws:wafv2:us-east-1:929751802067:global/webacl/sebt-portal-co-development/a4f8e938-a3b4-47cd-ac85-4ba1a83e5ac6]
module.app.module.cloudfront_waf.aws_cloudfront_distribution.waf: Refreshing state... [id=E1G84YHI46MQZ5]
module.app.module.cloudfront_waf.aws_route53_record.subdomain: Refreshing state... [id=Z098414410HX6MSQGTBR7_dev.co.sebt-portal.codeforamerica.app_A]

OpenTofu used the selected providers to generate the following execution
plan. Resource actions are indicated with the following symbols:
  ~ update in-place
+/- create replacement and then destroy

OpenTofu will perform the following actions:

  # module.app.module.database.aws_lambda_function.rotation will be updated in-place
  ~ resource "aws_lambda_function" "rotation" {
        id                             = "sebt-portal-co-development-db-rotation"
      ~ last_modified                  = "2026-07-20T20:37:47.000+0000" -> (known after apply)
      ~ source_code_hash               = "Xsxmjh86o0TulYsQVLJfLxesE2ooSVKzmPW5twOp/SI=" -> "MXqmWvXEFYBcw21XDlohQTvPMPHtdTvcETJa9yVxL3A="
        tags                           = {
            "Name" = "sebt-portal-co-development-db-rotation"
        }
        # (24 unchanged attributes hidden)

      ~ environment {
          ~ variables = {
              + "ADDITIONAL_DB_NAMES" = ""
                # (6 unchanged elements hidden)
            }
        }

        # (4 unchanged blocks hidden)
    }

  # module.app.module.api.module.ecs_service.module.fargate.aws_ecs_service.main[0] will be updated in-place
  ~ resource "aws_ecs_service" "main" {
        id                                 = "arn:aws:ecs:us-east-1:929751802067:service/sebt-portal-co-development-api/sebt-portal-co-development-api"
        name                               = "sebt-portal-co-development-api"
        tags                               = {}
      ~ task_definition                    = "arn:aws:ecs:us-east-1:929751802067:task-definition/sebt-portal-co-development-api:352" -> (known after apply)
        # (20 unchanged attributes hidden)

        # (5 unchanged blocks hidden)
    }

  # module.app.module.web.module.ecs_service.module.fargate.aws_ecs_service.main[0] will be updated in-place
  ~ resource "aws_ecs_service" "main" {
        id                                 = "arn:aws:ecs:us-east-1:929751802067:service/sebt-portal-co-development-web/sebt-portal-co-development-web"
        name                               = "sebt-portal-co-development-web"
        tags                               = {}
      ~ task_definition                    = "arn:aws:ecs:us-east-1:929751802067:task-definition/sebt-portal-co-development-web:353" -> (known after apply)
        # (20 unchanged attributes hidden)

        # (5 unchanged blocks hidden)
    }

  # module.app.module.api.module.ecs_service.module.fargate.module.task.aws_ecs_task_definition.main[0] must be replaced
+/- resource "aws_ecs_task_definition" "main" {
      ~ arn                      = "arn:aws:ecs:us-east-1:929751802067:task-definition/sebt-portal-co-development-api:352" -> (known after apply)
      ~ arn_without_revision     = "arn:aws:ecs:us-east-1:929751802067:task-definition/sebt-portal-co-development-api" -> (known after apply)
      ~ container_definitions    = jsonencode(
          ~ [
              ~ {
                  - mountPoints      = []
                    name             = "appconfig-agent"
                  ~ portMappings     = [
                      ~ {
                          - hostPort      = 2772
                          - protocol      = "tcp"
                            # (1 unchanged attribute hidden)
                        },
                    ]
                  - systemControls   = []
                  - volumesFrom      = []
                    # (4 unchanged attributes hidden)
                },
              ~ {
                  - mountPoints      = []
                    name             = "otel-collector"
                  - portMappings     = []
                  - systemControls   = []
                  - volumesFrom      = []
                    # (8 unchanged attributes hidden)
                },
              ~ {
                  ~ image             = "929751802067.dkr.ecr.us-east-1.amazonaws.com/sebt-portal-co-development-api:e8cf4153d7ab3fd56471dea30b6aa227bac26468" -> "929751802067.dkr.ecr.us-east-1.amazonaws.com/sebt-portal-co-development-api:a0e35ace1b5fb296f4b23e6f6608815aa82bd945"
                  - mountPoints       = []
                    name              = "sebt-portal-co-development-api"
                  ~ portMappings      = [
                      ~ {
                          - hostPort      = 8080
                          - protocol      = "tcp"
                            # (1 unchanged attribute hidden)
                        },
                    ]
                  - systemControls    = []
                  - volumesFrom       = []
                    # (9 unchanged attributes hidden)
                },
            ] # forces replacement
        )
      ~ id                       = "sebt-portal-co-development-api" -> (known after apply)
      ~ revision                 = 352 -> (known after apply)
      - tags                     = {} -> null
        # (12 unchanged attributes hidden)
    }

  # module.app.module.web.module.ecs_service.module.fargate.module.task.aws_ecs_task_definition.main[0] must be replaced
+/- resource "aws_ecs_task_definition" "main" {
      ~ arn                      = "arn:aws:ecs:us-east-1:929751802067:task-definition/sebt-portal-co-development-web:353" -> (known after apply)
      ~ arn_without_revision     = "arn:aws:ecs:us-east-1:929751802067:task-definition/sebt-portal-co-development-web" -> (known after apply)
      ~ container_definitions    = jsonencode(
          ~ [
              ~ {
                  - mountPoints      = []
                    name             = "otel-collector"
                  - portMappings     = []
                  - systemControls   = []
                  - volumesFrom      = []
                    # (8 unchanged attributes hidden)
                },
              ~ {
                  ~ image             = "929751802067.dkr.ecr.us-east-1.amazonaws.com/sebt-portal-co-development-web:e8cf4153d7ab3fd56471dea30b6aa227bac26468" -> "929751802067.dkr.ecr.us-east-1.amazonaws.com/sebt-portal-co-development-web:a0e35ace1b5fb296f4b23e6f6608815aa82bd945"
                  - mountPoints       = []
                    name              = "sebt-portal-co-development-web"
                  ~ portMappings      = [
                      ~ {
                          - hostPort      = 3000
                          - protocol      = "tcp"
                            # (1 unchanged attribute hidden)
                        },
                    ]
                  - systemControls    = []
                  - volumesFrom       = []
                    # (8 unchanged attributes hidden)
                },
            ] # forces replacement
        )
      ~ id                       = "sebt-portal-co-development-web" -> (known after apply)
      ~ revision                 = 353 -> (known after apply)
      - tags                     = {} -> null
        # (12 unchanged attributes hidden)
    }

Plan: 2 to add, 3 to change, 2 to destroy.

Warning: Deprecated attribute

  on .terraform/modules/app.api/iam.tf line 96, in resource "aws_iam_policy" "appconfig":
  96:           data.aws_region.current.name,

The attribute "name" is deprecated. Refer to the provider documentation for
details.

(and 45 more similar warnings elsewhere)

─────────────────────────────────────────────────────────────────────────────

Note: You didn't use the -out option to save this plan, so OpenTofu can't
guarantee to take exactly these actions if you run "tofu apply" now.

@noxmwalsh noxmwalsh left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

:shipit:

@spokenbird
spokenbird merged commit df90082 into main Jul 21, 2026
29 checks passed
@spokenbird
spokenbird deleted the feature/DC-250-rotation-lambda-multi-db branch July 21, 2026 22:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

feature New feature, enhancement or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants