Conversation
`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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Automated back-merge of
mainintodevelop.Latest commit on main:
5550335-- chore: release 0.4.1Opened by
Back-merge main -> develop, run31527326613.Merge this (or turn on auto-merge) to keep
developin step withmain. Resolve any conflicts here rather than on develop.