Skip to main content

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

just_dna_marketplace-0.2.0.tar.gz (23.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

just_dna_marketplace-0.2.0-py3-none-any.whl (34.2 kB view details)

Uploaded Python 3

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

Hashes for just_dna_marketplace-0.2.0.tar.gz
Algorithm Hash digest
SHA256 b5eb0aa043ca7f2f0b14243466746a8655f5312837c4888214734da655006892
MD5 042ffc3614cfc008ba7b193271343b1c
BLAKE2b-256 02f43f363d869aae32e68620a3cf15a35054a0b59fcf3b5121e6bd9daac29a95

See more details on using hashes here.

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

Hashes for just_dna_marketplace-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c4e38e2ad829d8eafe536c2a5e18b4fe6d6fb9011553b41c604a22881a910ae5
MD5 67c24859ec83c98e024b4ee8bcbf9730
BLAKE2b-256 dadd851fdebeda648e6d1e2d51356baa2331585dd1f0d9902842b553b93758bc

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page