Generic shared service artifact store to integrat S3 Buckets or scalable selfhosted Storage based on Ceph.
Find a file
tegwick 07feabe9cc
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 3s
Regenerate agent instructions from state-hub templates (CUST-WP-0055 T01)
Sync AGENTS.md, CLAUDE.md, and .claude/rules from updated project_rules
templates: workplan-first session protocol, legacy terminology footnote,
and GET /workplans/ examples.
2026-07-08 14:50:16 +02:00
.claude/rules Regenerate agent instructions from state-hub templates (CUST-WP-0055 T01) 2026-07-08 14:50:16 +02:00
.forgejo/workflows Add Forgejo CI smoke workflow (enablement template) 2026-07-08 00:25:57 +02:00
docs ARTIFACT-STORE-WP-0007 D7.4: STS temporary credential support (session token + refreshable file refs) 2026-07-02 11:23:44 +02:00
migrations WP-0001-T002: registry data model, Alembic, initial migration with retention seed 2026-05-16 01:50:38 +02:00
registry Draft capability entry (reuse-surface REUSE-WP-0017-T04, cohort 1) 2026-07-06 19:03:42 +02:00
schemas Add guide-board pilot ingestion 2026-05-17 00:09:11 +02:00
scripts ARTIFACT-STORE-WP-0007 D7.4: STS temporary credential support (session token + refreshable file refs) 2026-07-02 11:23:44 +02:00
src/artifactstore ARTIFACT-STORE-WP-0007 D7.4: STS temporary credential support (session token + refreshable file refs) 2026-07-02 11:23:44 +02:00
tests ARTIFACT-STORE-WP-0007 D7.4: STS temporary credential support (session token + refreshable file refs) 2026-07-02 11:23:44 +02:00
workplans ARTIFACT-STORE-WP-0007 D7.5 + finish: follow-up routing and MinIO-compatibility decision 2026-07-02 11:26:45 +02:00
.custodian-brief.md chore(consistency): sync task status from DB [auto] 2026-07-02 11:27:11 +02:00
.env.example Add guide-board pilot ingestion 2026-05-17 00:09:11 +02:00
.gitignore WP-0001-T001: service scaffold (Python, FastAPI, uv, ruff, mypy, pytest) 2026-05-16 01:30:22 +02:00
.repo-classification.yaml Add .repo-classification.yaml (CUST-WP-0050 T11 agent first-pass) 2026-06-22 17:47:34 +02:00
AGENTS.md Regenerate agent instructions from state-hub templates (CUST-WP-0055 T01) 2026-07-08 14:50:16 +02:00
alembic.ini WP-0001-T002: registry data model, Alembic, initial migration with retention seed 2026-05-16 01:50:38 +02:00
CLAUDE.md Add credential routing instructions for all agent runtimes 2026-06-18 22:48:37 +02:00
INTENT.md Bootstraping the repo 2026-05-15 20:08:32 +02:00
LICENSE Initial commit 2026-05-15 16:14:36 +00:00
Makefile ARTIFACT-STORE-WP-0007 D7.2: deterministic local MinIO fixture, live compatibility pass 2026-07-02 11:13:03 +02:00
pyproject.toml Add S3 backend and storage verification 2026-05-16 23:26:03 +02:00
README.md WP-0001-T008: operator docs + ADR cross-linking; mark WP-0001 done 2026-05-16 09:02:36 +02:00
SCOPE.md Bootstraping the repo 2026-05-15 20:08:32 +02:00
uv.lock Advance MinIO compatibility lane 2026-06-27 23:37:55 +02:00

artifact-store

Generic artifact registry and storage gateway for generated outputs, evidence packages, reports, logs, snapshots, exports, and release artifacts.

The registry owns artifact identity, metadata, provenance, retention policy, and retrieval records. Bytes are delegated to configured storage backends (local filesystem in v1, S3-compatible / Ceph RGW in WP-0004).

The shape is library-first (artifactstore Python package); the HTTP server and the CLI are thin consumers. Content is addressed by digest; state is authoritative in an append-only event log (ADR-0002); materialised views are rebuildable.

Status

v0.1 (WP-0001 baseline) — library, CLI, minimal HTTP app, local FS backend, end-to-end ingest + finalize + replay all working. The full package CRUD HTTP API lands in WP-0002.

Quick start

Requires Python ≥ 3.12 and uv.

uv sync --all-extras          # install dependencies (creates .venv + uv.lock)
cp .env.example .env          # optional; defaults work out of the box

make migrate-fresh            # initialise ./var/artifactstore.db
make dev                      # uvicorn on 127.0.0.1:8000

# in another terminal
curl -s http://127.0.0.1:8000/health | python3 -m json.tool
artifactstore health

Make targets

Target Purpose
make install uv sync --all-extras
make dev run the FastAPI app with reload
make test run the pytest suite
make lint ruff check + ruff format --check
make format apply ruff format + ruff check --fix
make type mypy --strict
make migrate alembic upgrade head
make migrate-fresh drop the local SQLite DB and re-run migrations
make clean remove caches and build artefacts

CLI

artifactstore version     # print the package version
artifactstore migrate     # alembic upgrade head
artifactstore replay      # rebuild materialised views from the event log
artifactstore health      # JSON liveness summary (same payload as /health)

Documentation

Workplans

Agent operating notes

See AGENTS.md for the StateHub-integrated session protocol, workplan conventions, and progress-logging contract.