Skip to main content

LSMC Dewey canonical artifact registry service

Project description

Release Tag CI

Dewey

Dewey is the canonical artifact registry and artifact-resolution service for the stack. It gives analysis and delivery systems a stable place to register artifact identity, sets, share references, and links to external objects without handing artifact authority to the portal or the lab system.

Dewey owns:

  • artifact identity and artifact metadata
  • artifact-set identity and membership
  • artifact resolution and storage metadata lookup
  • share-reference issuance
  • external object links to artifacts and artifact sets

Dewey does not own:

  • customer release visibility decisions
  • Atlas storage policy authority
  • wet-lab or analysis execution state

Component View

flowchart LR
    Clients["Atlas / Ursa / operators"] --> Dewey["Dewey API + small browser UI"]
    Dewey --> TapDB["TapDB persistence"]
    Dewey --> Cognito["Cognito / daycog"]

Prerequisites

  • Python 3.11+
  • local PostgreSQL/TapDB-compatible runtime
  • HTTPS certificates for the normal local path
  • optional Cognito setup for the browser UI

Getting Started

Quickstart

source ./activate <deploy-name>
dewey config init
dewey db build --target local
dewey server start --port 8914

source ./activate <deploy-name> creates the deployment-scoped conda environment from repo-root environment.yaml when it is missing, then activates it and installs only the Dewey repo editable.

HTTPS is the expected local posture. Dewey now resolves TLS material in this order:

  • explicit --cert and --key
  • generic SSL_CERT_FILE and SSL_KEY_FILE
  • legacy DEWEY_SSL_CERT_FILE and DEWEY_SSL_KEY_FILE
  • shared deployment-scoped Dayhoff certs under ~/.local/state/dayhoff/<deploy-name>/certs/
  • repo-local certs/cert.pem and certs/key.pem as a temporary compatibility fallback
  • mkcert generation into the shared deployment-scoped Dayhoff cert directory

Use --no-ssl only when you explicitly want an HTTP local run.

Architecture

Technology

  • FastAPI + Jinja2
  • Typer-based dewey CLI
  • TapDB-backed persistence
  • Cognito-backed browser auth

Core Object Model

Dewey centers on:

  • artifacts
  • artifact sets
  • external objects and external-object relations
  • share references
  • resolution requests that map identifiers to storage metadata

Runtime Shape

  • app factory: dewey_service.app:create_app
  • CLI: dewey
  • main CLI groups: server, db, config, env, test, quality

API Shape

Current major route groups include:

  • artifact registration and lookup under /api/v1/artifacts
  • artifact-set registration and membership under /api/v1/artifact-sets
  • resolution flows under /api/v1/resolve/*
  • share references and external-object relations under /api/v1/*

The browser UI is intentionally narrow and focused on search, anomalies, observability, and literature-oriented workflows.

Cost Estimates

Approximate only.

  • Local development: workstation plus local database.
  • Shared sandbox: generally a modest portion of the broader Dayhoff-managed service footprint.
  • Production-like environments cost more because registry availability, storage metadata, TLS, and database uptime matter more than the Dewey code itself.

Development Notes

  • Canonical local entry path: source ./activate <deploy-name>
  • Use dewey ... for Dewey-owned operations
  • Use tapdb ... for shared DB/runtime lifecycle when Dewey explicitly delegates it
  • Use daycog ... for shared Cognito lifecycle when Dewey explicitly delegates it
  • dewey db reset --target local deletes the current local TapDB target and rebuilds it
  • dewey db nuke --target local deletes the current local TapDB target without rebuilding

Useful checks:

source ./activate <deploy-name>
dewey --help
pytest -q

Sandboxing

  • Safe: docs work, tests, dewey --help, and local-only runtime checks
  • Local-stateful: dewey db build --target local
  • Requires extra care: HTTPS cert management, Cognito lifecycle, and any deployed environment integration

Current Docs

References

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

dewey_service-0.7.4.tar.gz (135.5 kB view details)

Uploaded Source

Built Distribution

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

dewey_service-0.7.4-py3-none-any.whl (117.0 kB view details)

Uploaded Python 3

File details

Details for the file dewey_service-0.7.4.tar.gz.

File metadata

  • Download URL: dewey_service-0.7.4.tar.gz
  • Upload date:
  • Size: 135.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.2

File hashes

Hashes for dewey_service-0.7.4.tar.gz
Algorithm Hash digest
SHA256 391f9b342c8245be7e92636b952194c337d4329ed770c597e9351b2902deede3
MD5 dd74b12e37984d9adf590b4b51134bb5
BLAKE2b-256 e3015c5f285c35eef521a64dbdf4a8b9ca0da0f6e9d50e368e5a2573cd026b2b

See more details on using hashes here.

File details

Details for the file dewey_service-0.7.4-py3-none-any.whl.

File metadata

  • Download URL: dewey_service-0.7.4-py3-none-any.whl
  • Upload date:
  • Size: 117.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.2

File hashes

Hashes for dewey_service-0.7.4-py3-none-any.whl
Algorithm Hash digest
SHA256 1bc0a2ec34c4b2c433b045eb9379031bde5c43ddade2aa67f1b976dc340ccb78
MD5 48cf3e55794c6f3cb30784bedc762379
BLAKE2b-256 3dd32ec8f98f2daedc4392a3ca29aa3eba827ed5099fd78b085ca1f32bf5a549

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