Reference client (and optional server) for the just-dna annotation module marketplace
Project description
just-dna-marketplace
A catalog / publish / download REST API for just-dna-lite annotation modules. Authors publish module specs; the server validates, recompiles, stores, and indexes them; consumers browse, search, download, and integrity-verify. There is no frontend here — the webui and Dagster pipelines are consumers of this API.
Live: https://module-marketplace.just-dna.life · health GET /health · API under /api/v1
· interactive docs at /docs.
See docs/SPEC.md for the full design and docs/ROADMAP.md for build status.
Quick start
uv sync
uv run pytest -q # run the test suite
uv run marketplace serve # start the API on http://127.0.0.1:8000
Then open http://127.0.0.1:8000/docs for the interactive API, or:
curl http://127.0.0.1:8000/api/v1/modules # list/search the catalog
uv run marketplace issue-key antonkulaga -n just-dna-seq # mint an API key for publishing
What works today
- Read/catalog API — list + search (
?q,?gene,?category,?genome_build,?owner,?license,?sort), module detail, versions, manifest (SPEC §8.1–§8.4). - Download + integrity — per-file descriptors with SHA-256, byte serving, and a
verify-then-install round-trip via
just_dna_format.verify_manifest(SPEC §5). - Auth — static API keys;
whoami; namespace ownership gate on publish (SPEC §8.8). - Yank / un-yank — unlist a version while keeping its artifact fetchable (SPEC §6).
Publishing runs all its guards but stops at the server-side recompile step (501) until the
just-dna-pipelines integration and HuggingFace storage land — see the roadmap.
Architecture
The manifest.json of each version is the source of truth; the SQLite catalog is a rebuildable
projection of it. The manifest contract and integrity primitives live in the shared, dependency-light
just-dna-format package so this service and the compiler never drift.
src/just_dna_marketplace/
config.py # Pydantic settings
db/ # SQLite schema + repository (the projection)
storage/ # StorageBackend interface + LocalStorage (HfStorage pending)
models/api.py # card / detail / version / page response models
services/ # catalog (reads) + ingest (manifest -> projection)
api/ # FastAPI app, deps (auth/pagination), routers
cli.py # `marketplace` admin CLI
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file just_dna_marketplace-0.2.0.tar.gz.
File metadata
- Download URL: just_dna_marketplace-0.2.0.tar.gz
- Upload date:
- Size: 23.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.17 {"installer":{"name":"uv","version":"0.9.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"22.04","id":"jammy","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b5eb0aa043ca7f2f0b14243466746a8655f5312837c4888214734da655006892
|
|
| MD5 |
042ffc3614cfc008ba7b193271343b1c
|
|
| BLAKE2b-256 |
02f43f363d869aae32e68620a3cf15a35054a0b59fcf3b5121e6bd9daac29a95
|
File details
Details for the file just_dna_marketplace-0.2.0-py3-none-any.whl.
File metadata
- Download URL: just_dna_marketplace-0.2.0-py3-none-any.whl
- Upload date:
- Size: 34.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.17 {"installer":{"name":"uv","version":"0.9.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"22.04","id":"jammy","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c4e38e2ad829d8eafe536c2a5e18b4fe6d6fb9011553b41c604a22881a910ae5
|
|
| MD5 |
67c24859ec83c98e024b4ee8bcbf9730
|
|
| BLAKE2b-256 |
dadd851fdebeda648e6d1e2d51356baa2331585dd1f0d9902842b553b93758bc
|