Published layers
Shared harness bundles, version history, visibility, and publish workflow.
Published layers
A published layer in HarnessTap Cloud is a versioned bundle stored under an organization catalog. Each published version stores a urn:harnesstap:layer:v1 export from the CLI (layer export / layer publish). Catalogs are the browse and install scope in Cloud; local layers, environments, and decks are composed and applied on the engineer's machine.
Published identity
| Form | Meaning |
|---|---|
org/layer@version | Legacy two-segment selector; resolves through the org's default catalog |
org/catalog/layer@version | Canonical three-segment selector |
The CLI accepts both forms for layer pull. Legacy bundle download URLs emit deprecation headers pointing at the three-segment successor path.
Version history
Every publish creates an immutable version with:
- A unique version identifier
- Changelog notes describing what changed
- Yank support to mark a version as withdrawn without deleting history
Version history is append-only. Teams can review what changed before adopting a new version in the CLI.
Visibility
Published layers support three visibility levels:
| Visibility | Who can see it |
|---|---|
| Organization | Members of the owning org only |
| Shared | Owning org plus orgs granted read or fork access via layer shares |
| Public | Anyone with the link (open catalog) |
Adjust visibility from layer settings in the web UI at /catalogs/[catalogSlug]/[layerSlug].
Web UI workflow
- Browse catalogs at /catalogs
- Open a published layer to view settings, collaborators, and version history
- Publish new versions from the layer detail page or via the CLI
Organizations with zero published layers are redirected to /onboarding until the first bundle exists.
CLI workflow
From the terminal, engineers interact with Cloud catalogs using:
harnesstap layer search <query>
harnesstap layer pull <org>/<catalog>/<layer>[@version] # preferred
harnesstap layer pull <org>/<layer>[@version] # default catalog shim
harnesstap project apply <layer> --project <path> # fetch on demand when needed
harnesstap layer publish <layer> --catalog <slug>See the Connect the CLI to Cloud guide for authentication prerequisites, the command reference for full flag coverage, and the scenario guides for workflow walkthroughs.
Profile-tagged layers
A profile is a published layer tagged profile—the same versioned bundle and publish pipeline as any other layer, surfaced as a switchable global preset in the CLI (profile use).
| Surface | Behavior |
|---|---|
| Catalog browse | Layers tab lists all published layers; Profiles tab filters tag=profile |
| Layer detail | Layers with the profile tag show a Profile badge |
| CLI | profile search, profile pull, and layer pull resolve the same catalog entries; activate with profile use |
Tag layers profile when publishing stack-only bundles meant for machine-wide harness paths (for example an engineering foundation preset). Org members cherry-pick other catalog layers into personal decks separately—profiles target global setup, decks target projects.