diff --git a/.gitea/workflows/publish.yml b/.gitea/workflows/publish.yml index 14382ca..39fd447 100644 --- a/.gitea/workflows/publish.yml +++ b/.gitea/workflows/publish.yml @@ -147,6 +147,7 @@ jobs: auth="Authorization: token ${{ secrets.GITHUB_TOKEN }}" # The release notes are this version's section of CHANGELOG.md. notes=$(awk -v v="${tag#v}" '/^## /{p = ($2 == v)} p' CHANGELOG.md | tail -n +2) + [ -n "$(printf "%s" "$notes" | tr -d "[:space:]")" ] || { echo "CHANGELOG.md has no section for $tag - write it and re-tag"; exit 1; } body=$(jq -n --arg tag "$tag" --arg notes "$notes" '{tag_name: $tag, name: $tag, body: $notes}') id=$(curl -sf -X POST -H "$auth" -H 'Content-Type: application/json' \ -d "$body" "$api/releases" | jq .id) \ diff --git a/CHANGELOG.md b/CHANGELOG.md index 32f4363..e272035 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,20 @@ One line per change, grouped by the release that shipped it. Newest first. A release is a Cargo.toml bump plus a `v` tag; the content repos pin the tag they run (see the end of this file). +## 0.3.41 (2026-09-23) + +- publish: the iris release step retries on a fresh clone when its push loses a race against a push to iris main (the v0.3.40 tag never published) +- iris: `check --access` prints the access matrix, and every check validates the compiled policy against the schema + +## 0.3.40 (2026-09-23) + +- One access policy, compiled from content into Cedar on every load (`src/access.rs`): pages, resource reads, desk transitions, self transitions and the automation endpoint all decide through it; decisions carry rule ids, refusals and mutations publish on `portal.access.decided`, and `portal.access..may` answers the same question for other apps over NATS +- `invite: {group}` on an alternative onboards a person into Kanidm from a desk (`src/people.rs`, `KANIDM_API_TOKEN`), recording the one-time credential link in `portal_invites` and on `portal.people.invited` + +## 0.3.39 (2026-09-23) + +- publish: releases the matching uhhm/iris by proxy - re-pins, builds, tests and tags it as this version (needs the `IRIS_PUSH_USER` variable and `IRIS_PUSH_TOKEN` secret); iris carries portal's version number from here on + ## 0.3.38 (2026-09-22) - publish: the iris build step gets a writable cargo home; the v0.3.37 tag never published