From d73d4d17d0afb128becee8b79c9a34b9ece5c8a1 Mon Sep 17 00:00:00 2001 From: Beverly Nguyen Date: Fri, 17 Oct 2025 13:11:38 -0700 Subject: [PATCH 01/38] trigger action --- tests/app/main/views/organizations/test_organizations.py | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/app/main/views/organizations/test_organizations.py b/tests/app/main/views/organizations/test_organizations.py index 857ffa5da..ae6bc9043 100644 --- a/tests/app/main/views/organizations/test_organizations.py +++ b/tests/app/main/views/organizations/test_organizations.py @@ -1542,7 +1542,6 @@ def test_organization_dashboard_shows_message_usage( "app.organizations_client.get_organization_services", return_value=[], ) - client_request.login(active_user_with_permissions) page = client_request.get( ".organization_dashboard", From ae351c5f3463599e5d30803ec21e5e8240eb1d0b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 17 Oct 2025 20:25:35 -0400 Subject: [PATCH 02/38] Bump playwright from 1.56.0 to 1.56.1 (#3024) Bumps [playwright](https://github.com/microsoft/playwright) from 1.56.0 to 1.56.1. - [Release notes](https://github.com/microsoft/playwright/releases) - [Commits](https://github.com/microsoft/playwright/compare/v1.56.0...v1.56.1) --- updated-dependencies: - dependency-name: playwright dependency-version: 1.56.1 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 16 ++++++++-------- package.json | 2 +- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/package-lock.json b/package-lock.json index cd702f4e1..22e519bf0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16,7 +16,7 @@ "cbor-js": "0.1.0", "d3": "^7.9.0", "jquery": "3.7.1", - "playwright": "^1.56.0", + "playwright": "^1.56.1", "python": "^0.0.4", "query-command-supported": "1.0.0", "sass-embedded": "^1.93.2", @@ -10883,12 +10883,12 @@ } }, "node_modules/playwright": { - "version": "1.56.0", - "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.56.0.tgz", - "integrity": "sha512-X5Q1b8lOdWIE4KAoHpW3SE8HvUB+ZZsUoN64ZhjnN8dOb1UpujxBtENGiZFE+9F/yhzJwYa+ca3u43FeLbboHA==", + "version": "1.56.1", + "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.56.1.tgz", + "integrity": "sha512-aFi5B0WovBHTEvpM3DzXTUaeN6eN0qWnTkKx4NQaH4Wvcmc153PdaY2UBdSYKaGYw+UyWXSVyxDUg5DoPEttjw==", "license": "Apache-2.0", "dependencies": { - "playwright-core": "1.56.0" + "playwright-core": "1.56.1" }, "bin": { "playwright": "cli.js" @@ -10901,9 +10901,9 @@ } }, "node_modules/playwright-core": { - "version": "1.56.0", - "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.56.0.tgz", - "integrity": "sha512-1SXl7pMfemAMSDn5rkPeZljxOCYAmQnYLBTExuh6E8USHXGSX3dx6lYZN/xPpTz1vimXmPA9CDnILvmJaB8aSQ==", + "version": "1.56.1", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.56.1.tgz", + "integrity": "sha512-hutraynyn31F+Bifme+Ps9Vq59hKuUCz7H1kDOcBs+2oGguKkWTU50bBWrtz34OUWmIwpBTWDxaRPXrIXkgvmQ==", "license": "Apache-2.0", "bin": { "playwright-core": "cli.js" diff --git a/package.json b/package.json index 54e9e98dc..ee237a47a 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,7 @@ "cbor-js": "0.1.0", "d3": "^7.9.0", "jquery": "3.7.1", - "playwright": "^1.56.0", + "playwright": "^1.56.1", "python": "^0.0.4", "query-command-supported": "1.0.0", "sass-embedded": "^1.93.2", From 507e7fe88853969feaf781b4c199e324f2e1a6d5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 17 Oct 2025 21:33:38 -0400 Subject: [PATCH 03/38] Bump moto from 5.1.14 to 5.1.15 (#3023) Bumps [moto](https://github.com/getmoto/moto) from 5.1.14 to 5.1.15. - [Release notes](https://github.com/getmoto/moto/releases) - [Changelog](https://github.com/getmoto/moto/blob/master/CHANGELOG.md) - [Commits](https://github.com/getmoto/moto/compare/5.1.14...5.1.15) --- updated-dependencies: - dependency-name: moto dependency-version: 5.1.15 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- poetry.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/poetry.lock b/poetry.lock index b5bcc2cce..4b0399a22 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,4 +1,4 @@ -# This file is automatically @generated by Poetry 2.2.0 and should not be changed by hand. +# This file is automatically @generated by Poetry 2.2.1 and should not be changed by hand. [[package]] name = "ago" @@ -2129,14 +2129,14 @@ files = [ [[package]] name = "moto" -version = "5.1.14" +version = "5.1.15" description = "A library that allows you to easily mock out tests based on AWS infrastructure" optional = false python-versions = ">=3.9" groups = ["dev"] files = [ - {file = "moto-5.1.14-py3-none-any.whl", hash = "sha256:b9767848953beaf6650f1fd91615a3bcef84d93bd00603fa64dae38c656548e8"}, - {file = "moto-5.1.14.tar.gz", hash = "sha256:450690abb0b152fea7f93e497ac2172f15d8a838b15f22b514db801a6b857ae4"}, + {file = "moto-5.1.15-py3-none-any.whl", hash = "sha256:0ffcf943f421bc6e7248889c7c44182a9ec26f8df3457cd4b52418dab176a720"}, + {file = "moto-5.1.15.tar.gz", hash = "sha256:2ad9cc9710a3460505511543dba6761c8bd2006a49954ad3988bbf20ce9e6413"}, ] [package.dependencies] From e8d8a08e2764e98e10508302c353aacc453ef3eb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 18 Oct 2025 08:08:52 -0400 Subject: [PATCH 04/38] Bump @rollup/plugin-commonjs from 28.0.7 to 28.0.8 (#3020) Bumps [@rollup/plugin-commonjs](https://github.com/rollup/plugins/tree/HEAD/packages/commonjs) from 28.0.7 to 28.0.8. - [Changelog](https://github.com/rollup/plugins/blob/master/packages/commonjs/CHANGELOG.md) - [Commits](https://github.com/rollup/plugins/commits/commonjs-v28.0.8/packages/commonjs) --- updated-dependencies: - dependency-name: "@rollup/plugin-commonjs" dependency-version: 28.0.8 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 22e519bf0..516b982cc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,7 @@ "version": "0.0.1", "license": "CC0", "dependencies": { - "@rollup/plugin-commonjs": "^28.0.7", + "@rollup/plugin-commonjs": "^28.0.8", "@rollup/plugin-node-resolve": "^16.0.3", "@rollup/stream": "^3.0.1", "@uswds/uswds": "^3.13.0", @@ -3275,9 +3275,9 @@ } }, "node_modules/@rollup/plugin-commonjs": { - "version": "28.0.7", - "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-28.0.7.tgz", - "integrity": "sha512-6cE2Wr/MkpdtTS8gXlCn9Zdmf7e9Xm96yFqOwFEXuvYLAHtjRf57/n6GEVF4K8NSesT1eKdBtcDA/SQdpW/8nA==", + "version": "28.0.8", + "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-28.0.8.tgz", + "integrity": "sha512-o1Ug9PxYsF61R7/NXO/GgMZZproLd/WH2XA53Tp9ppf6bU1lMlTtC/gUM6zM3mesi2E0rypk+PNtVrELREyWEQ==", "license": "MIT", "dependencies": { "@rollup/pluginutils": "^5.0.1", diff --git a/package.json b/package.json index ee237a47a..d83d14cdb 100644 --- a/package.json +++ b/package.json @@ -30,7 +30,7 @@ "graceful-fs": "^4.2.11" }, "dependencies": { - "@rollup/plugin-commonjs": "^28.0.7", + "@rollup/plugin-commonjs": "^28.0.8", "@rollup/plugin-node-resolve": "^16.0.3", "@rollup/stream": "^3.0.1", "@uswds/uswds": "^3.13.0", From 484525477fb96c025d1d78c0ed3f16f18d7b5aa8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 18 Oct 2025 10:19:42 -0400 Subject: [PATCH 05/38] Bump hypothesis from 6.142.0 to 6.142.1 (#3019) Bumps [hypothesis](https://github.com/HypothesisWorks/hypothesis) from 6.142.0 to 6.142.1. - [Release notes](https://github.com/HypothesisWorks/hypothesis/releases) - [Commits](https://github.com/HypothesisWorks/hypothesis/compare/hypothesis-python-6.142.0...hypothesis-python-6.142.1) --- updated-dependencies: - dependency-name: hypothesis dependency-version: 6.142.1 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- poetry.lock | 8 ++++---- pyproject.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/poetry.lock b/poetry.lock index 4b0399a22..98e904be3 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1490,14 +1490,14 @@ tests = ["freezegun", "pytest", "pytest-cov"] [[package]] name = "hypothesis" -version = "6.142.0" +version = "6.142.1" description = "A library for property-based testing" optional = false python-versions = ">=3.10" groups = ["main"] files = [ - {file = "hypothesis-6.142.0-py3-none-any.whl", hash = "sha256:2d1c3096ee625f327134a693d8e5a48134e3a6cd0914cd0497adb2699bd998b4"}, - {file = "hypothesis-6.142.0.tar.gz", hash = "sha256:584bb5bddb95cfae69151466215433b5620bd7498876e6f6831c9f119344fb0f"}, + {file = "hypothesis-6.142.1-py3-none-any.whl", hash = "sha256:95a7d38fcc58e697e3020665adcb951c630cdbc8065e4b4474949e486b06bd6d"}, + {file = "hypothesis-6.142.1.tar.gz", hash = "sha256:3179cb08756562c526aaf4a9871ebbff83d2d75c03896ed0bc9c1d14097a930c"}, ] [package.dependencies] @@ -4420,4 +4420,4 @@ cffi = ["cffi (>=1.17) ; python_version >= \"3.13\" and platform_python_implemen [metadata] lock-version = "2.1" python-versions = "^3.13.2" -content-hash = "5a3442eedbd6a2a2f9d6fda0452e04ea18463dd794135ae8b0bd601089d43b17" +content-hash = "0d52d878ffc74844bbf6f7a21e68379f7b679c594bea67d64fe5aa8656ee99e7" diff --git a/pyproject.toml b/pyproject.toml index 17cc84a29..576fb7749 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -20,7 +20,7 @@ flask-login = "^0.6" flask-talisman = "*" flask-wtf = "^1.2" gunicorn = {version = "==23.0.0", extras = ["gevent"]} -hypothesis = "^6.142.0" +hypothesis = "^6.142.1" humanize = "~=4.14" itsdangerous = "~=2.2" jinja2 = "^3.1.6" From 55341619dbdf119d2e0ca2b192031ca23f2a8b19 Mon Sep 17 00:00:00 2001 From: Kenneth Kehl <@kkehl@flexion.us> Date: Mon, 20 Oct 2025 07:38:25 -0700 Subject: [PATCH 06/38] try a minimalistic approach --- terraform/staging/providers.tf | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/terraform/staging/providers.tf b/terraform/staging/providers.tf index 95d1edaa5..37e5359e0 100644 --- a/terraform/staging/providers.tf +++ b/terraform/staging/providers.tf @@ -2,6 +2,10 @@ terraform { required_version = "~> 1.7" required_providers { cloudfoundry = { + source = "cloudfoundry/cloudfoundry" + version = "0.19.0" + } + cf_community = { source = "cloudfoundry-community/cloudfoundry" version = "0.53.1" } @@ -16,7 +20,15 @@ terraform { } } + provider "cloudfoundry" { + api_url = "https://api.fr.cloud.gov" + user = var.cf_user + password = var.cf_password +} + +provider "cf_community" { + alias = "community" api_url = "https://api.fr.cloud.gov" user = var.cf_user password = var.cf_password From cdc1eeed2beac5bd4b520a26cf449bb38b312783 Mon Sep 17 00:00:00 2001 From: Kenneth Kehl <@kkehl@flexion.us> Date: Mon, 20 Oct 2025 07:41:46 -0700 Subject: [PATCH 07/38] fix terraform version --- terraform/staging/providers.tf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/terraform/staging/providers.tf b/terraform/staging/providers.tf index 37e5359e0..fa1f9314e 100644 --- a/terraform/staging/providers.tf +++ b/terraform/staging/providers.tf @@ -3,7 +3,7 @@ terraform { required_providers { cloudfoundry = { source = "cloudfoundry/cloudfoundry" - version = "0.19.0" + version = "1.9.0" } cf_community = { source = "cloudfoundry-community/cloudfoundry" From 74dbe6e3bca8b4718022ebdc7615e7a4b7c6a2b5 Mon Sep 17 00:00:00 2001 From: Kenneth Kehl <@kkehl@flexion.us> Date: Mon, 20 Oct 2025 07:56:17 -0700 Subject: [PATCH 08/38] fix terraform version --- terraform/staging/providers.tf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/terraform/staging/providers.tf b/terraform/staging/providers.tf index fa1f9314e..556dbdd90 100644 --- a/terraform/staging/providers.tf +++ b/terraform/staging/providers.tf @@ -5,7 +5,7 @@ terraform { source = "cloudfoundry/cloudfoundry" version = "1.9.0" } - cf_community = { + cfcommunity = { source = "cloudfoundry-community/cloudfoundry" version = "0.53.1" } @@ -27,7 +27,7 @@ provider "cloudfoundry" { password = var.cf_password } -provider "cf_community" { +provider "cfcommunity" { alias = "community" api_url = "https://api.fr.cloud.gov" user = var.cf_user From f66ac17a0ba970f9a7b218bc592e081aa7d8ff25 Mon Sep 17 00:00:00 2001 From: Kenneth Kehl <@kkehl@flexion.us> Date: Mon, 20 Oct 2025 08:10:12 -0700 Subject: [PATCH 09/38] fix provider name --- terraform/staging/providers.tf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/terraform/staging/providers.tf b/terraform/staging/providers.tf index 556dbdd90..5f1d5d812 100644 --- a/terraform/staging/providers.tf +++ b/terraform/staging/providers.tf @@ -5,7 +5,7 @@ terraform { source = "cloudfoundry/cloudfoundry" version = "1.9.0" } - cfcommunity = { + cloudfoundry-community = { source = "cloudfoundry-community/cloudfoundry" version = "0.53.1" } @@ -27,7 +27,7 @@ provider "cloudfoundry" { password = var.cf_password } -provider "cfcommunity" { +provider "cloudfoundry-community" { alias = "community" api_url = "https://api.fr.cloud.gov" user = var.cf_user From e15eb311a3b3cc938ac41cac13420f30d77d065c Mon Sep 17 00:00:00 2001 From: Kenneth Kehl <@kkehl@flexion.us> Date: Mon, 20 Oct 2025 08:19:32 -0700 Subject: [PATCH 10/38] fix provider name --- terraform/staging/providers.tf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/terraform/staging/providers.tf b/terraform/staging/providers.tf index 5f1d5d812..556dbdd90 100644 --- a/terraform/staging/providers.tf +++ b/terraform/staging/providers.tf @@ -5,7 +5,7 @@ terraform { source = "cloudfoundry/cloudfoundry" version = "1.9.0" } - cloudfoundry-community = { + cfcommunity = { source = "cloudfoundry-community/cloudfoundry" version = "0.53.1" } @@ -27,7 +27,7 @@ provider "cloudfoundry" { password = var.cf_password } -provider "cloudfoundry-community" { +provider "cfcommunity" { alias = "community" api_url = "https://api.fr.cloud.gov" user = var.cf_user From 13137527c0db94fbb8d8da8d544f1bf10339b738 Mon Sep 17 00:00:00 2001 From: Kenneth Kehl <@kkehl@flexion.us> Date: Mon, 20 Oct 2025 08:24:17 -0700 Subject: [PATCH 11/38] fix provider name --- terraform/staging/providers.tf | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/terraform/staging/providers.tf b/terraform/staging/providers.tf index 556dbdd90..46ac17b83 100644 --- a/terraform/staging/providers.tf +++ b/terraform/staging/providers.tf @@ -20,15 +20,17 @@ terraform { } } - +# Official provider (default) provider "cloudfoundry" { api_url = "https://api.fr.cloud.gov" user = var.cf_user password = var.cf_password } -provider "cfcommunity" { +# Community provider (aliased) +provider "cloudfoundry" { alias = "community" + source = "cloudfoundry-community/cloudfoundry" # Required for disambiguation api_url = "https://api.fr.cloud.gov" user = var.cf_user password = var.cf_password From 80af60cef8098edbbcb3bcb6a11024cc53ab3941 Mon Sep 17 00:00:00 2001 From: Kenneth Kehl <@kkehl@flexion.us> Date: Mon, 20 Oct 2025 08:36:22 -0700 Subject: [PATCH 12/38] fix provider name --- terraform/staging/main.tf | 12 +++++++++--- terraform/staging/providers.tf | 3 +-- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/terraform/staging/main.tf b/terraform/staging/main.tf index 87c1e64dd..fc7cc1a30 100644 --- a/terraform/staging/main.tf +++ b/terraform/staging/main.tf @@ -14,7 +14,9 @@ resource "null_resource" "prevent_destroy" { module "redis-v70" { source = "github.com/GSA-TTS/terraform-cloudgov//redis?ref=v1.0.0" - + providers = { + cloudfoundry = cloudfoundry.community + } cf_org_name = local.cf_org_name cf_space_name = local.cf_space_name name = "${local.app_name}-redis-v70-${local.env}" @@ -28,7 +30,9 @@ module "redis-v70" { module "logo_upload_bucket" { source = "github.com/GSA-TTS/terraform-cloudgov//s3?ref=v1.0.0" - + providers = { + cloudfoundry = cloudfoundry.community + } cf_org_name = local.cf_org_name cf_space_name = local.cf_space_name name = "${local.app_name}-logo-upload-bucket-${local.env}" @@ -36,7 +40,9 @@ module "logo_upload_bucket" { module "api_network_route" { source = "../shared/container_networking" - + providers = { + cloudfoundry = cloudfoundry.community + } cf_org_name = local.cf_org_name cf_space_name = local.cf_space_name source_app_name = "${local.app_name}-${local.env}" diff --git a/terraform/staging/providers.tf b/terraform/staging/providers.tf index 46ac17b83..955db4bd5 100644 --- a/terraform/staging/providers.tf +++ b/terraform/staging/providers.tf @@ -28,9 +28,8 @@ provider "cloudfoundry" { } # Community provider (aliased) -provider "cloudfoundry" { +provider "cfcommunity" { alias = "community" - source = "cloudfoundry-community/cloudfoundry" # Required for disambiguation api_url = "https://api.fr.cloud.gov" user = var.cf_user password = var.cf_password From e025a8cbd70c0e787642ab7958421241fa1a9985 Mon Sep 17 00:00:00 2001 From: Kenneth Kehl <@kkehl@flexion.us> Date: Mon, 20 Oct 2025 08:51:38 -0700 Subject: [PATCH 13/38] fix provider name --- terraform/staging/main.tf | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/terraform/staging/main.tf b/terraform/staging/main.tf index fc7cc1a30..8cc77cea3 100644 --- a/terraform/staging/main.tf +++ b/terraform/staging/main.tf @@ -15,7 +15,7 @@ resource "null_resource" "prevent_destroy" { module "redis-v70" { source = "github.com/GSA-TTS/terraform-cloudgov//redis?ref=v1.0.0" providers = { - cloudfoundry = cloudfoundry.community + cloudfoundry = cfcommunity.community } cf_org_name = local.cf_org_name cf_space_name = local.cf_space_name @@ -31,7 +31,7 @@ module "redis-v70" { module "logo_upload_bucket" { source = "github.com/GSA-TTS/terraform-cloudgov//s3?ref=v1.0.0" providers = { - cloudfoundry = cloudfoundry.community + cloudfoundry = cfcommunity.community } cf_org_name = local.cf_org_name cf_space_name = local.cf_space_name @@ -41,7 +41,7 @@ module "logo_upload_bucket" { module "api_network_route" { source = "../shared/container_networking" providers = { - cloudfoundry = cloudfoundry.community + cloudfoundry = cfcommunity.community } cf_org_name = local.cf_org_name cf_space_name = local.cf_space_name From e2597a8938140e680feb56e8c86e6f761fc3fd35 Mon Sep 17 00:00:00 2001 From: Kenneth Kehl <@kkehl@flexion.us> Date: Mon, 20 Oct 2025 09:03:59 -0700 Subject: [PATCH 14/38] fix provider name --- terraform/staging/main.tf | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/terraform/staging/main.tf b/terraform/staging/main.tf index 8cc77cea3..a8d6f30a1 100644 --- a/terraform/staging/main.tf +++ b/terraform/staging/main.tf @@ -15,7 +15,7 @@ resource "null_resource" "prevent_destroy" { module "redis-v70" { source = "github.com/GSA-TTS/terraform-cloudgov//redis?ref=v1.0.0" providers = { - cloudfoundry = cfcommunity.community + cloudfoundry = cfcommunity } cf_org_name = local.cf_org_name cf_space_name = local.cf_space_name @@ -31,7 +31,7 @@ module "redis-v70" { module "logo_upload_bucket" { source = "github.com/GSA-TTS/terraform-cloudgov//s3?ref=v1.0.0" providers = { - cloudfoundry = cfcommunity.community + cloudfoundry = cfcommunity } cf_org_name = local.cf_org_name cf_space_name = local.cf_space_name @@ -41,7 +41,7 @@ module "logo_upload_bucket" { module "api_network_route" { source = "../shared/container_networking" providers = { - cloudfoundry = cfcommunity.community + cloudfoundry = cfcommunity } cf_org_name = local.cf_org_name cf_space_name = local.cf_space_name From 18d3969454e19fde5bd142d84a36b0a9730784f3 Mon Sep 17 00:00:00 2001 From: Kenneth Kehl <@kkehl@flexion.us> Date: Mon, 20 Oct 2025 09:14:47 -0700 Subject: [PATCH 15/38] fix provider name --- terraform/staging/main.tf | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/terraform/staging/main.tf b/terraform/staging/main.tf index a8d6f30a1..e76ed533e 100644 --- a/terraform/staging/main.tf +++ b/terraform/staging/main.tf @@ -14,9 +14,7 @@ resource "null_resource" "prevent_destroy" { module "redis-v70" { source = "github.com/GSA-TTS/terraform-cloudgov//redis?ref=v1.0.0" - providers = { - cloudfoundry = cfcommunity - } + cf_org_name = local.cf_org_name cf_space_name = local.cf_space_name name = "${local.app_name}-redis-v70-${local.env}" From 06415a1d9d4cb7ab2023ac22354b91ce3566dc3a Mon Sep 17 00:00:00 2001 From: Kenneth Kehl <@kkehl@flexion.us> Date: Mon, 20 Oct 2025 09:20:29 -0700 Subject: [PATCH 16/38] fix provider name --- terraform/staging/main.tf | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/terraform/staging/main.tf b/terraform/staging/main.tf index e76ed533e..87c1e64dd 100644 --- a/terraform/staging/main.tf +++ b/terraform/staging/main.tf @@ -28,9 +28,7 @@ module "redis-v70" { module "logo_upload_bucket" { source = "github.com/GSA-TTS/terraform-cloudgov//s3?ref=v1.0.0" - providers = { - cloudfoundry = cfcommunity - } + cf_org_name = local.cf_org_name cf_space_name = local.cf_space_name name = "${local.app_name}-logo-upload-bucket-${local.env}" @@ -38,9 +36,7 @@ module "logo_upload_bucket" { module "api_network_route" { source = "../shared/container_networking" - providers = { - cloudfoundry = cfcommunity - } + cf_org_name = local.cf_org_name cf_space_name = local.cf_space_name source_app_name = "${local.app_name}-${local.env}" From 3f88f88fb576bcc258bb9f0ee26daafef84ba011 Mon Sep 17 00:00:00 2001 From: Kenneth Kehl <@kkehl@flexion.us> Date: Mon, 20 Oct 2025 09:36:02 -0700 Subject: [PATCH 17/38] fix provider name --- terraform/staging/main.tf | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/terraform/staging/main.tf b/terraform/staging/main.tf index 87c1e64dd..8545bf44e 100644 --- a/terraform/staging/main.tf +++ b/terraform/staging/main.tf @@ -14,7 +14,9 @@ resource "null_resource" "prevent_destroy" { module "redis-v70" { source = "github.com/GSA-TTS/terraform-cloudgov//redis?ref=v1.0.0" - + providers = { + cfcommunity = cfcommunity.community + } cf_org_name = local.cf_org_name cf_space_name = local.cf_space_name name = "${local.app_name}-redis-v70-${local.env}" @@ -28,7 +30,9 @@ module "redis-v70" { module "logo_upload_bucket" { source = "github.com/GSA-TTS/terraform-cloudgov//s3?ref=v1.0.0" - + providers = { + cfcommunity = cfcommunity.community + } cf_org_name = local.cf_org_name cf_space_name = local.cf_space_name name = "${local.app_name}-logo-upload-bucket-${local.env}" @@ -36,7 +40,9 @@ module "logo_upload_bucket" { module "api_network_route" { source = "../shared/container_networking" - + providers = { + cfcommunity = cfcommunity.community + } cf_org_name = local.cf_org_name cf_space_name = local.cf_space_name source_app_name = "${local.app_name}-${local.env}" From b9ead9e4f1224d77a9dd2510cc2714693afe6db3 Mon Sep 17 00:00:00 2001 From: Kenneth Kehl <@kkehl@flexion.us> Date: Mon, 20 Oct 2025 09:41:33 -0700 Subject: [PATCH 18/38] fix provider name --- terraform/staging/main.tf | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/terraform/staging/main.tf b/terraform/staging/main.tf index 8545bf44e..a2a108871 100644 --- a/terraform/staging/main.tf +++ b/terraform/staging/main.tf @@ -15,7 +15,7 @@ resource "null_resource" "prevent_destroy" { module "redis-v70" { source = "github.com/GSA-TTS/terraform-cloudgov//redis?ref=v1.0.0" providers = { - cfcommunity = cfcommunity.community + cloudfoundry = cloudfoundry } cf_org_name = local.cf_org_name cf_space_name = local.cf_space_name @@ -31,7 +31,8 @@ module "redis-v70" { module "logo_upload_bucket" { source = "github.com/GSA-TTS/terraform-cloudgov//s3?ref=v1.0.0" providers = { - cfcommunity = cfcommunity.community + + cloudfoundry = cloudfoundry } cf_org_name = local.cf_org_name cf_space_name = local.cf_space_name @@ -41,7 +42,8 @@ module "logo_upload_bucket" { module "api_network_route" { source = "../shared/container_networking" providers = { - cfcommunity = cfcommunity.community + + cloudfoundry = cloudfoundry } cf_org_name = local.cf_org_name cf_space_name = local.cf_space_name From 919fc38cf998970b2713cb43359f7dfd2d06b7e0 Mon Sep 17 00:00:00 2001 From: Kenneth Kehl <@kkehl@flexion.us> Date: Mon, 20 Oct 2025 10:04:50 -0700 Subject: [PATCH 19/38] fix provider name --- terraform/staging/main.tf | 10 +--------- terraform/staging/providers.tf | 6 +++--- 2 files changed, 4 insertions(+), 12 deletions(-) diff --git a/terraform/staging/main.tf b/terraform/staging/main.tf index a2a108871..87c1e64dd 100644 --- a/terraform/staging/main.tf +++ b/terraform/staging/main.tf @@ -14,9 +14,7 @@ resource "null_resource" "prevent_destroy" { module "redis-v70" { source = "github.com/GSA-TTS/terraform-cloudgov//redis?ref=v1.0.0" - providers = { - cloudfoundry = cloudfoundry - } + cf_org_name = local.cf_org_name cf_space_name = local.cf_space_name name = "${local.app_name}-redis-v70-${local.env}" @@ -30,10 +28,7 @@ module "redis-v70" { module "logo_upload_bucket" { source = "github.com/GSA-TTS/terraform-cloudgov//s3?ref=v1.0.0" - providers = { - cloudfoundry = cloudfoundry - } cf_org_name = local.cf_org_name cf_space_name = local.cf_space_name name = "${local.app_name}-logo-upload-bucket-${local.env}" @@ -41,10 +36,7 @@ module "logo_upload_bucket" { module "api_network_route" { source = "../shared/container_networking" - providers = { - cloudfoundry = cloudfoundry - } cf_org_name = local.cf_org_name cf_space_name = local.cf_space_name source_app_name = "${local.app_name}-${local.env}" diff --git a/terraform/staging/providers.tf b/terraform/staging/providers.tf index 955db4bd5..e14251fdf 100644 --- a/terraform/staging/providers.tf +++ b/terraform/staging/providers.tf @@ -20,16 +20,16 @@ terraform { } } -# Official provider (default) +# Official provider (should be default but aliased for now) provider "cloudfoundry" { + alias = "official" api_url = "https://api.fr.cloud.gov" user = var.cf_user password = var.cf_password } -# Community provider (aliased) +# Community provider (should be aliased but default for now) provider "cfcommunity" { - alias = "community" api_url = "https://api.fr.cloud.gov" user = var.cf_user password = var.cf_password From de3133a81ff1cb63895f59160f17674335d74a48 Mon Sep 17 00:00:00 2001 From: Kenneth Kehl <@kkehl@flexion.us> Date: Mon, 20 Oct 2025 10:24:05 -0700 Subject: [PATCH 20/38] fix provider name --- terraform/staging/main.tf | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/terraform/staging/main.tf b/terraform/staging/main.tf index 87c1e64dd..f826d2aec 100644 --- a/terraform/staging/main.tf +++ b/terraform/staging/main.tf @@ -36,7 +36,10 @@ module "logo_upload_bucket" { module "api_network_route" { source = "../shared/container_networking" - + # Right now the default is cfcommunity, remove this when default is cloudfoundry + providers = { + cloudfoundry = cloudfoundry.official + } cf_org_name = local.cf_org_name cf_space_name = local.cf_space_name source_app_name = "${local.app_name}-${local.env}" From 472192c29d182c8f3e5a08761faa135cf34db806 Mon Sep 17 00:00:00 2001 From: Kenneth Kehl <@kkehl@flexion.us> Date: Mon, 20 Oct 2025 10:33:16 -0700 Subject: [PATCH 21/38] fix provider name --- terraform/staging/main.tf | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/terraform/staging/main.tf b/terraform/staging/main.tf index f826d2aec..12ff3ed76 100644 --- a/terraform/staging/main.tf +++ b/terraform/staging/main.tf @@ -27,8 +27,11 @@ module "redis-v70" { } module "logo_upload_bucket" { - source = "github.com/GSA-TTS/terraform-cloudgov//s3?ref=v1.0.0" - + source = "github.com/GSA-TTS/terraform-cloudgov//s3?ref=v2.4.0" + # Right now the default is cfcommunity, remove this when default is cloudfoundry + providers = { + cloudfoundry = cloudfoundry.official + } cf_org_name = local.cf_org_name cf_space_name = local.cf_space_name name = "${local.app_name}-logo-upload-bucket-${local.env}" @@ -36,10 +39,7 @@ module "logo_upload_bucket" { module "api_network_route" { source = "../shared/container_networking" - # Right now the default is cfcommunity, remove this when default is cloudfoundry - providers = { - cloudfoundry = cloudfoundry.official - } + cf_org_name = local.cf_org_name cf_space_name = local.cf_space_name source_app_name = "${local.app_name}-${local.env}" From 6d17cfa54ee49fcecff7382c2f805381f09f166c Mon Sep 17 00:00:00 2001 From: Kenneth Kehl <@kkehl@flexion.us> Date: Mon, 20 Oct 2025 10:46:57 -0700 Subject: [PATCH 22/38] fix provider name --- terraform/staging/main.tf | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/terraform/staging/main.tf b/terraform/staging/main.tf index 12ff3ed76..b0458e487 100644 --- a/terraform/staging/main.tf +++ b/terraform/staging/main.tf @@ -26,15 +26,21 @@ module "redis-v70" { ) } +data "cloudfoundry_space" "space" { + provider = cloudfoundry.official + org_name = local.cf_org_name + name = local.cf_space_name +} + module "logo_upload_bucket" { source = "github.com/GSA-TTS/terraform-cloudgov//s3?ref=v2.4.0" # Right now the default is cfcommunity, remove this when default is cloudfoundry providers = { cloudfoundry = cloudfoundry.official } - cf_org_name = local.cf_org_name - cf_space_name = local.cf_space_name - name = "${local.app_name}-logo-upload-bucket-${local.env}" + # cf_org_name = local.cf_org_name + cf_space_id = data.cloudfoundry_space.space.id + name = "${local.app_name}-logo-upload-bucket-${local.env}" } module "api_network_route" { From 8c593c6fba80ee678a39004b92a9e552547aa145 Mon Sep 17 00:00:00 2001 From: Kenneth Kehl <@kkehl@flexion.us> Date: Mon, 20 Oct 2025 10:58:57 -0700 Subject: [PATCH 23/38] fix provider name --- terraform/staging/main.tf | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/terraform/staging/main.tf b/terraform/staging/main.tf index b0458e487..e0a9b30e3 100644 --- a/terraform/staging/main.tf +++ b/terraform/staging/main.tf @@ -32,13 +32,18 @@ data "cloudfoundry_space" "space" { name = local.cf_space_name } +data "cloudfoundry_organization" "org" { + provider = cloudfoundry.official + name = local.cf_org_name +} + module "logo_upload_bucket" { source = "github.com/GSA-TTS/terraform-cloudgov//s3?ref=v2.4.0" # Right now the default is cfcommunity, remove this when default is cloudfoundry providers = { cloudfoundry = cloudfoundry.official } - # cf_org_name = local.cf_org_name + org = data.cloudfoundry_organization.org.id cf_space_id = data.cloudfoundry_space.space.id name = "${local.app_name}-logo-upload-bucket-${local.env}" } From 5ec77419e5312253c55891f1dcd2629768c97227 Mon Sep 17 00:00:00 2001 From: Kenneth Kehl <@kkehl@flexion.us> Date: Mon, 20 Oct 2025 11:06:03 -0700 Subject: [PATCH 24/38] fix provider name --- terraform/staging/main.tf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/terraform/staging/main.tf b/terraform/staging/main.tf index e0a9b30e3..759ba3ae5 100644 --- a/terraform/staging/main.tf +++ b/terraform/staging/main.tf @@ -43,7 +43,7 @@ module "logo_upload_bucket" { providers = { cloudfoundry = cloudfoundry.official } - org = data.cloudfoundry_organization.org.id + # org = data.cloudfoundry_organization.org.id cf_space_id = data.cloudfoundry_space.space.id name = "${local.app_name}-logo-upload-bucket-${local.env}" } From 7d85d2adae70457224b7bb5c9fd15ae08f2dbe05 Mon Sep 17 00:00:00 2001 From: Kenneth Kehl <@kkehl@flexion.us> Date: Mon, 20 Oct 2025 11:15:15 -0700 Subject: [PATCH 25/38] fix provider name --- terraform/staging/main.tf | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/terraform/staging/main.tf b/terraform/staging/main.tf index 759ba3ae5..4a2af8ba9 100644 --- a/terraform/staging/main.tf +++ b/terraform/staging/main.tf @@ -28,14 +28,10 @@ module "redis-v70" { data "cloudfoundry_space" "space" { provider = cloudfoundry.official - org_name = local.cf_org_name + org = "9e428562-a2d9-41b4-9c23-1ef5237fb44e" name = local.cf_space_name } -data "cloudfoundry_organization" "org" { - provider = cloudfoundry.official - name = local.cf_org_name -} module "logo_upload_bucket" { source = "github.com/GSA-TTS/terraform-cloudgov//s3?ref=v2.4.0" From d822b25bd9983f840862fdd7cfb92da5eb35a20b Mon Sep 17 00:00:00 2001 From: Kenneth Kehl <@kkehl@flexion.us> Date: Mon, 20 Oct 2025 11:27:50 -0700 Subject: [PATCH 26/38] fix provider name --- terraform/staging/providers.tf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/terraform/staging/providers.tf b/terraform/staging/providers.tf index e14251fdf..0ffb248a5 100644 --- a/terraform/staging/providers.tf +++ b/terraform/staging/providers.tf @@ -3,7 +3,7 @@ terraform { required_providers { cloudfoundry = { source = "cloudfoundry/cloudfoundry" - version = "1.9.0" + version = "1.12.0" } cfcommunity = { source = "cloudfoundry-community/cloudfoundry" From e3b495a49c7786b21db213b96c1d9d3d8fffc908 Mon Sep 17 00:00:00 2001 From: Kenneth Kehl <@kkehl@flexion.us> Date: Mon, 20 Oct 2025 11:41:18 -0700 Subject: [PATCH 27/38] fix provider name --- terraform/staging/providers.tf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/terraform/staging/providers.tf b/terraform/staging/providers.tf index 0ffb248a5..bff12c4b8 100644 --- a/terraform/staging/providers.tf +++ b/terraform/staging/providers.tf @@ -3,7 +3,7 @@ terraform { required_providers { cloudfoundry = { source = "cloudfoundry/cloudfoundry" - version = "1.12.0" + version = "1.11.1" } cfcommunity = { source = "cloudfoundry-community/cloudfoundry" From afef4978f9ed811ab1be42b1e54a6c5d9f0078cd Mon Sep 17 00:00:00 2001 From: Beverly Nguyen Date: Mon, 20 Oct 2025 12:11:01 -0700 Subject: [PATCH 28/38] refactor org model and removed enum --- app/enums.py | 6 ------ app/main/views/organizations.py | 28 +++++----------------------- app/models/organization.py | 6 +++++- 3 files changed, 10 insertions(+), 30 deletions(-) diff --git a/app/enums.py b/app/enums.py index 2b5f2d603..4336375a5 100644 --- a/app/enums.py +++ b/app/enums.py @@ -106,9 +106,3 @@ class VerificationStatus(StrEnum): class AuthType(StrEnum): EMAIL_AUTH = "email_auth" SMS_AUTH = "sms_auth" - - -class ServiceStatus(StrEnum): - LIVE = "live" - TRIAL = "trial" - SUSPENDED = "suspended" diff --git a/app/main/views/organizations.py b/app/main/views/organizations.py index 01cdf498f..f6505e828 100644 --- a/app/main/views/organizations.py +++ b/app/main/views/organizations.py @@ -1,4 +1,4 @@ -from collections import Counter, OrderedDict +from collections import OrderedDict from datetime import datetime from functools import partial @@ -11,7 +11,6 @@ from app import ( organizations_client, service_api_client, ) -from app.enums import ServiceStatus from app.main import main from app.main.forms import ( AdminBillingDetailsForm, @@ -68,25 +67,6 @@ def add_organization(): return render_template("views/organizations/add-organization.html", form=form) -def get_service_counts_by_status(services): - def get_status(service): - if not service.get("active"): - return ServiceStatus.SUSPENDED - elif service.get("restricted"): - return ServiceStatus.TRIAL - else: - return ServiceStatus.LIVE - - status_counts = Counter(get_status(service) for service in services) - - return { - "live_services": status_counts[ServiceStatus.LIVE], - "trial_services": status_counts[ServiceStatus.TRIAL], - "suspended_services": status_counts[ServiceStatus.SUSPENDED], - "total_services": len(services), - } - - def get_organization_message_allowance(org_id): try: message_usage = service_api_client.get_organization_message_usage(org_id) @@ -110,13 +90,15 @@ def organization_dashboard(org_id): year = requested_and_current_financial_year(request)[0] message_allowance = get_organization_message_allowance(org_id) - service_counts = get_service_counts_by_status(current_organization.services) return render_template( "views/organizations/organization/index.html", selected_year=year, + live_services=len(current_organization.live_services), + trial_services=len(current_organization.trial_services), + suspended_services=len(current_organization.suspended_services), + total_services=len(current_organization.services), **message_allowance, - **service_counts, ) diff --git a/app/models/organization.py b/app/models/organization.py index f2dc1bf07..33f5f3ec4 100644 --- a/app/models/organization.py +++ b/app/models/organization.py @@ -103,7 +103,11 @@ class Organization(JSONModel, SortByNameMixin): @property def trial_services(self): - return [s for s in self.services if not s["active"] or s["restricted"]] + return [s for s in self.services if s["active"] and s["restricted"]] + + @property + def suspended_services(self): + return [s for s in self.services if not s["active"]] @cached_property def invited_users(self): From 3127de7711736977c5a24a7cf505d06c140d6a7d Mon Sep 17 00:00:00 2001 From: Beverly Nguyen Date: Mon, 20 Oct 2025 12:26:07 -0700 Subject: [PATCH 29/38] refactor --- app/main/views/organizations.py | 9 ++------- app/notify_client/organizations_api_client.py | 5 +++++ app/notify_client/service_api_client.py | 5 ----- tests/app/main/views/organizations/test_organizations.py | 2 +- 4 files changed, 8 insertions(+), 13 deletions(-) diff --git a/app/main/views/organizations.py b/app/main/views/organizations.py index f6505e828..52acc144d 100644 --- a/app/main/views/organizations.py +++ b/app/main/views/organizations.py @@ -5,12 +5,7 @@ from functools import partial from flask import current_app, flash, redirect, render_template, request, url_for from flask_login import current_user -from app import ( - current_organization, - org_invite_api_client, - organizations_client, - service_api_client, -) +from app import current_organization, org_invite_api_client, organizations_client from app.main import main from app.main.forms import ( AdminBillingDetailsForm, @@ -69,7 +64,7 @@ def add_organization(): def get_organization_message_allowance(org_id): try: - message_usage = service_api_client.get_organization_message_usage(org_id) + message_usage = organizations_client.get_organization_message_usage(org_id) except Exception as e: current_app.logger.error(f"Error fetching organization message usage: {e}") message_usage = {} diff --git a/app/notify_client/organizations_api_client.py b/app/notify_client/organizations_api_client.py index 10d121a41..e7cca58ef 100644 --- a/app/notify_client/organizations_api_client.py +++ b/app/notify_client/organizations_api_client.py @@ -78,5 +78,10 @@ class OrganizationsClient(NotifyAdminAPIClient): params={"year": str(year)}, ) + def get_organization_message_usage(self, org_id): + return self.get( + url="/organizations/{}/message-allowance".format(org_id), + ) + organizations_client = OrganizationsClient() diff --git a/app/notify_client/service_api_client.py b/app/notify_client/service_api_client.py index 3b238acbf..97d94cae4 100644 --- a/app/notify_client/service_api_client.py +++ b/app/notify_client/service_api_client.py @@ -561,11 +561,6 @@ class ServiceAPIClient(NotifyAdminAPIClient): url="service/get-service-message-ratio?service_id={0}".format(service_id), ) - def get_organization_message_usage(self, org_id): - return self.get( - url="/organizations/{0}/message-allowance".format(org_id), - ) - service_api_client = ServiceAPIClient() diff --git a/tests/app/main/views/organizations/test_organizations.py b/tests/app/main/views/organizations/test_organizations.py index ae6bc9043..c243d940f 100644 --- a/tests/app/main/views/organizations/test_organizations.py +++ b/tests/app/main/views/organizations/test_organizations.py @@ -1531,7 +1531,7 @@ def test_organization_dashboard_shows_message_usage( active_user_with_permissions, ): mock_message_usage = mocker.patch( - "app.service_api_client.get_organization_message_usage", + "app.organizations_client.get_organization_message_usage", return_value={ "messages_sent": 1000, "messages_remaining": 2000, From fa7e7f239b6ec83dfe83e0f85aef3e839d82afb3 Mon Sep 17 00:00:00 2001 From: Beverly Nguyen Date: Mon, 20 Oct 2025 12:28:34 -0700 Subject: [PATCH 30/38] refactor --- tests/app/main/views/organizations/test_organizations.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/app/main/views/organizations/test_organizations.py b/tests/app/main/views/organizations/test_organizations.py index c243d940f..ea1202fbb 100644 --- a/tests/app/main/views/organizations/test_organizations.py +++ b/tests/app/main/views/organizations/test_organizations.py @@ -1565,7 +1565,7 @@ def test_organization_dashboard_shows_service_counts( active_user_with_permissions, ): mocker.patch( - "app.service_api_client.get_organization_message_usage", + "app.organizations_client.get_organization_message_usage", return_value={ "messages_sent": 0, "messages_remaining": 0, From 4020f61430ebed9defe0d737d6363f4db7c77c7e Mon Sep 17 00:00:00 2001 From: Kenneth Kehl <@kkehl@flexion.us> Date: Mon, 20 Oct 2025 12:36:59 -0700 Subject: [PATCH 31/38] fix provider name --- terraform/staging/providers.tf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/terraform/staging/providers.tf b/terraform/staging/providers.tf index bff12c4b8..a2b468c2e 100644 --- a/terraform/staging/providers.tf +++ b/terraform/staging/providers.tf @@ -3,7 +3,7 @@ terraform { required_providers { cloudfoundry = { source = "cloudfoundry/cloudfoundry" - version = "1.11.1" + version = "1.11.0" } cfcommunity = { source = "cloudfoundry-community/cloudfoundry" From 43b058430bef71e44903e47ded57cb51e801654b Mon Sep 17 00:00:00 2001 From: Kenneth Kehl <@kkehl@flexion.us> Date: Mon, 20 Oct 2025 12:51:55 -0700 Subject: [PATCH 32/38] fix provider name --- terraform/staging/main.tf | 38 +++++++++++++++++++++++++++------- terraform/staging/providers.tf | 2 +- 2 files changed, 31 insertions(+), 9 deletions(-) diff --git a/terraform/staging/main.tf b/terraform/staging/main.tf index 4a2af8ba9..2bbca67bd 100644 --- a/terraform/staging/main.tf +++ b/terraform/staging/main.tf @@ -33,17 +33,39 @@ data "cloudfoundry_space" "space" { } +# IF we want to upgrade from cloudfoundry communit to official, +# we need to do something like what's commented out below +# +# We also need to run +# +# terraform state replace-provider \ +# -auto-approve \ +# -state=terraform.tfstate +# 'registry.terraform.io/cloudfoundry-community/cloudfoundry' \ +# 'registry.terraform.io/cloudfoundry/cloudfoundry' \ +# module.logo_upload_bucket (or something like that) +# module "logo_upload_bucket" { +# source = "github.com/GSA-TTS/terraform-cloudgov//s3?ref=v2.4.0" +# Right now the default is cfcommunity, remove this when default is cloudfoundry +# providers = { +# cloudfoundry = cloudfoundry.official +# } +# cf_space_id = data.cloudfoundry_space.space.id +# name = "${local.app_name}-logo-upload-bucket-${local.env}" +# } + + + module "logo_upload_bucket" { - source = "github.com/GSA-TTS/terraform-cloudgov//s3?ref=v2.4.0" - # Right now the default is cfcommunity, remove this when default is cloudfoundry - providers = { - cloudfoundry = cloudfoundry.official - } - # org = data.cloudfoundry_organization.org.id - cf_space_id = data.cloudfoundry_space.space.id - name = "${local.app_name}-logo-upload-bucket-${local.env}" + source = "../shared/container_networking" + + cf_org_name = local.cf_org_name + cf_space_name = local.cf_space_name + name = "${local.app_name}-logo-upload-bucket-${local.env}" + } + module "api_network_route" { source = "../shared/container_networking" diff --git a/terraform/staging/providers.tf b/terraform/staging/providers.tf index a2b468c2e..e14251fdf 100644 --- a/terraform/staging/providers.tf +++ b/terraform/staging/providers.tf @@ -3,7 +3,7 @@ terraform { required_providers { cloudfoundry = { source = "cloudfoundry/cloudfoundry" - version = "1.11.0" + version = "1.9.0" } cfcommunity = { source = "cloudfoundry-community/cloudfoundry" From 8fdd1feb089cd5edaa03dee9f67d36a1d4cdcc80 Mon Sep 17 00:00:00 2001 From: Beverly Nguyen Date: Mon, 20 Oct 2025 13:09:21 -0700 Subject: [PATCH 33/38] fix test --- tests/app/main/views/organizations/test_organizations.py | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/tests/app/main/views/organizations/test_organizations.py b/tests/app/main/views/organizations/test_organizations.py index ea1202fbb..3dc7e74d8 100644 --- a/tests/app/main/views/organizations/test_organizations.py +++ b/tests/app/main/views/organizations/test_organizations.py @@ -655,16 +655,12 @@ def test_organization_trial_mode_services_shows_all_non_live_services( ) services = page.select(".browse-list-item") - assert len(services) == 2 + assert len(services) == 1 assert normalize_spaces(services[0].text) == "2" - assert normalize_spaces(services[1].text) == "3" assert services[0].find("a")["href"] == url_for( "main.service_dashboard", service_id="2" ) - assert services[1].find("a")["href"] == url_for( - "main.service_dashboard", service_id="3" - ) def test_organization_trial_mode_services_doesnt_work_if_not_platform_admin( From c20aa040d0c2a293f5afa968cce5810f9868e533 Mon Sep 17 00:00:00 2001 From: Kenneth Kehl <@kkehl@flexion.us> Date: Mon, 20 Oct 2025 13:14:17 -0700 Subject: [PATCH 34/38] fix provider name --- terraform/staging/main.tf | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/terraform/staging/main.tf b/terraform/staging/main.tf index 2bbca67bd..274be3206 100644 --- a/terraform/staging/main.tf +++ b/terraform/staging/main.tf @@ -55,14 +55,12 @@ data "cloudfoundry_space" "space" { # } - module "logo_upload_bucket" { - source = "../shared/container_networking" + source = "github.com/GSA-TTS/terraform-cloudgov//s3?ref=v1.0.0" cf_org_name = local.cf_org_name cf_space_name = local.cf_space_name name = "${local.app_name}-logo-upload-bucket-${local.env}" - } From 9bf35b22b0bc795a8e480bbcae92c2abdfe37e3d Mon Sep 17 00:00:00 2001 From: Kenneth Kehl <@kkehl@flexion.us> Date: Mon, 20 Oct 2025 13:44:13 -0700 Subject: [PATCH 35/38] add two providers to other tiers --- terraform/demo/providers.tf | 15 ++++++++++++++- terraform/production/providers.tf | 15 ++++++++++++++- terraform/sandbox/providers.tf | 15 ++++++++++++++- 3 files changed, 42 insertions(+), 3 deletions(-) diff --git a/terraform/demo/providers.tf b/terraform/demo/providers.tf index 3817eae91..e14251fdf 100644 --- a/terraform/demo/providers.tf +++ b/terraform/demo/providers.tf @@ -2,6 +2,10 @@ terraform { required_version = "~> 1.7" required_providers { cloudfoundry = { + source = "cloudfoundry/cloudfoundry" + version = "1.9.0" + } + cfcommunity = { source = "cloudfoundry-community/cloudfoundry" version = "0.53.1" } @@ -9,14 +13,23 @@ terraform { backend "s3" { bucket = "cg-6b759c13-6253-4a64-9bda-dd1f620185b0" - key = "admin.tfstate.demo" + key = "admin.tfstate.stage" encrypt = "true" region = "us-gov-west-1" use_lockfile = "true" } } +# Official provider (should be default but aliased for now) provider "cloudfoundry" { + alias = "official" + api_url = "https://api.fr.cloud.gov" + user = var.cf_user + password = var.cf_password +} + +# Community provider (should be aliased but default for now) +provider "cfcommunity" { api_url = "https://api.fr.cloud.gov" user = var.cf_user password = var.cf_password diff --git a/terraform/production/providers.tf b/terraform/production/providers.tf index 8afef6078..e14251fdf 100644 --- a/terraform/production/providers.tf +++ b/terraform/production/providers.tf @@ -2,6 +2,10 @@ terraform { required_version = "~> 1.7" required_providers { cloudfoundry = { + source = "cloudfoundry/cloudfoundry" + version = "1.9.0" + } + cfcommunity = { source = "cloudfoundry-community/cloudfoundry" version = "0.53.1" } @@ -9,14 +13,23 @@ terraform { backend "s3" { bucket = "cg-6b759c13-6253-4a64-9bda-dd1f620185b0" - key = "admin.tfstate.prod" + key = "admin.tfstate.stage" encrypt = "true" region = "us-gov-west-1" use_lockfile = "true" } } +# Official provider (should be default but aliased for now) provider "cloudfoundry" { + alias = "official" + api_url = "https://api.fr.cloud.gov" + user = var.cf_user + password = var.cf_password +} + +# Community provider (should be aliased but default for now) +provider "cfcommunity" { api_url = "https://api.fr.cloud.gov" user = var.cf_user password = var.cf_password diff --git a/terraform/sandbox/providers.tf b/terraform/sandbox/providers.tf index 92ff186b8..e14251fdf 100644 --- a/terraform/sandbox/providers.tf +++ b/terraform/sandbox/providers.tf @@ -2,6 +2,10 @@ terraform { required_version = "~> 1.7" required_providers { cloudfoundry = { + source = "cloudfoundry/cloudfoundry" + version = "1.9.0" + } + cfcommunity = { source = "cloudfoundry-community/cloudfoundry" version = "0.53.1" } @@ -9,14 +13,23 @@ terraform { backend "s3" { bucket = "cg-6b759c13-6253-4a64-9bda-dd1f620185b0" - key = "admin.tfstate.sandbox" + key = "admin.tfstate.stage" encrypt = "true" region = "us-gov-west-1" use_lockfile = "true" } } +# Official provider (should be default but aliased for now) provider "cloudfoundry" { + alias = "official" + api_url = "https://api.fr.cloud.gov" + user = var.cf_user + password = var.cf_password +} + +# Community provider (should be aliased but default for now) +provider "cfcommunity" { api_url = "https://api.fr.cloud.gov" user = var.cf_user password = var.cf_password From ea5cb5c278464443124558931a5d316f1c4be6db Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 21 Oct 2025 09:10:02 -0400 Subject: [PATCH 36/38] Bump hypothesis from 6.142.1 to 6.142.2 (#3029) Bumps [hypothesis](https://github.com/HypothesisWorks/hypothesis) from 6.142.1 to 6.142.2. - [Release notes](https://github.com/HypothesisWorks/hypothesis/releases) - [Commits](https://github.com/HypothesisWorks/hypothesis/compare/hypothesis-python-6.142.1...hypothesis-python-6.142.2) --- updated-dependencies: - dependency-name: hypothesis dependency-version: 6.142.2 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- poetry.lock | 8 ++++---- pyproject.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/poetry.lock b/poetry.lock index 98e904be3..a71e9f246 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1490,14 +1490,14 @@ tests = ["freezegun", "pytest", "pytest-cov"] [[package]] name = "hypothesis" -version = "6.142.1" +version = "6.142.2" description = "A library for property-based testing" optional = false python-versions = ">=3.10" groups = ["main"] files = [ - {file = "hypothesis-6.142.1-py3-none-any.whl", hash = "sha256:95a7d38fcc58e697e3020665adcb951c630cdbc8065e4b4474949e486b06bd6d"}, - {file = "hypothesis-6.142.1.tar.gz", hash = "sha256:3179cb08756562c526aaf4a9871ebbff83d2d75c03896ed0bc9c1d14097a930c"}, + {file = "hypothesis-6.142.2-py3-none-any.whl", hash = "sha256:cc6c6e66c06aff695dd255501a767b528e00d84ce3572160425a9ba5e4a47845"}, + {file = "hypothesis-6.142.2.tar.gz", hash = "sha256:c4204a2ce327e45fbaf83a2b58142a285135698dc1d08e368ae9901f06b49e64"}, ] [package.dependencies] @@ -4420,4 +4420,4 @@ cffi = ["cffi (>=1.17) ; python_version >= \"3.13\" and platform_python_implemen [metadata] lock-version = "2.1" python-versions = "^3.13.2" -content-hash = "0d52d878ffc74844bbf6f7a21e68379f7b679c594bea67d64fe5aa8656ee99e7" +content-hash = "db01b3c0004e2aca0e1882bfc8a143234aa2b2b735f6710d83f68f33a876c99e" diff --git a/pyproject.toml b/pyproject.toml index 576fb7749..af499606b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -20,7 +20,7 @@ flask-login = "^0.6" flask-talisman = "*" flask-wtf = "^1.2" gunicorn = {version = "==23.0.0", extras = ["gevent"]} -hypothesis = "^6.142.1" +hypothesis = "^6.142.2" humanize = "~=4.14" itsdangerous = "~=2.2" jinja2 = "^3.1.6" From eab682f26dffd04a00eccfee3a51669cf67ba6d3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 21 Oct 2025 13:19:49 +0000 Subject: [PATCH 37/38] Bump flake8-pytest-style from 2.1.0 to 2.2.0 (#3028) Bumps [flake8-pytest-style](https://github.com/m-burst/flake8-pytest-style) from 2.1.0 to 2.2.0. - [Commits](https://github.com/m-burst/flake8-pytest-style/compare/v2.1.0...v2.2.0) --- updated-dependencies: - dependency-name: flake8-pytest-style dependency-version: 2.2.0 dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- poetry.lock | 10 +++++----- pyproject.toml | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/poetry.lock b/poetry.lock index a71e9f246..a2bb2e062 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1110,14 +1110,14 @@ pycodestyle = "*" [[package]] name = "flake8-pytest-style" -version = "2.1.0" +version = "2.2.0" description = "A flake8 plugin checking common style issues or inconsistencies with pytest-based tests." optional = false -python-versions = ">=3.9" +python-versions = ">=3.10" groups = ["dev"] files = [ - {file = "flake8_pytest_style-2.1.0-py3-none-any.whl", hash = "sha256:a0d6dddcd533bfc13f19b8445907be0330c5e6ccf7090bcd9d5fa5a0b1b65e71"}, - {file = "flake8_pytest_style-2.1.0.tar.gz", hash = "sha256:fee6befdb5915d600ef24e38d48a077d0dcffb032945ae0169486e7ff8a1079a"}, + {file = "flake8_pytest_style-2.2.0-py3-none-any.whl", hash = "sha256:d01c4198a6c4e0ab759a92a0fa7710f10d83ec28e32a50ab6fb2e10f973a2f36"}, + {file = "flake8_pytest_style-2.2.0.tar.gz", hash = "sha256:d23a33294bccfb9f1b11aaf5212256727b299b9c9b17cf21e230c52c1095a468"}, ] [package.dependencies] @@ -4420,4 +4420,4 @@ cffi = ["cffi (>=1.17) ; python_version >= \"3.13\" and platform_python_implemen [metadata] lock-version = "2.1" python-versions = "^3.13.2" -content-hash = "db01b3c0004e2aca0e1882bfc8a143234aa2b2b735f6710d83f68f33a876c99e" +content-hash = "14ec24e06f09b708ed6d8632b47af2e2c622443d24dec95c8a7d2e4e9675621b" diff --git a/pyproject.toml b/pyproject.toml index af499606b..a214c5316 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -83,7 +83,7 @@ freezegun = "^1.5.5" flake8 = "^7.3.0" flake8-bugbear = "^24.12.12" flake8-print = "^5.0.0" -flake8-pytest-style = "^2.1.0" +flake8-pytest-style = "^2.2.0" isort = "^7.0.0" jinja2-cli = {version = "==0.8.2", extras = ["yaml"]} moto = "*" From b0adac419a0773b839e2fc5a28a5d40b8afef9f5 Mon Sep 17 00:00:00 2001 From: Kenneth Kehl <@kkehl@flexion.us> Date: Tue, 21 Oct 2025 09:43:06 -0700 Subject: [PATCH 38/38] fix tfstate file names --- terraform/demo/providers.tf | 2 +- terraform/production/providers.tf | 2 +- terraform/sandbox/providers.tf | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/terraform/demo/providers.tf b/terraform/demo/providers.tf index e14251fdf..a35684a9a 100644 --- a/terraform/demo/providers.tf +++ b/terraform/demo/providers.tf @@ -13,7 +13,7 @@ terraform { backend "s3" { bucket = "cg-6b759c13-6253-4a64-9bda-dd1f620185b0" - key = "admin.tfstate.stage" + key = "admin.tfstate.demo" encrypt = "true" region = "us-gov-west-1" use_lockfile = "true" diff --git a/terraform/production/providers.tf b/terraform/production/providers.tf index e14251fdf..6f0834742 100644 --- a/terraform/production/providers.tf +++ b/terraform/production/providers.tf @@ -13,7 +13,7 @@ terraform { backend "s3" { bucket = "cg-6b759c13-6253-4a64-9bda-dd1f620185b0" - key = "admin.tfstate.stage" + key = "admin.tfstate.prod" encrypt = "true" region = "us-gov-west-1" use_lockfile = "true" diff --git a/terraform/sandbox/providers.tf b/terraform/sandbox/providers.tf index e14251fdf..247c47b6c 100644 --- a/terraform/sandbox/providers.tf +++ b/terraform/sandbox/providers.tf @@ -13,7 +13,7 @@ terraform { backend "s3" { bucket = "cg-6b759c13-6253-4a64-9bda-dd1f620185b0" - key = "admin.tfstate.stage" + key = "admin.tfstate.sandbox" encrypt = "true" region = "us-gov-west-1" use_lockfile = "true"