Skip to main content

Templated Abstract Polymorphic Database - A flexible object model library

Project description

TapDB
Templated Abstract Polymorphic Database for Dayhoff objects, EUIDs, lineage, audit, and embeddable GUI/API surfaces.

Runtime · Embedding · Templates · DAG

Overview

TapDB is the shared substrate library for typed templates, generic instances, EUIDs, lineage, audit, external references, and embeddable object GUI/API surfaces. It is not a workflow engine, clinical decision engine, or service-specific application.

Current Dayhoff pin: 9.0.5.

Active clients mount TapDB with TapdbHostBridge and create_tapdb_gui_app at /tapdb when they need generic object/template/lineage UI.

What It Does

Capability Current surface
Templates and generic instances CLI, Python APIs, embedded GUI, embedded JSON/action APIs
EUID object detail /tapdb/object/{euid} plus object APIs
Lineage and external references Graph/detail pages and lineage/external-link APIs
Template creation and validation GUI/API routes and template tests
Audit and metrics Object audit/admin readiness/metrics pages where configured

How It Works

TapDB provides substrate primitives only. Host services supply auth, styling, config path, and app identity through TapdbHostBridge; TapDB supplies mount-aware pages and actions over templates, generic instances, lineage, audit, and external refs. Business workflows, clinical policy, and service-specific validation stay in the owning service.

Quickstart

cd /Users/jmajor/projects/mega_dayhoff/repos_work/daylily-tapdb
source ./activate
tapdb --help
tapdb --config /abs/path/to/tapdb-config.yaml db schema apply
tapdb --config /abs/path/to/tapdb-config.yaml db data seed

Always pass an explicit --config. Do not rely on ambient TAPDB_*, PG*, default database names, or implicit localhost/public-schema behavior.

Runnable examples:

The canonical command shape is tapdb --config <path> ...; machine-readable inspection surfaces should expose --json info where supported. Meridian governance should remain aligned with lsmc-bio/meridian-registry, for example meridian-euid domain-check Q.

CLI Interface

The primary CLI is tapdb. It covers schema apply/migrate, template seed/load/validate, generic object operations, admin server helpers, and runtime diagnostics.

Common command families:

Family Purpose
tapdb db schema ... Apply or migrate schema through supported migration files.
tapdb db data ... Seed template/data packs through explicit config.
tapdb templates ... Validate and load template packs.
tapdb objects/lineage ... Work with generic instances and lineage where exposed by CLI.
tapdb admin ... Start or inspect admin/embedded GUI support where configured.

For TapDB, the CLI, embeddable JSON/action APIs, and embeddable GUI are alternate surfaces over the same object/template/lineage/audit substrate. Client services decide which surfaces they expose.

GUI

TapDB provides an embeddable FastAPI GUI. The client-safe pattern is:

from daylily_tapdb.web import TapdbHostBridge, create_tapdb_gui_app

app.mount("/tapdb", create_tapdb_gui_app(config_path="/abs/path/to/tapdb-config.yaml", host_bridge=bridge))

Current GUI routes include /tapdb/, /tapdb/search, /tapdb/templates, /tapdb/templates/new, /tapdb/create/{template_euid}, /tapdb/object/{euid}, /tapdb/object/{euid}/graph, /tapdb/object/{euid}/external-links/new, and admin readiness/metrics pages.

API

TapDB exposes matching embedded APIs for search, object detail, graph, edit JSON, status, lineage, external links, template validate, create instance, readiness, Meridian validation, and metrics.

TapDB stores v0 graph metadata on existing lineage records using json_addl.properties.v0_edge when canonical v0 edge metadata is present. It does not add v0-specific tables.

Testing Info

Focused checks:

python -m pytest tests -q
python -m pytest tests/test_gui_json_editor.py -q

Client integration tests should prove mounted /tapdb routes through the host service, host-session auth, admin role mapping, template creation, object detail/edit, audit, graph, and external-link behavior.

Technical Details, History, And Linkouts

TapDB remains substrate-first. Service-specific workflow rules belong in the owning service.

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

daylily_tapdb-9.0.10.tar.gz (567.2 kB view details)

Uploaded Source

Built Distribution

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

daylily_tapdb-9.0.10-py3-none-any.whl (313.3 kB view details)

Uploaded Python 3

File details

Details for the file daylily_tapdb-9.0.10.tar.gz.

File metadata

  • Download URL: daylily_tapdb-9.0.10.tar.gz
  • Upload date:
  • Size: 567.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.4

File hashes

Hashes for daylily_tapdb-9.0.10.tar.gz
Algorithm Hash digest
SHA256 db5f9fa52f9eb3fc41d45b65cc1c36dc327edd5e6d9377504e0eeef300a8d423
MD5 1d46214e1f23e81beb70ebd962a75ee7
BLAKE2b-256 e212325efabb310ecd23d09b9739ae78064af92343c9e2f123fda46ed1b0eb8e

See more details on using hashes here.

File details

Details for the file daylily_tapdb-9.0.10-py3-none-any.whl.

File metadata

  • Download URL: daylily_tapdb-9.0.10-py3-none-any.whl
  • Upload date:
  • Size: 313.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.4

File hashes

Hashes for daylily_tapdb-9.0.10-py3-none-any.whl
Algorithm Hash digest
SHA256 a2aef0812602a615d239f3ac56975df7de6dc3973ffe6edceada4c659c330205
MD5 4d31693246a8907805629c4a7d3f2893
BLAKE2b-256 1cd9f043074048115925d2816b7e58ea15cf5edeaa2d9f03492f53f5c80b4b3c

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