Releases: cal-itp/benefits
2023.04.2
This release contains a number of security and performance improvements, including:
- More aggressive request filtering, to block unnecessary bot traffic to the app
- Improved request rate limiting, moving it before requests hit the app
- Implemented a strict Content Security Policy for improved client security
- Allow payment processor configuration per-agency
- More configuration options for our Sentry error monitoring service
What's Changed
- chore(pre-commit): autoupdate hooks by @pre-commit-ci in #1344
- chore(deps): bump sentry-sdk from 1.18.0 to 1.19.1 in /appcontainer by @dependabot in #1351
- chore(deps): bump django from 4.1.7 to 4.2 in /appcontainer by @dependabot in #1345
- fix(url): fix broken link in docs by @machikoyasuda in #1352
- chore(pre-commit): autoupdate hooks by @pre-commit-ci in #1355
- Fix: Docker platform issue by @machikoyasuda in #1354
- Refactor: move dependencies and metadata to pyproject.toml by @thekaveman in #1356
- Feat: Configure a payment processor for SacRT by @thekaveman in #1365
- Separate payment processors (test) by @thekaveman in #1366
- Docs: make Agency Cards use-case more generic by @thekaveman in #1361
- chore(pre-commit): autoupdate hooks by @pre-commit-ci in #1362
- chore(deps-dev): bump cypress from 12.9.0 to 12.10.0 in /tests/cypress by @dependabot in #1363
- Feat: Implement strict Content Security Policy by @thekaveman in #1358
- Fix: allow unsafe-inline for style-src by @thekaveman in #1369
- Fix: Configurable traces sampling rate for Sentry by @thekaveman in #1360
- Feat: improve traffic filtering at nginx by @thekaveman in #1359
- Chore: prep release 2023.04.2 by @thekaveman in #1370
- Deploy 2023.04.2 to test by @thekaveman in #1371
- Fix: relax the 404 filter by @thekaveman in #1372
- Deploy to test by @thekaveman in #1373
- Release 2023.04.2 by @thekaveman in #1375
Full Changelog: 2023.04.1...2023.04.2
Release process issue: #1368
2023.04.1
This release addresses an issue where our read timeout was set too low. It also configures sentry-sdk
to not send certain fields to our Sentry instance (we already had the instance configured to not store the data).
What's Changed
- chore(deps): bump sentry-sdk from 1.17.0 to 1.18.0 in /appcontainer by @dependabot in #1335
- chore(deps-dev): bump cypress from 12.8.1 to 12.9.0 in /tests/cypress by @dependabot in #1336
- Fix: read timeout by @angela-tran in #1342
- Fix: configure Sentry denylist by @angela-tran in #1343
- Prepare Release 2023.04.1 by @angela-tran in #1347
- Deploy 2023.04.1 to test by @angela-tran in #1348
- Release 2023.04.1 by @angela-tran in #1349
Full Changelog: 2023.03.2...2023.04.1
Release process issue: #1346
2023.03.2
This release contains improvements to secrets management for the Benefits application and updates to documentation and dependencies.
What's Changed
- Docs: update steps for pushing tags by @thekaveman in #1308
- chore(deps): bump treosh/lighthouse-ci-action from 9.3.1 to 9.6.8 by @dependabot in #1310
- Refactor: remove load sample data by @angela-tran in #1311
- chore(deps): bump sentry-sdk from 1.16.0 to 1.17.0 in /appcontainer by @dependabot in #1325
- chore(deps-dev): bump cypress from 12.7.0 to 12.8.1 in /tests/cypress by @dependabot in #1318
- Refactor: delete now unneeded Azure file mount by @angela-tran in #1328
- Docs: configuration data uses env vars/secrets by @angela-tran in #1329
- chore(pre-commit): autoupdate hooks by @pre-commit-ci in #1314
- Prepare Release 2023.03.2 by @angela-tran in #1331
- Deploy 2023.03.2 to test by @angela-tran in #1332
- Chore: make active flag configurable for SacRT agency by @angela-tran in #1337
- Deploy to test by @angela-tran in #1339
- Release 2023.03.2 by @angela-tran in #1341
Full Changelog: 2023.03.1...2023.03.2
Release process issue: #1330
2023.03.1
New agency selector modal on Mobile | New agency selector modal on Desktop |
Overview
This release of the Benefits application supports users from multiple transit agencies to link their transit benefit to their bank card. The app now includes a new modal that allows users to select their transit agency. Agencies can direct their users to their specific page (like https://benefits.calitp.org/mst) to bypass the modal.
Major changes in this release:
- New transit agency selector modal on homepage (https://benefits.calitp.org)
- Continue to refactor secrets management with Terraform (Milestone 28)
- Implement Sentry for application error monitoring (#1259)
What's Changed (Full List)
- fix(Terraform): downgrade App Service plan by @afeld in #1171
- Chore: add pull_request trigger to pytest workflow by @angela-tran in #1180
- Correcting Minor Typos by @kylehamilton in #1174
- chore: upgrade Terraform and provider by @afeld in #1181
- fix(Terraform): specify the Key Vault Access Policies as code by @afeld in #1173
- Chore: use eligibility-api package from PyPI by @angela-tran in #1182
- fix(CI): send API check failure notifications to Slack by @afeld in #1184
- chore(deps): bump ravsamhq/notify-slack-action from 1 to 2 by @dependabot in #1188
- chore(pre-commit): autoupdate hooks by @pre-commit-ci in #1185
- Refactor: msgids for common messages by @angela-tran in #1195
- Refactor: parameterize messages with agency-specific content by @angela-tran in #1196
- Chore: always show the user the eligibility index by @angela-tran in #1201
- Refactor: add support for env variables in data migration by @angela-tran in #1198
- Refactor: agency selection backend by @angela-tran in #1204
- chore(deps): bump requests from 2.28.1 to 2.28.2 in /appcontainer by @dependabot in #1205
- chore(pre-commit): autoupdate hooks by @pre-commit-ci in #1216
- Fix: missing Spanish translations by @angela-tran in #1218
- Refactor: agency selection frontend by @angela-tran in #1206
- Update SacRT copy, and add Spanish translations by @angela-tran in #1212
- Refactor: agency index msgid by @angela-tran in #1215
- Prep release 2023.01.2 by @angela-tran in #1221
- Deploy 2023.01.2 to test by @angela-tran in #1222
- Fix: agency selector with n cards by @angela-tran in #1223
- Deploy to test by @angela-tran in #1225
- chore(pre-commit): autoupdate hooks by @pre-commit-ci in #1224
- chore(deps): bump docker/build-push-action from 3 to 4 by @dependabot in #1226
- Fix: eligibility types in events by @thekaveman in #1229
- Deploy to test by @thekaveman in #1230
- Chore: bump version by @thekaveman in #1238
- fix(docs): add missing system interconnections to architecture diagram by @afeld in #1231
- Docs: configuring a new transit agency by @angela-tran in #1236
- chore(deps): bump django from 4.1.5 to 4.1.6 in /appcontainer by @dependabot in #1233
- chore(pre-commit): autoupdate hooks by @pre-commit-ci in #1248
- chore(docs): add process diagram for Courtesy Cards by @afeld in #1255
- chore(docs): show what data is exchanged/stored where by @afeld in #1254
- fix(devcontainer): use new VSCode settings/extensions configuration format by @afeld in #1257
- copy in information that came up in the failure screnarios by @afeld in #1262
- fix Azure exception handling by @afeld in #1260
- chore(pre-commit): autoupdate hooks by @pre-commit-ci in #1265
- Fix: Landing Page - Decrease main container height on mobile by @machikoyasuda in #1272
- chore: set up Sentry by @afeld in #1259
- fix(Sentry): handle cases where Git is available but we're not in a repository by @afeld in #1275
- chore(CI): simplify starting client for UI tests by @afeld in #1279
- docs: add security overview by @afeld in #1280
- add tests for Sentry revision code by @afeld in #1281
- fix feature tests by @afeld in #1263
- fix: UI tests by @afeld in #1277
- chore(Azure): remove app-level logging to Azure Monitor by @afeld in #1261
- Chore: get hotfix into dev by @angela-tran in #1286
- Fix: adapt test for healthcheck user agents by @angela-tran in #1287
- chore(pre-commit): autoupdate hooks by @pre-commit-ci in #1289
- Deploy 2023.02.1 to test by @angela-tran in #1292
- Fix: small issues on environment variable docs by @angela-tran in #1291
- chore(deps): bump django from 4.1.6 to 4.1.7 in /appcontainer by @dependabot in #1274
- chore(deps-dev): bump cypress from 12.5.1 to 12.6.0 in /tests/cypress by @dependabot in #1290
- chore(deps-dev): bump cypress from 12.6.0 to 12.7.0 in /tests/cypress by @dependabot in #1297
- chore(deps): bump sentry-sdk from 1.15.0 to 1.16.0 in /appcontainer by @dependabot in #1296
- chore(pre-commit): autoupdate hooks by @pre-commit-ci in #1295
- Fix Cypress setup instructions by @afeld in #1299
- chore: add incident response checklist by @afeld in #1300
- Feat: set Key Vault values by @angela-tran in #1293
- Fix: represent Key Vault purge protection in Terraform by @angela-tran in #1301
- chore(pre-commit): autoupdate hooks by @pre-commit-ci in #1304
- Feat: specify app settings as code by @angela-tran in #1294
- Prepare Release 2023.03.1 by @angela-tran in #1305
- Deploy 2023.03.1 to test by @angela-tran in #1306
- Release 2023.03.1 by @angela-tran in #1307
New Contributors
- @kylehamilton made their first contribution in #1174
Full Changelog: 2023.02.1...2023.03.1
Release process issue: #1220
2023.02.1
Hotfix release to make a change related to analytics
What's Changed
- Fix: healthcheck user agents by @angela-tran in #1285
Full Changelog: 2023.01.1...2023.02.1
Release process issue: #1283
2023.01.1
Overview
This release contains improvements for infrastructure, documentation, and dependency updates.
- Infrastructure: Removes slot-based deployments in favor of separate app services and resources.
What's Changed (Full List)
- Fix: sample server key files by @angela-tran in #1139
- chore(pre-commit): autoupdate hooks by @pre-commit-ci in #1133
- docs: update college discount information by @afeld in #1140
- faster deploy by @afeld in #1146
- chore(pipeline): don't wait for input to Terraform by @afeld in #1145
- chore(pre-commit): autoupdate hooks by @pre-commit-ci in #1148
- fix(Terraform): add missing sticky settings by @afeld in #1147
- chore(Terraform): manage production certitificate binding in code by @afeld in #1109
- docs(infrastructure): document missing environment setup steps by @afeld in #1144
- chore(terraform): remove certificate binding by @afeld in #1152
- docs: elaborate on what is managed by DevSecOps team by @afeld in #1154
- Feat: add sqlite-viewer extension to devcontainer by @thekaveman in #1157
- Docs: attaching with DEBUG=False by @thekaveman in #1160
- chore(pre-commit): autoupdate hooks by @pre-commit-ci in #1161
- chore(deps): bump treosh/lighthouse-ci-action from 9.3.0 to 9.3.1 by @dependabot in #1129
- chore(deps): bump django from 4.1.3 to 4.1.4 in /appcontainer by @dependabot in #1158
- chore(deps): bump authlib from 1.1.0 to 1.2.0 in /appcontainer by @dependabot in #1159
- docs(Terraform): add information about locking by @afeld in #1156
- Docs: workflow for Django message files by @angela-tran in #1162
- chore(pre-commit): autoupdate hooks by @pre-commit-ci in #1164
- separate infrastructure environments by @afeld in #1074
- Prep 2022.12.1 release by @afeld in #1168
- Deploy 2022.12.1 to test by @afeld in #1169
- chore(Terraform): output the outbound IP ranges by @afeld in #1172
- chore(pre-commit): autoupdate hooks by @pre-commit-ci in #1175
- chore(deps): bump django from 4.1.4 to 4.1.5 in /appcontainer by @dependabot in #1176
- Prep release 2023.01.1 by @angela-tran in #1177
- Deploy 2023.01.1 to test by @angela-tran in #1178
- Release 2023.01.1 by @afeld in #1170
Full Changelog: 2022.11.1...2023.01.1
Release process issue: #1167
2022.11.1
Full app on Mobile | New screens and forms: Home page, eligibility section form, Courtesy Card form |
Overview
This release of the Benefits application expands the eligibility verification options from one to two, now allowing those who have Monterey-Salinas Transit Courtesy Cards or an MST RIDES Eligibility card to connect their transit benefit to their bank cards. Users who provide a valid Courtesy Card number and last name can confirm their eligibility on the app, which uses the Eligibility Server to call the Eligibility API. Read more about the Eligibility Server release and Agency Card use case here. The application is also configured with Google reCAPTCHA and rate limiting.
Major changes in this release:
- New Courtesy Card form, which calls the Eligibility Server
- New eligibility verification selection page, that allows users to choose between Login.gov or Courtesy Cards
- New homepage specific with copy specific to Monterey-Salinas Transit
We also:
- Redesigned the whole application to use a mobile-first single-column layout. Added a Previous Page link to certain pages. Create and re-use Media List includes.
- Fully tested new application features with Pytest, for the Courtesy Card flow and Analytics.
- Introduced an application-wide typography and alignment system using CSS variables, standardized usage of
rems
for responsive spacing and Bootstrap utility classes . Re-organized and standardize PO file fields. Added the VSCode Devcontainer option to debug in non-debug mode. - Added Amplitude analytics events for
selected eligibility verifier
, and addeligibility_types
for all events - Upgraded to Django to 4.1.3, jQuery version 3.6.1, Bootstrap version 5.2 and CA State Web Template 6.0.7.
- Updated copy in both English and Spanish.
What's Changed (full list)
- chore(deps-dev): bump cypress from 10.7.0 to 10.8.0 in /tests/cypress by @dependabot in #911
- Refactor: use common base image by @angela-tran in #921
- chore(deps): bump django from 4.1 to 4.1.1 in /appcontainer by @dependabot in #895
- Fix: error page translations by @angela-tran in #922
- Devcontainer: debug in non-debug mode by @thekaveman in #925
- Feat: track verifier in all analytic events by @angela-tran in #924
- chore(deps): bump authlib from 1.0.1 to 1.1.0 in /appcontainer by @dependabot in #912
- Refactor: error page layout and wording by @angela-tran in #927
- Docs: seniors gif by @thekaveman in #931
- Refactor: 500 page by @angela-tran in #928
- One column everything by @machikoyasuda in #932
- Chore: update State Template by @thekaveman in #952
- Agency Index Page: Update HTML elements and copy by @machikoyasuda in #950
- chore(pre-commit): autoupdate hooks by @pre-commit-ci in #955
- Eligibility Confirm: Update copy, add form input helper text by @machikoyasuda in #959
- Refactor: eligibility start copy by @angela-tran in #956
- Chore: remove DMV copy by @thekaveman in #958
- Verifier Selection: Update copy, add link by @machikoyasuda in #951
- Clean up sample data by @thekaveman in #969
- Chore: rename content_title to headline by @angela-tran in #966
- Chore: data migration reminders by @thekaveman in #985
- Refactor: Use CSS Variables for colors, font-family by @machikoyasuda in #970
- Refactor: CSS Variables - Paragraph style and links by @machikoyasuda in #984
- link to Style Guide by @afeld in #990
- Refactor: enrollment connect card copy by @angela-tran in #967
- Refactor: remove agency index pass-thru by @thekaveman in #999
- Refactor: enrollment success copy by @thekaveman in #997
- CSS Variables: Responsive headlines by @machikoyasuda in #991
- upgrade Terraform and Azure provider by @afeld in #995
- chore(deps-dev): bump cypress from 10.8.0 to 10.9.0 in /tests/cypress by @dependabot in #963
- Fix: enrollment post log out by @thekaveman in #1012
- Chore: only run CodeQL for javascript/python by @thekaveman in #1018
- Chore: only run CodeQL for .js/.py on pull_request by @thekaveman in #1019
- CSS Variables: Refactor footer sizing and alignment by @machikoyasuda in #1014
- Refactor: Media List on Mobile & Desktop by @machikoyasuda in #1020
- Fix: Remove unused form error-handling; add new placeholder + regex by @machikoyasuda in #1022
- Refactor: base grid by @angela-tran in #1003
- add Use Case around Courtesy Cards by @afeld in #1024
- Feat: Previous Page include by @thekaveman in #1025
- reduce size of senior success flow GIF by @afeld in #1026
- Fix: remove previous button hover background by @thekaveman in #1029
- chore(pre-commit): autoupdate hooks by @pre-commit-ci in #1032
- Refactor & Redesign: Eligibility Index, Eligibility Confirm form pages by @machikoyasuda in #1023
- Fixes: Header by @machikoyasuda in #1033
- Fix: Sign out row bug by @machikoyasuda in #1030
- Fixes: Media List spacing by @machikoyasuda in #1041
- Refactor: simple pages by @angela-tran in #1013
- Agency Index by @machikoyasuda in #1035
- Fix: previous page button hover style by @thekaveman in #1044
- Fix: Allow margin-bottom for media-list by @machikoyasuda in #1048
- Fix: Eligibility Start - Mobile: Add padding top between help text and button by @machikoyasuda in #1051
- Fix: Enrollment Index - Add H1 padding by @machikoyasuda in #1052
- Fix: Sign Out link on Enrollment Index by @machikoyasuda in #1055
- add workaround for BuildKit issue on Apple M1 hardware by @afeld in #1027
- Fix: Radio button positioning, elements by @machikoyasuda in #1058
- Style: enrollment success by @angela-tran in #1056
- Fix: overwrite frame-src when needed by @thekaveman in #1067
- Fixes: Buttons on Help, 200, 400, 404, 500, Unverified, Retry by @machikoyasuda in #1042
- Chore: rename start item by @angela-tran in #1070
- Fix: reCAPTCHA + HTML5 form validation by @thekaveman in #1071
- Fix: Use rem calculation for 18px font by @machikoyasuda in https://github.com/cal-itp/benefits/pull/...
2022.09.1
Overview
This release contains a number of small improvements for analytics, dependency security updates, and more.
- Analytics: Renames
provider_name
totransit_agency
. Returnseligibility_group_id
aspayment_group
for successful enrollment events - Public Key: Updates
TransitAgency
public key. This release requires database schema updates. - For developers: Adds environment variables and settings to be compatible with the latest Eligibility Server
What's Changed (Full List)
- chore(pre-commit): autoupdate hooks by @pre-commit-ci in #882
- Docs: Use cases for Seniors by @machikoyasuda in #889
- Fix: local eligibility server by @thekaveman in #892
- chore(deps-dev): bump cypress from 10.6.0 to 10.7.0 in /tests/cypress by @dependabot in #888
- feat(analytics): return Group ID with Returned Success by @machikoyasuda in #897
- chore(pre-commit): autoupdate hooks by @pre-commit-ci in #894
- Feat: agency public keys / remote keys by @thekaveman in #881
- update references to the Identity Gateway by @afeld in #893
- chore(pre-commit): autoupdate hooks by @pre-commit-ci in #906
- Feat: send eligibility type with eligibility events by @thekaveman in #891
- Analytics: rename transit agency property by @thekaveman in #901
- Prep release 2022.09.1 by @angela-tran in #915
- Deploy 2022.09.1 to test by @angela-tran in #917
- Release 2022.09.1 by @angela-tran in #918
Full Changelog: 2022.08.2...2022.09.1
Release process issue: #907
2022.08.2
Overview
This release contains a number of small fixes as a quick follow-up to the initial deploy into production with Login.gov IAL2 verification.
- Small improvement to how we deal with missing claims from the Identity Gateway (better logging/error handling)
- Introduce an explicit analytics event for "enrollment success" - previously, we were relying on the user viewing a specific page in the app, but we'd like to have more control over the timing and conditions of that event to ensure we're getting accurate metrics
- Fix to the infrastructure pipeline that should help us avoid race conditions when evaluating new changes in Azure
What's Changed (Full List)
- Fix: auth scope check when userinfo is present, but claim is not by @angela-tran in #864
- Feat: issue template for managing a release by @thekaveman in #866
- Fix: correct checkbox options syntax by @thekaveman in #868
- chore(deps-dev): bump cypress from 10.4.0 to 10.6.0 in /tests/cypress by @dependabot in #867
- chore(pre-commit): autoupdate hooks by @pre-commit-ci in #872
- chore(pipeline): wait for Terraform lock to be released by @afeld in #876
- Analytics - Send event when user successfully completes payment processor enrollment by @machikoyasuda in #873
- Deploy to Test by @thekaveman in #883
- Prep Release 2022.08.2 by @thekaveman in #886
- Deploy 2022.08.2 to test by @thekaveman in #887
- Release 2022.08.2 by @thekaveman in #884
Full Changelog: 2022.08.1...2022.08.2
Release process issue: #885
2022.08.1
▶ Walkthrough video
Overview
This release is a relaunch of the Benefits application for older adults using the Monterey-Salinas Transit (MST) system. Major changes in this release:
- Switched to using Login.gov identity proofing for verifying a user qualifies for the senior discount, rather than having them type in their driver's license information and the application verifying it with the California DMV
- Moved from hosting the application with the DMV to hosting with the California Department of Technology (CDT)
We also:
- Made user experience improvements for mobile users
- Made various improvements to the underlying code, including beefing up our automated testing and extracting out reusable pieces to make additional eligibility verification cases easier
- Updated the copy in both English and Spanish
One known regression is that the move to Login.gov means that users need to have a social security number (SSN) in order to proof their identity. We are planning to provide an alternate path for users without one.
What's Changed (Full List)
- chore(deps-dev): bump cypress from 9.3.1 to 9.4.1 in /tests/cypress by @dependabot in #303
- chore(deps-dev): bump cypress from 9.4.1 to 9.5.0 in /tests/cypress by @dependabot in #310
- chore(deps): bump django from 3.2.11 to 3.2.12 by @dependabot in #307
- chore(deps-dev): bump cypress from 9.5.0 to 9.5.1 in /tests/cypress by @dependabot in #314
- chore(deps): bump treosh/lighthouse-ci-action from 8 to 9.3.0 by @dependabot in #311
- chore(deps): bump actions/checkout from 2 to 3 by @dependabot in #313
- chore(deps): bump actions/setup-python from 2 to 3 by @dependabot in #312
- chore(deps-dev): bump cypress from 9.5.1 to 9.5.2 in /tests/cypress by @dependabot in #316
- TransitAgency model allows for multiple verifiers by @angela-tran in #326
- Chore: normalize msgids in language files by @thekaveman in #328
- Feat: Add validation fields to verifier model by @thekaveman in #329
- Feat: track verifier in session by @angela-tran in #330
- Feat: middleware to require verifier in session by @thekaveman in #333
- Feat: EligibilityVerifier custom text by @angela-tran in #331
- Feat: dynamic verification form by @angela-tran in #336
- Feat: create a separate eligibility start page by @thekaveman in #335
- Feat: use EligibilityVerifierSelectionForm by @angela-tran in #337
- Refactor: multiple verifiers in language files by @thekaveman in #344
- Fix: eligibility reset by @thekaveman in #350
- Fix: update black in pre-commit by @thekaveman in #361
- chore(deps-dev): bump cypress from 9.5.2 to 9.5.3 in /tests/cypress by @dependabot in #353
- Feat: show layout image by default by @thekaveman in #364
- chore(deps): bump cryptography from 36.0.1 to 36.0.2 by @dependabot in #327
- Fix: devcontainer command syntax by @thekaveman in #352
- Tests: Update UI tests for multiple verifier flow by @machikoyasuda in #378
- Fix: use verifier's translation strings on eligibility unverified page by @thekaveman in #385
- Docs: improve development docs, new section by @thekaveman in #386
- Fix: gitattributes to force LF by @thekaveman in #387
- Feat: add CODEOWNERS file by @thekaveman in #388
- Fix: add realistic CSP settings to sample env by @thekaveman in #389
- Feat: custom RadioSelect widget by @angela-tran in #345
- Feat: re-introduce static Docker port config by @thekaveman in #390
- Feat: create template for eligibility start page by @thekaveman in #391
- Fix: explicit blocks in start template by @thekaveman in #394
- Track sign in status in user session by @machikoyasuda in #396
- Fix: add SRI attributes for jQuery by @afeld in #399
- Fix: add missing third-party domains to CSP settings by @afeld in #401
- Feat: AuthProvider model by @angela-tran in #392
- Feat: update styles to match mockup by @Jorden1420 in #397
- Feat: add auth button to Eligibility start page by @thekaveman in #402
- chore(deps): bump actions/upload-artifact from 2 to 3 by @dependabot in #411
- Refactor: Help page by @angela-tran in #403
- chore(deps-dev): bump cypress from 9.5.3 to 9.5.4 in /tests/cypress by @dependabot in #417
- fix(visual bug): better align footer text #412 by @Jorden1420 in #427
- fix: override entrypoint in the Docker Compose config by @afeld in #424
- Refactor: agency index by @angela-tran in #430
- refactor: speed up Docker image rebuild times by @afeld in #425
- Docs: configuration, environment variables, fixtures by @thekaveman in #426
- feat: updates content title by @MattRenda in #437
- Refactor: Redesign media list on Eligibility Start page by @thekaveman in #395
- Feat: implement OAuth/OIDC sign on with Authlib by @thekaveman in #414
- Feat: check authentication status by @afeld in #409
- Chore: add log statements for OAuth flow by @thekaveman in #441
- Style: agency index by @angela-tran in #444
- fix(header): move debug bar out of , remove header height css by @machikoyasuda in #450
- Fix: simplify context creation for Eligibility start by @thekaveman in #443
- Refactor: remove paragraphs from index by @angela-tran in #451
- Fix index content title to match Figma mockup by @angela-tran in #453
- Fix: add SECURE_PROXY_SSL_HEADER for nginx by @thekaveman in #447
- Refactor: Update copy/logic to Enrollment success page by @machikoyasuda in #429
- Chore: set up app-level tests by @afeld in #455
- Chore: run pytest in CI by @afeld in #454
- Eligibility Start page: CSS fixes by @machikoyasuda in #459
- Style: Help page button width by @angela-tran in #463
- Button: Large Button centering/height fixes by @machikoyasuda in #461
- Test: test admin route is not registered by @machikoyasuda in #469
- Fix: Spanish copy on agency index by @machikoyasuda in #472
- Fix: use recommended settings import approach by @thekaveman in #471
- Feat: Implement OAuth/OIDC and app sign out by @thekaveman in #436
- feat: set up test coverage by @afeld in #478
- feat: create auth decorator by @afeld in #445
- Tests: OAuth login flow by @thekaveman in #479
- Fix: Align Desktop Header/Container/Footer heights by @machikoyasuda in #462
- chore(deps): bump django from 3.2.12 to 3.2.13 by @dependabot in #416
- Fix: add on.push for CodeQL runs by @thekaveman in #481
- Feat: CI workflow to label PRs that touch tests by @thekaveman in #482
- Feat: workflow to labe...