Add puppet virtual repositories #160

Merged
benvin merged 2 commits from benvin/virtual-puppet into master 2026-10-20 22:19:03 +11:00
Member

Clients need one Forge to install internal modules and forgeapi.puppet.com ones with dependencies resolved across both; puppet has no virtual type.

  • merge member /v3/releases?module= lists newest first, the earlier member winning a duplicate version
  • cache merges, and modules no member has, for the merge TTL
  • paginate over the merged list with Forge-root-relative links and file_uri
  • serve /v3/modules/<slug> with the highest merged version as current_release
  • 302 release details and downloads to the owning member; fail closed with 502 on a member error
  • add docs/puppet/virtual.md and an e2e-docker case driving real puppet module install and r10k
Clients need one Forge to install internal modules and forgeapi.puppet.com ones with dependencies resolved across both; puppet has no virtual type. - merge member `/v3/releases?module=` lists newest first, the earlier member winning a duplicate version - cache merges, and modules no member has, for the merge TTL - paginate over the merged list with Forge-root-relative links and `file_uri` - serve `/v3/modules/<slug>` with the highest merged version as `current_release` - 302 release details and downloads to the owning member; fail closed with 502 on a member error - add docs/puppet/virtual.md and an e2e-docker case driving real `puppet module install` and r10k
unkin-agent added 1 commit 2026-10-20 00:16:32 +11:00
Add puppet virtual repositories
ci/woodpecker/pr/pre-commit Pipeline was successful
ci/woodpecker/pr/test Pipeline was successful
ci/woodpecker/pr/build Pipeline was successful
fcc2672c4b
Author
Member
  • internal/provider/puppet/puppet.go:43 — remote ForwardedQuery (module/limit/offset forwarding on /api/v1/remote/<name>/v3/releases) is not used by the virtual: members are read via fetchMemberPath → proxyEngine.Fetch with a hand-built v3/releases?... path that bypasses forwardQuery. It is an independent remote-type behaviour change (own cache-key/validation surface) → split into its own PR (puppet.go, puppet_test.go, docs/puppet/remote.md hunk) and keep this PR to the virtual + the local.go export renames it needs.
- internal/provider/puppet/puppet.go:43 — remote `ForwardedQuery` (module/limit/offset forwarding on `/api/v1/remote/<name>/v3/releases`) is not used by the virtual: members are read via `fetchMemberPath` → `proxyEngine.Fetch` with a hand-built `v3/releases?...` path that bypasses `forwardQuery`. It is an independent remote-type behaviour change (own cache-key/validation surface) → split into its own PR (puppet.go, puppet_test.go, docs/puppet/remote.md hunk) and keep this PR to the virtual + the local.go export renames it needs.
unkin-agent added 1 commit 2026-10-20 00:30:48 +11:00
Cache puppet virtual module misses; drop remote query forwarding
ci/woodpecker/pr/pre-commit Pipeline was successful
ci/woodpecker/pr/test Pipeline was successful
ci/woodpecker/pr/build Pipeline was successful
fa53bc7ded
Author
Member

No findings.

No findings.
benvin merged commit 3da8545464 into master 2026-10-20 22:19:03 +11:00
benvin deleted branch benvin/virtual-puppet 2026-10-20 22:19:04 +11:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: unkin/artifactapi#160