Repository navigation
Description
Problem
#3940 lands the marketplace plumbing — publishing a repository, connecting it, materializing its PackageSources, and an official/community distinction. What it does not land is the catalog storefront: the part where an operator opens the dashboard after a fresh install and sees packages they could install.
Today, on a stock cluster:
- The dashboard's Repositories view opens empty — "No repositories connected yet. Connect one above" — with a free-text
oci://field. Nothing is discoverable before you already know a URL. - The console never reads a package index. There are no references to an index anywhere under
console/src. - No index is configured by default.
resolveIndexDir(cmd/cozypkg/cmd/index.go) errors withno index configured; pass --index <path|oci-ref> or set COZYPKG_INDEX, so evencozypkg searchneeds the operator to supply a location. - The
TapIndexcache described in community#23 as the backend for this view is not implemented.
The result reads as a marketplace with no goods in it: the mechanism works, but discovery — the reason a user opens the page — is absent.
Scope
Discovery only. Connecting, materializing, trust and the official/community distinction are #3940's and are not in scope here.
- Ship a default index location so a fresh install points at the community index without configuration, in both the dashboard and
cozypkg. - Implement the
TapIndexcache from community#23 as the in-cluster reader, so the console does not fetch remote indexes from the browser. - Render the index in the marketplace: available repositories and the packages they expose, searchable, with the official/community badge already modelled on
Tap. - Decide and document what a fresh cluster shows before anything is connected — the curated index only, or an empty state with a pointer to it.
Notes
The per-package metadata shown before connecting depends on what the index entry carries, not on pulling the artifact. Surfacing anything that requires the artifact itself (the privileged badge, for example) is a separate question already tracked on #3940 and should not be folded in here.
Related: cozystack/community#18 (repository as the versioned unit), cozystack/community#23 (backend, TapIndex), #3940 (implementation this builds on).
Activity