Skip to content

2026-05-13 | MAIN --> PROD | DEV (f3cb2b9) --> STAGING#5631

Merged
neilmb merged 1 commit into
prodfrom
main
May 13, 2026
Merged

2026-05-13 | MAIN --> PROD | DEV (f3cb2b9) --> STAGING#5631
neilmb merged 1 commit into
prodfrom
main

Conversation

@neilmb
Copy link
Copy Markdown
Contributor

@neilmb neilmb commented May 13, 2026

This is an auto-generated pull request to merge main into prod for a staging release on 2026-05-13 with the last commit being merged as f3cb2b9

* Automate ALN updates and test workbook generation

* Address review comments and include generated workbook files as well as new script to automate version number increase

* Revert "Address review comments and include generated workbook files as well as new script to automate version number increase"

This reverts commit fbe6aef.

* Restore auto ALN schema process changes

* Sync Excel templates from main (remove instructions links)

* Remove instructions row, fix coversheet alignment, update test fixtures, regenerate workbooks (v1.1.9)

* remove whitespace from last line

* Regenerate workbooks and test fixtures (v1.1.9)

* Fix SAM.gov ALN fetch performance

* new ALN fetch

* Edit workbook version script to use shared config file and update ReadMe

* fix outdated instructions in Sheets.libsonnet

* Address review feedback for workbook versioning, exit if no workbook version found or missing fields/bad json, and SAM key example

* Fix flake8 spacing in workbook version validation

* Linting fixes

* Linting fix

* fix cypress

* fix cypress 2

* fix cypress 3
@neilmb neilmb added autogenerated Automated pull request creation automerge Used for automated deployments labels May 13, 2026
@github-actions
Copy link
Copy Markdown
Contributor

Terraform plan for staging

Plan: 3 to add, 5 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

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 = [
!~          {
!~              destination_app = "5e1e2a75-630a-4a1c-a006-ddd4a58e1cfa" -> (known after apply)
#                (3 unchanged attributes hidden)
            },
!~          {
!~              destination_app = "5e1e2a75-630a-4a1c-a006-ddd4a58e1cfa" -> (known after apply)
#                (3 unchanged attributes hidden)
            },
#            (1 unchanged element hidden)
        ]
    }

  # module.staging.cloudfoundry_network_policy.clamav-network-policy will be updated in-place
!~  resource "cloudfoundry_network_policy" "clamav-network-policy" {
!~      policies = [
!~          {
!~              source_app      = "5e1e2a75-630a-4a1c-a006-ddd4a58e1cfa" -> (known after apply)
#                (3 unchanged attributes hidden)
            },
!~          {
!~              source_app      = "14a2ad92-0bf8-4c3d-bed9-721af85054f2" -> (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 = [
!~          {
!~              destination_app = "14a2ad92-0bf8-4c3d-bed9-721af85054f2" -> (known after apply)
#                (3 unchanged attributes hidden)
            },
#            (1 unchanged element hidden)
        ]
    }

  # module.staging.module.clamav.cloudfoundry_app.clamav_api must be replaced
-/+ resource "cloudfoundry_app" "clamav_api" {
+       buildpacks                      = (known after apply)
!~      created_at                      = "2026-05-05T11:01:23Z" -> (known after apply)
!~      docker_image                    = "ghcr.io/gsa-tts/fac/clamav@sha256:631c9fd2a92b5751927f09f78281a3b15ea14593c46a1fbb51eb652d91774437" -> "ghcr.io/gsa-tts/fac/clamav@sha256:6cb40ce9be7a1e9a3cf174e301363f54cc5ab5591bc9532609ed7c17603236de"
!~      enable_ssh                      = false -> (known after apply)
!~      health_check_type               = "port" -> (known after apply)
!~      id                              = "************************************" -> (known after apply)
!~      log_rate_limit_per_second       = "-1" -> (known after apply)
        name                            = "fac-av-staging"
!~      readiness_health_check_type     = "process" -> (known after apply)
!~      routes                          = [
-           {
-               protocol = "http1" -> null
-               route    = "fac-av-staging.apps.internal" -> null
            },
        ] -> (known after apply)
+       service_bindings                = (known after apply) # forces replacement
!~      stack                           = null -> (known after apply)
!~      updated_at                      = "2026-05-05T11:01:30Z" -> (known after apply)
#        (8 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-05-09T10:50:17Z" -> (known after apply)
        }
    }

  # module.staging.module.file_scanner_clamav.cloudfoundry_app.clamav_api must be replaced
-/+ resource "cloudfoundry_app" "clamav_api" {
+       buildpacks                      = (known after apply)
!~      created_at                      = "2026-05-05T11:01:23Z" -> (known after apply)
!~      docker_image                    = "ghcr.io/gsa-tts/fac/clamav@sha256:631c9fd2a92b5751927f09f78281a3b15ea14593c46a1fbb51eb652d91774437" -> "ghcr.io/gsa-tts/fac/clamav@sha256:6cb40ce9be7a1e9a3cf174e301363f54cc5ab5591bc9532609ed7c17603236de"
!~      enable_ssh                      = false -> (known after apply)
!~      health_check_type               = "port" -> (known after apply)
!~      id                              = "************************************" -> (known after apply)
!~      log_rate_limit_per_second       = "-1" -> (known after apply)
        name                            = "fac-av-staging-fs"
!~      readiness_health_check_type     = "process" -> (known after apply)
!~      routes                          = [
-           {
-               protocol = "http1" -> null
-               route    = "fac-av-staging-fs.apps.internal" -> null
            },
        ] -> (known after apply)
+       service_bindings                = (known after apply) # forces replacement
!~      stack                           = null -> (known after apply)
!~      updated_at                      = "2026-05-05T11:01:33Z" -> (known after apply)
#        (8 unchanged attributes hidden)
    }

  # module.staging.module.clamav.module.route.cloudfoundry_route.app_route will be updated in-place
!~  resource "cloudfoundry_route" "app_route" {
!~      destinations = [
-           {
-               app_id           = "5e1e2a75-630a-4a1c-a006-ddd4a58e1cfa" -> null
-               app_process_type = "web" -> null
-               id               = "72aeccff-659c-4f4b-bb55-22e193747c50" -> 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)
            },
        ]
        id           = "8dec12f0-4f36-4b17-8f5d-f3adfbc29544"
!~      updated_at   = "2026-05-05T11:01:31Z" -> (known after apply)
#        (6 unchanged attributes hidden)
    }

  # module.staging.module.file_scanner_clamav.module.route.cloudfoundry_route.app_route will be updated in-place
!~  resource "cloudfoundry_route" "app_route" {
!~      destinations = [
-           {
-               app_id           = "14a2ad92-0bf8-4c3d-bed9-721af85054f2" -> null
-               app_process_type = "web" -> null
-               id               = "430455f6-9a9b-46e3-b424-fca237329e41" -> 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)
            },
        ]
        id           = "a37f24c6-0c6b-4ca4-a0c3-82983f3df94a"
!~      updated_at   = "2026-05-05T11:01:34Z" -> (known after apply)
#        (6 unchanged attributes hidden)
    }

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

📝 Plan generated in Pull Request Checks #927

@github-actions
Copy link
Copy Markdown
Contributor

Terraform plan for production

Plan: 3 to add, 5 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

Terraform will perform the following actions:

  # module.production.cloudfoundry_network_policy.app-network-policy will be updated in-place
!~  resource "cloudfoundry_network_policy" "app-network-policy" {
!~      policies = [
!~          {
!~              destination_app = "97f57706-7349-4e85-8fa6-d40fb72f849b" -> (known after apply)
#                (3 unchanged attributes hidden)
            },
!~          {
!~              destination_app = "97f57706-7349-4e85-8fa6-d40fb72f849b" -> (known after apply)
#                (3 unchanged attributes hidden)
            },
#            (1 unchanged element hidden)
        ]
    }

  # module.production.cloudfoundry_network_policy.clamav-network-policy will be updated in-place
!~  resource "cloudfoundry_network_policy" "clamav-network-policy" {
!~      policies = [
!~          {
!~              source_app      = "97f57706-7349-4e85-8fa6-d40fb72f849b" -> (known after apply)
#                (3 unchanged attributes hidden)
            },
!~          {
!~              source_app      = "f3d6b3d7-a5e8-4bec-95a1-0de342c9742f" -> (known after apply)
#                (3 unchanged attributes hidden)
            },
        ]
    }

  # module.production.cloudfoundry_network_policy.scanner-network-policy will be updated in-place
!~  resource "cloudfoundry_network_policy" "scanner-network-policy" {
!~      policies = [
!~          {
!~              destination_app = "f3d6b3d7-a5e8-4bec-95a1-0de342c9742f" -> (known after apply)
#                (3 unchanged attributes hidden)
            },
#            (1 unchanged element hidden)
        ]
    }

  # module.production.module.clamav.cloudfoundry_app.clamav_api must be replaced
-/+ resource "cloudfoundry_app" "clamav_api" {
+       buildpacks                      = (known after apply)
!~      created_at                      = "2026-04-29T18:00:36Z" -> (known after apply)
!~      docker_image                    = "ghcr.io/gsa-tts/fac/clamav@sha256:92f3615c12fdf17fc184753e2aa6b9d972aaa88238cc2e99997775c1bc699188" -> "ghcr.io/gsa-tts/fac/clamav@sha256:6cb40ce9be7a1e9a3cf174e301363f54cc5ab5591bc9532609ed7c17603236de"
!~      enable_ssh                      = false -> (known after apply)
!~      health_check_type               = "port" -> (known after apply)
!~      id                              = "************************************" -> (known after apply)
!~      log_rate_limit_per_second       = "-1" -> (known after apply)
        name                            = "fac-av-production"
!~      readiness_health_check_type     = "process" -> (known after apply)
!~      routes                          = [
-           {
-               protocol = "http1" -> null
-               route    = "fac-av-production.apps.internal" -> null
            },
        ] -> (known after apply)
+       service_bindings                = (known after apply) # forces replacement
!~      stack                           = null -> (known after apply)
!~      updated_at                      = "2026-04-29T18:00:45Z" -> (known after apply)
#        (8 unchanged attributes hidden)
    }

  # module.production.module.cors.null_resource.cors_header must be replaced
-/+ resource "null_resource" "cors_header" {
!~      id       = "*******************" -> (known after apply)
!~      triggers = { # forces replacement
!~          "always_run" = "2026-04-30T17:15:13Z" -> (known after apply)
        }
    }

  # module.production.module.file_scanner_clamav.cloudfoundry_app.clamav_api must be replaced
-/+ resource "cloudfoundry_app" "clamav_api" {
+       buildpacks                      = (known after apply)
!~      created_at                      = "2026-04-29T18:00:36Z" -> (known after apply)
!~      docker_image                    = "ghcr.io/gsa-tts/fac/clamav@sha256:92f3615c12fdf17fc184753e2aa6b9d972aaa88238cc2e99997775c1bc699188" -> "ghcr.io/gsa-tts/fac/clamav@sha256:6cb40ce9be7a1e9a3cf174e301363f54cc5ab5591bc9532609ed7c17603236de"
!~      enable_ssh                      = false -> (known after apply)
!~      health_check_type               = "port" -> (known after apply)
!~      id                              = "************************************" -> (known after apply)
!~      log_rate_limit_per_second       = "-1" -> (known after apply)
        name                            = "fac-av-production-fs"
!~      readiness_health_check_type     = "process" -> (known after apply)
!~      routes                          = [
-           {
-               protocol = "http1" -> null
-               route    = "fac-av-production-fs.apps.internal" -> null
            },
        ] -> (known after apply)
+       service_bindings                = (known after apply) # forces replacement
!~      stack                           = null -> (known after apply)
!~      updated_at                      = "2026-04-29T18:00:47Z" -> (known after apply)
#        (8 unchanged attributes hidden)
    }

  # module.production.module.clamav.module.route.cloudfoundry_route.app_route will be updated in-place
!~  resource "cloudfoundry_route" "app_route" {
!~      destinations = [
-           {
-               app_id           = "97f57706-7349-4e85-8fa6-d40fb72f849b" -> null
-               app_process_type = "web" -> null
-               id               = "ac01a752-f948-483b-bbf0-84b86dcf50e2" -> 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)
            },
        ]
        id           = "5ae55cd7-5641-4974-a489-56a5cf2c7524"
!~      updated_at   = "2026-04-29T18:00:45Z" -> (known after apply)
#        (6 unchanged attributes hidden)
    }

  # module.production.module.file_scanner_clamav.module.route.cloudfoundry_route.app_route will be updated in-place
!~  resource "cloudfoundry_route" "app_route" {
!~      destinations = [
-           {
-               app_id           = "f3d6b3d7-a5e8-4bec-95a1-0de342c9742f" -> null
-               app_process_type = "web" -> null
-               id               = "d155f300-da18-4f5f-ab62-c7898b12bae8" -> 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)
            },
        ]
        id           = "6fe52dc1-3d44-4b75-80d6-36e97d217600"
!~      updated_at   = "2026-04-29T18:00:47Z" -> (known after apply)
#        (6 unchanged attributes hidden)
    }

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

📝 Plan generated in Pull Request Checks #927

@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 91% 96%
audit 95% 80%
audit.cross_validation 97% 86%
audit.fixtures 84% 50%
audit.formlib 92% 62%
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 100% 100%
audit.test_viewlib 100% 100%
audit.views 75% 52%
census_historical_migration 96% 65%
census_historical_migration.migrations 100% 100%
census_historical_migration.sac_general_lib 92% 84%
census_historical_migration.transforms 95% 90%
census_historical_migration.workbooklib 68% 69%
config 78% 37%
curation 94% 86%
curation.curationlib 91% 71%
curation.management.commands 46% 34%
curation.migrations 100% 100%
dissemination 90% 70%
dissemination.analytics 27% 0%
dissemination.forms 80% 30%
dissemination.migrations 97% 25%
dissemination.models 100% 100%
dissemination.report_generation 21% 0%
dissemination.report_generation.excel 32% 0%
dissemination.searchlib 61% 44%
dissemination.templatetags 52% 6%
dissemination.views 67% 47%
djangooidc 53% 38%
djangooidc.tests 100% 94%
report_submission 100% 96%
report_submission.migrations 100% 100%
report_submission.templatetags 74% 100%
report_submission.views 78% 61%
support 94% 75%
support.migrations 100% 100%
support.models 90% 50%
tools 98% 50%
users 95% 86%
users.fixtures 100% 83%
users.management 100% 100%
users.management.commands 100% 100%
users.migrations 100% 100%
Summary 88% (22532 / 25479) 69% (2741 / 3994)

Minimum allowed line rate is 85%

@neilmb neilmb merged commit 6b86bce into prod May 13, 2026
73 of 74 checks passed
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