-
Notifications
You must be signed in to change notification settings - Fork 21
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Scheduled task for send grant digest emails #2890
Conversation
QA Summary
Test CoverageCoverage report for `packages/client`
Coverage report for `packages/server`
Pusher: @TylerHendrickson, Action: |
Terraform Summary
Hint: If "Terraform Format & Style" failed, run OutputValidation Output
Plan OutputNote: Objects have changed outside of Terraform
Terraform detected the following changes made outside of Terraform since the
last "terraform apply" which may have affected this plan:
# module.api.aws_ecs_task_definition.default[0] has changed
~ resource "aws_ecs_task_definition" "default" {
id = "gost-staging-api"
+ tags = {}
# (13 unchanged attributes hidden)
+ volume {
+ name = "data"
+ efs_volume_configuration {
+ file_system_id = "fs-08f95063c1cdbe191"
+ root_directory = "/"
+ transit_encryption = "ENABLED"
+ transit_encryption_port = 0
+ authorization_config {
+ access_point_id = "fsap-03bc0296928aade4f"
}
}
}
- volume {
- name = "data" -> null
- efs_volume_configuration {
- file_system_id = "fs-08f95063c1cdbe191" -> null
- root_directory = "/" -> null
- transit_encryption = "ENABLED" -> null
- authorization_config {
- access_point_id = "fsap-03bc0296928aade4f" -> null
}
}
}
# (1 unchanged block hidden)
}
# module.api.aws_iam_role.task[0] has changed
~ resource "aws_iam_role" "task" {
id = "gost-staging-api-ECSTask-2023021701041477300000000a"
name = "gost-staging-api-ECSTask-2023021701041477300000000a"
~ role_last_used = [
~ {
~ last_used_date = "2024-04-04T15:48:28Z" -> "2024-04-04T18:11:53Z"
# (1 unchanged element hidden)
},
]
tags = {}
# (11 unchanged attributes hidden)
# (6 unchanged blocks hidden)
}
Unless you have made equivalent changes to your configuration, or ignored the
relevant attributes using ignore_changes, the following plan may include
actions to undo or respond to these changes.
─────────────────────────────────────────────────────────────────────────────
Terraform used the selected providers to generate the following execution
plan. Resource actions are indicated with the following symbols:
+ create
~ update in-place
- destroy
+/- create replacement and then destroy
<= read (data resources)
Terraform will perform the following actions:
# module.api.aws_ecs_service.default[0] will be updated in-place
~ resource "aws_ecs_service" "default" {
id = "arn:aws:ecs:us-west-2:357150818708:service/gost-staging/gost-staging-api"
name = "gost-staging-api"
tags = {}
~ task_definition = "arn:aws:ecs:us-west-2:357150818708:task-definition/gost-staging-api:219" -> (known after apply)
# (15 unchanged attributes hidden)
# (4 unchanged blocks hidden)
}
# module.api.aws_ecs_task_definition.default[0] must be replaced
+/- resource "aws_ecs_task_definition" "default" {
~ arn = "arn:aws:ecs:us-west-2:357150818708:task-definition/gost-staging-api:219" -> (known after apply)
~ arn_without_revision = "arn:aws:ecs:us-west-2:357150818708:task-definition/gost-staging-api" -> (known after apply)
~ container_definitions = jsonencode(
~ [ # forces replacement
~ {
~ dockerLabels = {
~ "com.datadoghq.tags.version" = "9570e4ac4ce3c34fe658606b07425a9097c366b1" -> "bcafb3eb8a101a31853f76a46f2f8c7844e04cf4"
# (2 unchanged elements hidden)
}
~ environment = [
# (7 unchanged elements hidden)
{
name = "DD_SERVICE"
value = "gost"
},
~ {
name = "DD_VERSION"
~ value = "9570e4ac4ce3c34fe658606b07425a9097c366b1" -> "bcafb3eb8a101a31853f76a46f2f8c7844e04cf4"
},
{
name = "ENABLE_GRANTS_DIGEST"
value = "false"
},
{
name = "ENABLE_GRANTS_SCRAPER"
value = "false"
},
+ {
+ name = "ENABLE_GRANT_DIGEST_SCHEDULED_TASK"
+ value = "true"
},
{
name = "ENABLE_MY_PROFILE"
value = "true"
},
# (10 unchanged elements hidden)
]
~ image = "ghcr.io/usdigitalresponse/usdr-gost-api:9570e4ac4ce3c34fe658606b07425a9097c366b1@sha256:ba6bcacab6b1152fe7067f5bb1c1712862e32ecfcfa00980fe6f86c7b3aae0d1" -> "ghcr.io/usdigitalresponse/usdr-gost-api:bcafb3eb8a101a31853f76a46f2f8c7844e04cf4@sha256:caac8cb9c28583e24b4e1bb5e4bfaff848459093cfa81bac450f5a8a8861f51f"
name = "api"
- systemControls = [] -> null
- volumesFrom = [] -> null
# (9 unchanged elements hidden)
} # forces replacement,
~ {
~ dockerLabels = {
~ "com.datadoghq.tags.version" = "9570e4ac4ce3c34fe658606b07425a9097c366b1" -> "bcafb3eb8a101a31853f76a46f2f8c7844e04cf4"
# (2 unchanged elements hidden)
}
~ environment = [
# (3 unchanged elements hidden)
{
name = "DD_SERVICE"
value = "gost"
},
~ {
name = "DD_VERSION"
~ value = "9570e4ac4ce3c34fe658606b07425a9097c366b1" -> "bcafb3eb8a101a31853f76a46f2f8c7844e04cf4"
},
{
name = "ECS_FARGATE"
value = "true"
},
]
- mountPoints = [] -> null
name = "datadog"
- portMappings = [] -> null
- systemControls = [] -> null
- volumesFrom = [] -> null
# (6 unchanged elements hidden)
} # forces replacement,
]
)
~ id = "gost-staging-api" -> (known after apply)
~ revision = 219 -> (known after apply)
- tags = {} -> null
# (9 unchanged attributes hidden)
- volume {
- name = "data" -> null
- efs_volume_configuration {
- file_system_id = "fs-08f95063c1cdbe191" -> null
- root_directory = "/" -> null
- transit_encryption = "ENABLED" -> null
- transit_encryption_port = 0 -> null
- authorization_config {
- access_point_id = "fsap-03bc0296928aade4f" -> null
}
}
}
+ volume {
+ name = "data"
+ efs_volume_configuration {
+ file_system_id = "fs-08f95063c1cdbe191"
+ root_directory = "/"
+ transit_encryption = "ENABLED"
+ authorization_config {
+ access_point_id = "fsap-03bc0296928aade4f"
}
}
}
# (1 unchanged block hidden)
}
# module.arpa_audit_report.aws_ecs_service.default will be updated in-place
~ resource "aws_ecs_service" "default" {
id = "arn:aws:ecs:us-west-2:357150818708:service/gost-staging/gost-staging-arpa_audit_report"
name = "gost-staging-arpa_audit_report"
tags = {}
~ task_definition = "arn:aws:ecs:us-west-2:357150818708:task-definition/gost-staging-arpa_audit_report:188" -> (known after apply)
# (15 unchanged attributes hidden)
# (3 unchanged blocks hidden)
}
# module.arpa_audit_report.aws_ecs_task_definition.consumer must be replaced
+/- resource "aws_ecs_task_definition" "consumer" {
~ arn = "arn:aws:ecs:us-west-2:357150818708:task-definition/gost-staging-arpa_audit_report:188" -> (known after apply)
~ arn_without_revision = "arn:aws:ecs:us-west-2:357150818708:task-definition/gost-staging-arpa_audit_report" -> (known after apply)
~ container_definitions = (sensitive value) # forces replacement
~ id = "gost-staging-arpa_audit_report" -> (known after apply)
- ipc_mode = "" -> null
- pid_mode = "" -> null
~ revision = 188 -> (known after apply)
- tags = {} -> null
# (9 unchanged attributes hidden)
- volume {
- name = "data" -> null
- efs_volume_configuration {
- file_system_id = "fs-08f95063c1cdbe191" -> null
- root_directory = "/" -> null
- transit_encryption = "ENABLED" -> null
- transit_encryption_port = 0 -> null
- authorization_config {
- access_point_id = "fsap-03bc0296928aade4f" -> null
}
}
}
+ volume {
+ name = "data"
+ efs_volume_configuration {
+ file_system_id = "fs-08f95063c1cdbe191"
+ root_directory = "/"
+ transit_encryption = "ENABLED"
+ authorization_config {
+ access_point_id = "fsap-03bc0296928aade4f"
}
}
}
# (1 unchanged block hidden)
}
# module.arpa_treasury_report.aws_ecs_service.default will be updated in-place
~ resource "aws_ecs_service" "default" {
id = "arn:aws:ecs:us-west-2:357150818708:service/gost-staging/gost-staging-treasury_report"
name = "gost-staging-treasury_report"
tags = {}
~ task_definition = "arn:aws:ecs:us-west-2:357150818708:task-definition/gost-staging-treasury_report:177" -> (known after apply)
# (15 unchanged attributes hidden)
# (3 unchanged blocks hidden)
}
# module.arpa_treasury_report.aws_ecs_task_definition.consumer must be replaced
+/- resource "aws_ecs_task_definition" "consumer" {
~ arn = "arn:aws:ecs:us-west-2:357150818708:task-definition/gost-staging-treasury_report:177" -> (known after apply)
~ arn_without_revision = "arn:aws:ecs:us-west-2:357150818708:task-definition/gost-staging-treasury_report" -> (known after apply)
~ container_definitions = (sensitive value) # forces replacement
~ id = "gost-staging-treasury_report" -> (known after apply)
- ipc_mode = "" -> null
- pid_mode = "" -> null
~ revision = 177 -> (known after apply)
- tags = {} -> null
# (9 unchanged attributes hidden)
- volume {
- name = "data" -> null
- efs_volume_configuration {
- file_system_id = "fs-08f95063c1cdbe191" -> null
- root_directory = "/" -> null
- transit_encryption = "ENABLED" -> null
- transit_encryption_port = 0 -> null
- authorization_config {
- access_point_id = "fsap-03bc0296928aade4f" -> null
}
}
}
+ volume {
+ name = "data"
+ efs_volume_configuration {
+ file_system_id = "fs-08f95063c1cdbe191"
+ root_directory = "/"
+ transit_encryption = "ENABLED"
+ authorization_config {
+ access_point_id = "fsap-03bc0296928aade4f"
}
}
}
# (1 unchanged block hidden)
}
# module.consume_grants.aws_ecs_service.default will be updated in-place
~ resource "aws_ecs_service" "default" {
id = "arn:aws:ecs:us-west-2:357150818708:service/gost-staging/gost-staging-consume_grants"
name = "gost-staging-consume_grants"
tags = {}
~ task_definition = "arn:aws:ecs:us-west-2:357150818708:task-definition/gost-staging-consume_grants:204" -> (known after apply)
# (15 unchanged attributes hidden)
# (3 unchanged blocks hidden)
}
# module.consume_grants.aws_ecs_task_definition.consume_grants must be replaced
+/- resource "aws_ecs_task_definition" "consume_grants" {
~ arn = "arn:aws:ecs:us-west-2:357150818708:task-definition/gost-staging-consume_grants:204" -> (known after apply)
~ arn_without_revision = "arn:aws:ecs:us-west-2:357150818708:task-definition/gost-staging-consume_grants" -> (known after apply)
~ container_definitions = (sensitive value) # forces replacement
~ id = "gost-staging-consume_grants" -> (known after apply)
- ipc_mode = "" -> null
- pid_mode = "" -> null
~ revision = 204 -> (known after apply)
- tags = {} -> null
# (9 unchanged attributes hidden)
# (1 unchanged block hidden)
}
# module.website.aws_s3_object.deploy-config[0] will be updated in-place
~ resource "aws_s3_object" "deploy-config" {
~ content = <<-EOT
window.APP_CONFIG = window.APP_CONFIG || {};
window.APP_CONFIG.apiURLForGOST = 'https://api.staging.grants.usdr.dev/';
window.apiURLForGOST = window.APP_CONFIG.apiURLForGOST; // Legacy
window.APP_CONFIG.DD_RUM_ENABLED = true;
- window.APP_CONFIG.DD_RUM_CONFIG = {"allowedTracingUrls":["https://api.staging.grants.usdr.dev"],"applicationId":"15db471e-2ccb-4d3c-a6bf-99b750d748f5","clientToken":"pub50834fcc1999d53e546519b1a0f03934","defaultPrivacyLevel":"mask","env":"staging","service":"gost","sessionReplaySampleRate":100,"sessionSampleRate":100,"site":"datadoghq.com","trackLongTasks":true,"trackResources":true,"trackUserInteractions":true,"version":"9570e4ac4ce3c34fe658606b07425a9097c366b1"};
+ window.APP_CONFIG.DD_RUM_CONFIG = {"allowedTracingUrls":["https://api.staging.grants.usdr.dev"],"applicationId":"15db471e-2ccb-4d3c-a6bf-99b750d748f5","clientToken":"pub50834fcc1999d53e546519b1a0f03934","defaultPrivacyLevel":"mask","env":"staging","service":"gost","sessionReplaySampleRate":100,"sessionSampleRate":100,"site":"datadoghq.com","trackLongTasks":true,"trackResources":true,"trackUserInteractions":true,"version":"bcafb3eb8a101a31853f76a46f2f8c7844e04cf4"};
window.APP_CONFIG.GOOGLE_TAG_ID = 'G-D5DFR7BN0N';
window.APP_CONFIG.featureFlags = {"myProfileEnabled":true,"newGrantsDetailPageEnabled":true,"newTerminologyEnabled":true};
window.APP_CONFIG.overrideFeatureFlag = (flagName, overrideValue) => {
const storageKey = 'featureFlags';
let overrides = {};
try {
overrides = JSON.parse(window.sessionStorage.getItem(storageKey)) || {};
} catch (e) {
console.error(`Error parsing window.sessionStorage.${storageKey} as JSON:`, e);
console.warn(`window.sessionStorage.${storageKey} will be replaced.`);
}
overrides[flagName] = overrideValue;
window.sessionStorage.setItem(storageKey, JSON.stringify(overrides));
console.log('New feature flag overrides in page session:',
window.sessionStorage.getItem(storageKey));
};
EOT
~ etag = "4aef77e321070b6ed0bbfbd32f746243" -> "5bfe7bcf66dda02dee1d86692b7a64dc"
id = "/config/deploy-config.js"
tags = {}
~ version_id = "XJMdlehJ3r8dc3.0h3CXZnEm21nnmjLH" -> (known after apply)
# (10 unchanged attributes hidden)
}
# module.website.aws_s3_object.origin_dist_artifact["arpa_reporter/index.html"] will be updated in-place
~ resource "aws_s3_object" "origin_dist_artifact" {
~ etag = "c3e5f47627117bdd48669ce3fdb6f4f8" -> "04471d83e92eeab3a96d11d39c1e36ba"
id = "dist/arpa_reporter/index.html"
~ source_hash = "c3e5f47627117bdd48669ce3fdb6f4f8" -> "04471d83e92eeab3a96d11d39c1e36ba"
tags = {}
~ version_id = "RV07As3f47rJ_rENoKtKgWO_eiqZSVcT" -> (known after apply)
# (11 unchanged attributes hidden)
}
# module.website.aws_s3_object.origin_dist_artifact["index.html"] will be updated in-place
~ resource "aws_s3_object" "origin_dist_artifact" {
~ etag = "2459933fd5096eefbc551703f6e6b938" -> "ad1b945931c7d5af98960a2ffd8a19eb"
id = "dist/index.html"
~ source_hash = "2459933fd5096eefbc551703f6e6b938" -> "ad1b945931c7d5af98960a2ffd8a19eb"
tags = {}
~ version_id = "if.Rci58UYoKYzddiYinjhYaSBwmGTs4" -> (known after apply)
# (11 unchanged attributes hidden)
}
# module.website.aws_s3_object.origin_dist_artifact["js/131.33a64a4c.js"] will be created
+ resource "aws_s3_object" "origin_dist_artifact" {
+ acl = "private"
+ bucket = "gost-staging-origin-357150818708-us-west-2-website"
+ bucket_key_enabled = (known after apply)
+ content_type = "text/javascript"
+ etag = "86f2af2941f01afd805ee2584d1713af"
+ force_destroy = false
+ id = (known after apply)
+ key = "dist/js/131.33a64a4c.js"
+ kms_key_id = (known after apply)
+ server_side_encryption = "AES256"
+ source = "/home/runner/work/usdr-gost/usdr-gost/packages/client/dist/js/131.33a64a4c.js"
+ source_hash = "86f2af2941f01afd805ee2584d1713af"
+ storage_class = (known after apply)
+ tags_all = {
+ "env" = "staging"
+ "management" = "terraform"
+ "owner" = "grants"
+ "repo" = "usdr-gost"
+ "service" = "gost"
+ "usage" = "workload"
}
+ version_id = (known after apply)
}
# module.website.aws_s3_object.origin_dist_artifact["js/131.33a64a4c.js.map"] will be created
+ resource "aws_s3_object" "origin_dist_artifact" {
+ acl = "private"
+ bucket = "gost-staging-origin-357150818708-us-west-2-website"
+ bucket_key_enabled = (known after apply)
+ content_type = "application/json"
+ etag = "104d6236fc9b514b39361aa1f3ac039c"
+ force_destroy = false
+ id = (known after apply)
+ key = "dist/js/131.33a64a4c.js.map"
+ kms_key_id = (known after apply)
+ server_side_encryption = "AES256"
+ source = "/home/runner/work/usdr-gost/usdr-gost/packages/client/dist/js/131.33a64a4c.js.map"
+ source_hash = "104d6236fc9b514b39361aa1f3ac039c"
+ storage_class = (known after apply)
+ tags_all = {
+ "env" = "staging"
+ "management" = "terraform"
+ "owner" = "grants"
+ "repo" = "usdr-gost"
+ "service" = "gost"
+ "usage" = "workload"
}
+ version_id = (known after apply)
}
# module.website.aws_s3_object.origin_dist_artifact["js/131.7e57803b.js"] will be destroyed
# (because key ["js/131.7e57803b.js"] is not in for_each map)
- resource "aws_s3_object" "origin_dist_artifact" {
- acl = "private" -> null
- bucket = "gost-staging-origin-357150818708-us-west-2-website" -> null
- bucket_key_enabled = false -> null
- content_type = "text/javascript" -> null
- etag = "40dacfaebf4825ca990c5724fab5cf89" -> null
- force_destroy = false -> null
- id = "dist/js/131.7e57803b.js" -> null
- key = "dist/js/131.7e57803b.js" -> null
- metadata = {} -> null
- server_side_encryption = "AES256" -> null
- source = "/home/runner/work/usdr-gost/usdr-gost/packages/client/dist/js/131.7e57803b.js" -> null
- source_hash = "40dacfaebf4825ca990c5724fab5cf89" -> null
- storage_class = "STANDARD" -> null
- tags = {} -> null
- tags_all = {
- "env" = "staging"
- "management" = "terraform"
- "owner" = "grants"
- "repo" = "usdr-gost"
- "service" = "gost"
- "usage" = "workload"
} -> null
- version_id = "kOAbTMfhZL7VT.Ixl3_Wf7gbnDa8a.n7" -> null
}
# module.website.aws_s3_object.origin_dist_artifact["js/131.7e57803b.js.map"] will be destroyed
# (because key ["js/131.7e57803b.js.map"] is not in for_each map)
- resource "aws_s3_object" "origin_dist_artifact" {
- acl = "private" -> null
- bucket = "gost-staging-origin-357150818708-us-west-2-website" -> null
- bucket_key_enabled = false -> null
- content_type = "application/json" -> null
- etag = "1046ebe65a7434e1bf16bd71236e3a3c" -> null
- force_destroy = false -> null
- id = "dist/js/131.7e57803b.js.map" -> null
- key = "dist/js/131.7e57803b.js.map" -> null
- metadata = {} -> null
- server_side_encryption = "AES256" -> null
- source = "/home/runner/work/usdr-gost/usdr-gost/packages/client/dist/js/131.7e57803b.js.map" -> null
- source_hash = "1046ebe65a7434e1bf16bd71236e3a3c" -> null
- storage_class = "STANDARD" -> null
- tags = {} -> null
- tags_all = {
- "env" = "staging"
- "management" = "terraform"
- "owner" = "grants"
- "repo" = "usdr-gost"
- "service" = "gost"
- "usage" = "workload"
} -> null
- version_id = "Azm832nJkxHhZz6xq9BxzQ.4.WmC979O" -> null
}
# module.website.aws_s3_object.origin_dist_artifact["js/223.66070969.js"] will be destroyed
# (because key ["js/223.66070969.js"] is not in for_each map)
- resource "aws_s3_object" "origin_dist_artifact" {
- acl = "private" -> null
- bucket = "gost-staging-origin-357150818708-us-west-2-website" -> null
- bucket_key_enabled = false -> null
- content_type = "text/javascript" -> null
- etag = "08d1e6c73b3c861a908e83216ed3f235" -> null
- force_destroy = false -> null
- id = "dist/js/223.66070969.js" -> null
- key = "dist/js/223.66070969.js" -> null
- metadata = {} -> null
- server_side_encryption = "AES256" -> null
- source = "/home/runner/work/usdr-gost/usdr-gost/packages/client/dist/js/223.66070969.js" -> null
- source_hash = "08d1e6c73b3c861a908e83216ed3f235" -> null
- storage_class = "STANDARD" -> null
- tags = {} -> null
- tags_all = {
- "env" = "staging"
- "management" = "terraform"
- "owner" = "grants"
- "repo" = "usdr-gost"
- "service" = "gost"
- "usage" = "workload"
} -> null
- version_id = ".QLzanuR_TJbwq8ER2rCloiLE.aWH8Gb" -> null
}
# module.website.aws_s3_object.origin_dist_artifact["js/223.66070969.js.map"] will be destroyed
# (because key ["js/223.66070969.js.map"] is not in for_each map)
- resource "aws_s3_object" "origin_dist_artifact" {
- acl = "private" -> null
- bucket = "gost-staging-origin-357150818708-us-west-2-website" -> null
- bucket_key_enabled = false -> null
- content_type = "application/json" -> null
- etag = "ad6f6fe4d5db3549891b86157dbcbafe" -> null
- force_destroy = false -> null
- id = "dist/js/223.66070969.js.map" -> null
- key = "dist/js/223.66070969.js.map" -> null
- metadata = {} -> null
- server_side_encryption = "AES256" -> null
- source = "/home/runner/work/usdr-gost/usdr-gost/packages/client/dist/js/223.66070969.js.map" -> null
- source_hash = "ad6f6fe4d5db3549891b86157dbcbafe" -> null
- storage_class = "STANDARD" -> null
- tags = {} -> null
- tags_all = {
- "env" = "staging"
- "management" = "terraform"
- "owner" = "grants"
- "repo" = "usdr-gost"
- "service" = "gost"
- "usage" = "workload"
} -> null
- version_id = "_ouPUynLoI9hfvRh5r1TrGgpfQcM4vlC" -> null
}
# module.website.aws_s3_object.origin_dist_artifact["js/223.8de88314.js"] will be created
+ resource "aws_s3_object" "origin_dist_artifact" {
+ acl = "private"
+ bucket = "gost-staging-origin-357150818708-us-west-2-website"
+ bucket_key_enabled = (known after apply)
+ content_type = "text/javascript"
+ etag = "c049d3ec4778a0d311364cfe8f741717"
+ force_destroy = false
+ id = (known after apply)
+ key = "dist/js/223.8de88314.js"
+ kms_key_id = (known after apply)
+ server_side_encryption = "AES256"
+ source = "/home/runner/work/usdr-gost/usdr-gost/packages/client/dist/js/223.8de88314.js"
+ source_hash = "c049d3ec4778a0d311364cfe8f741717"
+ storage_class = (known after apply)
+ tags_all = {
+ "env" = "staging"
+ "management" = "terraform"
+ "owner" = "grants"
+ "repo" = "usdr-gost"
+ "service" = "gost"
+ "usage" = "workload"
}
+ version_id = (known after apply)
}
# module.website.aws_s3_object.origin_dist_artifact["js/223.8de88314.js.map"] will be created
+ resource "aws_s3_object" "origin_dist_artifact" {
+ acl = "private"
+ bucket = "gost-staging-origin-357150818708-us-west-2-website"
+ bucket_key_enabled = (known after apply)
+ content_type = "application/json"
+ etag = "79da56b101d6293a71582ecf7ae8c3aa"
+ force_destroy = false
+ id = (known after apply)
+ key = "dist/js/223.8de88314.js.map"
+ kms_key_id = (known after apply)
+ server_side_encryption = "AES256"
+ source = "/home/runner/work/usdr-gost/usdr-gost/packages/client/dist/js/223.8de88314.js.map"
+ source_hash = "79da56b101d6293a71582ecf7ae8c3aa"
+ storage_class = (known after apply)
+ tags_all = {
+ "env" = "staging"
+ "management" = "terraform"
+ "owner" = "grants"
+ "repo" = "usdr-gost"
+ "service" = "gost"
+ "usage" = "workload"
}
+ version_id = (known after apply)
}
# module.website.aws_s3_object.origin_dist_artifact["js/40.e3b39a73.js"] will be destroyed
# (because key ["js/40.e3b39a73.js"] is not in for_each map)
- resource "aws_s3_object" "origin_dist_artifact" {
- acl = "private" -> null
- bucket = "gost-staging-origin-357150818708-us-west-2-website" -> null
- bucket_key_enabled = false -> null
- content_type = "text/javascript" -> null
- etag = "314e23405be700293f93db6fcba52c8e" -> null
- force_destroy = false -> null
- id = "dist/js/40.e3b39a73.js" -> null
- key = "dist/js/40.e3b39a73.js" -> null
- metadata = {} -> null
- server_side_encryption = "AES256" -> null
- source = "/home/runner/work/usdr-gost/usdr-gost/packages/client/dist/js/40.e3b39a73.js" -> null
- source_hash = "314e23405be700293f93db6fcba52c8e" -> null
- storage_class = "STANDARD" -> null
- tags = {} -> null
- tags_all = {
- "env" = "staging"
- "management" = "terraform"
- "owner" = "grants"
- "repo" = "usdr-gost"
- "service" = "gost"
- "usage" = "workload"
} -> null
- version_id = "GinWJxdWahpCnRWwO5ntB7upRsXtV4Zm" -> null
}
# module.website.aws_s3_object.origin_dist_artifact["js/40.e3b39a73.js.map"] will be destroyed
# (because key ["js/40.e3b39a73.js.map"] is not in for_each map)
- resource "aws_s3_object" "origin_dist_artifact" {
- acl = "private" -> null
- bucket = "gost-staging-origin-357150818708-us-west-2-website" -> null
- bucket_key_enabled = false -> null
- content_type = "application/json" -> null
- etag = "40458df830450598c35aff95f3fdaa08" -> null
- force_destroy = false -> null
- id = "dist/js/40.e3b39a73.js.map" -> null
- key = "dist/js/40.e3b39a73.js.map" -> null
- metadata = {} -> null
- server_side_encryption = "AES256" -> null
- source = "/home/runner/work/usdr-gost/usdr-gost/packages/client/dist/js/40.e3b39a73.js.map" -> null
- source_hash = "40458df830450598c35aff95f3fdaa08" -> null
- storage_class = "STANDARD" -> null
- tags = {} -> null
- tags_all = {
- "env" = "staging"
- "management" = "terraform"
- "owner" = "grants"
- "repo" = "usdr-gost"
- "service" = "gost"
- "usage" = "workload"
} -> null
- version_id = "5faiAMbshSx5qdYob14jY3sUGa5DJ3wN" -> null
}
# module.website.aws_s3_object.origin_dist_artifact["js/40.fd397793.js"] will be created
+ resource "aws_s3_object" "origin_dist_artifact" {
+ acl = "private"
+ bucket = "gost-staging-origin-357150818708-us-west-2-website"
+ bucket_key_enabled = (known after apply)
+ content_type = "text/javascript"
+ etag = "463452d5aef2bb901f99124f7f7972db"
+ force_destroy = false
+ id = (known after apply)
+ key = "dist/js/40.fd397793.js"
+ kms_key_id = (known after apply)
+ server_side_encryption = "AES256"
+ source = "/home/runner/work/usdr-gost/usdr-gost/packages/client/dist/js/40.fd397793.js"
+ source_hash = "463452d5aef2bb901f99124f7f7972db"
+ storage_class = (known after apply)
+ tags_all = {
+ "env" = "staging"
+ "management" = "terraform"
+ "owner" = "grants"
+ "repo" = "usdr-gost"
+ "service" = "gost"
+ "usage" = "workload"
}
+ version_id = (known after apply)
}
# module.website.aws_s3_object.origin_dist_artifact["js/40.fd397793.js.map"] will be created
+ resource "aws_s3_object" "origin_dist_artifact" {
+ acl = "private"
+ bucket = "gost-staging-origin-357150818708-us-west-2-website"
+ bucket_key_enabled = (known after apply)
+ content_type = "application/json"
+ etag = "671fc25c833a02b62a5cd1681ed0eb82"
+ force_destroy = false
+ id = (known after apply)
+ key = "dist/js/40.fd397793.js.map"
+ kms_key_id = (known after apply)
+ server_side_encryption = "AES256"
+ source = "/home/runner/work/usdr-gost/usdr-gost/packages/client/dist/js/40.fd397793.js.map"
+ source_hash = "671fc25c833a02b62a5cd1681ed0eb82"
+ storage_class = (known after apply)
+ tags_all = {
+ "env" = "staging"
+ "management" = "terraform"
+ "owner" = "grants"
+ "repo" = "usdr-gost"
+ "service" = "gost"
+ "usage" = "workload"
}
+ version_id = (known after apply)
}
# module.website.aws_s3_object.origin_dist_artifact["js/439.0f32e7b9.js"] will be created
+ resource "aws_s3_object" "origin_dist_artifact" {
+ acl = "private"
+ bucket = "gost-staging-origin-357150818708-us-west-2-website"
+ bucket_key_enabled = (known after apply)
+ content_type = "text/javascript"
+ etag = "186e713662a85b47be8db6ef7bceec86"
+ force_destroy = false
+ id = (known after apply)
+ key = "dist/js/439.0f32e7b9.js"
+ kms_key_id = (known after apply)
+ server_side_encryption = "AES256"
+ source = "/home/runner/work/usdr-gost/usdr-gost/packages/client/dist/js/439.0f32e7b9.js"
+ source_hash = "186e713662a85b47be8db6ef7bceec86"
+ storage_class = (known after apply)
+ tags_all = {
+ "env" = "staging"
+ "management" = "terraform"
+ "owner" = "grants"
+ "repo" = "usdr-gost"
+ "service" = "gost"
+ "usage" = "workload"
}
+ version_id = (known after apply)
}
# module.website.aws_s3_object.origin_dist_artifact["js/439.0f32e7b9.js.map"] will be created
+ resource "aws_s3_object" "origin_dist_artifact" {
+ acl = "private"
+ bucket = "gost-staging-origin-357150818708-us-west-2-website"
+ bucket_key_enabled = (known after apply)
+ content_type = "application/json"
+ etag = "61a06399be80b34f0205afda74c352ad"
+ force_destroy = false
+ id = (known after apply)
+ key = "dist/js/439.0f32e7b9.js.map"
+ kms_key_id = (known after apply)
+ server_side_encryption = "AES256"
+ source = "/home/runner/work/usdr-gost/usdr-gost/packages/client/dist/js/439.0f32e7b9.js.map"
+ source_hash = "61a06399be80b34f0205afda74c352ad"
+ storage_class = (known after apply)
+ tags_all = {
+ "env" = "staging"
+ "management" = "terraform"
+ "owner" = "grants"
+ "repo" = "usdr-gost"
+ "service" = "gost"
+ "usage" = "workload"
}
+ version_id = (known after apply)
}
# module.website.aws_s3_object.origin_dist_artifact["js/439.87b42fb3.js"] will be destroyed
# (because key ["js/439.87b42fb3.js"] is not in for_each map)
- resource "aws_s3_object" "origin_dist_artifact" {
- acl = "private" -> null
- bucket = "gost-staging-origin-357150818708-us-west-2-website" -> null
- bucket_key_enabled = false -> null
- content_type = "text/javascript" -> null
- etag = "d75d3b2544f8532cfc322ccb364647f9" -> null
- force_destroy = false -> null
- id = "dist/js/439.87b42fb3.js" -> null
- key = "dist/js/439.87b42fb3.js" -> null
- metadata = {} -> null
- server_side_encryption = "AES256" -> null
- source = "/home/runner/work/usdr-gost/usdr-gost/packages/client/dist/js/439.87b42fb3.js" -> null
- source_hash = "d75d3b2544f8532cfc322ccb364647f9" -> null
- storage_class = "STANDARD" -> null
- tags = {} -> null
- tags_all = {
- "env" = "staging"
- "management" = "terraform"
- "owner" = "grants"
- "repo" = "usdr-gost"
- "service" = "gost"
- "usage" = "workload"
} -> null
- version_id = "OUm0WOorH1AK9nEZ5u6FqT0BfnNa.eBC" -> null
}
# module.website.aws_s3_object.origin_dist_artifact["js/439.87b42fb3.js.map"] will be destroyed
# (because key ["js/439.87b42fb3.js.map"] is not in for_each map)
- resource "aws_s3_object" "origin_dist_artifact" {
- acl = "private" -> null
- bucket = "gost-staging-origin-357150818708-us-west-2-website" -> null
- bucket_key_enabled = false -> null
- content_type = "application/json" -> null
- etag = "b0ab2d386a2bc54c85d955583c91e206" -> null
- force_destroy = false -> null
- id = "dist/js/439.87b42fb3.js.map" -> null
- key = "dist/js/439.87b42fb3.js.map" -> null
- metadata = {} -> null
- server_side_encryption = "AES256" -> null
- source = "/home/runner/work/usdr-gost/usdr-gost/packages/client/dist/js/439.87b42fb3.js.map" -> null
- source_hash = "b0ab2d386a2bc54c85d955583c91e206" -> null
- storage_class = "STANDARD" -> null
- tags = {} -> null
- tags_all = {
- "env" = "staging"
- "management" = "terraform"
- "owner" = "grants"
- "repo" = "usdr-gost"
- "service" = "gost"
- "usage" = "workload"
} -> null
- version_id = "ge5Kccz56z_yD5_ArlQS_YP6T5C2k4nE" -> null
}
# module.website.aws_s3_object.origin_dist_artifact["js/466.96b8d902.js"] will be created
+ resource "aws_s3_object" "origin_dist_artifact" {
+ acl = "private"
+ bucket = "gost-staging-origin-357150818708-us-west-2-website"
+ bucket_key_enabled = (known after apply)
+ content_type = "text/javascript"
+ etag = "85804da8691112d28c32fdbb86bc8107"
+ force_destroy = false
+ id = (known after apply)
+ key = "dist/js/466.96b8d902.js"
+ kms_key_id = (known after apply)
+ server_side_encryption = "AES256"
+ source = "/home/runner/work/usdr-gost/usdr-gost/packages/client/dist/js/466.96b8d902.js"
+ source_hash = "85804da8691112d28c32fdbb86bc8107"
+ storage_class = (known after apply)
+ tags_all = {
+ "env" = "staging"
+ "management" = "terraform"
+ "owner" = "grants"
+ "repo" = "usdr-gost"
+ "service" = "gost"
+ "usage" = "workload"
}
+ version_id = (known after apply)
}
# module.website.aws_s3_object.origin_dist_artifact["js/466.96b8d902.js.map"] will be created
+ resource "aws_s3_object" "origin_dist_artifact" {
+ acl = "private"
+ bucket = "gost-staging-origin-357150818708-us-west-2-website"
+ bucket_key_enabled = (known after apply)
+ content_type = "application/json"
+ etag = "fc7852fa86a4bf92f58e491f7c83fa60"
+ force_destroy = false
+ id = (known after apply)
+ key = "dist/js/466.96b8d902.js.map"
+ kms_key_id = (known after apply)
+ server_side_encryption = "AES256"
+ source = "/home/runner/work/usdr-gost/usdr-gost/packages/client/dist/js/466.96b8d902.js.map"
+ source_hash = "fc7852fa86a4bf92f58e491f7c83fa60"
+ storage_class = (known after apply)
+ tags_all = {
+ "env" = "staging"
+ "management" = "terraform"
+ "owner" = "grants"
+ "repo" = "usdr-gost"
+ "service" = "gost"
+ "usage" = "workload"
}
+ version_id = (known after apply)
}
# module.website.aws_s3_object.origin_dist_artifact["js/466.f8c953fb.js"] will be destroyed
# (because key ["js/466.f8c953fb.js"] is not in for_each map)
- resource "aws_s3_object" "origin_dist_artifact" {
- acl = "private" -> null
- bucket = "gost-staging-origin-357150818708-us-west-2-website" -> null
- bucket_key_enabled = false -> null
- content_type = "text/javascript" -> null
- etag = "536a8166375f0c95cd8b0b9f8c4206e5" -> null
- force_destroy = false -> null
- id = "dist/js/466.f8c953fb.js" -> null
- key = "dist/js/466.f8c953fb.js" -> null
- metadata = {} -> null
- server_side_encryption = "AES256" -> null
- source = "/home/runner/work/usdr-gost/usdr-gost/packages/client/dist/js/466.f8c953fb.js" -> null
- source_hash = "536a8166375f0c95cd8b0b9f8c4206e5" -> null
- storage_class = "STANDARD" -> null
- tags = {} -> null
- tags_all = {
- "env" = "staging"
- "management" = "terraform"
- "owner" = "grants"
- "repo" = "usdr-gost"
- "service" = "gost"
- "usage" = "workload"
} -> null
- version_id = "CUwL8gQO1_q7bV.ACkwgM7RSzsdJPvNj" -> null
}
# module.website.aws_s3_object.origin_dist_artifact["js/466.f8c953fb.js.map"] will be destroyed
# (because key ["js/466.f8c953fb.js.map"] is not in for_each map)
- resource "aws_s3_object" "origin_dist_artifact" {
- acl = "private" -> null
- bucket = "gost-staging-origin-357150818708-us-west-2-website" -> null
- bucket_key_enabled = false -> null
- content_type = "application/json" -> null
- etag = "fef5dce20f471e20c591909ff4861690" -> null
- force_destroy = false -> null
- id = "dist/js/466.f8c953fb.js.map" -> null
- key = "dist/js/466.f8c953fb.js.map" -> null
- metadata = {} -> null
- server_side_encryption = "AES256" -> null
- source = "/home/runner/work/usdr-gost/usdr-gost/packages/client/dist/js/466.f8c953fb.js.map" -> null
- source_hash = "fef5dce20f471e20c591909ff4861690" -> null
- storage_class = "STANDARD" -> null
- tags = {} -> null
- tags_all = {
- "env" = "staging"
- "management" = "terraform"
- "owner" = "grants"
- "repo" = "usdr-gost"
- "service" = "gost"
- "usage" = "workload"
} -> null
- version_id = "jCwYMwwBSa2TAu00GkQP8MlfKonztSx9" -> null
}
# module.website.aws_s3_object.origin_dist_artifact["js/582.4a7ec86d.js"] will be created
+ resource "aws_s3_object" "origin_dist_artifact" {
+ acl = "private"
+ bucket = "gost-staging-origin-357150818708-us-west-2-website"
+ bucket_key_enabled = (known after apply)
+ content_type = "text/javascript"
+ etag = "e3dc8b0a51ace8aae3552b8ec7aec7ad"
+ force_destroy = false
+ id = (known after apply)
+ key = "dist/js/582.4a7ec86d.js"
+ kms_key_id = (known after apply)
+ server_side_encryption = "AES256"
+ source = "/home/runner/work/usdr-gost/usdr-gost/packages/client/dist/js/582.4a7ec86d.js"
+ source_hash = "e3dc8b0a51ace8aae3552b8ec7aec7ad"
+ storage_class = (known after apply)
+ tags_all = {
+ "env" = "staging"
+ "management" = "terraform"
+ "owner" = "grants"
+ "repo" = "usdr-gost"
+ "service" = "gost"
+ "usage" = "workload"
}
+ version_id = (known after apply)
}
# module.website.aws_s3_object.origin_dist_artifact["js/582.4a7ec86d.js.map"] will be created
+ resource "aws_s3_object" "origin_dist_artifact" {
+ acl = "private"
+ bucket = "gost-staging-origin-357150818708-us-west-2-website"
+ bucket_key_enabled = (known after apply)
+ content_type = "application/json"
+ etag = "a2b9a49fef57fd5c3448430ec7ddb3b0"
+ force_destroy = false
+ id = (known after apply)
+ key = "dist/js/582.4a7ec86d.js.map"
+ kms_key_id = (known after apply)
+ server_side_encryption = "AES256"
+ source = "/home/runner/work/usdr-gost/usdr-gost/packages/client/dist/js/582.4a7ec86d.js.map"
+ source_hash = "a2b9a49fef57fd5c3448430ec7ddb3b0"
+ storage_class = (known after apply)
+ tags_all = {
+ "env" = "staging"
+ "management" = "terraform"
+ "owner" = "grants"
+ "repo" = "usdr-gost"
+ "service" = "gost"
+ "usage" = "workload"
}
+ version_id = (known after apply)
}
# module.website.aws_s3_object.origin_dist_artifact["js/582.f56b76ea.js"] will be destroyed
# (because key ["js/582.f56b76ea.js"] is not in for_each map)
- resource "aws_s3_object" "origin_dist_artifact" {
- acl = "private" -> null
- bucket = "gost-staging-origin-357150818708-us-west-2-website" -> null
- bucket_key_enabled = false -> null
- content_type = "text/javascript" -> null
- etag = "1719648aad688ad159bfd589f947db3d" -> null
- force_destroy = false -> null
- id = "dist/js/582.f56b76ea.js" -> null
- key = "dist/js/582.f56b76ea.js" -> null
- metadata = {} -> null
- server_side_encryption = "AES256" -> null
- source = "/home/runner/work/usdr-gost/usdr-gost/packages/client/dist/js/582.f56b76ea.js" -> null
- source_hash = "1719648aad688ad159bfd589f947db3d" -> null
- storage_class = "STANDARD" -> null
- tags = {} -> null
- tags_all = {
- "env" = "staging"
- "management" = "terraform"
- "owner" = "grants"
- "repo" = "usdr-gost"
- "service" = "gost"
- "usage" = "workload"
} -> null
- version_id = "qG6QlV_R61N2Qg9ZTy6qhUCZJlMme1K6" -> null
}
# module.website.aws_s3_object.origin_dist_artifact["js/582.f56b76ea.js.map"] will be destroyed
# (because key ["js/582.f56b76ea.js.map"] is not in for_each map)
- resource "aws_s3_object" "origin_dist_artifact" {
- acl = "private" -> null
- bucket = "gost-staging-origin-357150818708-us-west-2-website" -> null
- bucket_key_enabled = false -> null
- content_type = "application/json" -> null
- etag = "f3034a30d3f75c286f403efa6f098730" -> null
- force_destroy = false -> null
- id = "dist/js/582.f56b76ea.js.map" -> null
- key = "dist/js/582.f56b76ea.js.map" -> null
- metadata = {} -> null
- server_side_encryption = "AES256" -> null
- source = "/home/runner/work/usdr-gost/usdr-gost/packages/client/dist/js/582.f56b76ea.js.map" -> null
- source_hash = "f3034a30d3f75c286f403efa6f098730" -> null
- storage_class = "STANDARD" -> null
- tags = {} -> null
- tags_all = {
- "env" = "staging"
- "management" = "terraform"
- "owner" = "grants"
- "repo" = "usdr-gost"
- "service" = "gost"
- "usage" = "workload"
} -> null
- version_id = "yKRaMHme.SHLwFg5pEE71lAfxxhJfWsq" -> null
}
# module.website.aws_s3_object.origin_dist_artifact["js/584.e774c3a3.js"] will be destroyed
# (because key ["js/584.e774c3a3.js"] is not in for_each map)
- resource "aws_s3_object" "origin_dist_artifact" {
- acl = "private" -> null
- bucket = "gost-staging-origin-357150818708-us-west-2-website" -> null
- bucket_key_enabled = false -> null
- content_type = "text/javascript" -> null
- etag = "28730918e703f33feead039c35694f22" -> null
- force_destroy = false -> null
- id = "dist/js/584.e774c3a3.js" -> null
- key = "dist/js/584.e774c3a3.js" -> null
- metadata = {} -> null
- server_side_encryption = "AES256" -> null
- source = "/home/runner/work/usdr-gost/usdr-gost/packages/client/dist/js/584.e774c3a3.js" -> null
- source_hash = "28730918e703f33feead039c35694f22" -> null
- storage_class = "STANDARD" -> null
- tags = {} -> null
- tags_all = {
- "env" = "staging"
- "management" = "terraform"
- "owner" = "grants"
- "repo" = "usdr-gost"
- "service" = "gost"
- "usage" = "workload"
} -> null
- version_id = "YJAAAeRHMFYpPkOKL60CJ49QJl9558B7" -> null
}
# module.website.aws_s3_object.origin_dist_artifact["js/584.e774c3a3.js.map"] will be destroyed
# (because key ["js/584.e774c3a3.js.map"] is not in for_each map)
- resource "aws_s3_object" "origin_dist_artifact" {
- acl = "private" -> null
- bucket = "gost-staging-origin-357150818708-us-west-2-website" -> null
- bucket_key_enabled = false -> null
- content_type = "application/json" -> null
- etag = "e20c2824ca4887e438bf419d0e6f0d54" -> null
- force_destroy = false -> null
- id = "dist/js/584.e774c3a3.js.map" -> null
- key = "dist/js/584.e774c3a3.js.map" -> null
- metadata = {} -> null
- server_side_encryption = "AES256" -> null
- source = "/home/runner/work/usdr-gost/usdr-gost/packages/client/dist/js/584.e774c3a3.js.map" -> null
- source_hash = "e20c2824ca4887e438bf419d0e6f0d54" -> null
- storage_class = "STANDARD" -> null
- tags = {} -> null
- tags_all = {
- "env" = "staging"
- "management" = "terraform"
- "owner" = "grants"
- "repo" = "usdr-gost"
- "service" = "gost"
- "usage" = "workload"
} -> null
- version_id = "GLaVQXSzd1Via1C2.DpgLdk69BgJdH39" -> null
}
# module.website.aws_s3_object.origin_dist_artifact["js/584.fb3d0916.js"] will be created
+ resource "aws_s3_object" "origin_dist_artifact" {
+ acl = "private"
+ bucket = "gost-staging-origin-357150818708-us-west-2-website"
+ bucket_key_enabled = (known after apply)
+ content_type = "text/javascript"
+ etag = "052d047c5ac30a6e99c6b3c1610a2f61"
+ force_destroy = false
+ id = (known after apply)
+ key = "dist/js/584.fb3d0916.js"
+ kms_key_id = (known after apply)
+ server_side_encryption = "AES256"
+ source = "/home/runner/work/usdr-gost/usdr-gost/packages/client/dist/js/584.fb3d0916.js"
+ source_hash = "052d047c5ac30a6e99c6b3c1610a2f61"
+ storage_class = (known after apply)
+ tags_all = {
+ "env" = "staging"
+ "management" = "terraform"
+ "owner" = "grants"
+ "repo" = "usdr-gost"
+ "service" = "gost"
+ "usage" = "workload"
}
+ version_id = (known after apply)
}
# module.website.aws_s3_object.origin_dist_artifact["js/584.fb3d0916.js.map"] will be created
+ resource "aws_s3_object" "origin_dist_artifact" {
+ acl = "private"
+ bucket = "gost-staging-origin-357150818708-us-west-2-website"
+ bucket_key_enabled = (known after apply)
+ content_type = "application/json"
+ etag = "5762c39c4ef3a72e6d679e07bab38e3b"
+ force_destroy = false
+ id = (known after apply)
+ key = "dist/js/584.fb3d0916.js.map"
+ kms_key_id = (known after apply)
+ server_side_encryption = "AES256"
+ source = "/home/runner/work/usdr-gost/usdr-gost/packages/client/dist/js/584.fb3d0916.js.map"
+ source_hash = "5762c39c4ef3a72e6d679e07bab38e3b"
+ storage_class = (known after apply)
+ tags_all = {
+ "env" = "staging"
+ "management" = "terraform"
+ "owner" = "grants"
+ "repo" = "usdr-gost"
+ "service" = "gost"
+ "usage" = "workload"
}
+ version_id = (known after apply)
}
# module.website.aws_s3_object.origin_dist_artifact["js/605.aa684f31.js"] will be destroyed
# (because key ["js/605.aa684f31.js"] is not in for_each map)
- resource "aws_s3_object" "origin_dist_artifact" {
- acl = "private" -> null
- bucket = "gost-staging-origin-357150818708-us-west-2-website" -> null
- bucket_key_enabled = false -> null
- content_type = "text/javascript" -> null
- etag = "375548178672ce20db132cb4331a6b79" -> null
- force_destroy = false -> null
- id = "dist/js/605.aa684f31.js" -> null
- key = "dist/js/605.aa684f31.js" -> null
- metadata = {} -> null
- server_side_encryption = "AES256" -> null
- source = "/home/runner/work/usdr-gost/usdr-gost/packages/client/dist/js/605.aa684f31.js" -> null
- source_hash = "375548178672ce20db132cb4331a6b79" -> null
- storage_class = "STANDARD" -> null
- tags = {} -> null
- tags_all = {
- "env" = "staging"
- "management" = "terraform"
- "owner" = "grants"
- "repo" = "usdr-gost"
- "service" = "gost"
- "usage" = "workload"
} -> null
- version_id = "FpLSzjODRazgEj.tsFW04t9aheLg6gqW" -> null
}
# module.website.aws_s3_object.origin_dist_artifact["js/605.aa684f31.js.map"] will be destroyed
# (because key ["js/605.aa684f31.js.map"] is not in for_each map)
- resource "aws_s3_object" "origin_dist_artifact" {
- acl = "private" -> null
- bucket = "gost-staging-origin-357150818708-us-west-2-website" -> null
- bucket_key_enabled = false -> null
- content_type = "application/json" -> null
- etag = "c758bea9d097d4d40418afa74f514643" -> null
- force_destroy = false -> null
- id = "dist/js/605.aa684f31.js.map" -> null
- key = "dist/js/605.aa684f31.js.map" -> null
- metadata = {} -> null
- server_side_encryption = "AES256" -> null
- source = "/home/runner/work/usdr-gost/usdr-gost/packages/client/dist/js/605.aa684f31.js.map" -> null
- source_hash = "c758bea9d097d4d40418afa74f514643" -> null
- storage_class = "STANDARD" -> null
- tags = {} -> null
- tags_all = {
- "env" = "staging"
- "management" = "terraform"
- "owner" = "grants"
- "repo" = "usdr-gost"
- "service" = "gost"
- "usage" = "workload"
} -> null
- version_id = "wnvCabBiVHX.4pDbxqwn_dNZ.L7eSD5H" -> null
}
# module.website.aws_s3_object.origin_dist_artifact["js/605.e9d03ed7.js"] will be created
+ resource "aws_s3_object" "origin_dist_artifact" {
+ acl = "private"
+ bucket = "gost-staging-origin-357150818708-us-west-2-website"
+ bucket_key_enabled = (known after apply)
+ content_type = "text/javascript"
+ etag = "e304b2b9b7b9e2a9c8e77273f28aa8ea"
+ force_destroy = false
+ id = (known after apply)
+ key = "dist/js/605.e9d03ed7.js"
+ kms_key_id = (known after apply)
+ server_side_encryption = "AES256"
+ source = "/home/runner/work/usdr-gost/usdr-gost/packages/client/dist/js/605.e9d03ed7.js"
+ source_hash = "e304b2b9b7b9e2a9c8e77273f28aa8ea"
+ storage_class = (known after apply)
+ tags_all = {
+ "env" = "staging"
+ "management" = "terraform"
+ "owner" = "grants"
+ "repo" = "usdr-gost"
+ "service" = "gost"
+ "usage" = "workload"
}
+ version_id = (known after apply)
}
# module.website.aws_s3_object.origin_dist_artifact["js/605.e9d03ed7.js.map"] will be created
+ resource "aws_s3_object" "origin_dist_artifact" {
+ acl = "private"
+ bucket = "gost-staging-origin-357150818708-us-west-2-website"
+ bucket_key_enabled = (known after apply)
+ content_type = "application/json"
+ etag = "203cc2de7da002293c642cc6dc07b264"
+ force_destroy = false
+ id = (known after apply)
+ key = "dist/js/605.e9d03ed7.js.map"
+ kms_key_id = (known after apply)
+ server_side_encryption = "AES256"
+ source = "/home/runner/work/usdr-gost/usdr-gost/packages/client/dist/js/605.e9d03ed7.js.map"
+ source_hash = "203cc2de7da002293c642cc6dc07b264"
+ storage_class = (known after apply)
+ tags_all = {
+ "env" = "staging"
+ "management" = "terraform"
+ "owner" = "grants"
+ "repo" = "usdr-gost"
+ "service" = "gost"
+ "usage" = "workload"
}
+ version_id = (known after apply)
}
# module.website.aws_s3_object.origin_dist_artifact["js/641.0fcafc97.js"] will be created
+ resource "aws_s3_object" "origin_dist_artifact" {
+ acl = "private"
+ bucket = "gost-staging-origin-357150818708-us-west-2-website"
+ bucket_key_enabled = (known after apply)
+ content_type = "text/javascript"
+ etag = "c8ea7117af57957dafe4b3ddcb4e4812"
+ force_destroy = false
+ id = (known after apply)
+ key = "dist/js/641.0fcafc97.js"
+ kms_key_id = (known after apply)
+ server_side_encryption = "AES256"
+ source = "/home/runner/work/usdr-gost/usdr-gost/packages/client/dist/js/641.0fcafc97.js"
+ source_hash = "c8ea7117af57957dafe4b3ddcb4e4812"
+ storage_class = (known after apply)
+ tags_all = {
+ "env" = "staging"
+ "management" = "terraform"
+ "owner" = "grants"
+ "repo" = "usdr-gost"
+ "service" = "gost"
+ "usage" = "workload"
}
+ version_id = (known after apply)
}
# module.website.aws_s3_object.origin_dist_artifact["js/641.0fcafc97.js.map"] will be created
+ resource "aws_s3_object" "origin_dist_artifact" {
+ acl = "private"
+ bucket = "gost-staging-origin-357150818708-us-west-2-website"
+ bucket_key_enabled = (known after apply)
+ content_type = "application/json"
+ etag = "68fdc1445813ca04e4b54a9789e55c7f"
+ force_destroy = false
+ id = (known after apply)
+ key = "dist/js/641.0fcafc97.js.map"
+ kms_key_id = (known after apply)
+ server_side_encryption = "AES256"
+ source = "/home/runner/work/usdr-gost/usdr-gost/packages/client/dist/js/641.0fcafc97.js.map"
+ source_hash = "68fdc1445813ca04e4b54a9789e55c7f"
+ storage_class = (known after apply)
+ tags_all = {
+ "env" = "staging"
+ "management" = "terraform"
+ "owner" = "grants"
+ "repo" = "usdr-gost"
+ "service" = "gost"
+ "usage" = "workload"
}
+ version_id = (known after apply)
}
# module.website.aws_s3_object.origin_dist_artifact["js/641.d261cd52.js"] will be destroyed
# (because key ["js/641.d261cd52.js"] is not in for_each map)
- resource "aws_s3_object" "origin_dist_artifact" {
- acl = "private" -> null
- bucket = "gost-staging-origin-357150818708-us-west-2-website" -> null
- bucket_key_e...*[Comment body truncated]* |
f67ed05
to
7dcb60f
Compare
7dcb60f
to
9295541
Compare
api_enable_new_team_terminology = true | ||
api_enable_my_profile = true | ||
api_enable_saved_search_grants_digest = true | ||
api_enable_grant_digest_scheduled_task = false |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As written, this PR uses this variable simultaneously to disable running the ECS scheduled task (enabled = var.api_enabled && var.api_enable_grant_digest_scheduled_task
) and to short-circuit the script itself (if (process.env.ENABLE_GRANT_DIGEST_SCHEDULED_TASK !== 'true') { return; }
). Does this feel redundant? Or helpful on the off chance the script gets triggered via some other means?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Even if the configuration is ultimately sourced from one place, I think that being able to have a check at the infrastructure level as well as at the runtime level is a useful separation of concerns, so this feels right to me.
terraform/staging.tfvars
Outdated
api_enable_new_team_terminology = true | ||
api_enable_my_profile = true | ||
api_enable_saved_search_grants_digest = true | ||
api_enable_grant_digest_scheduled_task = false |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do we want this to be flipped to true in staging so we can test the functionality as soon as it lands?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes please!
e6a0009
to
597fff9
Compare
I believe this is necessary for it to have access to the aws_ecs_task_definition resource without having to redefine that at the terraform root level
597fff9
to
676a0ed
Compare
terraform/main.tf
Outdated
module "grant_digest_scheduled_task_security_group" { | ||
source = "cloudposse/security-group/aws" | ||
version = "2.2.0" | ||
|
||
namespace = var.namespace | ||
vpc_id = data.aws_ssm_parameter.vpc_id.value | ||
attributes = ["grant_digest_scheduled_task"] | ||
allow_all_egress = true | ||
} | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It occurs to me that, since the grant_digest_scheduled_task
module defined in terraform/modules/gost_api/grant_digest.tf
is configured with all the same security groups that are passed in for any other task (specifically the main API workers) controlled by terraform/modules/gost_api
, this security group is redundant.
To be super verbose: the terraform/modules/gost_api
module source uses all provided values in var.security_group_ids
when placing tasks in various security groups. More to the point, it passes this same list directly to its module "grants_digest_scheduled_task"
resource. Since this list already contains a security group common to our Postgres cluster*, we don't need to provide another. The only reason this new security group would be necessary is if terraform/modules/gost_api
declared a new input variable like var.grants_digest_scheduled_task_security_groups
and only used those values when configuring networking for that task.
I should have caught this during our review yesterday, but I was (mistakenly) thinking that the module "grant_digest_scheduled_task"
resource would be defined in the main project (terraform/
directory) rather than as a sub-resource of module "gost_api"
.
*Feel free to ignore everything below, but looking at the current security group configuration, it appears we somehow mismatched the api_to_postgres_security_group
and consume_grants_to_postgres_security_group
usages. The configuration should be:
module.api_to_postgres_security_group.id
passed to:module "gost_api"
viasecurity_group_ids
input variable arraymodule "postgres"
viaingress_security_groups
input variable array
module.consume_grants_to_postgres_security_group.id
passed to thesecurity_group_ids
input variable arrays for:module "consume_grants"
viasecurity_group_ids
input variable arraymodule "postgres"
viaingress_security_groups
input variable array
This mismatch isn't the most major problem in the world – both security groups are configured identically, so this is ultimately just a naming convention, and they could even be consolidated down to a single security group. Just mentioning here because I noticed while reviewing.
TL;DR You can safely remove the module "grant_digest_scheduled_task_security_group"
resource and its usages.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah, I think I was borrowing this idiom from things like arpa_treasury_report_security_group
, but your assessment makes sense, and it does seem like consolidating security groups to a clear set of logical groupings, rather than "one per process", makes more sense to me.
I should have caught this during our review yesterday, but I was (mistakenly) thinking that the module "grant_digest_scheduled_task" resource would be defined in the main project (terraform/ directory) rather than as a sub-resource of module "gost_api".
Fwiw, it was located in terraform/main.tf
originally, but I moved it under the gost_api
module to reuse the aws_ecs_task_definition
instead of having to redefine it.
Anyway, I'll remove the new security group!
data "aws_ecs_cluster" "default" { | ||
count = var.enabled ? 1 : 0 | ||
cluster_name = var.ecs_cluster_name | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍
api_enable_new_team_terminology = true | ||
api_enable_my_profile = true | ||
api_enable_saved_search_grants_digest = true | ||
api_enable_grant_digest_scheduled_task = false |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Even if the configuration is ultimately sourced from one place, I think that being able to have a check at the infrastructure level as well as at the runtime level is a useful separation of concerns, so this feels right to me.
terraform/staging.tfvars
Outdated
api_enable_new_team_terminology = true | ||
api_enable_my_profile = true | ||
api_enable_saved_search_grants_digest = true | ||
api_enable_grant_digest_scheduled_task = false |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes please!
@TylerHendrickson comments addressed, back to you! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good!
Edit: Looks like there was a formatting issue after this change; pushed up results of terraform fmt
.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@jeffsmohan New requested change based on the current CI failure.
source = "../scheduled_ecs_task" | ||
enabled = var.enabled && var.enable_grant_digest_scheduled_task | ||
|
||
name_prefix = "${var.namespace}-grant-digest-scheduled-task" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is annoying, but this error in the failing terraform plan
CI job is due to this name_prefix
value being too long for certain AWS resources' max character restrictions – the value for the Staging environment, gost-staging-grant-digest-scheduled-task
, is 40 characters, and the max length for an IAM role prefix is 38 characters
The fix is fortunately easy, albeit not quite as readable as the current solution:
name_prefix = "${var.namespace}-grant-digest-scheduled-task" | |
name_prefix = "${var.namespace}-grant-digest-task" |
Other preferences for shortening this value (gost-staging-grant-digest-sched-task
is 37 characters, for example) are also acceptable.
@TylerHendrickson fixed! |
Ticket #2133
Description
Adds a scheduled ECS task to send grant digest emails. A flag is introduced to switch from the old sending infrastructure (crons set up on our API boxes) over to the new scheduled ECS task.
The previous implementation was causing a couple problems:
This solution is meant to be a short-term fix. A more robust solution will require re-architecting the email infrastructure more broadly to support a task queue for individual emails, clear email send retries, dead letter queues, etc.
Additional context and discussion can be found in:
Note to reviewer:
Screenshots / Demo Video
Testing
Automated and Unit Tests
Manual tests for Reviewer
Checklist