Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: update preferences link in emails to point to the new profile page #2388

Merged
merged 2 commits into from
Dec 20, 2023

Conversation

sanason
Copy link
Contributor

@sanason sanason commented Dec 19, 2023

Ticket #2268

Description

See ticket for description. This was a simple change except that it required adding a new server-side feature flag, named api_enable_my_profile in Terraform.

Screenshots / Demo Video

Testing

Steps to test:

  1. Enable the server-side feature flag by adding ENABLE_MY_PROFILE=true to the .env file under packages/server.
  2. Start up the app.
  3. Log in as a user whose email you can receive.
  4. Go to "My Profile" and make sure that the "Grants Assignment" toggle is on.
  5. Assign a grant to your own organization.
  6. Check your email for a "Grant Assigned" email.
  7. Find the "Change Notification Preferences" link at the bottom of the email and verify that the link URL is "http://localhost:8080/my-profile" (or whatever website domain you have set).

Triggering a Grants Digest email is more complicated but feel free to check that too. 😄

Automated and Unit Tests

  • Added Unit tests

Manual tests for Reviewer

  • Added steps to test feature/functionality manually

Checklist

  • Provided ticket and description
  • Provided screenshots/demo
  • Provided testing information
  • Provided adequate test coverage for all new code
  • Added PR reviewers

@github-actions github-actions bot added the javascript Pull requests that update Javascript code label Dec 19, 2023
Copy link

github-actions bot commented Dec 19, 2023

QA Summary

QA Check Result
🌐 Client Tests
🔗 Server Tests
🤝 E2E Tests
📏 ESLint
🧹 TFLint

Test Coverage

Coverage report for `packages/client`
St File % Stmts % Branch % Funcs % Lines Uncovered Line #s
🔴 All files 15.71 13.44 20.39 15.97
🟡  ...nents/src/arpa_reporter/components 50.9 26.66 62.16 50.9
🔴   AlertBox.vue 0 0 0 0 20-21
🟡   DownloadButton.vue 50 50 50 50 39,56-59
🟢   DownloadFileButton.vue 100 100 100 100
🟢   DownloadTemplateBtn.vue 100 100 100 100
🟡   Navigation.vue 63.15 100 62.5 63.15 137-143,152-159
🔴   StandardForm.vue 34.78 20 55.55 34.78 86-90,97-119
🟢  arpa_reporter/helpers 84.61 79.48 87.5 84.61
🟢   form-helpers.js 84.21 79.48 85.71 84.21 7,16,25,81-83
🟢   short-uuid.js 100 100 100 100
🔴  arpa_reporter/store 4.85 0 2.17 5.1
🔴   index.js 4.85 0 2.17 5.1 13-16,34-263
🔴  ...rter/views/src/arpa_reporter/views 41.71 39.21 70.58 41.71
🟢   Agencies.vue 100 100 100 100
🔴   Home.vue 26.66 25 60 26.66 ...05-130,137-166
🔴   Upload.vue 48.21 50 78.94 48.21 ...39,345-346,356
🔴   Uploads.vue 43.18 38.88 66.66 43.18 ...65,181,232-256
🔴   User.vue 38.7 28.57 68.75 38.7 73-118
🔴  ...nents/Modals/src/components/Modals 4.01 2.17 10.16 4.03
🔴   AddOrganization.vue 7.69 0 25 7.69 136-171
🔴   AddTeam.vue 37.5 33.33 60 37.5 178,184-212
🔴   EditOrganization.vue 11.11 0 28.57 11.11 50-76
🔴   EditTeam.vue 2.5 0 16.66 2.5 151-260
🔴   GrantDetailsLegacy.vue 0 0 0 0 106-278
🔴   ImportTeams.vue 0 0 0 0 44-79
🔴   ProfileSettings.vue 0 0 0 0 49-129
🔴   SavedSearchPanel.vue 0 0 0 0 98-208
🔴   SearchPanel.vue 1.72 0 0 1.75 267-456
🔴  components/src/components 3.93 5.26 10.14 3.93
🔴   GrantsTable.vue 0 0 0 0 105-420
🟡   Layout.vue 50 66.66 53.84 50 133-148
🔴   SearchFilter.vue 0 0 0 0 26-68
🔴   Uploader.vue 0 0 0 0 47-100
🔴   UserAvatar.vue 0 0 0 0 44-90
🔴  helpers 6.12 3.79 3.33 6.31
🟢   constants.js 100 100 100 100
🔴   fetchApi.js 5.55 12.5 5.55 5.55 10-102
🔴   filters.js 4 0 0 4.54 19-51
🔴   form-helpers.js 0 0 0 0 5-82
🟢  helpers/featureFlags 91.66 100 83.33 91.66
🟡   index.js 75 100 75 75 20
🟢   utils.js 100 100 100 100
🔴  mixin 23.8 0 28.57 23.8
🔴   resizableTable.js 23.8 0 28.57 23.8 16-31,36-37,42
🔴  router 21.87 12.5 18.75 21.87
🔴   index.js 21.87 12.5 18.75 21.87 ...62-163,167-186
🟢  store 100 100 100 100
🟢   index.js 100 100 100 100
🔴  store/modules 6.12 0 4.94 6.4
🔴   agencies.js 10 100 8.33 10.52 13-70
🔴   alerts.js 20 100 20 20 10-24
🔴   dashboard.js 4.65 0 4.54 4.65 22-96
🔴   grants.js 2.66 0 1.04 2.79 59-358
🔴   keywords.js 14.28 0 9.09 16.66 13-33
🔴   organization.js 33.33 100 33.33 33.33 21-25
🔴   roles.js 33.33 100 20 40 13-22
🔴   tenants.js 20 100 14.28 22.22 13-32
🔴   users.js 4.65 0 4.76 4.76 17-101
🟡  views 50 100 0 50
🟡   NotFound.vue 50 100 0 50 2-4
🔴  views/src/views 11.68 0 23.43 11.76
🔴   ArpaAnnualPerformanceReporter.vue 0 0 0 0 81-134
🔴   Dashboard.vue 11.68 0 26.08 11.84 ...52-266,283-356
🔴   Grants.vue 0 100 0 0 11-18
🔴   Login.vue 0 0 0 0 63-115
🔴   Organizations.vue 40 100 40 40 64,74-77,88-92
🟡   Teams.vue 50 100 50 50 108,119-126
Coverage report for `packages/server`
St File % Stmts % Branch % Funcs % Lines Uncovered Line #s
🟡 All files 55.64 46.69 50.42 55.96
🟢  src 82.35 33.33 60 82.35
🟢   configure.js 82.35 33.33 60 82.35 44,63-70,99-101
🟢  src/arpa_reporter 98.75 66.66 100 98.75
🟢   configure.js 97.36 40 100 97.36 36
🟢   environment.js 100 100 100 100
🟢   use-request.js 100 100 100 100
🔴  src/arpa_reporter/db 40.67 33.76 46.15 42.1
🔴   arpa-subrecipients.js 16.12 5 18.18 17.24 18-69
🔴   reporting-periods.js 36.58 46.66 40 37.5 74-153
🟢   settings.js 100 83.33 100 100 13
🟡   uploads.js 50 28.57 52.38 51.42 18-29,83,98-123,140-149
🔴  src/arpa_reporter/lib 30.38 25.74 29.68 30.76
🟢   arpa-ec-codes.js 100 100 100 100
🔴   audit-report.js 28.72 28.57 32.6 28.14 ...92-393,433-516,562-581
🟡   ensure-async-context.js 75 100 50 100
🔴   format.js 13.79 0 0 19.04 28-82
🟡   log.js 75 50 50 75 13,25
🟡   preconditions.js 66.66 33.33 100 66.66 3
🔴   spreadsheet.js 9.09 0 0 9.09 15-32
🟢   validation-error.js 85.71 100 50 85.71 16
🔴  src/arpa_reporter/routes 40.13 12.29 14.7 40.76
🔴   agencies.js 22.58 0 0 23.33 13-21,26-53
🟡   application_settings.js 75 100 0 75 10-11
🟡   audit-report.js 69.23 66.66 100 69.23 55-69,90-105
🟢   exports.js 81.42 80 100 81.42 61-75,98-99
🔴   reporting-periods.js 20 0 0 20.43 ...25-137,143-149,154-180
🔴   subrecipients.js 28.12 0 0 28.12 10-11,15-25,29-46
🔴   uploads.js 28.28 7.89 9.09 29.16 ...33-154,164-166,173-180
🔴   users.js 19.6 0 0 20 15-35,39-44,48-81
🔴  src/arpa_reporter/services 43.48 30.63 46.37 43.83
🔴   generate-arpa-report.js 37.62 2.79 50 38.02 ...-944,953-966,1040-1099
🔴   get-template.js 21.62 0 0 21.62 18-79
🟡   persist-upload.js 68.6 90 69.56 68.67 ...58-200,221-235,273-295
🔴   records.js 23.4 0 13.33 23.65 38-197,214-254
🔴   revalidate-uploads.js 37.5 100 0 37.5 5-14
🔴   validate-upload.js 37.93 49.41 32.14 38.83 ...10,329,351,369-657,672
🟢   validation-rules.js 98.18 90 90.9 100 157,173
🟡  src/db 75.55 71.98 70.49 75.66
🟢   connection.js 100 50 100 100 6
🟢   constants.js 100 100 100 100
🟢   helpers.js 83.33 100 50 83.33 21-22
🟢   index.js 83.36 78.34 83.56 83.36 ...08-1574,1756-1757,1764
🟢   saved_search_migration.js 92 88.23 71.42 93.61 5,69,134
🔴   tenant_creation.js 10.58 2.7 0 11.11 15-40,48-210,220
🔴  src/db/arpa_reporter_db_shims 23.68 0 0 23.68
🔴   agencies.js 22.22 100 0 22.22 11-51
🔴   users.js 25 0 0 25 12-62
🟡  src/lib 62.39 59.56 57.6 63.13
🟢   access-helpers.js 92.45 93.1 100 92.45 90-91,96-97
🟢   agencyImporter.js 90.38 88.46 100 90.19 26,29,35,93-94
🔴   batchProcessor.js 2.94 0 0 3.03 35-104
🟢   email.js 94.44 71.42 100 94.23 53,59,80,92,232-233
🔴   gost-aws.js 22.22 12.5 20 20.58 13-58,65-113
🟢   grants-ingest.js 83.05 97.36 90 83.05 ...27-130,137-139,154-158
🔴   grantsgov.js 6.25 6.52 0 6.97 12-220
🟡   logging.js 77.77 85.71 100 77.77 11,13
🔴   pdf.js 21.42 0 0 21.42 9-13,18-42
🟢   redirect_validation.js 100 100 100 100
🟢   userImporter.js 82.27 58.33 88.88 81.57 32,47,53,62,73-81,143-152
🔴  src/lib/annualReports 27.38 0 0 27.38
🔴   doc-builder.js 7.69 0 0 7.69 19-352
🟡   index.js 80 100 0 80 6
🟢   placeholderTextStrings.js 100 100 100 100
🔴   reportBuilder.js 17.24 0 0 17.24 21-33,50-62,86-103
🟢  src/lib/arpa_reporter_shims 100 100 100 100
🟢   email.js 100 100 100 100
🟢  src/lib/email 96.15 100 100 95.83
🟢   constants.js 100 100 100 100
🟢   email-nodemailer.js 93.33 100 100 92.3 33
🟢   service-email.js 100 100 100 100
🟢  src/lib/fieldConfigs 100 100 100 100
🟢   fundingActivityCategories.js 100 100 100 100
🔴  src/lib/grantscraper 11.86 0 0 12.96
🔴   index.js 11.86 0 0 12.96 11-92,98-122
🟡  src/routes 68.09 56.03 62.02 68.05
🔴   agencies.js 45.54 30 40 45.54 ...32-140,144-165,173-179
🔴   annualReports.js 47.05 100 0 47.05 15-27
🔴   dashboard.js 21.42 0 0 21.42 8-53
🟢   eligibilityCodes.js 100 100 100 100
🟡   grants.js 79.03 67.25 78.12 79.32 ...73-376,389-390,443-463
🟡   grantsSavedSearch.js 80 83.33 100 80 38-39,56-57,70-72,78
🟢   health.js 100 100 100 100
🟡   interestedCodes.js 71.42 100 0 71.42 7-8
🟢   keywords.js 86.95 50 100 86.95 26-27,34
🟡   refresh.js 71.42 100 0 71.42 7-8
🟡   roles.js 75 100 0 75 8-9
🟡   searchConfig.js 58.33 100 0 58.33 9-14
🟡   sessions.js 65 39.39 50 65 ...-72,78-79,83-84,97-103
🔴   tenants.js 39.13 0 0 39.13 11-12,16-27,32-35
🟢   users.js 80.41 74.19 85.71 80.41 ...17,134-136,160,169-177

Pusher: @as1729, Action: pull_request_target, Workflow: Continuous Integration

@sanason sanason force-pushed the 2268-notification-email-links branch from 728cc99 to f31a660 Compare December 19, 2023 22:30
@github-actions github-actions bot added Infra Issues related to the infrastructure underlying all the tools. terraform Pull requests that update Terraform code labels Dec 19, 2023
This was linked to issues Dec 19, 2023
Copy link

github-actions bot commented Dec 19, 2023

Terraform Summary

Step Result
🖌 Terraform Format & Style
⚙️ Terraform Initialization
🤖 Terraform Validation
📖 Terraform Plan

Hint: If "Terraform Format & Style" failed, run terraform fmt -recursive from the terraform/ directory and commit the results.

Output

Validation Output
Success! The configuration is valid.


Plan Output
Note: Objects have changed outside of Terraform

Terraform detected the following changes made outside of Terraform since the
last "terraform apply" which may have affected this plan:

  # module.api.aws_ecs_task_definition.default[0] has changed
  ~ resource "aws_ecs_task_definition" "default" {
        id                       = "gost-staging-api"
+       tags                     = {}
        # (13 unchanged attributes hidden)

+       volume {
+           name = "data"

+           efs_volume_configuration {
+               file_system_id          = "fs-08f95063c1cdbe191"
+               root_directory          = "/"
+               transit_encryption      = "ENABLED"
+               transit_encryption_port = 0

+               authorization_config {
+                   access_point_id = "fsap-03bc0296928aade4f"
                }
            }
        }
-       volume {
-           name = "data" -> null

-           efs_volume_configuration {
-               file_system_id     = "fs-08f95063c1cdbe191" -> null
-               root_directory     = "/" -> null
-               transit_encryption = "ENABLED" -> null

-               authorization_config {
-                   access_point_id = "fsap-03bc0296928aade4f" -> null
                }
            }
        }

        # (1 unchanged block hidden)
    }

  # module.api.aws_iam_role.execution[0] has changed
  ~ resource "aws_iam_role" "execution" {
        id                    = "gost-staging-api-ECSTaskExecution-20230217010414321500000009"
        name                  = "gost-staging-api-ECSTaskExecution-20230217010414321500000009"
      ~ role_last_used        = [
          ~ {
              ~ last_used_date = "2023-12-20T20:48:49Z" -> "2023-12-20T23:04:54Z"
                # (1 unchanged element hidden)
            },
        ]
        tags                  = {}
        # (11 unchanged attributes hidden)

        # (2 unchanged blocks hidden)
    }

  # module.api.aws_iam_role.task[0] has changed
  ~ resource "aws_iam_role" "task" {
        id                    = "gost-staging-api-ECSTask-2023021701041477300000000a"
        name                  = "gost-staging-api-ECSTask-2023021701041477300000000a"
      ~ role_last_used        = [
          ~ {
              ~ last_used_date = "2023-12-20T21:33:45Z" -> "2023-12-20T23:04:57Z"
                # (1 unchanged element hidden)
            },
        ]
        tags                  = {}
        # (11 unchanged attributes hidden)

        # (6 unchanged blocks hidden)
    }


Unless you have made equivalent changes to your configuration, or ignored the
relevant attributes using ignore_changes, the following plan may include
actions to undo or respond to these changes.

─────────────────────────────────────────────────────────────────────────────

Terraform used the selected providers to generate the following execution
plan. Resource actions are indicated with the following symbols:
  ~ update in-place
+/- create replacement and then destroy

Terraform will perform the following actions:

  # module.api.aws_ecs_service.default[0] will be updated in-place
  ~ resource "aws_ecs_service" "default" {
        id                                 = "arn:aws:ecs:us-west-2:357150818708:service/gost-staging/gost-staging-api"
        name                               = "gost-staging-api"
        tags                               = {}
      ~ task_definition                    = "arn:aws:ecs:us-west-2:357150818708:task-definition/gost-staging-api:84" -> (known after apply)
        # (15 unchanged attributes hidden)

        # (4 unchanged blocks hidden)
    }

  # module.api.aws_ecs_task_definition.default[0] must be replaced
+/- resource "aws_ecs_task_definition" "default" {
      ~ arn                      = "arn:aws:ecs:us-west-2:357150818708:task-definition/gost-staging-api:84" -> (known after apply)
      ~ arn_without_revision     = "arn:aws:ecs:us-west-2:357150818708:task-definition/gost-staging-api" -> (known after apply)
      ~ container_definitions    = jsonencode(
          ~ [ # forces replacement
              ~ {
                  ~ dockerLabels           = {
                      ~ "com.datadoghq.tags.version" = "4f1c558c236d7bc9f6d1e06e29a3f9a21f31bbfd" -> "6a537b3dbd5e833ae3b4f87f2615c9e1080827e6"
                        # (2 unchanged elements hidden)
                    }
                  ~ environment            = [
                        # (7 unchanged elements hidden)
                        {
                            name  = "DD_SERVICE"
                            value = "gost"
                        },
                      ~ {
                            name  = "DD_VERSION"
                          ~ value = "4f1c558c236d7bc9f6d1e06e29a3f9a21f31bbfd" -> "6a537b3dbd5e833ae3b4f87f2615c9e1080827e6"
                        },
                        {
                            name  = "ENABLE_GRANTS_DIGEST"
                            value = "false"
                        },
                        {
                            name  = "ENABLE_GRANTS_SCRAPER"
                            value = "false"
                        },
+                       {
+                           name  = "ENABLE_MY_PROFILE"
+                           value = "true"
                        },
                        {
                            name  = "ENABLE_NEW_TEAM_TERMINOLOGY"
                            value = "true"
                        },
                        # (8 unchanged elements hidden)
                    ]
                  ~ image                  = "ghcr.io/usdigitalresponse/usdr-gost-api:4f1c558c236d7bc9f6d1e06e29a3f9a21f31bbfd@sha256:ab7629908c27eda8a5cea3966a9283d1324d1de08d99498bb8ce69b2f52303f0" -> "ghcr.io/usdigitalresponse/usdr-gost-api:6a537b3dbd5e833ae3b4f87f2615c9e1080827e6@sha256:c4ccc054c5578f63434c750d1e6a8c5f974acdf65590dcc64e1bf07fd7efbc45"
                    name                   = "api"
-                   volumesFrom            = [] -> null
                    # (9 unchanged elements hidden)
                } # forces replacement,
              ~ {
                  ~ dockerLabels           = {
                      ~ "com.datadoghq.tags.version" = "4f1c558c236d7bc9f6d1e06e29a3f9a21f31bbfd" -> "6a537b3dbd5e833ae3b4f87f2615c9e1080827e6"
                        # (2 unchanged elements hidden)
                    }
                  ~ environment            = [
                        # (3 unchanged elements hidden)
                        {
                            name  = "DD_SERVICE"
                            value = "gost"
                        },
                      ~ {
                            name  = "DD_VERSION"
                          ~ value = "4f1c558c236d7bc9f6d1e06e29a3f9a21f31bbfd" -> "6a537b3dbd5e833ae3b4f87f2615c9e1080827e6"
                        },
                        {
                            name  = "ECS_FARGATE"
                            value = "true"
                        },
                    ]
-                   mountPoints            = [] -> null
                    name                   = "datadog"
-                   portMappings           = [] -> null
-                   volumesFrom            = [] -> null
                    # (6 unchanged elements hidden)
                } # forces replacement,
            ]
        )
      ~ id                       = "gost-staging-api" -> (known after apply)
      ~ revision                 = 84 -> (known after apply)
-       tags                     = {} -> null
        # (9 unchanged attributes hidden)

-       volume {
-           name = "data" -> null

-           efs_volume_configuration {
-               file_system_id          = "fs-08f95063c1cdbe191" -> null
-               root_directory          = "/" -> null
-               transit_encryption      = "ENABLED" -> null
-               transit_encryption_port = 0 -> null

-               authorization_config {
-                   access_point_id = "fsap-03bc0296928aade4f" -> null
                }
            }
        }
+       volume {
+           name = "data"

+           efs_volume_configuration {
+               file_system_id     = "fs-08f95063c1cdbe191"
+               root_directory     = "/"
+               transit_encryption = "ENABLED"

+               authorization_config {
+                   access_point_id = "fsap-03bc0296928aade4f"
                }
            }
        }

        # (1 unchanged block hidden)
    }

  # module.arpa_audit_report.aws_ecs_service.default will be updated in-place
  ~ resource "aws_ecs_service" "default" {
        id                                 = "arn:aws:ecs:us-west-2:357150818708:service/gost-staging/gost-staging-arpa_audit_report"
        name                               = "gost-staging-arpa_audit_report"
        tags                               = {}
      ~ task_definition                    = "arn:aws:ecs:us-west-2:357150818708:task-definition/gost-staging-arpa_audit_report:53" -> (known after apply)
        # (15 unchanged attributes hidden)

        # (3 unchanged blocks hidden)
    }

  # module.arpa_audit_report.aws_ecs_task_definition.consumer must be replaced
+/- resource "aws_ecs_task_definition" "consumer" {
      ~ arn                      = "arn:aws:ecs:us-west-2:357150818708:task-definition/gost-staging-arpa_audit_report:53" -> (known after apply)
      ~ arn_without_revision     = "arn:aws:ecs:us-west-2:357150818708:task-definition/gost-staging-arpa_audit_report" -> (known after apply)
      ~ container_definitions    = (sensitive value) # forces replacement
      ~ id                       = "gost-staging-arpa_audit_report" -> (known after apply)
-       ipc_mode                 = "" -> null
-       pid_mode                 = "" -> null
      ~ revision                 = 53 -> (known after apply)
-       tags                     = {} -> null
        # (9 unchanged attributes hidden)

-       volume {
-           name = "data" -> null

-           efs_volume_configuration {
-               file_system_id          = "fs-08f95063c1cdbe191" -> null
-               root_directory          = "/" -> null
-               transit_encryption      = "ENABLED" -> null
-               transit_encryption_port = 0 -> null

-               authorization_config {
-                   access_point_id = "fsap-03bc0296928aade4f" -> null
                }
            }
        }
+       volume {
+           name = "data"

+           efs_volume_configuration {
+               file_system_id     = "fs-08f95063c1cdbe191"
+               root_directory     = "/"
+               transit_encryption = "ENABLED"

+               authorization_config {
+                   access_point_id = "fsap-03bc0296928aade4f"
                }
            }
        }

        # (1 unchanged block hidden)
    }

  # module.arpa_treasury_report.aws_ecs_service.default will be updated in-place
  ~ resource "aws_ecs_service" "default" {
        id                                 = "arn:aws:ecs:us-west-2:357150818708:service/gost-staging/gost-staging-treasury_report"
        name                               = "gost-staging-treasury_report"
        tags                               = {}
      ~ task_definition                    = "arn:aws:ecs:us-west-2:357150818708:task-definition/gost-staging-treasury_report:42" -> (known after apply)
        # (15 unchanged attributes hidden)

        # (3 unchanged blocks hidden)
    }

  # module.arpa_treasury_report.aws_ecs_task_definition.consumer must be replaced
+/- resource "aws_ecs_task_definition" "consumer" {
      ~ arn                      = "arn:aws:ecs:us-west-2:357150818708:task-definition/gost-staging-treasury_report:42" -> (known after apply)
      ~ arn_without_revision     = "arn:aws:ecs:us-west-2:357150818708:task-definition/gost-staging-treasury_report" -> (known after apply)
      ~ container_definitions    = (sensitive value) # forces replacement
      ~ id                       = "gost-staging-treasury_report" -> (known after apply)
-       ipc_mode                 = "" -> null
-       pid_mode                 = "" -> null
      ~ revision                 = 42 -> (known after apply)
-       tags                     = {} -> null
        # (9 unchanged attributes hidden)

-       volume {
-           name = "data" -> null

-           efs_volume_configuration {
-               file_system_id          = "fs-08f95063c1cdbe191" -> null
-               root_directory          = "/" -> null
-               transit_encryption      = "ENABLED" -> null
-               transit_encryption_port = 0 -> null

-               authorization_config {
-                   access_point_id = "fsap-03bc0296928aade4f" -> null
                }
            }
        }
+       volume {
+           name = "data"

+           efs_volume_configuration {
+               file_system_id     = "fs-08f95063c1cdbe191"
+               root_directory     = "/"
+               transit_encryption = "ENABLED"

+               authorization_config {
+                   access_point_id = "fsap-03bc0296928aade4f"
                }
            }
        }

        # (1 unchanged block hidden)
    }

  # module.consume_grants.aws_ecs_service.default will be updated in-place
  ~ resource "aws_ecs_service" "default" {
        id                                 = "arn:aws:ecs:us-west-2:357150818708:service/gost-staging/gost-staging-consume_grants"
        name                               = "gost-staging-consume_grants"
        tags                               = {}
      ~ task_definition                    = "arn:aws:ecs:us-west-2:357150818708:task-definition/gost-staging-consume_grants:69" -> (known after apply)
        # (15 unchanged attributes hidden)

        # (3 unchanged blocks hidden)
    }

  # module.consume_grants.aws_ecs_task_definition.consume_grants must be replaced
+/- resource "aws_ecs_task_definition" "consume_grants" {
      ~ arn                      = "arn:aws:ecs:us-west-2:357150818708:task-definition/gost-staging-consume_grants:69" -> (known after apply)
      ~ arn_without_revision     = "arn:aws:ecs:us-west-2:357150818708:task-definition/gost-staging-consume_grants" -> (known after apply)
      ~ container_definitions    = (sensitive value) # forces replacement
      ~ id                       = "gost-staging-consume_grants" -> (known after apply)
-       ipc_mode                 = "" -> null
-       pid_mode                 = "" -> null
      ~ revision                 = 69 -> (known after apply)
-       tags                     = {} -> null
        # (9 unchanged attributes hidden)

        # (1 unchanged block hidden)
    }

  # module.website.aws_s3_object.deploy-config[0] will be updated in-place
  ~ resource "aws_s3_object" "deploy-config" {
      ~ content                = <<-EOT
            window.APP_CONFIG = window.APP_CONFIG || {};
            window.APP_CONFIG.apiURLForGOST = 'https://api.staging.grants.usdr.dev/';
            window.apiURLForGOST = window.APP_CONFIG.apiURLForGOST; // Legacy
            
            window.APP_CONFIG.DD_RUM_ENABLED = true;
-           window.APP_CONFIG.DD_RUM_CONFIG = {"allowedTracingUrls":["https://api.staging.grants.usdr.dev"],"applicationId":"15db471e-2ccb-4d3c-a6bf-99b750d748f5","clientToken":"pub50834fcc1999d53e546519b1a0f03934","defaultPrivacyLevel":"mask","env":"staging","service":"gost","sessionReplaySampleRate":1,"sessionSampleRate":10,"site":"datadoghq.com","trackLongTasks":true,"trackResources":true,"trackUserInteractions":true,"version":"4f1c558c236d7bc9f6d1e06e29a3f9a21f31bbfd"};
+           window.APP_CONFIG.DD_RUM_CONFIG = {"allowedTracingUrls":["https://api.staging.grants.usdr.dev"],"applicationId":"15db471e-2ccb-4d3c-a6bf-99b750d748f5","clientToken":"pub50834fcc1999d53e546519b1a0f03934","defaultPrivacyLevel":"mask","env":"staging","service":"gost","sessionReplaySampleRate":1,"sessionSampleRate":10,"site":"datadoghq.com","trackLongTasks":true,"trackResources":true,"trackUserInteractions":true,"version":"6a537b3dbd5e833ae3b4f87f2615c9e1080827e6"};
            
            window.APP_CONFIG.featureFlags = {"categoryOfFundingActivitySearchFieldEnabled":false,"myProfileEnabled":true,"newGrantsDetailPageEnabled":false,"newTerminologyEnabled":true};
            
            window.APP_CONFIG.overrideFeatureFlag = (flagName, overrideValue) => {
              const storageKey = 'featureFlags';
              let overrides = {};
              try {
                overrides = JSON.parse(window.sessionStorage.getItem(storageKey)) || {};
              } catch (e) {
                console.error(`Error parsing window.sessionStorage.${storageKey} as JSON:`, e);
                console.warn(`window.sessionStorage.${storageKey} will be replaced.`);
              }
              overrides[flagName] = overrideValue;
              window.sessionStorage.setItem(storageKey, JSON.stringify(overrides));
              console.log('New feature flag overrides in page session:',
                window.sessionStorage.getItem(storageKey));
            };
        EOT
      ~ etag                   = "790bcae27e209cc526a59fc9a091ee5b" -> "de5720c1808cb952744dce047247b08f"
        id                     = "/config/deploy-config.js"
        tags                   = {}
      ~ version_id             = "t9DEOsegsPsYWEKQNPJAjU2CkeRrGxE1" -> (known after apply)
        # (10 unchanged attributes hidden)
    }

  # module.website.aws_s3_object.origin_dist_artifact["js/chunk-vendors.b5316979.js.map"] will be updated in-place
  ~ resource "aws_s3_object" "origin_dist_artifact" {
      ~ etag                   = "8d4ed637eec1c6154483b7ac436d675f-2" -> "5fe4eb3eabd3f4cc6e31ba1f5ce7a4a1"
        id                     = "dist/js/chunk-vendors.b5316979.js.map"
        tags                   = {}
      ~ version_id             = "RLyMm_k1R7BCBh5F0.t1Jz3Nf82nzryq" -> (known after apply)
        # (12 unchanged attributes hidden)
    }

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

Pusher: @as1729, Action: pull_request_target, Workflow: Continuous Integration

@sanason sanason changed the title Temp. feat: enable profile feature flag in production Dec 19, 2023
@sanason sanason force-pushed the 2268-notification-email-links branch from f31a660 to cf28338 Compare December 20, 2023 00:13
@github-actions github-actions bot added the enhancement New feature or request label Dec 20, 2023
Behind a server-side feature flag that uses env variable ENABLE_MY_PROFILE.
@sanason sanason force-pushed the 2268-notification-email-links branch from cf28338 to 2085b95 Compare December 20, 2023 22:49
@sanason sanason changed the title feat: enable profile feature flag in production feat: update preferences link in emails to point to the new profile page Dec 20, 2023
@sanason sanason removed a link to an issue Dec 20, 2023
1 task
@sanason sanason requested a review from a team December 20, 2023 23:27
@sanason sanason marked this pull request as ready for review December 20, 2023 23:28
Copy link
Contributor

@as1729 as1729 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks good @sanason !

@as1729 as1729 enabled auto-merge (squash) December 20, 2023 23:31
@as1729 as1729 merged commit 9716bbd into main Dec 20, 2023
19 checks passed
@as1729 as1729 deleted the 2268-notification-email-links branch December 20, 2023 23:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request Infra Issues related to the infrastructure underlying all the tools. javascript Pull requests that update Javascript code terraform Pull requests that update Terraform code
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Notification email link updates
2 participants