Story: Run an example bundle through the compute grid from a report definition

Table of Contents

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.

Emacs 29.3 (Org mode 9.6.15)