Specify a recoverable private export store
Objectives
Halcyon Clinics exports complete daily files through an object API. The lead says a remote replica makes history unnecessary and encryption permits public downloads. Write a declarative storage plan, not a platform-specific deployment manifest.
Use the approved requirements below to choose the interface, protect anonymous access, retain earlier states, bound replication lag, and define both current and historical data lifecycles. Include an executable-in-spirit recovery test description identifying an isolated destination and content validation.
Approved export requirements
Interface: complete exports addressed by key through an API, no shared filesystem. Access: block public access; only export-reader may read prefix clinical/exports/. Recovery: retain earlier object states; asynchronous replication RPO no greater than 15 minutes. Lifecycle: transition current exports at 30 days, expire current exports at 365 days. Historical versions: expire 90 days after becoming noncurrent; no retention holds apply to this exercise. Restore drill: restore an earlier version into an isolated location and compare its checksum to the approved manifest.
Checks the server runs (6)
- Select the interface required by the exporter
- Block public access and scope the reader
- Keep earlier object states
- Bound asynchronous replication lag
- Set current and historical age rules
- Test isolated recovery and content integrity
Check names are all you see here: the expectations that decide pass or fail, and the reference solution, stay on the server.
Step-by-step hints
The guided walkthrough, in full. It is free: no XP cost, and it does not touch the paid hint ladder or the reveal gate.
- Step 1
Start from the caller
Look at how the exporter addresses data and how much it replaces on a write. Choose the interface without adding filesystem assumptions.
Select the interface required by the exporter
- Step 2
Define the access boundary
Use the approved principal and resource scope exactly. The public-access field is a YAML boolean, not a descriptive sentence.
Block public access and scope the reader
- Step 3
Separate history from distance
Decide which switch retains prior states, then express the replication acknowledgement approach and permitted lag. Keep the numeric lag nonnegative and within the business limit.
Keep earlier object statesBound asynchronous replication lag
- Step 4
Apply the two clocks
Map the fixture's age thresholds to current data movement, current data expiry, and historical data expiry. Do not collapse the historical timer into creation age.
Set current and historical age rules
- Step 5
Prove the recovered content
Describe which historical state the drill selects, where it can be recovered without changing production, and how bytes are checked against the approved reference.
Test isolated recovery and content integrity
Rules summary
XP on pass
40 bonus XP the first time every check goes green.
Paid hints
2 available. Each costs 25% of the lab XP (about 10 XP).
Reveal solution
Scores 0 XP and unlocks only after 3 check runs.
Attempt cap
60 check runs per learner. The runner warns you in the last 10.
Drafts
Your editor content is saved in this browser, so a reload will not lose work.
Walkthrough
Always free and never penalised: use it before spending a hint.