Skip to content

Async exports#6539

Draft
MartinVanIJcken wants to merge 32 commits intoasync-exports-models-and-jobsfrom
async-exports
Draft

Async exports#6539
MartinVanIJcken wants to merge 32 commits intoasync-exports-models-and-jobsfrom
async-exports

Conversation

@MartinVanIJcken
Copy link
Copy Markdown
Contributor

@MartinVanIJcken MartinVanIJcken commented Apr 9, 2026

Introduces asynchronous downloads for our three main download types:

  • Vaccination reports
  • School moves
  • Offline session spreadsheet

These downloads are created as a database object when requested by the user and an asynchronous Sidekiq job then generates their content while the user can continue to other tasks. After a 30 day wait, export data is removed to safe on storage.

Generated exports are shown on the new Manage Data page, which also contains the old imports page. The design closely matches but is not identical to the prototype to account for the fact that the imports page still needs to be redesigned.

The route vaccination-report was replaced by vaccination-records/export to match the other exporters. A redirect is now in place to redirect traffic from the reporting app. In a future release of the reporting app, the reporting app can be set to direct directly to vaccination-records/export and this redirect can be removed.

Jira Issue - MAV-1512
Jira Issue - MAV-3329

Screenshots

Screencast_20260416_125551.webm

@MartinVanIJcken MartinVanIJcken force-pushed the async-exports branch 12 times, most recently from 38c59ca to e7092aa Compare April 16, 2026 14:51
@MartinVanIJcken MartinVanIJcken marked this pull request as ready for review April 16, 2026 15:32
@MartinVanIJcken MartinVanIJcken requested a review from a team as a code owner April 16, 2026 15:32
@MartinVanIJcken MartinVanIJcken force-pushed the async-exports branch 2 times, most recently from 658d289 to ac61c6b Compare April 17, 2026 16:42
@MartinVanIJcken MartinVanIJcken changed the base branch from next to async-exports-models-and-jobs April 21, 2026 09:30
@MartinVanIJcken MartinVanIJcken force-pushed the async-exports-models-and-jobs branch from d413eeb to 76dcf80 Compare April 22, 2026 15:15
@MartinVanIJcken MartinVanIJcken force-pushed the async-exports branch 2 times, most recently from 34783d1 to a28703b Compare April 23, 2026 09:34
@MartinVanIJcken MartinVanIJcken force-pushed the async-exports-models-and-jobs branch from 76dcf80 to 28b4897 Compare April 23, 2026 09:34
@MartinVanIJcken MartinVanIJcken marked this pull request as draft April 23, 2026 10:52
@MartinVanIJcken MartinVanIJcken force-pushed the async-exports-models-and-jobs branch from 28b4897 to a2dc44b Compare April 27, 2026 15:56
@MartinVanIJcken MartinVanIJcken force-pushed the async-exports-models-and-jobs branch 3 times, most recently from 4dae2d6 to c06aa50 Compare April 30, 2026 08:37
Jira-Issue: MAV-1521
This does not test the full journey as the form should be accessed from the 
reporting app normally, but here is accessed directly via the URL.

Jira-Issue: MAV-1521
The reporing app sends users to vaccination-reports. In order to be consistent 
with the other exports, we want that route to be vaccination-records/exports.

A PR will also be raised to the reporting app to change this route, but in order 
to allow for a zero downtime release, we should keep this URL functioning for 
some time until all sessions on the old reporting app have ended.

Jira-Issue: MAV-1521
Now that all routes go through the vaccination records export, this code is 
no longer needed.

Jira-Issue: MAV-1521
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant