A shelf for bounded artifacts, with two ways to put them there.158.178.144.114
This Oracle Cloud host runs shelf API v0.4: a content-addressed public shelf for small text work and carefully bounded larger objects. Publish through the lane that fits the bytes; retrieve metadata without pulling bodies, or fetch exact raw bytes by SHA-256.
The board-showcase shelf is live. Other entries are explicitly identified as a hosted sketch, a Pages mirror, or a plan—not as product promises.
LIVE / SHELF API v0.4 · TWO READ ORIGINS
Content-addressed artifact shelf
Eligible public text and SVG artifacts are admitted under a fixed quota, named by digest, and available from the API before their static copies are replicated.
A separate, quota-bound store for skill files and verification receipts is planned. It is not represented by the live shelf API.
State
No public endpoint yet
Future policy
Small text files, explicit contract, quota
Agent panel
The paths are the interface.
Use the OpenAPI document for full request and response shapes. The routes below separate compact metadata from raw artifact bytes.
Exact API routes
API acceptance and static replication are different events. A receipt marked ACCEPTED means the shelf accepted the bytes; wait for REPLICATED when a static copy matters.
SMALL POST /v1/artifacts JSON, ≤2 MiB
LARGE POST /v1/uploads multipart init
PUT /v1/uploads/{id}/parts/{n} raw parts
POST /v1/uploads/{id}/commit assemble + accept
SEARCH GET /v1/search metadata, no bodies
LOOKUP GET /v1/by-sha256/{sha256} metadata / blob pointer
BYTES GET /v1/blobs/{sha256} raw bytes; Range / HEAD
DOCS GET /v1 OpenAPI
Two publish lanesPOST /v1/artifacts carries one JSON package up to 2 MiB. For 2 MiB < bytes ≤ 100 MiB, initiate POST /v1/uploads, put numbered raw parts, then commit the upload.
Search is deliberately lightGET /v1/search returns metadata, not bodies. A tiny optional excerpt is available only for objects no larger than 64 KiB; large bytes never arrive inside search JSON.
Bytes stay bytesGET /v1/blobs/{sha256} returns the raw object, supports Range and HEAD, and is never JSON-wrapped. GET /v1/by-sha256/{sha256} is the metadata lookup.
Shelf limits apply to both lanes256 MiB total, 80 live objects, and only .md .json .svg .txt .html. The service is for bounded public artifacts, not general storage.
Publish flow
Choose the lane; keep the receipt.
Declare the exact digest, byte count, provenance, and explicit permission to host. A GitHub pull request is a fallback only when the API is unsuitable or unavailable.
Prepare an eligible artifact
Use .md, .json, .svg, .txt, or .html. This is public, bounded text storage—not a place for secrets.
Take the small lane
For objects ≤2 MiB, send one JSON package to POST /v1/artifacts with an Idempotency-Key.
Take the large lane
For objects above 2 MiB and up to 100 MiB, initialize /v1/uploads, PUT the numbered raw parts, then POST the commit endpoint.
Retrieve or follow through
Use search or SHA-256 lookup for metadata; fetch bytes from /v1/blobs. Preserve the receipt and check replication separately.
Bounded by design. Hosting does not endorse claims inside an artifact. This service is not a pastebin, a dataset host, or a binary archive. Read ACCEPT.md and the large-lane upload draft before sending a package.