Skip to content

feat(config): publish honors repo visibility + API to manage the trust config#2155

Merged
rubenvdlinde merged 1 commit into
developmentfrom
feat/federated-config-visibility-and-trust
Jul 26, 2026
Merged

feat(config): publish honors repo visibility + API to manage the trust config#2155
rubenvdlinde merged 1 commit into
developmentfrom
feat/federated-config-visibility-and-trust

Conversation

@rubenvdlinde

Copy link
Copy Markdown
Contributor

Closes two governance/usability gaps in the store:

  • Publish honors visibilitypublish(..., private:) + controller visibility: private create a private store repo instead of always-public (default public, backward-compatible).
  • Trust config is API-manageable — admin-gated GET/PUT /api/federated-config/trust for the source allowlist, trusted publisher keys, and publish/install group lists, plus a trustKey append convenience. Previously occ-only. Non-admin → 403; unknown field → 400.

Unit test (trust round-trip) + live-verified on 8080 (admin GET/PUT/trustKey, non-admin 403, unknown-field 400).

…t config

Two gaps in the store's governance/usability:

- **Publish now honors visibility.** `publish(..., private: bool)` and the
  controller's `visibility: private` param let a freshly created store repo be
  private (previously every store repo was forced public). Defaults to public
  (backward-compatible); the token needs rights to create private repos.
- **The trust controls are API-manageable, not occ-only.** New admin-gated
  `GET/PUT /api/federated-config/trust` read and write the org's source allowlist,
  trusted publisher keys, and publish/install group lists — plus a `trustKey`
  convenience that appends a public key to the trusted-keys list (idempotent). Non
  admins get 403; an unknown field is a 400. This is the backend a governance
  settings UI needs (the config keys previously required `occ`).

Unit: trust read/write round-trip (set fields, append keys idempotently, unknown
field throws). Live-verified on 8080: admin GET/PUT + trustKey append work,
non-admin GET is 403, unknown field is 400.
@rubenvdlinde
rubenvdlinde merged commit 2fc8a8c into development Jul 26, 2026
16 of 17 checks passed
@rubenvdlinde
rubenvdlinde deleted the feat/federated-config-visibility-and-trust branch July 26, 2026 19:13
@github-actions

Copy link
Copy Markdown
Contributor

Quality Report — ConductionNL/openregister @ 6712f3e

Check PHP Vue Security License Tests
lint
phpcs
phpmd
psalm
phpstan
phpmetrics
eslint
stylelint
composer ✅ 174/174
npm ✅ 555/555
PHPUnit
Newman
Playwright ⏭️

Quality workflow — 2026-07-26 19:21 UTC

Download the full PDF report from the workflow artifacts.

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