Story: Let the area come from the model

Table of Contents

This page documents a story in Sprint 29. It captures the goal, current status, acceptance criteria, and the tasks that compose it.

1. Goal

An entity's HTTP area is a declaration on its model, resolved in one place, so a URL can outlive a component rename.

2. Status

Field Value
State DONE
Parent sprint Sprint 29
Now Nothing.
Waiting on Nothing.
Next Nothing.
Last touched 2026-10-31

3. Acceptance

  • An entity that declares #+http_area: renders its routes under that area.
  • An entity that declares no area renders under its component, so no existing URL moves.
  • A declared area that is not in the published list fails a check.
  • A codegen test covers both cases.

4. Tasks

Task State Start End Description
Scaffold story: Let the area come from the model DONE 2026-10-31 2026-10-31 Story scaffolding rides this task: documents, sprint wiring, and the scaffold PR. Close it before merging that PR.
Declare an entity's HTTP area DONE 2026-10-31 2026-10-31 Initial task for: Let the area come from the model
Move the currency routes onto reference-data DONE 2026-10-31 2026-10-31 The first URL the project moves. Declare the area on the currency model, regenerate the route unit, its tests, its recipe and its hurl scripts, update the classification rules and the inventory, and prove nothing else in the tree still names the old path.

5. Decisions

  • The area is declared per entity, not per component, because section 11.2 lets one component publish several areas and ores.iam already needs two.
  • The default is the component, so the mechanism lands without a migration in the same diff and no client sees a URL change it did not ask for.
  • The published areas are the list the inventory is classified against. A second list would drift, and a URL is the most expensive thing in the system to change.

6. Result

An entity model states the area its routes publish, the route plan resolves it in the one place the path is built, and the currency collection is the first to answer on its published area. The chain that has to move together was exercised once: the model, the route unit, its tests, the recipe page, the ten hurl scripts tangled from it, the classification rules and the inventory. The other generated collections can follow the same path, one component per change.

7. Out of scope

Emacs 29.3 (Org mode 9.6.15)