Skip to content

chore: back-merge main into develop - #8

Merged
lorem-dev merged 2 commits into
developfrom
main
Aug 11, 2026
Merged

chore: back-merge main into develop#8
lorem-dev merged 2 commits into
developfrom
main

Conversation

@github-actions

Copy link
Copy Markdown
Contributor

Automated back-merge of main into develop.

Latest commit on main: 5550335 -- chore: release 0.4.1

Opened by Back-merge main -> develop, run 31527326613.

Merge this (or turn on auto-merge) to keep develop in step with
main. Resolve any conflicts here rather than on develop.

`groups: []`, and any list omitting `admin`, produced a configuration with
no legal value for `create`, `update`, `delete` or `upload`: V36 refused the
`admin` they default to, V34 refused `public`, and nothing else was
available. Reproduced on the binary -- twelve violations and no way to
satisfy them:

    admin.access.create: `admin` is not an allowed group: ...only `public`
    admin.access.create: `create` must not be public: ...Name a token or a group.

Two changes resolve it. `admin` is exempt from the allow-list, as `public`
already was: a list may bound the names an operator hands access to, but not
revoke the fallback every action already has. And `groups: []`, which names
nobody, is read as all-public -- the only reading of it that describes a
configuration that runs.

`admin.public` says the same thing outright. It answers every action as
`public` for anyone, overriding `access`, `groups` and a proxy's overrides,
and V34 with them: V34 exists so an unauthenticated writable proxy set
cannot happen by omission, and a field called `public` set to `true` is not
an omission. Whatever the document still said is reported at startup rather
than refused, so a configuration can be opened up temporarily without being
gutted first.

The reviewing pass found a bug in that very advisory: it asked
`allowed_groups()`, which resolves an absent `groups` to `["*"]`, so
`public: true` alone reported `admin.groups` as one of the operator's
settings being ignored -- a field they never wrote. It now reads the document
rather than the resolved value, and the test asserts the silence.

V36's message assembled the exemptions as a suffix and printed
"`admin`, `ci`, `admin` and `public`" for `groups: ["admin", "ci"]`. Built
as a set now, so each name appears once.

Verified live: `groups: []` and `public: true` both validate, the two
advisories print, and an anonymous `DELETE /api/v1/proxies/ghost` under
`public: true` answers 404 rather than 401 -- authorised, then no such proxy.
@lorem-dev
lorem-dev merged commit d41f379 into develop Aug 11, 2026
12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant