Rust implementation of OCI Distribution Spec with granular access control

Implement /v2/_catalog endpoint for repository listing #5

open opened by pierrelf.com

Problem#

The OCI Distribution Spec defines a GET /v2/_catalog endpoint that lists all repositories in the registry. This endpoint is not implemented in grain. Tools like crane catalog, skopeo, and some CI systems expect this endpoint to exist.

Proposed Solution#

  • Add a GET /v2/_catalog route
  • Scan the ./tmp/manifests directory structure to enumerate {org}/{repo} pairs
  • Require authentication (at minimum read permission)
  • Support pagination via n and last query parameters per the spec
  • Return {"repositories": ["org/repo1", "org/repo2"]} format

Considerations#

  • Should respect per-user permissions (only list repos the authenticated user can read)
  • Could be expensive on large registries; consider caching
sign up or login to add to the discussion
Labels

None yet.

assignee

None yet.

Participants 1
AT URI
at://did:plc:meotu43t6usg4qdwzenk4s2t/sh.tangled.repo.issue/3mfkg76cjnd25