Files
portal/docs
Bendik Aagaard LynghaugandClaude Fable 5.1 f395ace556
docs / deploy (push) Successful in 3s
Test / test (push) Successful in 1m1s
Storylines: the same site told several ways, one per visitor, counted
Any text a person reads may be a list, one entry per storyline, every
list the same length. A visitor is given one storyline for the whole
site and reads it on every page and in every mail about their case.
Records and events carry the storyline; GET /report gives counts per
bucket, storyline and state, and nothing else.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GT37Z1Xtfd9pUuQtMTg6Yt
2026-09-30 15:11:27 +02:00
..

portal documentation

Portal turns a Git repo of YAML into a running site. Almost everything here is about that YAML: what a content repo may say, and what the engine does with it.

Getting started Bringing your people in: from an empty Kanidm to everyone at their own desk, from what the content says.
Architecture What the engine is made of and where each piece lives in the source.
Content reference Every key a content repo may write, and what it does.
State machines aggregates.yaml: stages, who moves a case, mail, deadlines, memberships.
Access How the Cedar policy is compiled from content, and who may ask it what.
Storylines The same site told several ways: lists of texts, one storyline per visitor, counted per storyline.
Memberships Groups kept by portal itself: a membership as a case, a person as a phone number first, and the provider only saying who.
Operations Releasing, deploying, adding a site, environment variables.
Filesystem routes Why the questions/ tree is the router.

Two repos in the same family carry their own docs:

  • uhhm/iris — the lint. Versioned as portal and released by portal's publish job; it is the thing a content repo's CI runs before anything reaches a site.
  • uhhm/gdo — the mailer. Delivers what content asked to be sent, and carries replies back.