diff --git a/.github/workflows/deploy-demo.yml b/.github/workflows/deploy-demo.yml index c308cd71a..e1d76775a 100644 --- a/.github/workflows/deploy-demo.yml +++ b/.github/workflows/deploy-demo.yml @@ -55,6 +55,13 @@ jobs: NEW_RELIC_LICENSE_KEY: ${{ secrets.NEW_RELIC_LICENSE_KEY }} NR_BROWSER_KEY: ${{ secrets.NR_BROWSER_KEY }} LOGIN_PEM: ${{ secrets.LOGIN_PEM }} + LOGIN_DOT_GOV_CLIENT_ID: "urn:gov:gsa:openidconnect.profiles:sp:sso:gsa:notify-gov" + LOGIN_DOT_GOV_USER_INFO_URL: "https://idp.int.identitysandbox.gov/api/openid_connect/userinfo" + LOGIN_DOT_GOV_ACCESS_TOKEN_URL: "https://idp.int.identitysandbox.gov/api/openid_connect/token" + LOGIN_DOT_GOV_LOGOUT_URL: "https://idp.int.identitysandbox.gov/openid_connect/logout?client_id=urn:gov:gsa:openidconnect.profiles:sp:sso:gsa:notify-gov&post_logout_redirect_uri=https://notify-demo.app.cloud.gov/sign-out" + LOGIN_DOT_GOV_BASE_LOGOUT_URL: "https://idp.int.identitysandbox.gov/openid_connect/logout?" + LOGIN_DOT_GOV_SIGNOUT_REDIRECT: "https://notify-demo.app.cloud.gov/sign-out" + LOGIN_DOT_GOV_INITIAL_SIGNIN_URL: "https://idp.int.identitysandbox.gov/openid_connect/authorize?acr_values=http%3A%2F%2Fidmanagement.gov%2Fns%2Fassurance%2Fial%2F1&client_id=urn:gov:gsa:openidconnect.profiles:sp:sso:gsa:notify-gov&nonce=01234567890123456789012345&prompt=select_account&redirect_uri=https://notify-demo.app.cloud.gov/sign-in&response_type=code&scope=openid+email&state=abcdefghijklmnopabcdefghijklmnop" with: cf_username: ${{ secrets.CLOUDGOV_USERNAME }} cf_password: ${{ secrets.CLOUDGOV_PASSWORD }} @@ -69,6 +76,13 @@ jobs: --var NEW_RELIC_LICENSE_KEY="$NEW_RELIC_LICENSE_KEY" --var NR_BROWSER_KEY="$NR_BROWSER_KEY" --var LOGIN_PEM="$LOGIN_PEM" + --var LOGIN_DOT_GOV_CLIENT_ID="$LOGIN_DOT_GOV_CLIENT_ID" + --var LOGIN_DOT_GOV_USER_INFO_URL="$LOGIN_DOT_GOV_USER_INFO_URL" + --var LOGIN_DOT_GOV_ACCESS_TOKEN_URL="$LOGIN_DOT_GOV_ACCESS_TOKEN_URL" + --var LOGIN_DOT_GOV_LOGOUT_URL="$LOGIN_DOT_GOV_LOGOUT_URL" + --var LOGIN_DOT_GOV_BASE_LOGOUT_URL="$LOGIN_DOT_GOV_BASE_LOGOUT_URL" + --var LOGIN_DOT_GOV_SIGNOUT_REDIRECT="$LOGIN_DOT_GOV_SIGNOUT_REDIRECT" + --var LOGIN_DOT_GOV_INITIAL_SIGNIN_URL="$LOGIN_DOT_GOV_INITIAL_SIGNIN_URL" - name: Check for changes to egress config id: changed-egress-config diff --git a/.github/workflows/deploy-prod.yml b/.github/workflows/deploy-prod.yml index 3c1ab8b8a..a0aaa81c5 100644 --- a/.github/workflows/deploy-prod.yml +++ b/.github/workflows/deploy-prod.yml @@ -55,7 +55,13 @@ jobs: NEW_RELIC_LICENSE_KEY: ${{ secrets.NEW_RELIC_LICENSE_KEY }} NR_BROWSER_KEY: ${{ secrets.NR_BROWSER_KEY }} LOGIN_PEM: ${{ secrets.LOGIN_PEM }} - + LOGIN_DOT_GOV_CLIENT_ID: "urn:gov:gsa:openidconnect.profiles:sp:sso:gsa:notify-gov" + LOGIN_DOT_GOV_USER_INFO_URL: "https://secure.login.gov/api/openid_connect/userinfo" + LOGIN_DOT_GOV_ACCESS_TOKEN_URL: "https://secure.login.gov/api/openid_connect/token" + LOGIN_DOT_GOV_LOGOUT_URL: "https://secure.login.gov/openid_connect/logout?client_id=urn:gov:gsa:openidconnect.profiles:sp:sso:gsa:notify-gov&post_logout_redirect_uri=https://beta.notify.gov/sign-out" + LOGIN_DOT_GOV_BASE_LOGOUT_URL: "https://secure.login.gov/openid_connect/logout?" + LOGIN_DOT_GOV_SIGNOUT_REDIRECT: "https://beta.notify.gov/sign-out" + LOGIN_DOT_GOV_INITIAL_SIGNIN_URL: "https://secure.login.gov/openid_connect/authorize?acr_values=http%3A%2F%2Fidmanagement.gov%2Fns%2Fassurance%2Fial%2F1&client_id=urn:gov:gsa:openidconnect.profiles:sp:sso:gsa:notify-gov&nonce=01234567890123456789012345&prompt=select_account&redirect_uri=https://beta.notify.gov/sign-in&response_type=code&scope=openid+email&state=abcdefghijklmnopabcdefghijklmnop" with: cf_username: ${{ secrets.CLOUDGOV_USERNAME }} cf_password: ${{ secrets.CLOUDGOV_PASSWORD }} @@ -70,6 +76,13 @@ jobs: --var NEW_RELIC_LICENSE_KEY="$NEW_RELIC_LICENSE_KEY" --var NR_BROWSER_KEY="$NR_BROWSER_KEY" --var LOGIN_PEM="$LOGIN_PEM" + --var LOGIN_DOT_GOV_CLIENT_ID="$LOGIN_DOT_GOV_CLIENT_ID" + --var LOGIN_DOT_GOV_USER_INFO_URL="$LOGIN_DOT_GOV_USER_INFO_URL" + --var LOGIN_DOT_GOV_ACCESS_TOKEN_URL="$LOGIN_DOT_GOV_ACCESS_TOKEN_URL" + --var LOGIN_DOT_GOV_LOGOUT_URL="$LOGIN_DOT_GOV_LOGOUT_URL" + --var LOGIN_DOT_GOV_BASE_LOGOUT_URL="$LOGIN_DOT_GOV_BASE_LOGOUT_URL" + --var LOGIN_DOT_GOV_SIGNOUT_REDIRECT="$LOGIN_DOT_GOV_SIGNOUT_REDIRECT" + --var LOGIN_DOT_GOV_INITIAL_SIGNIN_URL="$LOGIN_DOT_GOV_INITIAL_SIGNIN_URL" - name: Check for changes to egress config id: changed-egress-config diff --git a/app/main/views/send.py b/app/main/views/send.py index 91e9814af..4332c7ddb 100644 --- a/app/main/views/send.py +++ b/app/main/views/send.py @@ -880,14 +880,20 @@ def send_notification(service_id, template_id): service_id, job_id=upload_id, include_one_off=True ) attempts = 0 - while notifications["total"] == 0 and attempts < 5: + + # The response can come back in different forms of incompleteness + while ( + notifications["total"] == 0 + and notifications["notifications"] == [] + and attempts < 50 + ): notifications = notification_api_client.get_notifications_for_service( service_id, job_id=upload_id, include_one_off=True ) time.sleep(0.1) attempts = attempts + 1 - if notifications["total"] == 0 and attempts == 5: + if notifications["total"] == 0 and attempts == 50: # This shows the job we auto-generated for the user return redirect( url_for( diff --git a/terraform/README.md b/terraform/README.md index efab933fa..7390e3947 100644 --- a/terraform/README.md +++ b/terraform/README.md @@ -88,6 +88,8 @@ The below steps rely on you first configuring access to the Terraform state in s terraform plan ``` + If the `terraform init` command fails, you may need to run `terraform init -upgrade` to make sure new module versions are picked up. + 1. Apply changes with `terraform apply`. 1. Remove the space deployer service instance if it doesn't need to be used again, such as when manually running terraform once. diff --git a/terraform/bootstrap/providers.tf b/terraform/bootstrap/providers.tf index 44ccda085..b6f27acf8 100644 --- a/terraform/bootstrap/providers.tf +++ b/terraform/bootstrap/providers.tf @@ -3,7 +3,7 @@ terraform { required_providers { cloudfoundry = { source = "cloudfoundry-community/cloudfoundry" - version = "0.15.5" + version = "0.53.0" } } } diff --git a/terraform/demo/main.tf b/terraform/demo/main.tf index f26e495a5..7f34fb0f1 100644 --- a/terraform/demo/main.tf +++ b/terraform/demo/main.tf @@ -7,7 +7,7 @@ locals { } module "redis" { - source = "github.com/18f/terraform-cloudgov//redis?ref=v0.2.0" + source = "github.com/18f/terraform-cloudgov//redis?ref=v0.7.1" cf_org_name = local.cf_org_name cf_space_name = local.cf_space_name @@ -17,7 +17,7 @@ module "redis" { } module "logo_upload_bucket" { - source = "github.com/18f/terraform-cloudgov//s3?ref=v0.2.0" + source = "github.com/18f/terraform-cloudgov//s3?ref=v0.7.1" cf_org_name = local.cf_org_name cf_space_name = local.cf_space_name diff --git a/terraform/demo/providers.tf b/terraform/demo/providers.tf index eba9e9490..2ced7915f 100644 --- a/terraform/demo/providers.tf +++ b/terraform/demo/providers.tf @@ -3,7 +3,7 @@ terraform { required_providers { cloudfoundry = { source = "cloudfoundry-community/cloudfoundry" - version = "0.15.5" + version = "0.53.0" } } @@ -12,7 +12,6 @@ terraform { key = "admin.tfstate.demo" encrypt = "true" region = "us-gov-west-1" - profile = "notify-terraform-backend" } } diff --git a/terraform/development/main.tf b/terraform/development/main.tf index ff6001152..767256c3f 100644 --- a/terraform/development/main.tf +++ b/terraform/development/main.tf @@ -11,7 +11,7 @@ data "cloudfoundry_space" "dev" { } module "logo_upload_bucket" { - source = "github.com/18f/terraform-cloudgov//s3?ref=v0.2.0" + source = "github.com/18f/terraform-cloudgov//s3?ref=v0.7.1" cf_org_name = local.cf_org_name cf_space_name = local.cf_space_name diff --git a/terraform/development/providers.tf b/terraform/development/providers.tf index d8ae4488e..5dcaece3e 100644 --- a/terraform/development/providers.tf +++ b/terraform/development/providers.tf @@ -3,7 +3,7 @@ terraform { required_providers { cloudfoundry = { source = "cloudfoundry-community/cloudfoundry" - version = "0.50.7" + version = "0.53.0" } } } diff --git a/terraform/development/reset.sh b/terraform/development/reset.sh index d51d43eec..57c2f4d87 100755 --- a/terraform/development/reset.sh +++ b/terraform/development/reset.sh @@ -47,7 +47,7 @@ if [[ ! -s "secrets.auto.tfvars" ]]; then fi echo "Importing terraform state for $username" -terraform init +terraform init -upgrade key_name=$username-admin-dev-key diff --git a/terraform/production/main.tf b/terraform/production/main.tf index c635ed2d4..450212cdf 100644 --- a/terraform/production/main.tf +++ b/terraform/production/main.tf @@ -7,7 +7,7 @@ locals { } module "redis" { - source = "github.com/18f/terraform-cloudgov//redis?ref=v0.2.0" + source = "github.com/18f/terraform-cloudgov//redis?ref=v0.7.1" cf_org_name = local.cf_org_name cf_space_name = local.cf_space_name @@ -17,7 +17,7 @@ module "redis" { } module "logo_upload_bucket" { - source = "github.com/18f/terraform-cloudgov//s3?ref=v0.2.0" + source = "github.com/18f/terraform-cloudgov//s3?ref=v0.7.1" cf_org_name = local.cf_org_name cf_space_name = local.cf_space_name @@ -50,7 +50,7 @@ module "api_network_route" { # https://cloud.gov/docs/services/external-domain-service/#how-to-create-an-instance-of-this-service ########################################################################### module "domain" { - source = "github.com/18f/terraform-cloudgov//domain?ref=v0.5.2" + source = "github.com/18f/terraform-cloudgov//domain?ref=v0.7.1" cf_org_name = local.cf_org_name cf_space_name = local.cf_space_name diff --git a/terraform/production/providers.tf b/terraform/production/providers.tf index e0daee8b0..ed822db44 100644 --- a/terraform/production/providers.tf +++ b/terraform/production/providers.tf @@ -3,7 +3,7 @@ terraform { required_providers { cloudfoundry = { source = "cloudfoundry-community/cloudfoundry" - version = "0.15.5" + version = "0.53.0" } } @@ -12,7 +12,6 @@ terraform { key = "admin.tfstate.prod" encrypt = "true" region = "us-gov-west-1" - profile = "notify-terraform-backend" } } diff --git a/terraform/sandbox/main.tf b/terraform/sandbox/main.tf index 69457b5d5..74c16d808 100644 --- a/terraform/sandbox/main.tf +++ b/terraform/sandbox/main.tf @@ -7,7 +7,7 @@ locals { } module "redis" { - source = "github.com/18f/terraform-cloudgov//redis?ref=v0.2.0" + source = "github.com/18f/terraform-cloudgov//redis?ref=v0.7.1" cf_org_name = local.cf_org_name cf_space_name = local.cf_space_name @@ -17,7 +17,7 @@ module "redis" { } module "logo_upload_bucket" { - source = "github.com/18f/terraform-cloudgov//s3?ref=v0.2.0" + source = "github.com/18f/terraform-cloudgov//s3?ref=v0.7.1" cf_org_name = local.cf_org_name cf_space_name = local.cf_space_name diff --git a/terraform/sandbox/providers.tf b/terraform/sandbox/providers.tf index 5fe15f874..09911edc4 100644 --- a/terraform/sandbox/providers.tf +++ b/terraform/sandbox/providers.tf @@ -3,7 +3,7 @@ terraform { required_providers { cloudfoundry = { source = "cloudfoundry-community/cloudfoundry" - version = "0.15.5" + version = "0.53.0" } } @@ -12,7 +12,6 @@ terraform { key = "admin.tfstate.sandbox" encrypt = "true" region = "us-gov-west-1" - profile = "notify-terraform-backend" } } diff --git a/terraform/shared/container_networking/providers.tf b/terraform/shared/container_networking/providers.tf index 8db86ca90..21ac567a2 100644 --- a/terraform/shared/container_networking/providers.tf +++ b/terraform/shared/container_networking/providers.tf @@ -3,7 +3,7 @@ terraform { required_providers { cloudfoundry = { source = "cloudfoundry-community/cloudfoundry" - version = "~> 0.15" + version = "0.53.0" } } } diff --git a/terraform/staging/main.tf b/terraform/staging/main.tf index 4a07e9bd7..d0df6e81d 100644 --- a/terraform/staging/main.tf +++ b/terraform/staging/main.tf @@ -7,7 +7,7 @@ locals { } module "redis" { - source = "github.com/18f/terraform-cloudgov//redis?ref=v0.2.0" + source = "github.com/18f/terraform-cloudgov//redis?ref=v0.7.1" cf_org_name = local.cf_org_name cf_space_name = local.cf_space_name @@ -17,7 +17,7 @@ module "redis" { } module "logo_upload_bucket" { - source = "github.com/18f/terraform-cloudgov//s3?ref=v0.2.0" + source = "github.com/18f/terraform-cloudgov//s3?ref=v0.7.1" cf_org_name = local.cf_org_name cf_space_name = local.cf_space_name diff --git a/terraform/staging/providers.tf b/terraform/staging/providers.tf index 7648e192f..d6928e61e 100644 --- a/terraform/staging/providers.tf +++ b/terraform/staging/providers.tf @@ -3,7 +3,7 @@ terraform { required_providers { cloudfoundry = { source = "cloudfoundry-community/cloudfoundry" - version = "0.15.5" + version = "0.53.0" } } @@ -12,7 +12,6 @@ terraform { key = "admin.tfstate.stage" encrypt = "true" region = "us-gov-west-1" - profile = "notify-terraform-backend" } }