Skip to content

2026-10-21 | MAIN --> PROD | DEV (0cbc91b) --> STAGING - #6048

Merged
daryll merged 1 commit into
prodfrom
main
Oct 21, 2026
Merged

daryll merged 1 commit into
prodfrom
main

Conversation

@daryll

@daryll daryll commented Oct 21, 2026

Copy link
Copy Markdown
Contributor

This is an auto-generated pull request to merge main into prod for a staging release on 2026-10-21 with the last commit being merged as 0cbc91b

@daryll daryll added autogenerated Automated pull request creation automerge Used for automated deployments labels Oct 21, 2026
@github-actions

github-actions Bot commented Oct 21, 2026 •

Copy link
Copy Markdown
Contributor

Terraform plan for staging

Plan: 3 to add, 6 to change, 3 to destroy.
Terraform used the selected providers to generate the following execution
plan. Resource actions are indicated with the following symbols:
!~  update in-place
-/+ destroy and then create replacement
 <= read (data resources)

Terraform will perform the following actions:

  # module.staging.cloudfoundry_network_policy.app-network-policy will be updated in-place
!~  resource "cloudfoundry_network_policy" "app-network-policy" {
!~      policies = [
!~          {
!~              source_app      = "c07fdedc-2e37-4572-80ba-fc04d5a087ed" -> "38f7f948-e7b4-4e8f-8ff4-7c89213ad857"
#                (3 unchanged attributes hidden)
            },
!~          {
!~              destination_app = "56529e23-9808-4aa8-9cb4-7559d6928480" -> "9b3c0181-4aeb-4a7f-9a46-f4b4c1fdb54f"
#                (3 unchanged attributes hidden)
            },
!~          {
!~              destination_app = "9b3c0181-4aeb-4a7f-9a46-f4b4c1fdb54f" -> "56529e23-9808-4aa8-9cb4-7559d6928480"
!~              source_app      = "38f7f948-e7b4-4e8f-8ff4-7c89213ad857" -> "c07fdedc-2e37-4572-80ba-fc04d5a087ed"
#                (2 unchanged attributes hidden)
            },
        ]
    }

  # module.staging.cloudfoundry_network_policy.logshipper-network-policy will be updated in-place
!~  resource "cloudfoundry_network_policy" "logshipper-network-policy" {
!~      policies = [
!~          {
!~              source_app      = "69025dbf-8d9c-4b1d-ab09-06ba137d1be1" -> (known after apply)
#                (3 unchanged attributes hidden)
            },
        ]
    }

  # module.staging.cloudfoundry_network_policy.scanner-network-policy will be updated in-place
!~  resource "cloudfoundry_network_policy" "scanner-network-policy" {
!~      policies = [
!~          {
!~              source_app      = "c07fdedc-2e37-4572-80ba-fc04d5a087ed" -> (known after apply)
#                (3 unchanged attributes hidden)
            },
!~          {
!~              source_app      = "c07fdedc-2e37-4572-80ba-fc04d5a087ed" -> (known after apply)
#                (3 unchanged attributes hidden)
            },
        ]
    }

  # module.staging.module.cg-logshipper.cloudfoundry_app.logshipper_app will be updated in-place
!~  resource "cloudfoundry_app" "logshipper_app" {
!~      created_at                  = "2025-04-21T19:51:00Z" -> (known after apply)
!~      enable_ssh                  = false -> (known after apply)
!~      id                          = "************************************" -> (known after apply)
!~      log_rate_limit_per_second   = "-1" -> (known after apply)
        name                        = "logshipper"
!~      readiness_health_check_type = "process" -> (known after apply)
!~      source_code_hash            = "dcec02157326da08b591b4b39edadd1afaa7b2c81c7a4fa38c905f929459b9f7" -> "9d763506a94695ae0e8fc9bac4ad174771b276375e6746cbe309b1cfc4715da1"
!~      stack                       = "cflinuxfs4" -> (known after apply)
!~      updated_at                  = "2026-10-20T14:38:31Z" -> (known after apply)
#        (14 unchanged attributes hidden)
    }

  # module.staging.module.cors.null_resource.cors_header must be replaced
-/+ resource "null_resource" "cors_header" {
!~      id       = "*******************" -> (known after apply)
!~      triggers = { # forces replacement
!~          "always_run" = "2026-10-20T14:28:35Z" -> (known after apply)
        }
    }

  # module.staging.module.fac-file-scanner.data.cloudfoundry_domain.internal will be read during apply
  # (depends on a resource or a module with changes pending)
 <= data "cloudfoundry_domain" "internal" {
+       annotations         = (known after apply)
+       created_at          = (known after apply)
+       id                  = (known after apply)
+       internal            = (known after apply)
+       labels              = (known after apply)
+       name                = "apps.internal"
+       org                 = (known after apply)
+       router_group        = (known after apply)
+       shared_orgs         = (known after apply)
+       supported_protocols = (known after apply)
+       updated_at          = (known after apply)
    }

  # module.staging.module.fac-file-scanner.data.external.scannerzip will be read during apply
  # (depends on a resource or a module with changes pending)
 <= data "external" "scannerzip" {
+       id          = (known after apply)
+       program     = [
+           "/bin/sh",
+           "prepare-scanner.sh",
        ]
+       query       = {
+           "gitref" = "refs/heads/main"
        }
+       result      = (known after apply)
+       working_dir = "../shared/modules/scanner"
    }

  # module.staging.module.fac-file-scanner.cloudfoundry_app.scanner_app will be updated in-place
!~  resource "cloudfoundry_app" "scanner_app" {
!~      created_at                  = "2025-04-21T19:51:55Z" -> (known after apply)
!~      enable_ssh                  = false -> (known after apply)
!~      id                          = "************************************" -> (known after apply)
!~      log_rate_limit_per_second   = "-1" -> (known after apply)
        name                        = "fac-file-scanner"
!~      path                        = "../shared/modules/scanner/scanner.zip" -> (known after apply)
!~      readiness_health_check_type = "process" -> (known after apply)
!~      routes                      = [
-           {
-               protocol = "http1" -> null
-               route    = "fac-file-scanner-staging.apps.internal" -> null
            },
        ] -> (known after apply)
!~      source_code_hash            = "a78cb9dc297d562d24637d42e4c47158e95311dab627ab100658984c15df3562" -> (known after apply)
!~      stack                       = "cflinuxfs4" -> (known after apply)
!~      updated_at                  = "2026-09-25T10:35:28Z" -> (known after apply)
#        (12 unchanged attributes hidden)
    }

  # module.staging.module.fac-file-scanner.cloudfoundry_route.scanner_route must be replaced
-/+ resource "cloudfoundry_route" "scanner_route" {
!~      created_at   = "2026-09-28T19:31:49Z" -> (known after apply)
!~      destinations = [
-           {
-               app_id           = "c07fdedc-2e37-4572-80ba-fc04d5a087ed" -> null
-               app_process_type = "web" -> null
-               id               = "04547559-82d8-4d93-83e0-3f8cf736576d" -> null
-               port             = 8080 -> null
-               protocol         = "http1" -> null
            },
+           {
+               app_id           = (known after apply)
+               app_process_type = (known after apply)
+               id               = (known after apply)
+               port             = (known after apply)
+               protocol         = (known after apply)
            },
        ]
!~      domain       = "26df58ef-0c0d-4997-b68b-8defb7b3998b" -> (known after apply) # forces replacement
!~      id           = "************************************" -> (known after apply)
!~      protocol     = "http" -> (known after apply)
!~      updated_at   = "2026-09-28T19:31:49Z" -> (known after apply)
!~      url          = "fac-file-scanner-staging.apps.internal" -> (known after apply)
#        (2 unchanged attributes hidden)
    }

  # module.staging.module.fac-file-scanner.module.quarantine.data.cloudfoundry_service_plans.s3 will be read during apply
  # (depends on a resource or a module with changes pending)
 <= data "cloudfoundry_service_plans" "s3" {
+       name                  = "basic"
+       service_offering_name = "s3"
+       service_plans         = (known after apply)
    }

  # module.staging.module.fac-file-scanner.module.quarantine.cloudfoundry_service_instance.bucket will be updated in-place
!~  resource "cloudfoundry_service_instance" "bucket" {
+       dashboard_url     = (known after apply)
        id                = "b4cf43f9-7ada-4c21-9d16-b340672e50ae"
!~      last_operation    = {
!~          created_at  = "2025-03-14T14:54:11Z" -> (known after apply)
+           description = (known after apply)
!~          state       = "succeeded" -> (known after apply)
!~          type        = "update" -> (known after apply)
!~          updated_at  = "2025-03-14T14:54:11Z" -> (known after apply)
        } -> (known after apply)
!~      maintenance_info  = {
+           description = (known after apply)
+           version     = (known after apply)
        } -> (known after apply)
        name              = "fac-file-scanner-quarantine"
!~      service_plan      = "021bb2a3-7e11-4fc2-b06b-d9f5938cd806" -> (known after apply)
        tags              = [
            "s3",
            "terraform-cloudgov-managed",
        ]
!~      updated_at        = "2025-03-14T14:54:11Z" -> (known after apply)
!~      upgrade_available = false -> (known after apply)
#        (3 unchanged attributes hidden)
    }

  # module.staging.module.file_scanner_clamav.module.route.data.cloudfoundry_domain.domain will be read during apply
  # (depends on a resource or a module with changes pending)
 <= data "cloudfoundry_domain" "domain" {
+       annotations         = (known after apply)
+       created_at          = (known after apply)
+       id                  = (known after apply)
+       internal            = (known after apply)
+       labels              = (known after apply)
+       name                = "apps.internal"
+       org                 = (known after apply)
+       router_group        = (known after apply)
+       shared_orgs         = (known after apply)
+       supported_protocols = (known after apply)
+       updated_at          = (known after apply)
    }

  # module.staging.module.file_scanner_clamav.module.route.data.cloudfoundry_org.org will be read during apply
  # (depends on a resource or a module with changes pending)
 <= data "cloudfoundry_org" "org" {
+       annotations = (known after apply)
+       created_at  = (known after apply)
+       id          = (known after apply)
+       labels      = (known after apply)
+       name        = "gsa-tts-oros-fac"
+       quota       = (known after apply)
+       suspended   = (known after apply)
+       updated_at  = (known after apply)
    }

  # module.staging.module.file_scanner_clamav.module.route.data.cloudfoundry_space.space will be read during apply
  # (config refers to values not yet known)
 <= data "cloudfoundry_space" "space" {
+       allow_ssh         = (known after apply)
+       annotations       = (known after apply)
+       created_at        = (known after apply)
+       id                = (known after apply)
+       isolation_segment = (known after apply)
+       labels            = (known after apply)
+       name              = "staging"
+       org               = (known after apply)
+       quota             = (known after apply)
+       updated_at        = (known after apply)
    }

  # module.staging.module.file_scanner_clamav.module.route.cloudfoundry_route.app_route must be replaced
-/+ resource "cloudfoundry_route" "app_route" {
!~      created_at   = "2026-09-28T19:32:22Z" -> (known after apply)
!~      destinations = [
-           {
-               app_id           = "90e623ce-e0a4-47f6-b3bb-9da64a4dc578" -> null
-               app_process_type = "web" -> null
-               id               = "73e36d00-3f74-4e1a-8b9a-04fec749ef55" -> null
-               port             = 8080 -> null
-               protocol         = "http1" -> null
            },
+           {
+               app_id           = "************************************"
+               app_process_type = (known after apply)
+               id               = (known after apply)
+               port             = (known after apply)
+               protocol         = (known after apply)
            },
        ]
!~      domain       = "26df58ef-0c0d-4997-b68b-8defb7b3998b" -> (known after apply) # forces replacement
!~      id           = "************************************" -> (known after apply)
!~      protocol     = "http" -> (known after apply)
!~      space        = "7bbe587a-e8ee-4e8c-b32f-86d0b0f1b807" -> (known after apply) # forces replacement
!~      updated_at   = "2026-09-28T19:32:22Z" -> (known after apply)
!~      url          = "fac-av-staging-fs.apps.internal" -> (known after apply)
#        (1 unchanged attribute hidden)
    }

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

✅ Plan applied in Deploy to the Staging Environment #548

@github-actions

Copy link
Copy Markdown
Contributor

Code Coverage

Package Line Rate Branch Rate Health
. 100% 100% ✔
api 98% 86% ✔
api.serializers 97% 88% ✔
api.views 88% 96% ➖
audit 95% 80% ✔
audit.cross_validation 97% 87% ✔
audit.fixtures 84% 50% ❌
audit.formlib 94% 72% ✔
audit.intakelib 89% 83% ➖
audit.intakelib.checks 92% 86% ✔
audit.intakelib.common 98% 82% ✔
audit.intakelib.transforms 100% 95% ✔
audit.management.commands 78% 17% ❌
audit.migrations 100% 100% ✔
audit.models 91% 69% ✔
audit.templatetags 94% 83% ✔
audit.test_viewlib 100% 93% ✔
audit.viewlib 81% 78% ❌
audit.views 75% 54% ❌
census_historical_migration 99% 100% ✔
census_historical_migration.migrations 100% 100% ✔
census_historical_migration.sac_general_lib 92% 84% ✔
census_historical_migration.transforms 95% 90% ✔
census_historical_migration.workbooklib 70% 75% ❌
config 79% 31% ❌
curation 98% 92% ✔
curation.curationlib 91% 84% ✔
curation.management.commands 38% 31% ❌
curation.migrations 100% 100% ✔
dissemination 90% 70% ✔
dissemination.analytics 27% 0% ❌
dissemination.forms 80% 30% ❌
dissemination.migrations 98% 25% ✔
dissemination.models 100% 100% ✔
dissemination.report_generation 21% 0% ❌
dissemination.report_generation.excel 32% 0% ❌
dissemination.searchlib 61% 43% ❌
dissemination.templatetags 52% 6% ❌
dissemination.views 71% 51% ❌
djangooidc 53% 38% ❌
djangooidc.tests 100% 94% ✔
report_submission 99% 94% ✔
report_submission.migrations 100% 100% ✔
report_submission.templatetags 74% 100% ❌
report_submission.views 75% 57% ❌
support 94% 75% ✔
support.migrations 100% 100% ✔
support.models 72% 11% ❌
tools 98% 50% ✔
users 95% 86% ✔
users.fixtures 100% 83% ✔
users.management 100% 100% ✔
users.management.commands 100% 100% ✔
users.migrations 100% 100% ✔
Summary 89% (24581 / 27640) 70% (3070 / 4376) ➖

Minimum allowed line rate is 85%

@daryll
daryll merged commit 31eaf01 into prod Oct 21, 2026
42 of 43 checks passed

This branch was successfully deployed

4 active and 1 inactive deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

autogenerated Automated pull request creation automerge Used for automated deployments

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants