department-of-veterans-affairs / va.gov-team

Public resources for building on and in support of VA.gov. Visit complete Knowledge Hub:
https://depo-platform-documentation.scrollhelp.site/index.html
281 stars 198 forks source link

[0781 Redirect] Spike #92200

Open lisacapaccioli opened 2 weeks ago

lisacapaccioli commented 2 weeks ago
kylesoskin commented 1 week ago

Determine how we identify a claim in progress vs. a new claim from the time of release (i.e., we are looking for claims that "start" on or after the release date/time vs. claims that were started before the release)

We can tell if the user has an inprogress form as part of the inProgressForms attribute that is returned from the user api endpoint. If they have not started a form yet it will be an empty array.

For an in-progress form we will have the following data, and can determine from it which path to take at the onset of them resuming, if needed, but I thought I recalled us only enabling the flow for new users, meaning we would only check if they had an in progress on or not, if so, take new path (and set a flag, such as version, in it to know it is the new path).

         {
                "form": "21-526EZ",
                "metadata": {
                    "version": 9,
                    "returnUrl": "/review-veteran-details/military-service-history",
                    "savedAt": 1713811317420,
                    "submission": {
                        "status": false,
                        "errorMessage": false,
                        "id": false,
                        "timestamp": false,
                        "hasAttemptedSubmit": false
                    },
                    "cfiMetric": {
                        "initLogged": true,
                        "cfiLogged": false
                    },
                    "createdAt": 1713811314,
                    "expiresAt": 1745347317,
                    "lastUpdated": 1713811317,
                    "inProgressFormId": 31659
                },
                "lastUpdated": 1713811317
            },
kylesoskin commented 3 days ago

Determine how the toggle switch will direct users to "new" flow vs. "existing" flow

This can be done multiple ways. One example is via the form version, example here: https://github.com/department-of-veterans-affairs/vets-website/blob/main/src/applications/appeals/996/migrations/01-lighthouse-v2-updates.js#L50

We could use this, in combo with a feature toggle.

kylesoskin commented 3 days ago

Determine how the toggle switch should work for a canary rollout and for whitelisted VA testers

We should toggle and test in staging first. We should not really be testing in prod in my opinion. Canary rollout would just be small percent of prod users until confidence builds, after staging testing confirms desired state.

kylesoskin commented 3 days ago

Determine how to add a new page into the existing flow ???

Adding relevant links

https://github.com/department-of-veterans-affairs/vets-website/blob/0b9bd4c51f567c60f44d62ed2d66f2b43a8928d5/src/applications/disability-benefits/all-claims/content/ptsdClassification.jsx

https://github.com/department-of-veterans-affairs/vets-website/blob/0b9bd4c51f567c60f44d62ed2d66f2b43a8928d5/src/applications/disability-benefits/all-claims/pages/uploadPtsdDocuments.jsx

https://github.com/department-of-veterans-affairs/vets-website/blob/0b9bd4c51f567c60f44d62ed2d66f2b43a8928d5/src/applications/disability-benefits/all-claims/pages/ptsd781aChangesIntro.js

https://github.com/department-of-veterans-affairs/vets-website/blob/0b9bd4c51f567c60f44d62ed2d66f2b43a8928d5/src/applications/disability-benefits/all-claims/pages/choosePtsdType.js

https://github.com/department-of-veterans-affairs/vets-website/blob/0b9bd4c51f567c60f44d62ed2d66f2b43a8928d5/src/applications/disability-benefits/all-claims/pages/newPTSDFollowUp.js

https://github.com/department-of-veterans-affairs/vets-website/blob/0b9bd4c51f567c60f44d62ed2d66f2b43a8928d5/src/applications/disability-benefits/all-claims/pages/ptsdWalkthroughChoice781.jsx

lisacapaccioli commented 3 days ago

@kylesoskin

We should toggle and test in staging first. We should not really be testing in prod in my opinion. Canary rollout would just be small percent of prod users until confidence builds, after staging testing confirms desired state.

Nathan brought up how the VA has "production" testers. They used them on the TE and other product releases. These testers are "whitelisted" to test in production so that their submissions are not actually used. This may be a requirement from OCTO and if so, we will need to think it through. I am not sure for the purpose of this feature that a submission is required, but starting a claim and checking a claim already in progress would be. The hardest part of this requirement is coordinating with the volunteers. VA has names, but they are not always available just depends on the release date and availability.

kylesoskin commented 2 days ago

If we can get our hands on prod accounts, that are linked to fake people/profiles, then that is fine to test with and we can do that. I can look into that.

the hardest part of this requirement is coordinating with the volunteers. VA has names, but they are not always available just depends on the release date and availability.

Using any real people or persons in prod for this testing is not something I think we should do for something like this. We can discuss further though if needed.

lisacapaccioli commented 8 hours ago

@kylesoskin FYI - They use real people today to do production testing. For instance Toxic Exposure Rico (Coforma) volunteered to test it. The team just had to solution what to do on submit. For this feature, if it's a requirement from OCTO that we do a production validation post release, I don't think a submit is necessary. We only need to validate the new pages, upload a file and that the flow isn't broken. Then there is a process in which they can cancel the claim so there's no impact. Team 1 and the non-disability team have both gone through this before, so if this is necessary, we can work with them on how it's done. From what I heard, VA does not use "fake" user accounts.