Story: Run an example bundle through the compute grid from a report definition
Table of Contents
- 1. Goal
- 2. Status
- 3. Acceptance
- 4. Tasks
- 5. Decisions
- 5.1. The chain selection landed under the sibling story
- 5.2. "No preprocessing" is a code change, not a seeding choice
- 5.3. The reporting to compute handoff is in scope, though the code is not ours
- 5.4. Retrieval is in scope; analysis of the results is not
- 5.5. The story must still decide what the run executes
- 6. Out of scope
This page documents a story in Sprint 27. It captures the goal, current status, acceptance criteria, and the tasks that compose it.
1. Goal
A report definition can select a step chain shorter than the full report execution workflow, and the reporting to compute handoff drives a compute job from it.
2. Status
| Field | Value |
|---|---|
| State | DONE |
| Parent sprint | Sprint 27 |
| Now | Nothing. |
| Waiting on | Nothing. |
| Next | Nothing. |
| Last touched | 2026-10-13 |
3. Acceptance
- A definition can select a step chain shorter than the full report execution workflow, and the chain it selects is the one that runs.
- The reporting to compute handoff publishes on a subject a wrapper subscribes to, fills the fields a wrapper needs, and hands over a readable URI, so the wrapper takes the assignment.
- The seeded report definition schedule expression is valid, so schedule-report-definitions succeeds and a definition can be admitted to a run.
- The run configuration names the market data, fixings and portfolio paths the run produces, so the engine reads them.
4. Tasks
| Task | State | Start | End | Description |
|---|---|---|---|---|
| Scaffold story: Run an example bundle through the compute grid from a report definition | DONE | 2026-09-27 | 2026-09-27 | Story scaffolding rides this task: documents, sprint wiring, and the scaffold PR. Close it before merging that PR. |
| Let a definition select its step chain | DONE | 2026-09-28 | Task for: Run an example bundle through the compute grid from a report definition | |
| Make the reporting to compute handoff drive a job | DONE | 2026-10-07 | 2026-10-07 | Subject and URI fixed; the wrapper takes the assignment and stops at storage authentication, which needs the isolation story's node capability. |
| Correct the seeded report definition schedule expression | DONE | 2026-10-08 | The Intercompany Exposure Matrix definition is seeded with schedule_expression '0 6 * * 1,15', whose fifth field is the day of week and 15 is out of range, so cron_expression::from_string refuses it and report_operations schedule-report-definitions fails. A definition that cannot be scheduled never gets a run grant, so no run can be admitted. Its description says monthly cadence. | |
| Match the run configuration to the inputs the run produces | DONE | 2026-10-07 | 2026-10-09 | The imported MinimalSetup run configuration reads Input/market_20160205_flat.txt, but the run's input archive carried internal encodings rather than ORE files, so ORE stops at 'Loading inputs' with 'error opening file Input/market_20160205_flat.txt' and produces no analytics. PR 2769 put the market data and the fixings at the paths the run document names; PR 2857 does the same for the portfolio. Both await a run to confirm the engine reads them. |
5. Decisions
The remainder is carried in Prove the report grid run end to end.
5.1. The chain selection landed under the sibling story
PR #2289 delivered it as task 395C3931 on Run a full report: scheduling, reporting and compute, so this story's task 06147DF3 is closed as delivered rather than re-scoped. Its premise is obsolete rather than wrong: it assumed shortening the chain was a positional remap, and step results are now addressed by the name of the step that produced them.
5.2. "No preprocessing" is a code change, not a seeding choice
The chain is registered once, in code, and the trigger hard-codes its type, so no definition can select a shorter one today. The story therefore starts with the carrier and the second chain rather than with the fixture. Recorded in the investigation.
5.3. The reporting to compute handoff is in scope, though the code is not ours
The submit path publishes on a subject no wrapper subscribes to, leaves the fields a wrapper needs empty, and hands over a URI in the wrong shape. Without fixing all three the story cannot succeed, so the task is here rather than waiting on ores.compute. It may be reassigned if that workstream prefers to own it.
5.4. Retrieval is in scope; analysis of the results is not
collect_compute_results currently completes without fetching anything. This
story makes it fetch the output and record where it landed. Parsing ORE result
data stays out.
5.5. The story must still decide what the run executes
The reporting chain packages its own trades and market data blobs, not the
Input/ore.xml shape the ORE engine needs, so "run the example bundle through
the grid" and "run the reporting chain as it stands" are two different jobs.
The investigation states both; the choice is owed before the proof task starts.
6. Out of scope
- Parsing or post-processing the compute results.
- Gathering trades or market data, and assembling a bundle.