Files
portal/docs
Bendik Aagaard LynghaugandClaude Opus 5 22d086f9e1
docs / deploy (push) Successful in 2s
Test / test (push) Successful in 2m0s
A resource can show only its newest few
`limit: n` on a resource spec, applied after `jq`.

The releases card is what asked for it: a page that grows by one card
per release gets longer forever, and the cut a visitor should run is the
newest one — the rest are history, not an invitation. redoal's card had
every release on it.

After `jq` rather than before, for two reasons: it caps what the page
will actually render whatever the filter did, and content that reorders
with the filter can then take the top of its own ordering rather than
the top of the source's. A source yielding a single record has no length
and passes through untouched — turning one record into an empty list
would be worse than ignoring a limit that cannot apply. `limit: 0` on a
list does mean nothing, and the `empty` line speaks instead, which is a
coherent thing for content to ask for.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01ByshXuDEzH8hXh5qp4VgGk
2026-10-04 22:51:12 +02:00
..
2026-09-30 15:31:59 +02:00
2026-09-30 15:31:59 +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.
Training a site portal plan and portal build: a business in plain words becomes a content repo, held to the lint.
The lint portal lint: what a content repo's CI runs before anything reaches a site.
Filesystem routes Why the questions/ tree is the router.

One repo in the same family carries its own docs:

  • uhhm/gdo — the mailer. Delivers what content asked to be sent, and carries replies back.

The lint (once uhhm/iris) and the trainer (once uhhm/portal-trainer) are commands of the portal binary since 0.6; their chapters are above, and the trainer's runs stay in the old repo.