data_dir lives on the host that runs it. A developer’s laptop does not have it. A bundle carries one incident across that gap: the event, the already-redacted recording, and the contract version. Nothing else.
Export
pikopod agent incidents carries the exact line to run. For everything in a window, as a JSON array:
pikopod agent inspect prints.
Reproduce and fix from it
data_dir, and the file keeps working after the origin host’s retention has aged the incident out. The bundle records the export time, the origin host, and, when retention is configured, the time the origin will forget the incident.
Import it, and the local sandbox behaves as production did
reproduce runs the pack once. import makes the incident part of the local sandbox:
- The event and its redacted recording land in the local log, so
agent incidentslists it andreproduce <fingerprint>works here without the file. - A rule with provenance
imported:<fingerprint>answers the recorded route with the recorded status and body. When the bundle carries the resource’s state, the rule is conditioned on it, so the sandbox fails the way production did only while that resource is in that state. - The resource the recording touched is seeded into the sandbox’s store under its token key, with the attributes and state the agent last saw.
Where this fits
In rough order of how often they apply:- Export a bundle when one developer needs one incident now, and import it when the local sandbox should keep behaving that way.
- Commit the generated pack so the path is guarded forever with no recording at all.
- Share
data_dirread-only for a team that wants every incident. - Automate the export with
--since 24hin a cron job, attached to an issue or pull request.