JesusFilm / core

JFP DS Engineering Monorepo
https://docs.core.jesusfilm.org/
18 stars 11 forks source link

feat: add mux keys to infra #3653

Closed mikeallisonJS closed 2 days ago

mikeallisonJS commented 2 days ago

Description

Issue

Mux needs env vars

stage-branch-merger[bot] commented 2 days ago

I see you added the "on stage" label, I'll get this merged to the stage branch!

linear[bot] commented 2 days ago

ENG-1173 Add mux keys to infra-no-qa

jesus-film-bot commented 2 days ago

Ran Plan for dir: infrastructure workspace: default

Show Output ```diff Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols: + create ~ update in-place +/- create replacement and then destroy Terraform will perform the following actions: # module.prod.module.api-media.module.ecs-task.aws_ecs_service.ecs_service will be updated in-place ~ resource "aws_ecs_service" "ecs_service" { id = "arn:aws:ecs:us-east-2:410965620680:service/jfp-ecs-cluster-prod/api-media-prod-service" name = "api-media-prod-service" tags = {} ~ task_definition = "arn:aws:ecs:us-east-2:410965620680:task-definition/jfp-api-media-prod:28" -> (known after apply) # (15 unchanged attributes hidden) # (5 unchanged blocks hidden) } # module.prod.module.api-media.module.ecs-task.aws_ecs_task_definition.ecs_task_definition must be replaced +/- resource "aws_ecs_task_definition" "ecs_task_definition" { ~ arn = "arn:aws:ecs:us-east-2:410965620680:task-definition/jfp-api-media-prod:28" -> (known after apply) ~ arn_without_revision = "arn:aws:ecs:us-east-2:410965620680:task-definition/jfp-api-media-prod" -> (known after apply) ~ container_definitions = jsonencode( [ - { - cpu = 1024 - environment = [ - { - name = "NODE_ENV" - value = "production" }, - { - name = "SERVICE_NAME" - value = "api-media" }, ] - essential = true - image = "410965620680.dkr.ecr.us-east-2.amazonaws.com/jfp-api-media-prod:latest" - logConfiguration = { - logDriver = "awsfirelens" - options = { - Host = "http-intake.logs.datadoghq.com" - Name = "datadog" - TLS = "on" - compress = "gzip" - dd_service = "api-media" - dd_source = "graphql-yoga" - dd_tags = "env:prod" - provider = "ecs" - retry_limit = "2" } - secretOptions = [ - { - name = "apikey" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/terraform/prd/DATADOG_API_KEY" }, ] } - memory = 2048 - mountPoints = [] - name = "jfp-api-media-prod-app" - portMappings = [ - { - containerPort = 4005 - hostPort = 4005 - protocol = "tcp" }, ] - secrets = [ - { - name = "ALGOLIA_API_KEY" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/prod/ALGOLIA_API_KEY" }, - { - name = "ALGOLIA_APPLICATION_ID" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/prod/ALGOLIA_APPLICATION_ID" }, - { - name = "ALGOLIA_INDEX" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/prod/ALGOLIA_INDEX" }, - { - name = "ARCLIGHT_API_KEY" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/prod/ARCLIGHT_API_KEY" }, - { - name = "ARCLIGHT_V3_URL" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/prod/ARCLIGHT_V3_URL" }, - { - name = "BIG_QUERY_APPLICATION_JSON" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/prod/BIG_QUERY_APPLICATION_JSON" }, - { - name = "CLOUDFLARE_ACCOUNT_ID" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/prod/CLOUDFLARE_ACCOUNT_ID" }, - { - name = "CLOUDFLARE_IMAGES_TOKEN" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/prod/CLOUDFLARE_IMAGES_TOKEN" }, - { - name = "CLOUDFLARE_IMAGE_ACCOUNT" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/prod/CLOUDFLARE_IMAGE_ACCOUNT" }, - { - name = "CLOUDFLARE_STREAM_TOKEN" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/prod/CLOUDFLARE_STREAM_TOKEN" }, - { - name = "CROWDIN_API_KEY" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/prod/CROWDIN_API_KEY" }, - { - name = "GATEWAY_HMAC_SECRET" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/prod/GATEWAY_HMAC_SECRET" }, - { - name = "GATEWAY_URL" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/prod/GATEWAY_URL" }, - { - name = "GOOGLE_APPLICATION_JSON" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/prod/GOOGLE_APPLICATION_JSON" }, - { - name = "PG_DATABASE_URL_MEDIA" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/prod/PG_DATABASE_URL_MEDIA" }, - { - name = "REDIS_PORT" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/prod/REDIS_PORT" }, - { - name = "REDIS_URL" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/prod/REDIS_URL" }, - { - name = "SEGMIND_API_KEY" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/prod/SEGMIND_API_KEY" }, - { - name = "UNSPLASH_ACCESS_KEY" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/prod/UNSPLASH_ACCESS_KEY" }, - { - name = "DD_API_KEY" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/terraform/prd/DATADOG_API_KEY" }, ] - systemControls = [] - volumesFrom = [] }, - { - cpu = 0 - environment = [ - { - name = "DD_APM_ENABLED" - value = "true" }, - { - name = "DD_APM_NON_LOCAL_TRAFFIC" - value = "true" }, - { - name = "DD_DOGSTATSD_NON_LOCAL_TRAFFIC" - value = "true" }, - { - name = "DD_LOGS_INJECTION" - value = "true" }, - { - name = "DD_OTLP_CONFIG_RECEIVER_PROTOCOLS_GRPC_ENDPOINT" - value = "0.0.0.0:4317" }, - { - name = "DD_OTLP_CONFIG_RECEIVER_PROTOCOLS_HTTP_ENDPOINT" - value = "0.0.0.0:4318" }, - { - name = "DD_PROCESS_AGENT_ENABLED" - value = "true" }, - { - name = "DD_PROFILING_ENABLED" - value = "true" }, - { - name = "DD_RUNTIME_METRICS_ENABLED" - value = "true" }, - { - name = "DD_TAGS" - value = "env:prod app:api-media" }, - { - name = "DD_TRACE_ANALYTICS_ENABLED" - value = "true" }, - { - name = "ECS_FARGATE" - value = "true" }, ] - essential = true - image = "public.ecr.aws/datadog/agent:latest" - logConfiguration = { - logDriver = "awslogs" - options = { - awslogs-group = "api-media-prod-logs" - awslogs-region = "us-east-2" - awslogs-stream-prefix = "core" } } - memoryReservation = 128 - mountPoints = [] - name = "jfp-api-media-prod-datadog-agent" - portMappings = [ - { - containerPort = 4317 - hostPort = 4317 - protocol = "tcp" }, - { - containerPort = 4318 - hostPort = 4318 - protocol = "tcp" }, - { - containerPort = 8125 - hostPort = 8125 - protocol = "udp" }, ] - secrets = [ - { - name = "DD_API_KEY" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/terraform/prd/DATADOG_API_KEY" }, ] - systemControls = [] - volumesFrom = [] }, - { - cpu = 0 - environment = [] - essential = true - firelensConfiguration = { - options = { - config-file-type = "file" - config-file-value = "/fluent-bit/configs/parse-json.conf" - enable-ecs-log-metadata = "true" } - type = "fluentbit" } - image = "amazon/aws-for-fluent-bit:stable" - logConfiguration = { - logDriver = "awslogs" - options = { - awslogs-group = "api-media-prod-logs" - awslogs-region = "us-east-2" - awslogs-stream-prefix = "core" } } - memoryReservation = 100 - mountPoints = [] - name = "jfp-api-media-prod-log-router" - portMappings = [] - systemControls = [] - user = "0" - volumesFrom = [] }, ] ) -> (known after apply) # forces replacement ~ id = "jfp-api-media-prod" -> (known after apply) ~ revision = 28 -> (known after apply) - tags = {} -> null ~ tags_all = {} -> (known after apply) # (10 unchanged attributes hidden) } # module.prod.module.api-media.module.ecs-task.aws_ssm_parameter.parameters["MUX_ACCESS_TOKEN_ID"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-media/prod/MUX_ACCESS_TOKEN_ID" + overwrite = true + tags = { + "name" = "MUX_ACCESS_TOKEN_ID" } + tags_all = { + "name" = "MUX_ACCESS_TOKEN_ID" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.prod.module.api-media.module.ecs-task.aws_ssm_parameter.parameters["MUX_SECRET_KEY"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-media/prod/MUX_SECRET_KEY" + overwrite = true + tags = { + "name" = "MUX_SECRET_KEY" } + tags_all = { + "name" = "MUX_SECRET_KEY" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.stage.module.api-media.module.ecs-task.aws_ecs_service.ecs_service will be updated in-place ~ resource "aws_ecs_service" "ecs_service" { id = "arn:aws:ecs:us-east-2:410965620680:service/jfp-ecs-cluster-stage/api-media-stage-service" name = "api-media-stage-service" tags = {} ~ task_definition = "arn:aws:ecs:us-east-2:410965620680:task-definition/jfp-api-media-stage:26" -> (known after apply) # (15 unchanged attributes hidden) # (4 unchanged blocks hidden) } # module.stage.module.api-media.module.ecs-task.aws_ecs_task_definition.ecs_task_definition must be replaced +/- resource "aws_ecs_task_definition" "ecs_task_definition" { ~ arn = "arn:aws:ecs:us-east-2:410965620680:task-definition/jfp-api-media-stage:26" -> (known after apply) ~ arn_without_revision = "arn:aws:ecs:us-east-2:410965620680:task-definition/jfp-api-media-stage" -> (known after apply) ~ container_definitions = jsonencode( [ - { - cpu = 1024 - environment = [ - { - name = "NODE_ENV" - value = "production" }, - { - name = "SERVICE_NAME" - value = "api-media" }, ] - essential = true - image = "410965620680.dkr.ecr.us-east-2.amazonaws.com/jfp-api-media-stage:latest" - logConfiguration = { - logDriver = "awsfirelens" - options = { - Host = "http-intake.logs.datadoghq.com" - Name = "datadog" - TLS = "on" - compress = "gzip" - dd_service = "api-media" - dd_source = "graphql-yoga" - dd_tags = "env:stage" - provider = "ecs" - retry_limit = "2" } - secretOptions = [ - { - name = "apikey" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/terraform/prd/DATADOG_API_KEY" }, ] } - memory = 2048 - mountPoints = [] - name = "jfp-api-media-stage-app" - portMappings = [ - { - containerPort = 4005 - hostPort = 4005 - protocol = "tcp" }, ] - secrets = [ - { - name = "ALGOLIA_API_KEY" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/stage/ALGOLIA_API_KEY" }, - { - name = "ALGOLIA_APPLICATION_ID" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/stage/ALGOLIA_APPLICATION_ID" }, - { - name = "ALGOLIA_INDEX" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/stage/ALGOLIA_INDEX" }, - { - name = "ARCLIGHT_API_KEY" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/stage/ARCLIGHT_API_KEY" }, - { - name = "ARCLIGHT_V3_URL" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/stage/ARCLIGHT_V3_URL" }, - { - name = "BIG_QUERY_APPLICATION_JSON" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/stage/BIG_QUERY_APPLICATION_JSON" }, - { - name = "CLOUDFLARE_ACCOUNT_ID" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/stage/CLOUDFLARE_ACCOUNT_ID" }, - { - name = "CLOUDFLARE_IMAGES_TOKEN" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/stage/CLOUDFLARE_IMAGES_TOKEN" }, - { - name = "CLOUDFLARE_IMAGE_ACCOUNT" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/stage/CLOUDFLARE_IMAGE_ACCOUNT" }, - { - name = "CLOUDFLARE_STREAM_TOKEN" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/stage/CLOUDFLARE_STREAM_TOKEN" }, - { - name = "CROWDIN_API_KEY" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/stage/CROWDIN_API_KEY" }, - { - name = "GATEWAY_HMAC_SECRET" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/stage/GATEWAY_HMAC_SECRET" }, - { - name = "GATEWAY_URL" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/stage/GATEWAY_URL" }, - { - name = "GOOGLE_APPLICATION_JSON" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/stage/GOOGLE_APPLICATION_JSON" }, - { - name = "PG_DATABASE_URL_MEDIA" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/stage/PG_DATABASE_URL_MEDIA" }, - { - name = "REDIS_PORT" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/stage/REDIS_PORT" }, - { - name = "REDIS_URL" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/stage/REDIS_URL" }, - { - name = "SEGMIND_API_KEY" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/stage/SEGMIND_API_KEY" }, - { - name = "UNSPLASH_ACCESS_KEY" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/ecs/api-media/stage/UNSPLASH_ACCESS_KEY" }, - { - name = "DD_API_KEY" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/terraform/prd/DATADOG_API_KEY" }, ] - systemControls = [] - volumesFrom = [] }, - { - cpu = 0 - environment = [ - { - name = "DD_APM_ENABLED" - value = "true" }, - { - name = "DD_APM_NON_LOCAL_TRAFFIC" - value = "true" }, - { - name = "DD_DOGSTATSD_NON_LOCAL_TRAFFIC" - value = "true" }, - { - name = "DD_LOGS_INJECTION" - value = "true" }, - { - name = "DD_OTLP_CONFIG_RECEIVER_PROTOCOLS_GRPC_ENDPOINT" - value = "0.0.0.0:4317" }, - { - name = "DD_OTLP_CONFIG_RECEIVER_PROTOCOLS_HTTP_ENDPOINT" - value = "0.0.0.0:4318" }, - { - name = "DD_PROCESS_AGENT_ENABLED" - value = "true" }, - { - name = "DD_PROFILING_ENABLED" - value = "true" }, - { - name = "DD_RUNTIME_METRICS_ENABLED" - value = "true" }, - { - name = "DD_TAGS" - value = "env:stage app:api-media" }, - { - name = "DD_TRACE_ANALYTICS_ENABLED" - value = "true" }, - { - name = "ECS_FARGATE" - value = "true" }, ] - essential = true - image = "public.ecr.aws/datadog/agent:latest" - logConfiguration = { - logDriver = "awslogs" - options = { - awslogs-group = "api-media-stage-logs" - awslogs-region = "us-east-2" - awslogs-stream-prefix = "core" } } - memoryReservation = 128 - mountPoints = [] - name = "jfp-api-media-stage-datadog-agent" - portMappings = [ - { - containerPort = 4317 - hostPort = 4317 - protocol = "tcp" }, - { - containerPort = 4318 - hostPort = 4318 - protocol = "tcp" }, - { - containerPort = 8125 - hostPort = 8125 - protocol = "udp" }, ] - secrets = [ - { - name = "DD_API_KEY" - valueFrom = "arn:aws:ssm:us-east-2:410965620680:parameter/terraform/prd/DATADOG_API_KEY" }, ] - systemControls = [] - volumesFrom = [] }, - { - cpu = 0 - environment = [] - essential = true - firelensConfiguration = { - options = { - config-file-type = "file" - config-file-value = "/fluent-bit/configs/parse-json.conf" - enable-ecs-log-metadata = "true" } - type = "fluentbit" } - image = "amazon/aws-for-fluent-bit:stable" - logConfiguration = { - logDriver = "awslogs" - options = { - awslogs-group = "api-media-stage-logs" - awslogs-region = "us-east-2" - awslogs-stream-prefix = "core" } } - memoryReservation = 100 - mountPoints = [] - name = "jfp-api-media-stage-log-router" - portMappings = [] - systemControls = [] - user = "0" - volumesFrom = [] }, ] ) -> (known after apply) # forces replacement ~ id = "jfp-api-media-stage" -> (known after apply) ~ revision = 26 -> (known after apply) - tags = {} -> null ~ tags_all = {} -> (known after apply) # (10 unchanged attributes hidden) } # module.stage.module.api-media.module.ecs-task.aws_ssm_parameter.parameters["MUX_ACCESS_TOKEN_ID"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-media/stage/MUX_ACCESS_TOKEN_ID" + overwrite = true + tags = { + "name" = "MUX_ACCESS_TOKEN_ID" } + tags_all = { + "name" = "MUX_ACCESS_TOKEN_ID" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } # module.stage.module.api-media.module.ecs-task.aws_ssm_parameter.parameters["MUX_SECRET_KEY"] will be created + resource "aws_ssm_parameter" "parameters" { + arn = (known after apply) + data_type = (known after apply) + id = (known after apply) + insecure_value = (known after apply) + key_id = (known after apply) + name = "/ecs/api-media/stage/MUX_SECRET_KEY" + overwrite = true + tags = { + "name" = "MUX_SECRET_KEY" } + tags_all = { + "name" = "MUX_SECRET_KEY" } + tier = (known after apply) + type = "SecureString" + value = (sensitive value) + version = (known after apply) } Plan: 6 to add, 2 to change, 2 to destroy. ```

codecov[bot] commented 2 days ago

Codecov Report

All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 91.96%. Comparing base (eaa263f) to head (345b06e). Report is 8 commits behind head on main.

Additional details and impacted files ```diff @@ Coverage Diff @@ ## main #3653 +/- ## ========================================== + Coverage 89.32% 91.96% +2.63% ========================================== Files 1144 145 -999 Lines 17856 1468 -16388 Branches 2317 179 -2138 ========================================== - Hits 15950 1350 -14600 + Misses 1663 90 -1573 + Partials 243 28 -215 ``` | [Flag](https://app.codecov.io/gh/JesusFilm/core/pull/3653/flags?src=pr&el=flags&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=JesusFilm) | Coverage Δ | | |---|---|---| | [apps.api-analytics](https://app.codecov.io/gh/JesusFilm/core/pull/3653/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=JesusFilm) | `?` | | | [apps.api-journeys](https://app.codecov.io/gh/JesusFilm/core/pull/3653/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=JesusFilm) | `?` | | | [apps.api-languages](https://app.codecov.io/gh/JesusFilm/core/pull/3653/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=JesusFilm) | `?` | | | [apps.api-media](https://app.codecov.io/gh/JesusFilm/core/pull/3653/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=JesusFilm) | `91.96% <ø> (ø)` | | | [apps.api-users](https://app.codecov.io/gh/JesusFilm/core/pull/3653/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=JesusFilm) | `?` | | | [apps.journeys](https://app.codecov.io/gh/JesusFilm/core/pull/3653/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=JesusFilm) | `?` | | | [apps.journeys-admin](https://app.codecov.io/gh/JesusFilm/core/pull/3653/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=JesusFilm) | `?` | | | [apps.watch](https://app.codecov.io/gh/JesusFilm/core/pull/3653/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=JesusFilm) | `?` | | | [libs.journeys.ui](https://app.codecov.io/gh/JesusFilm/core/pull/3653/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=JesusFilm) | `?` | | | [libs.nest.common](https://app.codecov.io/gh/JesusFilm/core/pull/3653/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=JesusFilm) | `?` | | | [libs.nest.decorators](https://app.codecov.io/gh/JesusFilm/core/pull/3653/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=JesusFilm) | `?` | | | [libs.nest.powerBi](https://app.codecov.io/gh/JesusFilm/core/pull/3653/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=JesusFilm) | `?` | | | [libs.shared.ui](https://app.codecov.io/gh/JesusFilm/core/pull/3653/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=JesusFilm) | `?` | | Flags with carried forward coverage won't be shown. [Click here](https://docs.codecov.io/docs/carryforward-flags?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=JesusFilm#carryforward-flags-in-the-pull-request-comment) to find out more.

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

jesus-film-bot commented 2 days ago

Locks and plans deleted for the projects and workspaces modified in this pull request: