From 6c9149b77968eaf3cb7427800b5b9a5b3f65566a Mon Sep 17 00:00:00 2001 From: Angela Tran Date: Tue, 28 Nov 2023 23:56:16 +0000 Subject: [PATCH 01/71] docs: add system use case with retry as alternate flow --- docs/use-cases/system-use-cases.md | 31 ++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 docs/use-cases/system-use-cases.md diff --git a/docs/use-cases/system-use-cases.md b/docs/use-cases/system-use-cases.md new file mode 100644 index 000000000..5d5cd52d6 --- /dev/null +++ b/docs/use-cases/system-use-cases.md @@ -0,0 +1,31 @@ +The use cases documented on this page focus on how the system is supposed to work from the perspective of the end user. + +### Use case: Enroll contactless card to receive transit benefit + +**Primary Actor**: Transit rider + +**Systems**: Benefits app, payment processor + +**Preconditions**: + +- Transit rider has confirmed their eligibility with the Benefits app +- Transit rider has their contactless card information available +- Benefits app is able to contact the payment processor + +**Trigger**: Transit rider initiates the enrollment process + +**Basic flow**: + +1. Transit rider enters their contactless card information +2. Benefits app passes that information to the payment processor to enroll the card +3. Payment processor successfully enrolls card + +**Alternate flows**: + +- 3a. Payment processor returns with one of the following errors: address verification failed, token is invalid, or general server error + - 3a1. Transit rider chooses to retry, starting back at initiating the enrollment process + - 3b1. Transit rider leaves the Benefits app + +**Postconditions**: + +- Transit rider's contactless card is enrolled to receive the transit benefit From 29279f5996a31446b38d1239b68e27fbb1f711d5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 5 Dec 2023 21:30:42 +0000 Subject: [PATCH 02/71] chore(deps-dev): bump cypress from 13.6.0 to 13.6.1 in /tests/cypress Bumps [cypress](https://github.com/cypress-io/cypress) from 13.6.0 to 13.6.1. - [Release notes](https://github.com/cypress-io/cypress/releases) - [Changelog](https://github.com/cypress-io/cypress/blob/develop/CHANGELOG.md) - [Commits](https://github.com/cypress-io/cypress/compare/v13.6.0...v13.6.1) --- updated-dependencies: - dependency-name: cypress dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- tests/cypress/package-lock.json | 14 +++++++------- tests/cypress/package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/tests/cypress/package-lock.json b/tests/cypress/package-lock.json index a929ea19b..f16798293 100644 --- a/tests/cypress/package-lock.json +++ b/tests/cypress/package-lock.json @@ -9,7 +9,7 @@ "version": "1.0.0", "license": "AGPL-3.0-or-later", "devDependencies": { - "cypress": "^13.6.0" + "cypress": "^13.6.1" } }, "node_modules/@colors/colors": { @@ -536,9 +536,9 @@ } }, "node_modules/cypress": { - "version": "13.6.0", - "resolved": "https://registry.npmjs.org/cypress/-/cypress-13.6.0.tgz", - "integrity": "sha512-quIsnFmtj4dBUEJYU4OH0H12bABJpSujvWexC24Ju1gTlKMJbeT6tTO0vh7WNfiBPPjoIXLN+OUqVtiKFs6SGw==", + "version": "13.6.1", + "resolved": "https://registry.npmjs.org/cypress/-/cypress-13.6.1.tgz", + "integrity": "sha512-k1Wl5PQcA/4UoTffYKKaxA0FJKwg8yenYNYRzLt11CUR0Kln+h7Udne6mdU1cUIdXBDTVZWtmiUjzqGs7/pEpw==", "dev": true, "hasInstallScript": true, "dependencies": { @@ -2357,9 +2357,9 @@ } }, "cypress": { - "version": "13.6.0", - "resolved": "https://registry.npmjs.org/cypress/-/cypress-13.6.0.tgz", - "integrity": "sha512-quIsnFmtj4dBUEJYU4OH0H12bABJpSujvWexC24Ju1gTlKMJbeT6tTO0vh7WNfiBPPjoIXLN+OUqVtiKFs6SGw==", + "version": "13.6.1", + "resolved": "https://registry.npmjs.org/cypress/-/cypress-13.6.1.tgz", + "integrity": "sha512-k1Wl5PQcA/4UoTffYKKaxA0FJKwg8yenYNYRzLt11CUR0Kln+h7Udne6mdU1cUIdXBDTVZWtmiUjzqGs7/pEpw==", "dev": true, "requires": { "@cypress/request": "^3.0.0", diff --git a/tests/cypress/package.json b/tests/cypress/package.json index a84b6d164..cd1c293b4 100644 --- a/tests/cypress/package.json +++ b/tests/cypress/package.json @@ -12,6 +12,6 @@ "license": "AGPL-3.0-or-later", "private": true, "devDependencies": { - "cypress": "^13.6.0" + "cypress": "^13.6.1" } } From 82c071dd2aed338521efbbcbb683af6edb880609 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 6 Dec 2023 21:22:20 +0000 Subject: [PATCH 03/71] chore(deps): bump actions/setup-python from 4 to 5 Bumps [actions/setup-python](https://github.com/actions/setup-python) from 4 to 5. - [Release notes](https://github.com/actions/setup-python/releases) - [Commits](https://github.com/actions/setup-python/compare/v4...v5) --- updated-dependencies: - dependency-name: actions/setup-python dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/deploy.yml | 2 +- .github/workflows/tests-pytest.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 0eff8aa05..5dadca811 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -22,7 +22,7 @@ jobs: - name: Checkout uses: actions/checkout@v4 - - uses: actions/setup-python@v4 + - uses: actions/setup-python@v5 with: python-version-file: .github/workflows/.python-version cache: pip diff --git a/.github/workflows/tests-pytest.yml b/.github/workflows/tests-pytest.yml index 531c318c3..86329cbac 100644 --- a/.github/workflows/tests-pytest.yml +++ b/.github/workflows/tests-pytest.yml @@ -22,7 +22,7 @@ jobs: sudo apt-get update -y sudo apt-get install -y gettext - - uses: actions/setup-python@v4 + - uses: actions/setup-python@v5 with: python-version-file: .github/workflows/.python-version cache: pip From 6fcb1c414f05864d90af6e05d5487c2faf317c53 Mon Sep 17 00:00:00 2001 From: Angela Tran Date: Thu, 7 Dec 2023 15:26:11 +0000 Subject: [PATCH 04/71] fix: update docs and comments to remove outdated information address verification used to be a part of the hosted verification flow, but no longer is --- benefits/enrollment/templates/enrollment/index.html | 4 ++-- docs/use-cases/system-use-cases.md | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/benefits/enrollment/templates/enrollment/index.html b/benefits/enrollment/templates/enrollment/index.html index 4a543f09e..b2fdeee0d 100644 --- a/benefits/enrollment/templates/enrollment/index.html +++ b/benefits/enrollment/templates/enrollment/index.html @@ -57,7 +57,7 @@

}, onTokenize: function (response) { /* This function executes when the - /* card/address verification returns + /* card verification returns /* successfully with a token from enrollment server */ amplitude.getInstance().logEvent(closedEvent, {status: "success"}); @@ -67,7 +67,7 @@

}, onVerificationFailure: function (response) { /* This function executes when the - /* card/address verification fails and server + /* card verification fails and server /* return verification failure message */ amplitude.getInstance().logEvent(closedEvent, {status: "fail"}); diff --git a/docs/use-cases/system-use-cases.md b/docs/use-cases/system-use-cases.md index 5d5cd52d6..b4d8c1e5c 100644 --- a/docs/use-cases/system-use-cases.md +++ b/docs/use-cases/system-use-cases.md @@ -22,7 +22,7 @@ The use cases documented on this page focus on how the system is supposed to wor **Alternate flows**: -- 3a. Payment processor returns with one of the following errors: address verification failed, token is invalid, or general server error +- 3a. Payment processor returns with one of the following errors: card verification failed, token is invalid, or general server error - 3a1. Transit rider chooses to retry, starting back at initiating the enrollment process - 3b1. Transit rider leaves the Benefits app From 1f3d8c340ebc4ed6cbaf5fada3304893ee58ea98 Mon Sep 17 00:00:00 2001 From: Angela Tran Date: Thu, 7 Dec 2023 15:27:23 +0000 Subject: [PATCH 05/71] chore: use 'phase' instead for better understanding across the team --- docs/use-cases/system-use-cases.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/use-cases/system-use-cases.md b/docs/use-cases/system-use-cases.md index b4d8c1e5c..b7089bc56 100644 --- a/docs/use-cases/system-use-cases.md +++ b/docs/use-cases/system-use-cases.md @@ -12,7 +12,7 @@ The use cases documented on this page focus on how the system is supposed to wor - Transit rider has their contactless card information available - Benefits app is able to contact the payment processor -**Trigger**: Transit rider initiates the enrollment process +**Trigger**: Transit rider initiates the enrollment phase **Basic flow**: @@ -23,7 +23,7 @@ The use cases documented on this page focus on how the system is supposed to wor **Alternate flows**: - 3a. Payment processor returns with one of the following errors: card verification failed, token is invalid, or general server error - - 3a1. Transit rider chooses to retry, starting back at initiating the enrollment process + - 3a1. Transit rider chooses to retry, starting back at initiating the enrollment phase - 3b1. Transit rider leaves the Benefits app **Postconditions**: From ae474d6a77b7e68566b2809ade09a2e1c2125fb9 Mon Sep 17 00:00:00 2001 From: Machiko Yasuda Date: Thu, 7 Dec 2023 23:40:25 +0000 Subject: [PATCH 06/71] docs: supported enrollment pathways --- docs/README.md | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/docs/README.md b/docs/README.md index 19c49f989..efd87e6c2 100644 --- a/docs/README.md +++ b/docs/README.md @@ -18,6 +18,24 @@ The development of this publicly-accessible client is being managed by Caltrans' The application is accessible to the public at [benefits.calitp.org](https://benefits.calitp.org). +## Adoption + +### Supported enrollment pathways + +| Enrollment pathway | API | Status | Launch year | +| ----------------------------------------- | ------------------------ | ------ | ----------- | +| **Older adults** | Login.gov | Live | 2022 | +| **Agency cards** | Eligibility Server | Live | 2022 | +| **Veterans via Veteran Confirmation API** | Veteran Confirmation API | Live | 2023 | + +### Adoption by transit agencies + +| Transit agency | Older adults | Agency card | Veterans | Launch year | +| ---------------------------------------- | ------------ | ------------------------ | -------- | ----------- | +| **Monterey-Salinas Transit** | Live | Live | Live | 2022 | +| **Santa Barbara MTD** | Live | In production validation |   | 2023 | +| **Sacramento Regional Transit District** | In test |   |   |   | + ## Technical details `benefits` is a [Django 4][django] web application. The application talks to one or more [Eligibility Verification APIs](https://docs.calitp.org/eligibility-api/specification) or authentication providers. These APIs and the application are From 0bedc537f6353e15848bbe5d6b5018fced7c6693 Mon Sep 17 00:00:00 2001 From: Machiko Yasuda Date: Thu, 7 Dec 2023 23:44:16 +0000 Subject: [PATCH 07/71] docs: supported enrollment pathways --- docs/README.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/docs/README.md b/docs/README.md index efd87e6c2..3730e656a 100644 --- a/docs/README.md +++ b/docs/README.md @@ -20,14 +20,6 @@ The application is accessible to the public at [benefits.calitp.org](https://ben ## Adoption -### Supported enrollment pathways - -| Enrollment pathway | API | Status | Launch year | -| ----------------------------------------- | ------------------------ | ------ | ----------- | -| **Older adults** | Login.gov | Live | 2022 | -| **Agency cards** | Eligibility Server | Live | 2022 | -| **Veterans via Veteran Confirmation API** | Veteran Confirmation API | Live | 2023 | - ### Adoption by transit agencies | Transit agency | Older adults | Agency card | Veterans | Launch year | @@ -36,6 +28,14 @@ The application is accessible to the public at [benefits.calitp.org](https://ben | **Santa Barbara MTD** | Live | In production validation |   | 2023 | | **Sacramento Regional Transit District** | In test |   |   |   | +### Supported enrollment pathways + +| Enrollment pathway | API | Status | Launch year | +| ------------------ | ------------------------ | ------ | ----------- | +| **Older adults** | Login.gov | Live | 2022 | +| **Agency cards** | Eligibility Server | Live | 2022 | +| **Veterans** | Veteran Confirmation API | Live | 2023 | + ## Technical details `benefits` is a [Django 4][django] web application. The application talks to one or more [Eligibility Verification APIs](https://docs.calitp.org/eligibility-api/specification) or authentication providers. These APIs and the application are From 069f439ea9be7fc259114fc3ae6ca87173972f31 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Mon, 11 Dec 2023 18:05:43 +0000 Subject: [PATCH 08/71] chore(pre-commit): autoupdate hooks MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit updates: - [github.com/pycqa/bandit: 1.7.5 → 1.7.6](https://github.com/pycqa/bandit/compare/1.7.5...1.7.6) - [github.com/pre-commit/mirrors-prettier: v3.1.0 → v4.0.0-alpha.4](https://github.com/pre-commit/mirrors-prettier/compare/v3.1.0...v4.0.0-alpha.4) --- .pre-commit-config.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 0f67df768..1745d21b3 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -48,14 +48,14 @@ repos: - python - repo: https://github.com/pycqa/bandit - rev: 1.7.5 + rev: 1.7.6 hooks: - id: bandit args: ["-ll"] files: .py$ - repo: https://github.com/pre-commit/mirrors-prettier - rev: v3.1.0 + rev: v4.0.0-alpha.4 hooks: - id: prettier types_or: [javascript, css] From 6d39bd0db73143cd2ffc287e612d9021d0570683 Mon Sep 17 00:00:00 2001 From: Machiko Yasuda Date: Mon, 11 Dec 2023 19:56:47 +0000 Subject: [PATCH 09/71] docs: remove college, rename Enrollment Pathways --- docs/.pages | 2 +- .../README.md | 6 ++-- .../agency-cards.md | 0 .../img/senior-success.gif | Bin .../seniors.md | 0 .../veterans.md} | 28 +++++++-------- docs/use-cases/college.md | 34 ------------------ 7 files changed, 18 insertions(+), 52 deletions(-) rename docs/{use-cases => enrollment-pathways}/README.md (78%) rename docs/{use-cases => enrollment-pathways}/agency-cards.md (100%) rename docs/{use-cases => enrollment-pathways}/img/senior-success.gif (100%) rename docs/{use-cases => enrollment-pathways}/seniors.md (100%) rename docs/{use-cases/Veterans.md => enrollment-pathways/veterans.md} (71%) delete mode 100644 docs/use-cases/college.md diff --git a/docs/.pages b/docs/.pages index 0dc50f68f..587faad61 100644 --- a/docs/.pages +++ b/docs/.pages @@ -1,7 +1,7 @@ nav: - Home: - README.md - - use-cases + - enrollment-pathways - getting-started - product-and-design - development diff --git a/docs/use-cases/README.md b/docs/enrollment-pathways/README.md similarity index 78% rename from docs/use-cases/README.md rename to docs/enrollment-pathways/README.md index 5ef4375cb..a0464a970 100644 --- a/docs/use-cases/README.md +++ b/docs/enrollment-pathways/README.md @@ -2,15 +2,15 @@ title: Introduction --- -# Use cases +# Enrollment pathways -This section describes in more detail some of the use cases with current or planned support in the Benefits application. +This section describes in more detail some of the different enrollment pathways with current or planned support in the Benefits application. ## Current work We do sprint planning and track day-to-day work on our [Project Board][board]. -See our [Milestones][milestones] for current work tracked against specific features and use cases. +See our [Milestones][milestones] for current work tracked against specific features and different enrollment pathways. ## Product roadmap diff --git a/docs/use-cases/agency-cards.md b/docs/enrollment-pathways/agency-cards.md similarity index 100% rename from docs/use-cases/agency-cards.md rename to docs/enrollment-pathways/agency-cards.md diff --git a/docs/use-cases/img/senior-success.gif b/docs/enrollment-pathways/img/senior-success.gif similarity index 100% rename from docs/use-cases/img/senior-success.gif rename to docs/enrollment-pathways/img/senior-success.gif diff --git a/docs/use-cases/seniors.md b/docs/enrollment-pathways/seniors.md similarity index 100% rename from docs/use-cases/seniors.md rename to docs/enrollment-pathways/seniors.md diff --git a/docs/use-cases/Veterans.md b/docs/enrollment-pathways/veterans.md similarity index 71% rename from docs/use-cases/Veterans.md rename to docs/enrollment-pathways/veterans.md index 658d3e9e3..7c4af98a5 100644 --- a/docs/use-cases/Veterans.md +++ b/docs/enrollment-pathways/veterans.md @@ -1,4 +1,4 @@ -# Veterans enrollment pathway +# Veterans ## Overview @@ -59,27 +59,27 @@ Littlepay-->>Benefits: payment method enrollment confirmation ## Alternative flows -* If the transit rider does not have a desktop computer, they can open the web application at [benefits.calitp.org](https://benefits.calitp.org) in a mobile browser on their iOS or Android tablet or mobile device to complete enrollment using the basic flow. -* Suppose the transit rider cannot authenticate with [Login.gov](https://Login.gov), or will not create an account. In either case, the app cannot determine their veteran status and, thus, cannot enroll their contactless debit or credit card for a reduced fare. -* If [VA.gov](http://VA.gov) determines the person does not meet the definition of a veteran (IdG returns a veteran status of FALSE), the Cal-ITP Benefits app will not allow the transit rider to enroll their contactless debit or credit card for a reduced fare. -* If the debit or credit card expires or is canceled by the issuer, the transit rider must repeat the basic flow to register a new debit or credit card. -* If the transit rider uses more than one debit or credit card to pay for transit, they repeat the basic flow for each card. +- If the transit rider does not have a desktop computer, they can open the web application at [benefits.calitp.org](https://benefits.calitp.org) in a mobile browser on their iOS or Android tablet or mobile device to complete enrollment using the basic flow. +- Suppose the transit rider cannot authenticate with [Login.gov](https://Login.gov), or will not create an account. In either case, the app cannot determine their veteran status and, thus, cannot enroll their contactless debit or credit card for a reduced fare. +- If [VA.gov](http://VA.gov) determines the person does not meet the definition of a veteran (IdG returns a veteran status of FALSE), the Cal-ITP Benefits app will not allow the transit rider to enroll their contactless debit or credit card for a reduced fare. +- If the debit or credit card expires or is canceled by the issuer, the transit rider must repeat the basic flow to register a new debit or credit card. +- If the transit rider uses more than one debit or credit card to pay for transit, they repeat the basic flow for each card. ## Postcondition -The transit rider receives a fare reduction each time they use the debit or credit card they registered to pay for transit rides. The number of times they can use the card to pay for transit is unlimited and the benefit never expires.  +The transit rider receives a fare reduction each time they use the debit or credit card they registered to pay for transit rides. The number of times they can use the card to pay for transit is unlimited and the benefit never expires. ## Benefits -* The transit rider no longer needs cash to pay for transit rides. -* The transit rider doesn’t have to lock up funds on a closed-loop card offered by the transit provider. -* The transit rider pays for transit rides with their debit or credit card, just as they pay for any other good or service that accepts contactless payment. -* The transit rider can enroll in a transit benefit from home when convenient; they do not have to visit a transit provider in person. -* Secure state and federal solutions manage the transit rider’s personal identifiable information (PII): [Login.gov](https://Login.gov) and the California Department of Technology Identity Gateway (IdG). Transit riders do not have to share personal information with local transit agencies. -* Benefits enrollment takes minutes rather than days or weeks. +- The transit rider no longer needs cash to pay for transit rides. +- The transit rider doesn’t have to lock up funds on a closed-loop card offered by the transit provider. +- The transit rider pays for transit rides with their debit or credit card, just as they pay for any other good or service that accepts contactless payment. +- The transit rider can enroll in a transit benefit from home when convenient; they do not have to visit a transit provider in person. +- Secure state and federal solutions manage the transit rider’s personal identifiable information (PII): [Login.gov](https://Login.gov) and the California Department of Technology Identity Gateway (IdG). Transit riders do not have to share personal information with local transit agencies. +- Benefits enrollment takes minutes rather than days or weeks. ## Example scenario -A veteran in California uses public transit regularly. They don’t have a car and depend on buses to get to appointments and do errands that take too long to use their bicycle. They receive a 50% fare reduction for being a US veteran but have to pay for transit rides using the closed loop card provided by the agency to receive the reduced fare. It’s frustrating and inconvenient to reload this agency card in $10 payments every week, especially because they sometimes need the money tied up on the card to pay for groceries and medication.  +A veteran in California uses public transit regularly. They don’t have a car and depend on buses to get to appointments and do errands that take too long to use their bicycle. They receive a 50% fare reduction for being a US veteran but have to pay for transit rides using the closed loop card provided by the agency to receive the reduced fare. It’s frustrating and inconvenient to reload this agency card in $10 payments every week, especially because they sometimes need the money tied up on the card to pay for groceries and medication. The transit provider serving their part of California implements contactless payments on fixed bus routes throughout the service area. This rider uses [benefits.calitp.org](https://benefits.calitp.org) to confirm their veteran status and register their debit card for reduced fares. They tap to pay when boarding buses in their area and are automatically charged the reduced fare. They no longer need to carry one card to pay for transit and another for other purchases. Best of all, they have complete access to all funds in their weekly budget. If food and medication costs are higher one week, they can allocate additional funds to those areas and ride transit less. diff --git a/docs/use-cases/college.md b/docs/use-cases/college.md deleted file mode 100644 index c66564322..000000000 --- a/docs/use-cases/college.md +++ /dev/null @@ -1,34 +0,0 @@ -# College Discount - -We have another potential transit discount use case, which is for students/faculty/staff from the Monterey-Salinas Transit (MST) area. We will be taking [the existing program](https://mst.org/fares/overview/) where students from certain schools ride free, expanding it to faculty and staff in some cases, and allowing those riders to enroll their contactless bank (credit/debit) cards for half-price (50%) discounts during fall and winter breaks. - -## Prototype - -Here's a clickable prototype showing the planned flow, having users enroll via their college's single sign-on (SSO) system: - - - -## Process - -Here's what will happen behind the scenes in a success flow: - -```mermaid -sequenceDiagram - actor rider - participant Benefits as Benefits app - participant IdG as Identity Gateway - participant SSO - participant Littlepay - - rider->>Benefits: visits site - Benefits-->>IdG: redirected to sign in - IdG-->>SSO: redirected to sign in - rider->>SSO: enters credentials - SSO-->>IdG: user attributes - IdG-->>Benefits: user attributes - Benefits-->>Littlepay: enrollment start - rider->>Littlepay: enters payment card details - Littlepay-->>Benefits: enrollment complete -``` - -The plan is to determine whether the rider is eligible via SAML attributes and/or membership in a group on the college side. From c467d4b8d66be4b579ddb85ec167111866538232 Mon Sep 17 00:00:00 2001 From: Machiko Yasuda Date: Mon, 11 Dec 2023 20:45:38 +0000 Subject: [PATCH 10/71] docs: rename seniors to older adults --- docs/enrollment-pathways/{seniors.md => older-adults.md} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename docs/enrollment-pathways/{seniors.md => older-adults.md} (91%) diff --git a/docs/enrollment-pathways/seniors.md b/docs/enrollment-pathways/older-adults.md similarity index 91% rename from docs/enrollment-pathways/seniors.md rename to docs/enrollment-pathways/older-adults.md index 8081f7f52..6d5155fd6 100644 --- a/docs/enrollment-pathways/seniors.md +++ b/docs/enrollment-pathways/older-adults.md @@ -1,4 +1,4 @@ -# Seniors +# Older adults One Benefits application use case is for riders age 65 years and older. The Benefits application verifies the person's age to confirm eligibility and allows those eligible to enroll their contactless payment card for their transit benefit. @@ -6,7 +6,7 @@ Currently, the app uses [Login.gov's Identity Assurance Level 2 (IAL2)](https:// ## Demonstration -Here's a GIF showing what the flow looks like, having seniors confirm eligibility via Login.gov and enroll via LittlePay: +Here's a GIF showing what the flow looks like, having older adults confirm eligibility via Login.gov and enroll via LittlePay: ![Demonstration of the sign-up process for a senior confirming eligibility via Login.gov and enrolling via Littlepay](img/senior-success.gif){ width="350" } From bfb7aa166d22de90f0f6a4d6879fe64291a89269 Mon Sep 17 00:00:00 2001 From: Machiko Yasuda Date: Mon, 11 Dec 2023 20:47:31 +0000 Subject: [PATCH 11/71] docs: add links to apis --- docs/README.md | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/docs/README.md b/docs/README.md index 3730e656a..a41abaeb8 100644 --- a/docs/README.md +++ b/docs/README.md @@ -18,8 +18,6 @@ The development of this publicly-accessible client is being managed by Caltrans' The application is accessible to the public at [benefits.calitp.org](https://benefits.calitp.org). -## Adoption - ### Adoption by transit agencies | Transit agency | Older adults | Agency card | Veterans | Launch year | @@ -30,11 +28,11 @@ The application is accessible to the public at [benefits.calitp.org](https://ben ### Supported enrollment pathways -| Enrollment pathway | API | Status | Launch year | -| ------------------ | ------------------------ | ------ | ----------- | -| **Older adults** | Login.gov | Live | 2022 | -| **Agency cards** | Eligibility Server | Live | 2022 | -| **Veterans** | Veteran Confirmation API | Live | 2023 | +| Enrollment pathway | API | Status | Launch year | +| ------------------ | ------------------------------------------------------------------------------------- | ------ | ----------- | +| **Older adults** | [Login.gov IAL2](https://developers.login.gov/attributes/) | Live | 2022 | +| **Agency cards** | [Eligibility API](https://docs.calitp.org/eligibility-api/specification/) | Live | 2022 | +| **Veterans** | [Veteran Confirmation API](https://developer.va.gov/explore/api/veteran-confirmation) | Live | 2023 | ## Technical details From 4d8445640ebf74484e38777cc8484b3075209bb4 Mon Sep 17 00:00:00 2001 From: Machiko Yasuda Date: Mon, 11 Dec 2023 20:53:27 +0000 Subject: [PATCH 12/71] docs: add links --- docs/README.md | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/docs/README.md b/docs/README.md index a41abaeb8..4cde1693a 100644 --- a/docs/README.md +++ b/docs/README.md @@ -20,6 +20,8 @@ The application is accessible to the public at [benefits.calitp.org](https://ben ### Adoption by transit agencies +The following California transit agencies have launched Cal-ITP Benefits for their riders, with the following enrollment pathway options: + | Transit agency | Older adults | Agency card | Veterans | Launch year | | ---------------------------------------- | ------------ | ------------------------ | -------- | ----------- | | **Monterey-Salinas Transit** | Live | Live | Live | 2022 | @@ -28,11 +30,15 @@ The application is accessible to the public at [benefits.calitp.org](https://ben ### Supported enrollment pathways -| Enrollment pathway | API | Status | Launch year | -| ------------------ | ------------------------------------------------------------------------------------- | ------ | ----------- | -| **Older adults** | [Login.gov IAL2](https://developers.login.gov/attributes/) | Live | 2022 | -| **Agency cards** | [Eligibility API](https://docs.calitp.org/eligibility-api/specification/) | Live | 2022 | -| **Veterans** | [Veteran Confirmation API](https://developer.va.gov/explore/api/veteran-confirmation) | Live | 2023 | +The Cal-ITP Benefits app supports the following enrollment pathways that uses the corresponding eligibility verification methods: + +| Enrollment pathway | Eligibility verification | Status | Launch year | +| -------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------ | ----------- | +| [**Older adults**](/benefits/enrollment-pathways/older-adults) | [Login.gov IAL2](https://developers.login.gov/attributes/) | Live | 2022 | +| [**Agency cards**](/benefits/enrollment-pathways/agency-cards) | [Eligibility API](https://docs.calitp.org/eligibility-api/specification/) | Live | 2022 | +| [**Veterans**](/benefits/enrollment-pathways/veterans) | [Veteran Confirmation API](https://developer.va.gov/explore/api/veteran-confirmation) | Live | 2023 | + +Read more about each [enrollment pathway](/benefits/enrollment-pathways/). ## Technical details From ad7ee354beefe06753618c1e7871949d8cfaf509 Mon Sep 17 00:00:00 2001 From: Machiko Yasuda Date: Mon, 11 Dec 2023 21:53:17 +0000 Subject: [PATCH 13/71] docs(analytics): first pass @ analytics docs --- docs/product-and-design/.pages | 3 +- docs/product-and-design/analytics.md | 66 ++++++++++++++++++++++++++++ 2 files changed, 68 insertions(+), 1 deletion(-) create mode 100644 docs/product-and-design/analytics.md diff --git a/docs/product-and-design/.pages b/docs/product-and-design/.pages index c6852dbcc..92f0c66b9 100644 --- a/docs/product-and-design/.pages +++ b/docs/product-and-design/.pages @@ -1,4 +1,5 @@ nav: +- analytics.md - copy-delivery.md -- Design Style Guide: https://www.figma.com/proto/SeSd3LaLd6WkbEYhmtKpO3/Benefits-(IAL2-Login.gov)?node-id=4942%3A17385&scaling=scale-down&page-id=4890%3A17182 +- Design style guide: https://www.figma.com/proto/SeSd3LaLd6WkbEYhmtKpO3/Benefits-(IAL2-Login.gov)?node-id=4942%3A17385&scaling=scale-down&page-id=4890%3A17182 diff --git a/docs/product-and-design/analytics.md b/docs/product-and-design/analytics.md new file mode 100644 index 000000000..35ed545d7 --- /dev/null +++ b/docs/product-and-design/analytics.md @@ -0,0 +1,66 @@ +# Analytics + +## Information not collected + +- IP Address +- Designated Market Area (DMA) + +See the [Amplitude analytics code on GitHub](https://github.com/cal-itp/benefits/blob/dev/benefits/core/templates/core/includes/analytics.html#L30). + +## User information collected + +### Default Amplitude user properties collected + +- Platform +- Device type +- Device family +- Country +- City +- Region +- Start version +- Version +- Carrier +- OS: Operating system name and version +- Language +- Library + +Read more about each property on the [Amplitude documentation](https://help.amplitude.com/hc/en-us/articles/215562387-Appendix-Amplitude-User-Property-Definitions). + +### Custom user properties collected + +| Custom user property | Description | Example value | +| ---------------------- | ---------------------------------- | ----------------------------------------------------------------------------------------------------------------- | +| `eligibility_types` | Eligibility type chosen by user  | `[veteran]` | +| `eligibility_verifier` | Eligibility verifier used by user  | `VA.gov - Veteran (MST)` | +| `referrer` | URL that the event came from  | https://benefits.calitp.org/eligibility/start | +| `referring_domain` | Domain that the event came from  | `benefits.calitp.org` | +| `transit_agency` | Agency chosen by the user  | `Monterey-Salinas Transit` | +| `user_agent` | User's browser agent  | `Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36` | + +## Event information collected + +Information is collected on key user actions on the app, called events. Each event is categorized within one of four categories: core, authentication, eligibility or enrollment. + +- https://data.amplitude.com/public-doc/hdhfmlby2e + +### Core events + +Read more on each of these events on the [Amplitude event documentation for Benefits](https://data.amplitude.com/public-doc/hdhfmlby2e?categories=id%3D1702329985270%26group%3Dcategories%26type%3DString%26operator%3Dis%26values%255B0%255D%3Dcore%26dateValue%255Btype%255D%3DSINCE) + +### Authentication events + +Read more on each of these events on the [Amplitude event documentation for Benefits](https://data.amplitude.com/public-doc/hdhfmlby2e?categories=id%3D1702329910563%26group%3Dcategories%26type%3DString%26operator%3Dis%26values%255B0%255D%3Doauth%26dateValue%255Btype%255D%3DSINCE) + +### Eligibility events + +Read more on each of these events on the [Amplitude event documentation for Benefits](https://data.amplitude.com/public-doc/hdhfmlby2e?categories=id%3D1702329975970%26group%3Dcategories%26type%3DString%26operator%3Dis%26values%255B0%255D%3Deligibility%26dateValue%255Btype%255D%3DSINCE) + +### Enrollment events + +Read more on each of these events on the [Amplitude event documentation for Benefits](https://data.amplitude.com/public-doc/hdhfmlby2e?categories=id%3D1702329910563%26group%3Dcategories%26type%3DString%26operator%3Dis%26values%255B0%255D%3Denrollment%26dateValue%255Btype%255D%3DSINCE) + +## Key metrics + +- Number of users who successfully completed authentication: Users who `started sign in`, `finished sign in` +- Number of users who successfully completed eligibility and received a status of True: Users who `selected eligibility verifier`, `started eligibility`, `returned eligibility` with a status of `True` +- Numbers of users who successfully completed enrollment: Users who `started payment connection`, `closed payment connection` and `returned enrollment` with a status of `Success` From 3386465f7664959ccaa4eb65602d9edb082ed2f0 Mon Sep 17 00:00:00 2001 From: Machiko Yasuda Date: Mon, 11 Dec 2023 21:57:37 +0000 Subject: [PATCH 14/71] docs(analytics): add more details/links --- docs/product-and-design/analytics.md | 48 ++++++++++++++++++++++------ 1 file changed, 38 insertions(+), 10 deletions(-) diff --git a/docs/product-and-design/analytics.md b/docs/product-and-design/analytics.md index 35ed545d7..f6f7fd621 100644 --- a/docs/product-and-design/analytics.md +++ b/docs/product-and-design/analytics.md @@ -1,5 +1,7 @@ # Analytics +The Cal-ITP Benefits application uses Amplitude to collect specific user properties and event data to analyze application usage. + ## Information not collected - IP Address @@ -39,28 +41,54 @@ Read more about each property on the [Amplitude documentation](https://help.ampl ## Event information collected -Information is collected on key user actions on the app, called events. Each event is categorized within one of four categories: core, authentication, eligibility or enrollment. - -- https://data.amplitude.com/public-doc/hdhfmlby2e +Information is collected on key user actions on the app, called events. Read about each event on the [Amplitude event documentation for Benefits](https://data.amplitude.com/public-doc/hdhfmlby2e). Each event is categorized within one of four categories: core, authentication, eligibility or enrollment. ### Core events -Read more on each of these events on the [Amplitude event documentation for Benefits](https://data.amplitude.com/public-doc/hdhfmlby2e?categories=id%3D1702329985270%26group%3Dcategories%26type%3DString%26operator%3Dis%26values%255B0%255D%3Dcore%26dateValue%255Btype%255D%3DSINCE) +These events track when a user clicks on a link on the application. + +- changed language +- clicked link +- viewed page + +Read more on each of these events on the [Amplitude event documentation for Benefits, filtered by Core](https://data.amplitude.com/public-doc/hdhfmlby2e?categories=id%3D1702329985270%26group%3Dcategories%26type%3DString%26operator%3Dis%26values%255B0%255D%3Dcore%26dateValue%255Btype%255D%3DSINCE). ### Authentication events -Read more on each of these events on the [Amplitude event documentation for Benefits](https://data.amplitude.com/public-doc/hdhfmlby2e?categories=id%3D1702329910563%26group%3Dcategories%26type%3DString%26operator%3Dis%26values%255B0%255D%3Doauth%26dateValue%255Btype%255D%3DSINCE) +These events track the progress of a user going through the authentication process of both signing in and optionally signing out. + +- canceled sign in +- finished sign in +- finished sign out +- started sign in +- started sign out + +Read more on each of these events on the [Amplitude event documentation for Benefits, filtered by Authentication](https://data.amplitude.com/public-doc/hdhfmlby2e?categories=id%3D1702329910563%26group%3Dcategories%26type%3DString%26operator%3Dis%26values%255B0%255D%3Doauth%26dateValue%255Btype%255D%3DSINCE). ### Eligibility events -Read more on each of these events on the [Amplitude event documentation for Benefits](https://data.amplitude.com/public-doc/hdhfmlby2e?categories=id%3D1702329975970%26group%3Dcategories%26type%3DString%26operator%3Dis%26values%255B0%255D%3Deligibility%26dateValue%255Btype%255D%3DSINCE) +These events track the progress of a user choosing an eligibility verifier and completing eligibility verification. + +- returned eligibility +- selected eligibility verifier +- started eligibility + +Read more on each of these events on the [Amplitude event documentation for Benefits, filtered by Eligibility](https://data.amplitude.com/public-doc/hdhfmlby2e?categories=id%3D1702329975970%26group%3Dcategories%26type%3DString%26operator%3Dis%26values%255B0%255D%3Deligibility%26dateValue%255Btype%255D%3DSINCE). ### Enrollment events -Read more on each of these events on the [Amplitude event documentation for Benefits](https://data.amplitude.com/public-doc/hdhfmlby2e?categories=id%3D1702329910563%26group%3Dcategories%26type%3DString%26operator%3Dis%26values%255B0%255D%3Denrollment%26dateValue%255Btype%255D%3DSINCE) +These events track the progress of a user who has successfully verified their eligibility and is enrolling their payment card with the system. + +- closed payment connection (e.g. Littlepay) +- returned enrollment +- started payment connection (e.g. Littlepay) + +Read more on each of these events on the [Amplitude event documentation for Benefits, filtered by Enrollment](https://data.amplitude.com/public-doc/hdhfmlby2e?categories=id%3D1702329910563%26group%3Dcategories%26type%3DString%26operator%3Dis%26values%255B0%255D%3Denrollment%26dateValue%255Btype%255D%3DSINCE). ## Key metrics -- Number of users who successfully completed authentication: Users who `started sign in`, `finished sign in` -- Number of users who successfully completed eligibility and received a status of True: Users who `selected eligibility verifier`, `started eligibility`, `returned eligibility` with a status of `True` -- Numbers of users who successfully completed enrollment: Users who `started payment connection`, `closed payment connection` and `returned enrollment` with a status of `Success` +Various key metrics are collected and analyzed, including: + +- **Number of users who successfully completed authentication**: Users who `started sign in`, `finished sign in` +- **Number of users who successfully verified eligibility**: Users who completed the above and `selected eligibility verifier`, `started eligibility`, `returned eligibility` with a status of `True` +- **Numbers of users who successfully completed enrollment**: Users who completed all of the above and `started payment connection`, `closed payment connection` and `returned enrollment` with a status of `Success` From 488536c77a18b070876a345391d381c5d863c472 Mon Sep 17 00:00:00 2001 From: Machiko Yasuda Date: Mon, 11 Dec 2023 22:00:00 +0000 Subject: [PATCH 15/71] docs(analytics): add user prop sentence --- docs/product-and-design/analytics.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/product-and-design/analytics.md b/docs/product-and-design/analytics.md index f6f7fd621..0bfb92c11 100644 --- a/docs/product-and-design/analytics.md +++ b/docs/product-and-design/analytics.md @@ -11,6 +11,8 @@ See the [Amplitude analytics code on GitHub](https://github.com/cal-itp/benefits ## User information collected +A combination of default and application-specific custom user properties are collected for each user who visits Cal-ITP Benefits. + ### Default Amplitude user properties collected - Platform From daf646e539835492ea213fad1968de84bbbd57cd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 12 Dec 2023 21:46:15 +0000 Subject: [PATCH 16/71] chore(deps-dev): bump sentry-sdk from 1.38.0 to 1.39.0 Bumps [sentry-sdk](https://github.com/getsentry/sentry-python) from 1.38.0 to 1.39.0. - [Release notes](https://github.com/getsentry/sentry-python/releases) - [Changelog](https://github.com/getsentry/sentry-python/blob/master/CHANGELOG.md) - [Commits](https://github.com/getsentry/sentry-python/compare/1.38.0...1.39.0) --- updated-dependencies: - dependency-name: sentry-sdk dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 6fd1054ac..c8a70a287 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -12,7 +12,7 @@ dependencies = [ "django-csp==3.7", "eligibility-api==2023.9.1", "requests==2.31.0", - "sentry-sdk==1.38.0", + "sentry-sdk==1.39.0", "six==1.16.0", ] From c8176ce0e821f66ec9228c72650282760d5b0348 Mon Sep 17 00:00:00 2001 From: Andy Walker Date: Tue, 12 Dec 2023 16:33:28 -0800 Subject: [PATCH 17/71] docs: Update README.md - Added a product mockup (image) - Added a hyperlink to the Benefits app in prod - Slight adjustments to terms and language in the description I'm not sure if an image is appropriate for a README file. I was planning to propose we add an image in the documentation, but thought I'd get input on having one here. --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index ec0dd1f00..256d59885 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,7 @@ # Benefits +![Cal-ITP Benefits - Landing - Laptop+Mobile](https://github.com/cal-itp/benefits/assets/6279581/3f5c558b-ad45-49cd-bb51-b230c625837b) -Cal-ITP Benefits is an application that enables automated eligibility verification and enrollment for transit benefits onto customers’ existing contactless bank (credit/debit) cards. +Cal-ITP Benefits is a web application that enables digital eligibility verification and enrollment for transit benefits onto transit riders’ existing contactless debit and credit cards. View the technical documentation online: From bd94b59de0ea4eae096a2cd0973d3addc6f85cbb Mon Sep 17 00:00:00 2001 From: Machiko Yasuda Date: Wed, 13 Dec 2023 19:31:40 +0000 Subject: [PATCH 18/71] docs(analytics): add links, supplemental sentence --- docs/product-and-design/analytics.md | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/docs/product-and-design/analytics.md b/docs/product-and-design/analytics.md index 0bfb92c11..f6cc8a4c3 100644 --- a/docs/product-and-design/analytics.md +++ b/docs/product-and-design/analytics.md @@ -1,20 +1,24 @@ # Analytics -The Cal-ITP Benefits application uses Amplitude to collect specific user properties and event data to analyze application usage. +The [Cal-ITP Benefits application](https://benefits.calitp.org/) uses [Amplitude](https://amplitude.com/) to collect specific user and event data properties to analyze application usage. ## Information not collected -- IP Address +The following user attributes are *not* collected: + +- IP address - Designated Market Area (DMA) See the [Amplitude analytics code on GitHub](https://github.com/cal-itp/benefits/blob/dev/benefits/core/templates/core/includes/analytics.html#L30). ## User information collected -A combination of default and application-specific custom user properties are collected for each user who visits Cal-ITP Benefits. +A combination of default and application-specific custom user properties are collected for each user who visits the [Cal-ITP Benefits](https://benefits.calitp.org/) application. ### Default Amplitude user properties collected +The following attributes are collected from the browser of every user who visits the application, provided the browser does not block the tracking library: + - Platform - Device type - Device family @@ -32,11 +36,13 @@ Read more about each property on the [Amplitude documentation](https://help.ampl ### Custom user properties collected +The following custom user attributes are collected when the user performs specific actions on the application, like selecing an eligibility type or transit agency: + | Custom user property | Description | Example value | | ---------------------- | ---------------------------------- | ----------------------------------------------------------------------------------------------------------------- | | `eligibility_types` | Eligibility type chosen by user  | `[veteran]` | | `eligibility_verifier` | Eligibility verifier used by user  | `VA.gov - Veteran (MST)` | -| `referrer` | URL that the event came from  | https://benefits.calitp.org/eligibility/start | +| `referrer` | URL that the event came from  | [https://benefits.calitp.org/eligibility/start](https://benefits.calitp.org/eligibility/start) | | `referring_domain` | Domain that the event came from  | `benefits.calitp.org` | | `transit_agency` | Agency chosen by the user  | `Monterey-Salinas Transit` | | `user_agent` | User's browser agent  | `Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36` | From 810bc3f5af82d01cd5ec65f4d4010572149ddfcf Mon Sep 17 00:00:00 2001 From: Machiko Yasuda Date: Wed, 13 Dec 2023 19:43:38 +0000 Subject: [PATCH 19/71] docs(readme): add links, months --- docs/README.md | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/docs/README.md b/docs/README.md index 4cde1693a..2c105852c 100644 --- a/docs/README.md +++ b/docs/README.md @@ -22,21 +22,21 @@ The application is accessible to the public at [benefits.calitp.org](https://ben The following California transit agencies have launched Cal-ITP Benefits for their riders, with the following enrollment pathway options: -| Transit agency | Older adults | Agency card | Veterans | Launch year | -| ---------------------------------------- | ------------ | ------------------------ | -------- | ----------- | -| **Monterey-Salinas Transit** | Live | Live | Live | 2022 | -| **Santa Barbara MTD** | Live | In production validation |   | 2023 | -| **Sacramento Regional Transit District** | In test |   |   |   | +| Transit agency | Older adults | Agency card | Veterans | Initial agency launch | +| ----------------------------------------------- | ------------ | ----------- | -------- | --------------------- | +| **Monterey-Salinas Transit** | Live | Live | Live | 5/2021 | +| **Santa Barbara Metropolitan Transit District** | Live | In test |   | 10/2023 | +| **Sacramento Regional Transit District** | In test |   |   |   | ### Supported enrollment pathways The Cal-ITP Benefits app supports the following enrollment pathways that uses the corresponding eligibility verification methods: -| Enrollment pathway | Eligibility verification | Status | Launch year | -| -------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------ | ----------- | -| [**Older adults**](/benefits/enrollment-pathways/older-adults) | [Login.gov IAL2](https://developers.login.gov/attributes/) | Live | 2022 | -| [**Agency cards**](/benefits/enrollment-pathways/agency-cards) | [Eligibility API](https://docs.calitp.org/eligibility-api/specification/) | Live | 2022 | -| [**Veterans**](/benefits/enrollment-pathways/veterans) | [Veteran Confirmation API](https://developer.va.gov/explore/api/veteran-confirmation) | Live | 2023 | +| Enrollment pathway | Eligibility verification | Status | Launch | +| -------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------ | --------------------------------------------------------------------- | +| [**Older adults**](/benefits/enrollment-pathways/older-adults) | [Login.gov IAL2](https://developers.login.gov/attributes/) | Live | [8/2022](https://github.com/cal-itp/benefits/releases/tag/2022.08.1) | +| [**Agency cards**](/benefits/enrollment-pathways/agency-cards) | [Eligibility API](https://docs.calitp.org/eligibility-api/specification/) | Live | [11/2022](https://github.com/cal-itp/benefits/releases/tag/2022.11.1) | +| [**Veterans**](/benefits/enrollment-pathways/veterans) | [Veteran Confirmation API](https://developer.va.gov/explore/api/veteran-confirmation) | Live | [9/2023](https://github.com/cal-itp/benefits/releases/tag/2023.09.1) | Read more about each [enrollment pathway](/benefits/enrollment-pathways/). From c7b4dddc9545a86f1ae39a54837daa7861040d7a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 13 Dec 2023 21:56:36 +0000 Subject: [PATCH 20/71] chore(deps): bump github/codeql-action from 2 to 3 Bumps [github/codeql-action](https://github.com/github/codeql-action) from 2 to 3. - [Release notes](https://github.com/github/codeql-action/releases) - [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md) - [Commits](https://github.com/github/codeql-action/compare/v2...v3) --- updated-dependencies: - dependency-name: github/codeql-action dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/codeql.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 747a33f70..82d93655f 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -33,7 +33,7 @@ jobs: uses: actions/checkout@v4 - name: Initialize CodeQL - uses: github/codeql-action/init@v2 + uses: github/codeql-action/init@v3 with: languages: ${{ matrix.language }} # If you wish to specify custom queries, you can do so here or in a config file. @@ -42,4 +42,4 @@ jobs: # queries: ./path/to/local/query, your-org/your-repo/queries@main - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@v2 + uses: github/codeql-action/analyze@v3 From 139609fd6050ef97991398fc9d4709d4aa9ab4cf Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 13 Dec 2023 21:56:42 +0000 Subject: [PATCH 21/71] chore(deps): bump dawidd6/action-download-artifact from 2 to 3 Bumps [dawidd6/action-download-artifact](https://github.com/dawidd6/action-download-artifact) from 2 to 3. - [Release notes](https://github.com/dawidd6/action-download-artifact/releases) - [Commits](https://github.com/dawidd6/action-download-artifact/compare/v2...v3) --- updated-dependencies: - dependency-name: dawidd6/action-download-artifact dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/mkdocs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/mkdocs.yml b/.github/workflows/mkdocs.yml index 0da72978b..c5499b43b 100644 --- a/.github/workflows/mkdocs.yml +++ b/.github/workflows/mkdocs.yml @@ -26,7 +26,7 @@ jobs: uses: actions/checkout@v4 - name: Download coverage report - uses: dawidd6/action-download-artifact@v2 + uses: dawidd6/action-download-artifact@v3 with: workflow: tests-pytest.yml branch: dev From a5c63c54228209d94124f0725468ef79820da1f3 Mon Sep 17 00:00:00 2001 From: Machiko Yasuda Date: Wed, 13 Dec 2023 22:33:35 +0000 Subject: [PATCH 22/71] docs: add qa manual test scripts --- docs/tests/.pages | 3 +- docs/tests/{README.md => automated-tests.md} | 0 docs/tests/manual-tests.md | 65 ++++++++++++++++++++ 3 files changed, 67 insertions(+), 1 deletion(-) rename docs/tests/{README.md => automated-tests.md} (100%) create mode 100644 docs/tests/manual-tests.md diff --git a/docs/tests/.pages b/docs/tests/.pages index 0e81fde48..ce4abbb86 100644 --- a/docs/tests/.pages +++ b/docs/tests/.pages @@ -1,3 +1,4 @@ nav: - - README.md + - Automated tests: automated-tests.md + - Manual tests: manual-tests.md - Coverage report: ./tests/coverage diff --git a/docs/tests/README.md b/docs/tests/automated-tests.md similarity index 100% rename from docs/tests/README.md rename to docs/tests/automated-tests.md diff --git a/docs/tests/manual-tests.md b/docs/tests/manual-tests.md new file mode 100644 index 000000000..fd9f762cd --- /dev/null +++ b/docs/tests/manual-tests.md @@ -0,0 +1,65 @@ +# Manual tests + +This page lists manual testing scripts for various flows. + +## Getting started: Using test credentials + +In order to fully test the app, you will need to use test credentials, which are available here: [Benefits Test Data](https://docs.google.com/document/d/1bFynuiLy9POXYEYnLVEQJpAm1TVqlappN9lU9ev3Bvg/edit?usp=sharing). + +> **Important**: Please do not use your personal accounts for Login.gov, ID.me, etc. to complete your review. + +### Login.gov and Veteran Confirmation API + +To test the Login.gov (Older adult) and Veteran Confirmation API (Veteran) enrollment pathway flows, you will need an e-mail address, a real cell phone and test account `yml` files from the [Benefits Test Data document](https://docs.google.com/document/d/1bFynuiLy9POXYEYnLVEQJpAm1TVqlappN9lU9ev3Bvg/edit#heading=h.t61g222qmr19). + +Read [the Login.gov Testing identity proofing documentation](https://developers.login.gov/testing/#testing-identity-proofing) for complete instructions. In summary, once you click **Get started with Login.gov**, follow these instructions: + +1. Before you get started, download the `proofing-senior.yml` (or any other `yml` file for the specific user you are testing) from the [Benefits Test Data document](https://docs.google.com/document/d/1bFynuiLy9POXYEYnLVEQJpAm1TVqlappN9lU9ev3Bvg/edit#heading=h.t61g222qmr19). For example, if you are testing the Veteran flow, or a non-senior flow, download the `proofing-veteran.yml` or `proofing-nonsenior.yml` files respectively. +1. Click **Create an account**. +1. Create a test email address, like `yourname+older_adult@compiler.la`. [Gmail supports adding suffixes to your email address](https://support.google.com/a/users/answer/9282734?visit_id=638381024326725285-629188737&rd=1#email-address-variation). +1. Select **English (default)** and check **I read and accept the Login.gov Rules of Use**. +1. Check your email for a confirmation link and click it. +1. Go through the password and authentication method setup flows. Make sure to select **Text or voice message**. Selecting **Backup codes** is useful if you plan to use this account again. Make sure to save your password, as you will need to enter it at the very end. +1. Enter your real cell phone number. +1. Check your text messages for a message from Login.gov. The message should specify `idp.int.identitysandbox.gov`. +1. Enter the code into the browser. +1. Save the backup codes, if selected. +1. Click **Continue** until you reach the `How would you like to add your ID?` part of the flow. +1. Click **Upload photos**. +1. Upload the `.yml` files you downloaded in the first step for both the front and back of the ID. Click **Continue**. +1. For **Enter your Social Security number**, enter a number that starts with `900` or `666`. **DO NOT ENTER YOUR PERSONAL SOCIAL SECURITY NUMBER.** +1. At this point, the **Verify your information** page should show the data you have in the `.yml` file you uploaded. Double-check that the age (date of birth) is accurate. +1. Verify your phone again. +1. Re-enter your password. You should be redirected back to the Benefits application. + +### Agency cards + +To test the agency card enrollment pathway, use the following test credentials: + +- [Courtesy Cards (MST)](https://docs.google.com/document/d/1bFynuiLy9POXYEYnLVEQJpAm1TVqlappN9lU9ev3Bvg/edit#heading=h.l2jcqsl4s6rh) +- [Mobility Pass (SBMTD)](https://docs.google.com/document/d/1bFynuiLy9POXYEYnLVEQJpAm1TVqlappN9lU9ev3Bvg/edit#heading=h.rkuhoc19aku7) + +### Littlepay + +To test the Littlepay card enrollment flow, use the test Visa credentials in the [Benefits Test Data document](https://docs.google.com/document/d/1bFynuiLy9POXYEYnLVEQJpAm1TVqlappN9lU9ev3Bvg/edit#heading=h.6l8f6lihq1vz), along with any fake name, any CVV and an expiration date in the future. + +## Keyboard testing + +Keyboard testing refers to test the app on a desktop/laptop machine _without_ using a mouse/trackpad. To do so, use Tab to focus on a button or link, and Enter to select a button or link. + +Make sure: + +- All links and buttons have a visible indication that the targeted item is focused. +- All modals close by pressing Escape. +- The skip nav, a link with the text `Skip to main content` / `Saltar al contenido principal` should appear on the first tab press. + +## Spanish translation testing + +1. Open the [test environment Benefits application](https://test-benefits.calitp.org/) in the test environment using a supported browser. +1. Click the **Español** button on the right side of the application header, to switch the application language to Spanish. +1. Click **Elija su Proveedor** and choose **Monterey-Salinas Transit** as your transit agency. +1. Follow the **Adulto mayor / Older adult** enrollment pathway to completion using [test data](https://docs.google.com/document/d/1bFynuiLy9POXYEYnLVEQJpAm1TVqlappN9lU9ev3Bvg/edit?usp=sharing). You will need a cell phone, a test Login.gov account and test Littlepay card credentials. +1. Follow the **Veterano de EE. UU. / Veterans** enrollment pathway to completion using [test data](https://docs.google.com/document/d/1bFynuiLy9POXYEYnLVEQJpAm1TVqlappN9lU9ev3Bvg/edit?usp=sharing). You will need a cell phone, a test Login.gov account and test Littlepay card credentials. +1. Follow the **Tarjeta de cortesía de MST / Courtesy Card** pathway to completion using [test data](https://docs.google.com/document/d/1bFynuiLy9POXYEYnLVEQJpAm1TVqlappN9lU9ev3Bvg/edit?usp=sharing). You will need test Courtesy Card credentials and test Littlepay card credentials. +1. Click **Ayuda** in the footer to review the Help page. +1. Jot down any issues or notes during the review. Highlight any proposed changes on the **forTranslation** tab in the [Cal-ITP Benefits Application Copy](https://docs.google.com/spreadsheets/d/1_Gi_YbJr4ZuXCOsnOWaewvHqUO1nC1nKqiVDHvw0118/edit?usp=sharing) spreadsheet. Use the comment feature in Google Sheets to share your feedback. Please mention Andy Walker and Machiko Yasuda in each comment. From 62e1b8f76a43946b68905a5fe357623efb94e6f5 Mon Sep 17 00:00:00 2001 From: Machiko Yasuda Date: Wed, 13 Dec 2023 23:21:01 +0000 Subject: [PATCH 23/71] fix: typo --- docs/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/README.md b/docs/README.md index 2c105852c..0a1d2dd9a 100644 --- a/docs/README.md +++ b/docs/README.md @@ -30,7 +30,7 @@ The following California transit agencies have launched Cal-ITP Benefits for the ### Supported enrollment pathways -The Cal-ITP Benefits app supports the following enrollment pathways that uses the corresponding eligibility verification methods: +The Cal-ITP Benefits app supports the following enrollment pathways that use the corresponding eligibility verification methods: | Enrollment pathway | Eligibility verification | Status | Launch | | -------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------ | --------------------------------------------------------------------- | From d1281e88476c816d90f805f65eb0d67ec44ff11c Mon Sep 17 00:00:00 2001 From: machiko Date: Wed, 13 Dec 2023 19:26:32 -0800 Subject: [PATCH 24/71] Update docs/README.md --- docs/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/README.md b/docs/README.md index 0a1d2dd9a..115de838e 100644 --- a/docs/README.md +++ b/docs/README.md @@ -24,7 +24,7 @@ The following California transit agencies have launched Cal-ITP Benefits for the | Transit agency | Older adults | Agency card | Veterans | Initial agency launch | | ----------------------------------------------- | ------------ | ----------- | -------- | --------------------- | -| **Monterey-Salinas Transit** | Live | Live | Live | 5/2021 | +| **Monterey-Salinas Transit** | Live | Live | Live | 05/2021 | | **Santa Barbara Metropolitan Transit District** | Live | In test |   | 10/2023 | | **Sacramento Regional Transit District** | In test |   |   |   | From 4468bafce04f37baaab2b020ab184959854a428d Mon Sep 17 00:00:00 2001 From: machiko Date: Wed, 13 Dec 2023 19:26:58 -0800 Subject: [PATCH 25/71] Update docs/README.md --- docs/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/README.md b/docs/README.md index 115de838e..c598cf4e2 100644 --- a/docs/README.md +++ b/docs/README.md @@ -34,7 +34,7 @@ The Cal-ITP Benefits app supports the following enrollment pathways that use the | Enrollment pathway | Eligibility verification | Status | Launch | | -------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------ | --------------------------------------------------------------------- | -| [**Older adults**](/benefits/enrollment-pathways/older-adults) | [Login.gov IAL2](https://developers.login.gov/attributes/) | Live | [8/2022](https://github.com/cal-itp/benefits/releases/tag/2022.08.1) | +| [**Older adults**](/benefits/enrollment-pathways/older-adults) | [Login.gov IAL2](https://developers.login.gov/attributes/) | Live | [08/2022](https://github.com/cal-itp/benefits/releases/tag/2022.08.1) | | [**Agency cards**](/benefits/enrollment-pathways/agency-cards) | [Eligibility API](https://docs.calitp.org/eligibility-api/specification/) | Live | [11/2022](https://github.com/cal-itp/benefits/releases/tag/2022.11.1) | | [**Veterans**](/benefits/enrollment-pathways/veterans) | [Veteran Confirmation API](https://developer.va.gov/explore/api/veteran-confirmation) | Live | [9/2023](https://github.com/cal-itp/benefits/releases/tag/2023.09.1) | From 7b9d26a17e2019b8a4e67dd1cbcbd8007c49dc26 Mon Sep 17 00:00:00 2001 From: machiko Date: Wed, 13 Dec 2023 19:27:29 -0800 Subject: [PATCH 26/71] Update docs/README.md --- docs/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/README.md b/docs/README.md index c598cf4e2..546679e8c 100644 --- a/docs/README.md +++ b/docs/README.md @@ -36,7 +36,7 @@ The Cal-ITP Benefits app supports the following enrollment pathways that use the | -------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------ | --------------------------------------------------------------------- | | [**Older adults**](/benefits/enrollment-pathways/older-adults) | [Login.gov IAL2](https://developers.login.gov/attributes/) | Live | [08/2022](https://github.com/cal-itp/benefits/releases/tag/2022.08.1) | | [**Agency cards**](/benefits/enrollment-pathways/agency-cards) | [Eligibility API](https://docs.calitp.org/eligibility-api/specification/) | Live | [11/2022](https://github.com/cal-itp/benefits/releases/tag/2022.11.1) | -| [**Veterans**](/benefits/enrollment-pathways/veterans) | [Veteran Confirmation API](https://developer.va.gov/explore/api/veteran-confirmation) | Live | [9/2023](https://github.com/cal-itp/benefits/releases/tag/2023.09.1) | +| [**Veterans**](/benefits/enrollment-pathways/veterans) | [Veteran Confirmation API](https://developer.va.gov/explore/api/veteran-confirmation) | Live | [09/2023](https://github.com/cal-itp/benefits/releases/tag/2023.09.1) | Read more about each [enrollment pathway](/benefits/enrollment-pathways/). From 6af39c6330d14f00a0d34d9b3c09e7d1c952840b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 14 Dec 2023 21:27:22 +0000 Subject: [PATCH 27/71] chore(deps-dev): bump sentry-sdk from 1.39.0 to 1.39.1 Bumps [sentry-sdk](https://github.com/getsentry/sentry-python) from 1.39.0 to 1.39.1. - [Release notes](https://github.com/getsentry/sentry-python/releases) - [Changelog](https://github.com/getsentry/sentry-python/blob/master/CHANGELOG.md) - [Commits](https://github.com/getsentry/sentry-python/compare/1.39.0...1.39.1) --- updated-dependencies: - dependency-name: sentry-sdk dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index c8a70a287..87f6e5283 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -12,7 +12,7 @@ dependencies = [ "django-csp==3.7", "eligibility-api==2023.9.1", "requests==2.31.0", - "sentry-sdk==1.39.0", + "sentry-sdk==1.39.1", "six==1.16.0", ] From cb8db9e62b024b49fb28d3ab9a67891c1154cf0a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 14 Dec 2023 21:33:46 +0000 Subject: [PATCH 28/71] chore(deps): bump actions/upload-artifact from 3 to 4 Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 3 to 4. - [Release notes](https://github.com/actions/upload-artifact/releases) - [Commits](https://github.com/actions/upload-artifact/compare/v3...v4) --- updated-dependencies: - dependency-name: actions/upload-artifact dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/tests-cypress.yml | 2 +- .github/workflows/tests-pytest.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/tests-cypress.yml b/.github/workflows/tests-cypress.yml index d412423a2..17420a0c0 100644 --- a/.github/workflows/tests-cypress.yml +++ b/.github/workflows/tests-cypress.yml @@ -27,7 +27,7 @@ jobs: working-directory: tests/cypress wait-on: http://localhost:8000/healthcheck - - uses: actions/upload-artifact@v3 + - uses: actions/upload-artifact@v4 if: failure() with: name: cypress-screenshots diff --git a/.github/workflows/tests-pytest.yml b/.github/workflows/tests-pytest.yml index 86329cbac..351e014c8 100644 --- a/.github/workflows/tests-pytest.yml +++ b/.github/workflows/tests-pytest.yml @@ -38,7 +38,7 @@ jobs: run: ./tests/pytest/run.sh - name: Upload coverage report - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: coverage-report path: benefits/static/coverage From 88c0524dca9a25815b32d5eaaccdb04c17fee498 Mon Sep 17 00:00:00 2001 From: Machiko Yasuda Date: Thu, 14 Dec 2023 21:35:45 +0000 Subject: [PATCH 29/71] fix(copy): fix NIST typo in English. Spanish typo remains. --- benefits/core/templates/core/help.html | 2 +- .../templates/eligibility/includes/modal--login-gov-help.html | 2 +- benefits/locale/en/LC_MESSAGES/django.po | 4 ++-- benefits/locale/es/LC_MESSAGES/django.po | 4 ++-- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/benefits/core/templates/core/help.html b/benefits/core/templates/core/help.html index d2b3993be..53adc1569 100644 --- a/benefits/core/templates/core/help.html +++ b/benefits/core/templates/core/help.html @@ -87,7 +87,7 @@

{% translate "What is Login.gov?"

{% translate "Why is Cal-ITP Benefits using Login.gov?" %}

{% blocktranslate trimmed %} - Login.gov uses two-factor authentication, and stronger passwords, that meet new National Institute of Standards of + Login.gov uses two-factor authentication, and stronger passwords, that meet new National Institute of Standards and Technology requirements for secure validation and verification. By using Login.gov, you’ll get an extra layer of security to help protect your account against password compromises. {% endblocktranslate %} diff --git a/benefits/eligibility/templates/eligibility/includes/modal--login-gov-help.html b/benefits/eligibility/templates/eligibility/includes/modal--login-gov-help.html index 083b1b542..f37f0d81f 100644 --- a/benefits/eligibility/templates/eligibility/includes/modal--login-gov-help.html +++ b/benefits/eligibility/templates/eligibility/includes/modal--login-gov-help.html @@ -20,7 +20,7 @@

{% translate "What is Login.gov?" %}

{% translate "Why is Cal-ITP Benefits using Login.gov?" %}

{% blocktranslate trimmed %} - Login.gov uses two-factor authentication, and stronger passwords, that meet new National Institute of Standards of + Login.gov uses two-factor authentication, and stronger passwords, that meet new National Institute of Standards and Technology requirements for secure validation and verification. By using Login.gov, you’ll get an extra layer of security to help protect your account against password compromises. {% endblocktranslate %} diff --git a/benefits/locale/en/LC_MESSAGES/django.po b/benefits/locale/en/LC_MESSAGES/django.po index 0457ee0a3..45bc64599 100644 --- a/benefits/locale/en/LC_MESSAGES/django.po +++ b/benefits/locale/en/LC_MESSAGES/django.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Report-Msgid-Bugs-To: https://github.com/cal-itp/benefits/issues \n" -"POT-Creation-Date: 2023-11-16 23:40+0000\n" +"POT-Creation-Date: 2023-12-14 21:35+0000\n" "Language: English\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -119,7 +119,7 @@ msgstr "" msgid "" "Login.gov uses two-factor authentication, and stronger passwords, that meet " -"new National Institute of Standards of Technology requirements for secure " +"new National Institute of Standards and Technology requirements for secure " "validation and verification. By using Login.gov, you’ll get an extra layer " "of security to help protect your account against password compromises." msgstr "" diff --git a/benefits/locale/es/LC_MESSAGES/django.po b/benefits/locale/es/LC_MESSAGES/django.po index e84abd0a0..09b24ec02 100644 --- a/benefits/locale/es/LC_MESSAGES/django.po +++ b/benefits/locale/es/LC_MESSAGES/django.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Report-Msgid-Bugs-To: https://github.com/cal-itp/benefits/issues \n" -"POT-Creation-Date: 2023-11-16 23:40+0000\n" +"POT-Creation-Date: 2023-12-14 21:35+0000\n" "Language: Español\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -155,7 +155,7 @@ msgstr "¿Por qué Cal-ITP Benefits utiliza Login.gov?" msgid "" "Login.gov uses two-factor authentication, and stronger passwords, that meet " -"new National Institute of Standards of Technology requirements for secure " +"new National Institute of Standards and Technology requirements for secure " "validation and verification. By using Login.gov, you’ll get an extra layer " "of security to help protect your account against password compromises." msgstr "" From 75707fc06aa167a911d7e8f1da225b71dc782852 Mon Sep 17 00:00:00 2001 From: Machiko Yasuda Date: Fri, 15 Dec 2023 06:28:24 +0000 Subject: [PATCH 30/71] docs(sidebar): add Use cases to Product & Design section --- docs/product-and-design/.pages | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/product-and-design/.pages b/docs/product-and-design/.pages index 92f0c66b9..775845e36 100644 --- a/docs/product-and-design/.pages +++ b/docs/product-and-design/.pages @@ -1,5 +1,6 @@ nav: +- use-cases - analytics.md - copy-delivery.md - Design style guide: https://www.figma.com/proto/SeSd3LaLd6WkbEYhmtKpO3/Benefits-(IAL2-Login.gov)?node-id=4942%3A17385&scaling=scale-down&page-id=4890%3A17182 From 3e8eb3859dbc352cc304f0dddd48b5839269b681 Mon Sep 17 00:00:00 2001 From: Machiko Yasuda Date: Fri, 15 Dec 2023 06:29:13 +0000 Subject: [PATCH 31/71] docs(sidebar): rename to Enrollment use cases; fix indented bullets --- .../use-cases/enrollment-use-cases.md} | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) rename docs/{use-cases/system-use-cases.md => product-and-design/use-cases/enrollment-use-cases.md} (87%) diff --git a/docs/use-cases/system-use-cases.md b/docs/product-and-design/use-cases/enrollment-use-cases.md similarity index 87% rename from docs/use-cases/system-use-cases.md rename to docs/product-and-design/use-cases/enrollment-use-cases.md index b7089bc56..51213b409 100644 --- a/docs/use-cases/system-use-cases.md +++ b/docs/product-and-design/use-cases/enrollment-use-cases.md @@ -23,8 +23,9 @@ The use cases documented on this page focus on how the system is supposed to wor **Alternate flows**: - 3a. Payment processor returns with one of the following errors: card verification failed, token is invalid, or general server error - - 3a1. Transit rider chooses to retry, starting back at initiating the enrollment phase - - 3b1. Transit rider leaves the Benefits app + + - 3a1. Transit rider chooses to retry, starting back at initiating the enrollment phase + - 3b1. Transit rider leaves the Benefits app **Postconditions**: From e05f8a3636ecec2a0fb801c90ecea0d027447f4f Mon Sep 17 00:00:00 2001 From: Machiko Yasuda Date: Fri, 15 Dec 2023 06:32:55 +0000 Subject: [PATCH 32/71] docs(fix): fix new use-case path --- mkdocs.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/mkdocs.yml b/mkdocs.yml index d520b6187..2e6881842 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -38,9 +38,7 @@ plugins: "deployment/azure.md": "deployment/infrastructure.md" "getting-started/development.md": "development/README.md" "getting-started/docker-dynamic-ports.md": "development/docker-dynamic-ports.md" - "students.md": "use-cases/college.md" - "use-cases/courtesy-cards.md": "use-cases/agency-cards.md" - "use-cases/students.md": "use-cases/college.md" + "use-cases/courtesy-cards.md": "enrollment-pathways/agency-cards.md" extra_css: - https://use.fontawesome.com/releases/v5.13.0/css/all.css From 44b6d26732d4ae8fa16f026888a92adad9b97caf Mon Sep 17 00:00:00 2001 From: Angela Tran Date: Wed, 20 Dec 2023 12:37:18 -0600 Subject: [PATCH 33/71] fix(server): remove unnecessary configuration of FLASK_APP the reason that server was not starting up is because this needed to be changed to 'eligibility_server.app:app'. actually, this environment variable is already configured in the Dockerfile for eligibility-server, so there is no reason for Benefits to configure it. --- .devcontainer/server/.env.server | 1 - 1 file changed, 1 deletion(-) diff --git a/.devcontainer/server/.env.server b/.devcontainer/server/.env.server index 2f1c56123..529195460 100644 --- a/.devcontainer/server/.env.server +++ b/.devcontainer/server/.env.server @@ -1,2 +1 @@ ELIGIBILITY_SERVER_SETTINGS=/.devcontainer/server/settings.py -FLASK_APP=eligibility_server/app.py From 39dae9e0fd683de3f1efc38fbf4060bbbc29576e Mon Sep 17 00:00:00 2001 From: Machiko Yasuda Date: Mon, 18 Dec 2023 23:06:07 +0000 Subject: [PATCH 34/71] docs(config): necessary templates for new agencies --- docs/configuration/transit-agency.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/docs/configuration/transit-agency.md b/docs/configuration/transit-agency.md index 466eb84df..c105c2fd8 100644 --- a/docs/configuration/transit-agency.md +++ b/docs/configuration/transit-agency.md @@ -11,6 +11,15 @@ Note that a `TransitAgency` model requires: - a `PaymentProcessor` for enrolling the user's contactless card for discounts - an `info_url` and `phone` for users to contact customer service - an SVG or PNG file of the transit agency's logo +- HTML templates for various buttons, text and other user interface elements of the flow, including: + - `index_template`: _Required for agencies_ - Text for agency direct entry page + - `eligibility_index_template`: _Required for agencies_ - Text for Eligibility Index page + - `enrollment_success_template`: _Required for agencies_ - Text for Enrollment Success page + - `help_template`: _Required for agencies_ - Agency-specific help questions and answers + - `selection_label_template`: _Required for verifiers_ - Text and optional modals for the radio button form on the Eligibility Index page + - `start_template`: _Required for verifiers_ - Text and optional custom styles for call to action button on the Eligibility Start page + - `sign_out_button_template`: _Required for auth providers_ - Sign out link button, used on any page after sign in + - `sign_out_link_template`: _Required for auth providers_ - Sign out link text, used on any page after sign in Also note that these steps assume the transit agency is using Littlepay as their payment processor. Support for integration with [other payment processors](https://www.camobilitymarketplace.org/contracts/) may be added in the future. From a877ddc142b30ca8a9d58eb7cb28dbd365e6e34a Mon Sep 17 00:00:00 2001 From: Machiko Yasuda Date: Mon, 18 Dec 2023 21:47:25 +0000 Subject: [PATCH 35/71] docs(copy): first pass at terms & style guide --- docs/product-and-design/.pages | 1 + docs/product-and-design/copy-style.md | 46 +++++++++++++++++++++++++++ 2 files changed, 47 insertions(+) create mode 100644 docs/product-and-design/copy-style.md diff --git a/docs/product-and-design/.pages b/docs/product-and-design/.pages index 775845e36..6fbcf6eb0 100644 --- a/docs/product-and-design/.pages +++ b/docs/product-and-design/.pages @@ -3,4 +3,5 @@ nav: - use-cases - analytics.md - copy-delivery.md +- copy-style.md - Design style guide: https://www.figma.com/proto/SeSd3LaLd6WkbEYhmtKpO3/Benefits-(IAL2-Login.gov)?node-id=4942%3A17385&scaling=scale-down&page-id=4890%3A17182 diff --git a/docs/product-and-design/copy-style.md b/docs/product-and-design/copy-style.md new file mode 100644 index 000000000..796746cff --- /dev/null +++ b/docs/product-and-design/copy-style.md @@ -0,0 +1,46 @@ +# Copy terms and style + +Use the following terms and style rules for Benefits application English and Spanish copy. Refer to the [Cal-ITP Editorial Style Guide](https://docs.google.com/document/d/1yG2jc_aMPSGc2wqvazKGgFIeV-aDDDsJIuONhUg0MOI/edit) and [Language Matters: Cal-ITP Terminology](https://docs.google.com/document/d/1ud73Qaa7k6I5l8MwlQrZd8iOo7_3shZHy_gCxfAe0eY/edit#heading=h.keo0rpgsdx29) for further guidance. + +## Terms + +| Use | English | Spanish | Do not use | Usage | +| :------------------------------------------ | :-------------------------------------- | :------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| **agency card** | agency card | tarjeta de agencia | Agency Card (don't capitalize both words) |   | +| **benefit option** | benefit option | opción de beneficio |   |   | +| **Cal-ITP** | California Integrated Travel Project | California Integrated Travel Project (Proyecto Integrado de Viaje de California, o Cal-ITP por sus siglas en inglés) |   |   | +| **Cal-ITP Benefits** | Cal-ITP Benefits | Cal-ITP Benefits | Do not translate Cal-ITP Benefits |   | +| **California Department of Transportation** | California Department of Transportation | Departamento de Transporte de California |   |   | +| **California Department of Technology** | California Department of Technology | Departamento de Tecnología de California |   |   | +| **connects** | connects | conecta |   |   | +| **contactless card** | contactless card | tarjeta sin contacto | payment card, cashless, tap-to-pay, touchless |   | +| **enroll** | enroll | inscribirse | apply |   | +| **enrollment process** | enrollment process | proceso de inscripción |   |   | +| **GitHub** | GitHub | GitHub | Github |   | +| **Littlepay** | Littlepay | Littlepay | LittlePay |   | +| **Older Adult** | Older Adult | adultos mayores | Senior |   | +| **public transportation** | public transportation | transporte público |   |   | +| **reduced fare** | reduced fare | tarifa reducida | discounted |   | +| **Social Security number** | Social Security number | número de Seguro Social | social security number |   | +| **state-issued ID card** | state-issued ID card | tarjeta de identificación emitida por el estado | driver's license |   | +| **tap to ride** | tap to ride | toque para viajar |   |   | +| **transit agency** | transit agency | agencia de tránsito | bus agency, light rail agency, transit authority | Refer to [Language Matters: Cal-ITP Terminology](https://docs.google.com/document/d/1ud73Qaa7k6I5l8MwlQrZd8iOo7_3shZHy_gCxfAe0eY/edit#heading=h.keo0rpgsdx29) | +| **transit benefit** | transit benefit | beneficio de tránsito | discount, fare discounts, reduced-fare | "Older adult transit benefit", "Veteran transit benefit" | +| **transit provider** | transit provider | proveedor de transporte |   |   | +| **US Veteran** | US Veteran | Veterano de EE. UU. | U.S. Veteran, US veteran | Note: This currently goes against [Cal-ITP Editorial Style Guide](https://docs.google.com/document/d/1yG2jc_aMPSGc2wqvazKGgFIeV-aDDDsJIuONhUg0MOI/edit) | +| **verify** | verify | verifique |   |   | + +## Style + +|   | Rule | Examples |   | +| :------------------------ | :----------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------ | :-------------- | +| **Capitalization** | Always sentence-case body text, headlines, questions on Help page. | Unable to confirm eligibility \| Cal-ITP Benefits |   | +| | In English, names of pages are capitalized. | Return Home | Previous Page | +| | In Spanish, names of pages are not capitalized. | Volver al inicio | Página anterior | +| | Refer to [Cal-ITP Editorial Style Guide](https://docs.google.com/document/d/1yG2jc_aMPSGc2wqvazKGgFIeV-aDDDsJIuONhUg0MOI/edit) |   |   | +| **Images, illustrations** | Always write an alt tag, unless Design determines the visual is purely decorative and has no substantive meaning. |   |   | +| **Links** | Never link to "here". Use a descriptive title for the page. |   |   | +| **Tense** | For Spanish, use usted/formal case for all copy. |   |   | +| **Numbers** | Refer to [Cal-ITP Editorial Style Guide](https://docs.google.com/document/d/1yG2jc_aMPSGc2wqvazKGgFIeV-aDDDsJIuONhUg0MOI/edit) |   |   | +| **Spacing** | Refer to [Cal-ITP Editorial Style Guide](https://docs.google.com/document/d/1yG2jc_aMPSGc2wqvazKGgFIeV-aDDDsJIuONhUg0MOI/edit) |   |   | +| **Punctuation** | Refer to [Cal-ITP Editorial Style Guide](https://docs.google.com/document/d/1yG2jc_aMPSGc2wqvazKGgFIeV-aDDDsJIuONhUg0MOI/edit) |   | From ac44d4d1a568c02a4c2c97c04cd897be51dbe43d Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Mon, 18 Dec 2023 18:07:50 +0000 Subject: [PATCH 36/71] chore(pre-commit): autoupdate hooks MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit updates: - [github.com/psf/black: 23.11.0 → 23.12.0](https://github.com/psf/black/compare/23.11.0...23.12.0) - [github.com/pre-commit/mirrors-prettier: v4.0.0-alpha.4 → v4.0.0-alpha.7](https://github.com/pre-commit/mirrors-prettier/compare/v4.0.0-alpha.4...v4.0.0-alpha.7) --- .pre-commit-config.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 1745d21b3..a26ec3ee4 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -34,7 +34,7 @@ repos: args: ["--maxkb=1500"] - repo: https://github.com/psf/black - rev: 23.11.0 + rev: 23.12.0 hooks: - id: black types: @@ -55,7 +55,7 @@ repos: files: .py$ - repo: https://github.com/pre-commit/mirrors-prettier - rev: v4.0.0-alpha.4 + rev: v4.0.0-alpha.7 hooks: - id: prettier types_or: [javascript, css] From dce116702d88c0a5bd66e6b895086a11c4ef3eae Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 20 Dec 2023 21:54:49 +0000 Subject: [PATCH 37/71] chore(deps-dev): bump authlib from 1.2.1 to 1.3.0 Bumps [authlib](https://github.com/lepture/authlib) from 1.2.1 to 1.3.0. - [Release notes](https://github.com/lepture/authlib/releases) - [Changelog](https://github.com/lepture/authlib/blob/master/docs/changelog.rst) - [Commits](https://github.com/lepture/authlib/compare/v1.2.1...v1.3.0) --- updated-dependencies: - dependency-name: authlib dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 87f6e5283..ffa359857 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -7,7 +7,7 @@ license = { file = "LICENSE" } classifiers = ["Programming Language :: Python :: 3 :: Only"] requires-python = ">=3.9" dependencies = [ - "Authlib==1.2.1", + "Authlib==1.3.0", "Django==4.2.7", "django-csp==3.7", "eligibility-api==2023.9.1", From 0f621a95cd0984ebcd2ffb1eecd79391920ebb50 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 14 Dec 2023 23:26:45 +0000 Subject: [PATCH 38/71] chore(deps-dev): bump django from 4.2.7 to 5.0 Bumps [django](https://github.com/django/django) from 4.2.7 to 5.0. - [Commits](https://github.com/django/django/compare/4.2.7...5.0) --- updated-dependencies: - dependency-name: django dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 87f6e5283..0c3a9e8ec 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -8,7 +8,7 @@ classifiers = ["Programming Language :: Python :: 3 :: Only"] requires-python = ">=3.9" dependencies = [ "Authlib==1.2.1", - "Django==4.2.7", + "Django==5.0", "django-csp==3.7", "eligibility-api==2023.9.1", "requests==2.31.0", From 132eb1ac73626505af541565768765f48d807c13 Mon Sep 17 00:00:00 2001 From: Machiko Yasuda Date: Thu, 14 Dec 2023 23:56:20 +0000 Subject: [PATCH 39/71] docs: update django to 5 --- bin/build.sh | 1 + docs/README.md | 8 ++++---- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/bin/build.sh b/bin/build.sh index e9af5c641..ae6555475 100755 --- a/bin/build.sh +++ b/bin/build.sh @@ -7,6 +7,7 @@ if [[ $(uname -m) == 'arm64' ]]; then # workaround for an issue in BuildKit causing dependent builds (specifically the dev image) to fail # https://github.com/docker/compose/issues/8449#issuecomment-1125761231 export DOCKER_BUILDKIT=0 + export COMPOSE_DOCKER_CLI_BUILD=0 fi docker compose build --pull client diff --git a/docs/README.md b/docs/README.md index 546679e8c..81c4da1d6 100644 --- a/docs/README.md +++ b/docs/README.md @@ -24,7 +24,7 @@ The following California transit agencies have launched Cal-ITP Benefits for the | Transit agency | Older adults | Agency card | Veterans | Initial agency launch | | ----------------------------------------------- | ------------ | ----------- | -------- | --------------------- | -| **Monterey-Salinas Transit** | Live | Live | Live | 05/2021 | +| **Monterey-Salinas Transit** | Live | Live | Live | 05/2021 | | **Santa Barbara Metropolitan Transit District** | Live | In test |   | 10/2023 | | **Sacramento Regional Transit District** | In test |   |   |   | @@ -34,15 +34,15 @@ The Cal-ITP Benefits app supports the following enrollment pathways that use the | Enrollment pathway | Eligibility verification | Status | Launch | | -------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------ | --------------------------------------------------------------------- | -| [**Older adults**](/benefits/enrollment-pathways/older-adults) | [Login.gov IAL2](https://developers.login.gov/attributes/) | Live | [08/2022](https://github.com/cal-itp/benefits/releases/tag/2022.08.1) | +| [**Older adults**](/benefits/enrollment-pathways/older-adults) | [Login.gov IAL2](https://developers.login.gov/attributes/) | Live | [08/2022](https://github.com/cal-itp/benefits/releases/tag/2022.08.1) | | [**Agency cards**](/benefits/enrollment-pathways/agency-cards) | [Eligibility API](https://docs.calitp.org/eligibility-api/specification/) | Live | [11/2022](https://github.com/cal-itp/benefits/releases/tag/2022.11.1) | -| [**Veterans**](/benefits/enrollment-pathways/veterans) | [Veteran Confirmation API](https://developer.va.gov/explore/api/veteran-confirmation) | Live | [09/2023](https://github.com/cal-itp/benefits/releases/tag/2023.09.1) | +| [**Veterans**](/benefits/enrollment-pathways/veterans) | [Veteran Confirmation API](https://developer.va.gov/explore/api/veteran-confirmation) | Live | [09/2023](https://github.com/cal-itp/benefits/releases/tag/2023.09.1) | Read more about each [enrollment pathway](/benefits/enrollment-pathways/). ## Technical details -`benefits` is a [Django 4][django] web application. The application talks to one or more [Eligibility Verification APIs](https://docs.calitp.org/eligibility-api/specification) or authentication providers. These APIs and the application are +`benefits` is a [Django 5][django] web application. The application talks to one or more [Eligibility Verification APIs](https://docs.calitp.org/eligibility-api/specification) or authentication providers. These APIs and the application are designed for privacy and security of user information: - The API communicates with signed and encrypted JSON Web Tokens containing only the most necessary of user data for the purpose of eligibility verification From 13bcb1b8b1cf78ce29ed035be8d9433e92f455df Mon Sep 17 00:00:00 2001 From: Machiko Yasuda Date: Thu, 14 Dec 2023 23:57:21 +0000 Subject: [PATCH 40/71] chore: undo local change --- bin/build.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/bin/build.sh b/bin/build.sh index ae6555475..e9af5c641 100755 --- a/bin/build.sh +++ b/bin/build.sh @@ -7,7 +7,6 @@ if [[ $(uname -m) == 'arm64' ]]; then # workaround for an issue in BuildKit causing dependent builds (specifically the dev image) to fail # https://github.com/docker/compose/issues/8449#issuecomment-1125761231 export DOCKER_BUILDKIT=0 - export COMPOSE_DOCKER_CLI_BUILD=0 fi docker compose build --pull client From 0abbf671f87835f369cac437c93ecbae256aa97b Mon Sep 17 00:00:00 2001 From: Angela Tran Date: Wed, 20 Dec 2023 23:41:47 +0000 Subject: [PATCH 41/71] chore: remove setting that Django 5.0 has removed --- benefits/settings.py | 1 - 1 file changed, 1 deletion(-) diff --git a/benefits/settings.py b/benefits/settings.py index fbd9e7e01..b73069faf 100644 --- a/benefits/settings.py +++ b/benefits/settings.py @@ -191,7 +191,6 @@ def _filter_empty(ls): LOCALE_PATHS = [os.path.join(BASE_DIR, "benefits", "locale")] USE_I18N = True -USE_L10N = True TIME_ZONE = "UTC" USE_TZ = True From 600f5835395d71bd2cd97409b972f084abfbc314 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Mon, 25 Dec 2023 18:02:48 +0000 Subject: [PATCH 42/71] chore(pre-commit): autoupdate hooks MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit updates: - [github.com/psf/black: 23.12.0 → 23.12.1](https://github.com/psf/black/compare/23.12.0...23.12.1) - [github.com/pre-commit/mirrors-prettier: v4.0.0-alpha.7 → v4.0.0-alpha.8](https://github.com/pre-commit/mirrors-prettier/compare/v4.0.0-alpha.7...v4.0.0-alpha.8) - [github.com/Riverside-Healthcare/djLint: v1.34.0 → v1.34.1](https://github.com/Riverside-Healthcare/djLint/compare/v1.34.0...v1.34.1) --- .pre-commit-config.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index a26ec3ee4..0ed0e283d 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -34,7 +34,7 @@ repos: args: ["--maxkb=1500"] - repo: https://github.com/psf/black - rev: 23.12.0 + rev: 23.12.1 hooks: - id: black types: @@ -55,12 +55,12 @@ repos: files: .py$ - repo: https://github.com/pre-commit/mirrors-prettier - rev: v4.0.0-alpha.7 + rev: v4.0.0-alpha.8 hooks: - id: prettier types_or: [javascript, css] - repo: https://github.com/Riverside-Healthcare/djLint - rev: v1.34.0 + rev: v1.34.1 hooks: - id: djlint-django From e8a468a02501cbd1b90ac3e6850e0e1386b9290c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 26 Dec 2023 21:31:36 +0000 Subject: [PATCH 43/71] chore(deps-dev): bump cypress from 13.6.1 to 13.6.2 in /tests/cypress Bumps [cypress](https://github.com/cypress-io/cypress) from 13.6.1 to 13.6.2. - [Release notes](https://github.com/cypress-io/cypress/releases) - [Changelog](https://github.com/cypress-io/cypress/blob/develop/CHANGELOG.md) - [Commits](https://github.com/cypress-io/cypress/compare/v13.6.1...v13.6.2) --- updated-dependencies: - dependency-name: cypress dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- tests/cypress/package-lock.json | 14 +++++++------- tests/cypress/package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/tests/cypress/package-lock.json b/tests/cypress/package-lock.json index f16798293..f84c166ab 100644 --- a/tests/cypress/package-lock.json +++ b/tests/cypress/package-lock.json @@ -9,7 +9,7 @@ "version": "1.0.0", "license": "AGPL-3.0-or-later", "devDependencies": { - "cypress": "^13.6.1" + "cypress": "^13.6.2" } }, "node_modules/@colors/colors": { @@ -536,9 +536,9 @@ } }, "node_modules/cypress": { - "version": "13.6.1", - "resolved": "https://registry.npmjs.org/cypress/-/cypress-13.6.1.tgz", - "integrity": "sha512-k1Wl5PQcA/4UoTffYKKaxA0FJKwg8yenYNYRzLt11CUR0Kln+h7Udne6mdU1cUIdXBDTVZWtmiUjzqGs7/pEpw==", + "version": "13.6.2", + "resolved": "https://registry.npmjs.org/cypress/-/cypress-13.6.2.tgz", + "integrity": "sha512-TW3bGdPU4BrfvMQYv1z3oMqj71YI4AlgJgnrycicmPZAXtvywVFZW9DAToshO65D97rCWfG/kqMFsYB6Kp91gQ==", "dev": true, "hasInstallScript": true, "dependencies": { @@ -2357,9 +2357,9 @@ } }, "cypress": { - "version": "13.6.1", - "resolved": "https://registry.npmjs.org/cypress/-/cypress-13.6.1.tgz", - "integrity": "sha512-k1Wl5PQcA/4UoTffYKKaxA0FJKwg8yenYNYRzLt11CUR0Kln+h7Udne6mdU1cUIdXBDTVZWtmiUjzqGs7/pEpw==", + "version": "13.6.2", + "resolved": "https://registry.npmjs.org/cypress/-/cypress-13.6.2.tgz", + "integrity": "sha512-TW3bGdPU4BrfvMQYv1z3oMqj71YI4AlgJgnrycicmPZAXtvywVFZW9DAToshO65D97rCWfG/kqMFsYB6Kp91gQ==", "dev": true, "requires": { "@cypress/request": "^3.0.0", diff --git a/tests/cypress/package.json b/tests/cypress/package.json index cd1c293b4..84fd0b24d 100644 --- a/tests/cypress/package.json +++ b/tests/cypress/package.json @@ -12,6 +12,6 @@ "license": "AGPL-3.0-or-later", "private": true, "devDependencies": { - "cypress": "^13.6.1" + "cypress": "^13.6.2" } } From 70cc7a58dcba74dfb94d2c849b572c0f99bb9c66 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 2 Jan 2024 21:26:06 +0000 Subject: [PATCH 44/71] chore(deps-dev): bump django from 5.0 to 5.0.1 Bumps [django](https://github.com/django/django) from 5.0 to 5.0.1. - [Commits](https://github.com/django/django/compare/5.0...5.0.1) --- updated-dependencies: - dependency-name: django dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index bb11efb4d..72edef6cd 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -8,7 +8,7 @@ classifiers = ["Programming Language :: Python :: 3 :: Only"] requires-python = ">=3.9" dependencies = [ "Authlib==1.3.0", - "Django==5.0", + "Django==5.0.1", "django-csp==3.7", "eligibility-api==2023.9.1", "requests==2.31.0", From 0983eaf27722a81cab676e8d16ba013e36ef582c Mon Sep 17 00:00:00 2001 From: Kegan Maher Date: Tue, 2 Jan 2024 14:16:09 -0800 Subject: [PATCH 45/71] docs(login.gov): correct verification API we use the ID Proofed OIDC connection, which is not yet fully IAL2-compliant --- docs/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/README.md b/docs/README.md index 81c4da1d6..b42f275c3 100644 --- a/docs/README.md +++ b/docs/README.md @@ -34,7 +34,7 @@ The Cal-ITP Benefits app supports the following enrollment pathways that use the | Enrollment pathway | Eligibility verification | Status | Launch | | -------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------ | --------------------------------------------------------------------- | -| [**Older adults**](/benefits/enrollment-pathways/older-adults) | [Login.gov IAL2](https://developers.login.gov/attributes/) | Live | [08/2022](https://github.com/cal-itp/benefits/releases/tag/2022.08.1) | +| [**Older adults**](/benefits/enrollment-pathways/older-adults) | [Login.gov ID Proofed](https://developers.login.gov/attributes/) | Live | [08/2022](https://github.com/cal-itp/benefits/releases/tag/2022.08.1) | | [**Agency cards**](/benefits/enrollment-pathways/agency-cards) | [Eligibility API](https://docs.calitp.org/eligibility-api/specification/) | Live | [11/2022](https://github.com/cal-itp/benefits/releases/tag/2022.11.1) | | [**Veterans**](/benefits/enrollment-pathways/veterans) | [Veteran Confirmation API](https://developer.va.gov/explore/api/veteran-confirmation) | Live | [09/2023](https://github.com/cal-itp/benefits/releases/tag/2023.09.1) | From d45b138ee04709819a4ef7de05131eb778f0f733 Mon Sep 17 00:00:00 2001 From: Kegan Maher Date: Tue, 2 Jan 2024 15:52:06 -0800 Subject: [PATCH 46/71] Docs: update landing page - normalize intro with repo README, simplify language - consolidate and elevate sections - links to additional pages e.g. Analytics --- docs/README.md | 27 ++++++++------------------- 1 file changed, 8 insertions(+), 19 deletions(-) diff --git a/docs/README.md b/docs/README.md index b42f275c3..31dcebc55 100644 --- a/docs/README.md +++ b/docs/README.md @@ -3,12 +3,7 @@ This website provides technical documentation for the [`benefits`][benefits-repo] application from the [California Integrated Travel Project (Cal-ITP)][calitp]. -Documentation for the `dev` (default) branch is available online at: . - -## Overview - -Cal-ITP Benefits is an application that enables automated eligibility verification and enrollment for transit -benefits onto customers' existing contactless bank (credit/debit) cards. +[Cal-ITP Benefits](https://benefits.calitp.org) is a web application that enables digital eligibility verification and enrollment for transit benefits onto transit riders’ existing contactless debit and credit cards. The development of this publicly-accessible client is being managed by Caltrans' California Integrated Travel Project (Cal-ITP), in partnership with the California Department of Technology (CDT). From the [Cal-ITP site](https://www.calitp.org/): @@ -16,9 +11,7 @@ The development of this publicly-accessible client is being managed by Caltrans' > > We worked with state partners on this product launch, and next we're working to bring youth, lower-income riders, veterans, people with disabilities, and others the same instant access to free or reduced fares across all California transit providers, without having to prove eligibility to each agency. -The application is accessible to the public at [benefits.calitp.org](https://benefits.calitp.org). - -### Adoption by transit agencies +## Adoption by transit agencies The following California transit agencies have launched Cal-ITP Benefits for their riders, with the following enrollment pathway options: @@ -28,7 +21,7 @@ The following California transit agencies have launched Cal-ITP Benefits for the | **Santa Barbara Metropolitan Transit District** | Live | In test |   | 10/2023 | | **Sacramento Regional Transit District** | In test |   |   |   | -### Supported enrollment pathways +## Supported enrollment pathways The Cal-ITP Benefits app supports the following enrollment pathways that use the corresponding eligibility verification methods: @@ -40,14 +33,14 @@ The Cal-ITP Benefits app supports the following enrollment pathways that use the Read more about each [enrollment pathway](/benefits/enrollment-pathways/). -## Technical details +## Technical and security details -`benefits` is a [Django 5][django] web application. The application talks to one or more [Eligibility Verification APIs](https://docs.calitp.org/eligibility-api/specification) or authentication providers. These APIs and the application are +`benefits` is a [Django 5][django] web application. The application talks to one or more [Eligibility Verification APIs](https://docs.calitp.org/eligibility-api/specification) or authentication providers. These APIs and the application itself are designed for privacy and security of user information: - The API communicates with signed and encrypted JSON Web Tokens containing only the most necessary of user data for the purpose of eligibility verification - The application requires no user accounts and stores no information about the user -- Interaction with the application is anonymous, with only minimal event tracking for usage and problem analysis +- Interaction with the application is anonymous, with only minimal event tracking for usage and problem analysis. Running the application locally is possible with [Docker and Docker Compose][docker]. [Hosting information.][hosting] @@ -56,11 +49,7 @@ The user interface and content is available in both English and Spanish. Additio The application communicates with external services like [Littlepay][littlepay] via API calls and others like the [Identity Gateway](https://dev.auth.cdt.ca.gov) via redirects, both over the public internet. See [all the system interconnections][interconnections]. -## Security - -Cal-ITP takes security and privacy seriously. Below is an overview of how the system is designed with security in mind. - -### Architecture +### Infrastructure The Benefits application is deployed to Microsoft Azure. Traffic is encrypted between the user and the application, as well as between the application and external systems. @@ -88,7 +77,7 @@ Learn more about the security/privacy practices of some of our third-party integ - [Littlepay](https://littlepay.com/privacy-policy/) - [Login.gov](https://www.login.gov/policy/) -Benefits collects analytics on usage, without any identifying information. ([IP addresses are filtered out.](https://github.com/cal-itp/benefits/blob/3a5f7c28036b77355d7a137df4f33bd2a9362de1/benefits/core/templates/core/includes/analytics.html#L31)) +Benefits collects analytics on usage, without any identifying information. You can find more details on [our analytics page](product-and-design/analytics/). ### Practices From f16ee37ba2406e728ed9152f4be0aea05993e1ea Mon Sep 17 00:00:00 2001 From: Kegan Maher Date: Tue, 2 Jan 2024 15:55:25 -0800 Subject: [PATCH 47/71] docs: wording and punctuation --- docs/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/README.md b/docs/README.md index 31dcebc55..12b697f67 100644 --- a/docs/README.md +++ b/docs/README.md @@ -40,7 +40,7 @@ designed for privacy and security of user information: - The API communicates with signed and encrypted JSON Web Tokens containing only the most necessary of user data for the purpose of eligibility verification - The application requires no user accounts and stores no information about the user -- Interaction with the application is anonymous, with only minimal event tracking for usage and problem analysis. +- Interaction with the application is anonymous, with only minimal event tracking for usage and problem analysis Running the application locally is possible with [Docker and Docker Compose][docker]. [Hosting information.][hosting] @@ -61,7 +61,7 @@ You can find more technical details on [our infrastructure page](deployment/infr The Benefits application doesn't collect or store any user data directly, and we minimize the information exchanged between systems. The following information is temporarily stored in an encrypted session in the user's browser: -- The user's progress +- The user's progress through an enrollment pathway - Credentials for interacting with the eligibility verification services Sensitive user information exists in the following places: From d84251803f65c3d556ba04297c0b9779e0235f8a Mon Sep 17 00:00:00 2001 From: Kegan Maher Date: Tue, 2 Jan 2024 16:06:38 -0800 Subject: [PATCH 48/71] docs: add product image --- docs/README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/README.md b/docs/README.md index 12b697f67..4c6fafb86 100644 --- a/docs/README.md +++ b/docs/README.md @@ -1,5 +1,7 @@ # Project overview +![Cal-ITP Benefits - Landing - Laptop+Mobile](https://github.com/cal-itp/benefits/assets/6279581/3f5c558b-ad45-49cd-bb51-b230c625837b) + This website provides technical documentation for the [`benefits`][benefits-repo] application from the [California Integrated Travel Project (Cal-ITP)][calitp]. From 0ab9623e6c0f2350ac8456947859f2622d67ed11 Mon Sep 17 00:00:00 2001 From: Kegan Maher Date: Tue, 2 Jan 2024 16:10:43 -0800 Subject: [PATCH 49/71] docs: move image --- docs/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/README.md b/docs/README.md index 4c6fafb86..5005b2f69 100644 --- a/docs/README.md +++ b/docs/README.md @@ -1,10 +1,10 @@ # Project overview -![Cal-ITP Benefits - Landing - Laptop+Mobile](https://github.com/cal-itp/benefits/assets/6279581/3f5c558b-ad45-49cd-bb51-b230c625837b) - This website provides technical documentation for the [`benefits`][benefits-repo] application from the [California Integrated Travel Project (Cal-ITP)][calitp]. +![Cal-ITP Benefits - Landing - Laptop+Mobile](https://github.com/cal-itp/benefits/assets/6279581/3f5c558b-ad45-49cd-bb51-b230c625837b) + [Cal-ITP Benefits](https://benefits.calitp.org) is a web application that enables digital eligibility verification and enrollment for transit benefits onto transit riders’ existing contactless debit and credit cards. The development of this publicly-accessible client is being managed by Caltrans' California Integrated Travel Project (Cal-ITP), in partnership with the California Department of Technology (CDT). From the [Cal-ITP site](https://www.calitp.org/): From 467b11f240adcd5b53623e7321efbf77ed2e6c4a Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Mon, 8 Jan 2024 18:00:40 +0000 Subject: [PATCH 50/71] chore(pre-commit): autoupdate hooks MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit updates: - [github.com/PyCQA/flake8: 6.1.0 → 7.0.0](https://github.com/PyCQA/flake8/compare/6.1.0...7.0.0) --- .pre-commit-config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 0ed0e283d..b85878718 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -41,7 +41,7 @@ repos: - python - repo: https://github.com/PyCQA/flake8 - rev: 6.1.0 + rev: 7.0.0 hooks: - id: flake8 types: From b8f27e6754fefd4138ca3a1fec3a1e511e8db8cf Mon Sep 17 00:00:00 2001 From: Kegan Maher Date: Mon, 8 Jan 2024 22:54:47 +0000 Subject: [PATCH 51/71] feat(ci): publish docs site previews --- .github/workflows/mkdocs.yml | 58 +++++++++++++++++++++++++++++++++++- 1 file changed, 57 insertions(+), 1 deletion(-) diff --git a/.github/workflows/mkdocs.yml b/.github/workflows/mkdocs.yml index c5499b43b..e2fe63917 100644 --- a/.github/workflows/mkdocs.yml +++ b/.github/workflows/mkdocs.yml @@ -8,6 +8,13 @@ on: - completed branches: - dev + pull_request: + branches: + - dev + paths: + - "docs/**" + - "mkdocs.yml" + - ".github/workflows/mkdocs.yml" push: branches: - dev @@ -17,10 +24,59 @@ on: - '.github/workflows/mkdocs.yml' jobs: + docs-preview: + name: Publish docs preview + runs-on: ubuntu-latest + # only pull requests should generate a preview + if: github.event.pull_request + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + ref: "refs/pull/${{ github.event.number }}/merge" + + - name: Setup Python + uses: actions/setup-python@v5 + with: + python-version: "3.10" + cache: pip + cache-dependency-path: "docs/requirements.txt" + + - name: Build MkDocs website + run: | + pip install -r docs/requirements.txt + mkdocs build + + - name: Install Netlify CLI + run: npm install --location=global netlify-cli + + - name: Deploy Preview to Netlify + run: | + netlify deploy \ + --dir="site" \ + --alias="${GITHUB_REPOSITORY#*/}-${{ github.event.number }}" + env: + NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }} + NETLIFY_SITE_ID: ${{ secrets.NETLIFY_PREVIEW_APP_SITE_ID }} + + - name: Add Netlify link PR comment + uses: actions/github-script@v7 + with: + github-token: ${{ secrets.GITHUB_TOKEN }} + script: | + const hostnameSuffix = "cal-itp-previews.netlify.app" + github.issues.createComment({ + issue_number: context.issue.number, + owner: context.repo.owner, + repo: context.repo.repo, + body: `Preview url: https://${context.repo.repo}-${{ github.event.number }}--${hostnameSuffix}`, + }) + docs: name: Publish docs runs-on: ubuntu-latest - if: github.event.workflow_run == null || github.event.workflow_run.conclusion == 'success' + # don't publish for pull requests, and also not for unsuccessful (triggering) workflow runs + if: github.event.pull_request == null && (github.event.workflow_run == null || github.event.workflow_run.conclusion == 'success') steps: - name: Checkout uses: actions/checkout@v4 From 7ceba1d178cb1fdc61203c404aecb322978a06b6 Mon Sep 17 00:00:00 2001 From: Kegan Maher Date: Mon, 8 Jan 2024 22:54:57 +0000 Subject: [PATCH 52/71] chore(ci): formatting --- .github/workflows/mkdocs.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/mkdocs.yml b/.github/workflows/mkdocs.yml index e2fe63917..6c7dff64c 100644 --- a/.github/workflows/mkdocs.yml +++ b/.github/workflows/mkdocs.yml @@ -19,9 +19,9 @@ on: branches: - dev paths: - - 'docs/**' - - 'mkdocs.yml' - - '.github/workflows/mkdocs.yml' + - "docs/**" + - "mkdocs.yml" + - ".github/workflows/mkdocs.yml" jobs: docs-preview: From 10a30632fd02d3e523c5b071553ee4fdc55e8ecc Mon Sep 17 00:00:00 2001 From: Kegan Maher Date: Mon, 8 Jan 2024 23:00:33 +0000 Subject: [PATCH 53/71] fix(ci): update syntax for octokit --- .github/workflows/mkdocs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/mkdocs.yml b/.github/workflows/mkdocs.yml index 6c7dff64c..36993218d 100644 --- a/.github/workflows/mkdocs.yml +++ b/.github/workflows/mkdocs.yml @@ -65,7 +65,7 @@ jobs: github-token: ${{ secrets.GITHUB_TOKEN }} script: | const hostnameSuffix = "cal-itp-previews.netlify.app" - github.issues.createComment({ + github.rest.issues.createComment({ issue_number: context.issue.number, owner: context.repo.owner, repo: context.repo.repo, From 91b4067f79be30a9d63f6603fdfe57f627c9d56c Mon Sep 17 00:00:00 2001 From: Kegan Maher Date: Mon, 8 Jan 2024 23:03:00 +0000 Subject: [PATCH 54/71] fix(ci): read python version from file --- .github/workflows/mkdocs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/mkdocs.yml b/.github/workflows/mkdocs.yml index 36993218d..248332173 100644 --- a/.github/workflows/mkdocs.yml +++ b/.github/workflows/mkdocs.yml @@ -38,7 +38,7 @@ jobs: - name: Setup Python uses: actions/setup-python@v5 with: - python-version: "3.10" + python-version-file: .github/workflows/.python-version cache: pip cache-dependency-path: "docs/requirements.txt" From b5f4c9905f743defc5ef0a274a11d1855e8ec4d2 Mon Sep 17 00:00:00 2001 From: Machiko Yasuda Date: Mon, 8 Jan 2024 23:39:14 +0000 Subject: [PATCH 55/71] docs(analytics): add table for default user props --- docs/product-and-design/analytics.md | 38 +++++++++++++++------------- 1 file changed, 20 insertions(+), 18 deletions(-) diff --git a/docs/product-and-design/analytics.md b/docs/product-and-design/analytics.md index f6cc8a4c3..e0d972d70 100644 --- a/docs/product-and-design/analytics.md +++ b/docs/product-and-design/analytics.md @@ -1,6 +1,6 @@ # Analytics -The [Cal-ITP Benefits application](https://benefits.calitp.org/) uses [Amplitude](https://amplitude.com/) to collect specific user and event data properties to analyze application usage. +The Cal-ITP Benefits application, currently live at `https://benefits.calitp.org/`, uses [Amplitude](https://amplitude.com/) to collect specific user and event data properties to analyze application usage. ## Information not collected @@ -13,24 +13,26 @@ See the [Amplitude analytics code on GitHub](https://github.com/cal-itp/benefits ## User information collected -A combination of default and application-specific custom user properties are collected for each user who visits the [Cal-ITP Benefits](https://benefits.calitp.org/) application. +A combination of default and application-specific custom user properties are collected for each user who visits the Benefits web application. ### Default Amplitude user properties collected The following attributes are collected from the browser of every user who visits the application, provided the browser does not block the tracking library: -- Platform -- Device type -- Device family -- Country -- City -- Region -- Start version -- Version -- Carrier -- OS: Operating system name and version -- Language -- Library +User property | Description | Example value(s) +-- | -- | -- +**Carrier** | The device's carrier. | `Verizon` +**Country** | Country of the event. This is pulled using GeoIP. | `United States` +**City** | City of the event. This is pulled using GeoIP. | `San Francisco` +**Device family** | Family of the device. | `Apple iPhone, Samsung Galaxy Tablet, Windows` +**Device type** | Specific type of device. | `Apple iPhone 6, Samsung Galaxy Note 4, Windows` +**Language** | Language of the device. | `English` +**Library** | Library used to send the event. | `Amplitude-iOS/3.2.1, HTTP/1.0` +**OS** | Operating system is the name of the user's mobile operating system or browser. Operating system version is the version of the users' mobile operating system or browser. | `iOS 9.1, Chrome 46` +**Platform** | Platform of the product. | `Web` +**Region** | Region (e.g. state, province, county) of the event. This is pulled using GeoIP. | `California` +**Start version** | First version of the application identified for the user. | `1.0.0` +**Version** | Current verison of the application identified for the user | `1.0.0` Read more about each property on the [Amplitude documentation](https://help.amplitude.com/hc/en-us/articles/215562387-Appendix-Amplitude-User-Property-Definitions). @@ -38,11 +40,11 @@ Read more about each property on the [Amplitude documentation](https://help.ampl The following custom user attributes are collected when the user performs specific actions on the application, like selecing an eligibility type or transit agency: -| Custom user property | Description | Example value | +| User property | Description | Example value(s) | | ---------------------- | ---------------------------------- | ----------------------------------------------------------------------------------------------------------------- | | `eligibility_types` | Eligibility type chosen by user  | `[veteran]` | | `eligibility_verifier` | Eligibility verifier used by user  | `VA.gov - Veteran (MST)` | -| `referrer` | URL that the event came from  | [https://benefits.calitp.org/eligibility/start](https://benefits.calitp.org/eligibility/start) | +| `referrer` | URL that the event came from  | `https://benefits.calitp.org/help/` | | `referring_domain` | Domain that the event came from  | `benefits.calitp.org` | | `transit_agency` | Agency chosen by the user  | `Monterey-Salinas Transit` | | `user_agent` | User's browser agent  | `Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36` | @@ -87,9 +89,9 @@ Read more on each of these events on the [Amplitude event documentation for Bene These events track the progress of a user who has successfully verified their eligibility and is enrolling their payment card with the system. -- closed payment connection (e.g. Littlepay) +- closed payment connection - returned enrollment -- started payment connection (e.g. Littlepay) +- started payment connection Read more on each of these events on the [Amplitude event documentation for Benefits, filtered by Enrollment](https://data.amplitude.com/public-doc/hdhfmlby2e?categories=id%3D1702329910563%26group%3Dcategories%26type%3DString%26operator%3Dis%26values%255B0%255D%3Denrollment%26dateValue%255Btype%255D%3DSINCE). From c9c9b159bad4a4bd2583d93f5e6dcbd8379f5c2f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 10 Jan 2024 21:45:36 +0000 Subject: [PATCH 56/71] chore(deps-dev): bump sentry-sdk from 1.39.1 to 1.39.2 Bumps [sentry-sdk](https://github.com/getsentry/sentry-python) from 1.39.1 to 1.39.2. - [Release notes](https://github.com/getsentry/sentry-python/releases) - [Changelog](https://github.com/getsentry/sentry-python/blob/master/CHANGELOG.md) - [Commits](https://github.com/getsentry/sentry-python/compare/1.39.1...1.39.2) --- updated-dependencies: - dependency-name: sentry-sdk dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 72edef6cd..fdd977f2c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -12,7 +12,7 @@ dependencies = [ "django-csp==3.7", "eligibility-api==2023.9.1", "requests==2.31.0", - "sentry-sdk==1.39.1", + "sentry-sdk==1.39.2", "six==1.16.0", ] From 630b44972ea904d0764a30402d24fb9acd571e1d Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Mon, 15 Jan 2024 17:46:31 +0000 Subject: [PATCH 57/71] chore(pre-commit): autoupdate hooks MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit updates: - [github.com/compilerla/conventional-pre-commit: v3.0.0 → v3.1.0](https://github.com/compilerla/conventional-pre-commit/compare/v3.0.0...v3.1.0) --- .pre-commit-config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index b85878718..d0d9b1438 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -15,7 +15,7 @@ default_stages: repos: - repo: https://github.com/compilerla/conventional-pre-commit - rev: v3.0.0 + rev: v3.1.0 hooks: - id: conventional-pre-commit stages: [commit-msg] From c6ec545eab8d965b605c442fe3f3a347ecd5ad02 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 16 Jan 2024 21:45:45 +0000 Subject: [PATCH 58/71] chore(deps-dev): bump cypress from 13.6.2 to 13.6.3 in /tests/cypress Bumps [cypress](https://github.com/cypress-io/cypress) from 13.6.2 to 13.6.3. - [Release notes](https://github.com/cypress-io/cypress/releases) - [Changelog](https://github.com/cypress-io/cypress/blob/develop/CHANGELOG.md) - [Commits](https://github.com/cypress-io/cypress/compare/v13.6.2...v13.6.3) --- updated-dependencies: - dependency-name: cypress dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- tests/cypress/package-lock.json | 22 +++++++++++----------- tests/cypress/package.json | 2 +- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/tests/cypress/package-lock.json b/tests/cypress/package-lock.json index f84c166ab..030faa593 100644 --- a/tests/cypress/package-lock.json +++ b/tests/cypress/package-lock.json @@ -9,7 +9,7 @@ "version": "1.0.0", "license": "AGPL-3.0-or-later", "devDependencies": { - "cypress": "^13.6.2" + "cypress": "^13.6.3" } }, "node_modules/@colors/colors": { @@ -74,7 +74,8 @@ "version": "18.17.15", "resolved": "https://registry.npmjs.org/@types/node/-/node-18.17.15.tgz", "integrity": "sha512-2yrWpBk32tvV/JAd3HNHWuZn/VDN1P+72hWirHnvsvTGSqbANi+kSeuQR9yAHnbvaBvHDsoTdXV0Fe+iRtHLKA==", - "dev": true + "dev": true, + "optional": true }, "node_modules/@types/sinonjs__fake-timers": { "version": "8.1.1", @@ -536,15 +537,14 @@ } }, "node_modules/cypress": { - "version": "13.6.2", - "resolved": "https://registry.npmjs.org/cypress/-/cypress-13.6.2.tgz", - "integrity": "sha512-TW3bGdPU4BrfvMQYv1z3oMqj71YI4AlgJgnrycicmPZAXtvywVFZW9DAToshO65D97rCWfG/kqMFsYB6Kp91gQ==", + "version": "13.6.3", + "resolved": "https://registry.npmjs.org/cypress/-/cypress-13.6.3.tgz", + "integrity": "sha512-d/pZvgwjAyZsoyJ3FOsJT5lDsqnxQ/clMqnNc++rkHjbkkiF2h9s0JsZSyyH4QXhVFW3zPFg82jD25roFLOdZA==", "dev": true, "hasInstallScript": true, "dependencies": { "@cypress/request": "^3.0.0", "@cypress/xvfb": "^1.2.4", - "@types/node": "^18.17.5", "@types/sinonjs__fake-timers": "8.1.1", "@types/sizzle": "^2.3.2", "arch": "^2.2.0", @@ -2021,7 +2021,8 @@ "version": "18.17.15", "resolved": "https://registry.npmjs.org/@types/node/-/node-18.17.15.tgz", "integrity": "sha512-2yrWpBk32tvV/JAd3HNHWuZn/VDN1P+72hWirHnvsvTGSqbANi+kSeuQR9yAHnbvaBvHDsoTdXV0Fe+iRtHLKA==", - "dev": true + "dev": true, + "optional": true }, "@types/sinonjs__fake-timers": { "version": "8.1.1", @@ -2357,14 +2358,13 @@ } }, "cypress": { - "version": "13.6.2", - "resolved": "https://registry.npmjs.org/cypress/-/cypress-13.6.2.tgz", - "integrity": "sha512-TW3bGdPU4BrfvMQYv1z3oMqj71YI4AlgJgnrycicmPZAXtvywVFZW9DAToshO65D97rCWfG/kqMFsYB6Kp91gQ==", + "version": "13.6.3", + "resolved": "https://registry.npmjs.org/cypress/-/cypress-13.6.3.tgz", + "integrity": "sha512-d/pZvgwjAyZsoyJ3FOsJT5lDsqnxQ/clMqnNc++rkHjbkkiF2h9s0JsZSyyH4QXhVFW3zPFg82jD25roFLOdZA==", "dev": true, "requires": { "@cypress/request": "^3.0.0", "@cypress/xvfb": "^1.2.4", - "@types/node": "^18.17.5", "@types/sinonjs__fake-timers": "8.1.1", "@types/sizzle": "^2.3.2", "arch": "^2.2.0", diff --git a/tests/cypress/package.json b/tests/cypress/package.json index 84fd0b24d..5496939e0 100644 --- a/tests/cypress/package.json +++ b/tests/cypress/package.json @@ -12,6 +12,6 @@ "license": "AGPL-3.0-or-later", "private": true, "devDependencies": { - "cypress": "^13.6.2" + "cypress": "^13.6.3" } } From 7a8fcf82cabc28e20bee427aa4deedc8746bdafc Mon Sep 17 00:00:00 2001 From: Machiko Yasuda Date: Fri, 19 Jan 2024 00:29:36 +0000 Subject: [PATCH 59/71] fix(copy): lowercase main content --- benefits/core/templates/core/base.html | 2 +- benefits/locale/en/LC_MESSAGES/django.po | 4 ++-- benefits/locale/es/LC_MESSAGES/django.po | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/benefits/core/templates/core/base.html b/benefits/core/templates/core/base.html index 5de0488d0..191fca86b 100644 --- a/benefits/core/templates/core/base.html +++ b/benefits/core/templates/core/base.html @@ -44,7 +44,7 @@ {% endif %}