Skip to main content

Templated Abstract Polymorphic LIMS - A Laboratory Information Management System

Project description

Bloom

Bloom is the LSMC beta authority for physical and material LIMS state.

Bloom owns:

  • containers
  • specimens
  • derived samples
  • plates and wells
  • extraction outputs
  • library prep outputs
  • pools
  • sequencing runs
  • sequenced library assignments
  • queue membership and queue-transition state for wet-lab execution

Bloom does not own:

  • accessioning
  • customer, TRF, Test, patient, provider, shipment, or kit truth
  • workflow or workflow-step orchestration for the beta path

Beta Architecture

The active beta path is queue-driven and graph-native.

Canonical queues:

  • extraction_prod
  • extraction_rnd
  • post_extract_qc
  • ilmn_lib_prep
  • ont_lib_prep
  • ilmn_seq_pool
  • ont_seq_pool
  • ilmn_start_seq_run
  • ont_start_seq_run

Atlas records intake outcomes first. Bloom accepts only Atlas-approved material, links that material to Atlas TRF/Test/process-item context through explicit graph-linked reference objects, and preserves lineage from specimen/container through plate and well placement, library prep, pooling, sequencing run creation, and sequenced library assignment. Accepted-material ingress queue membership is applied to the physical container (container_euid), with specimen queue reads falling back to containing-container queue state when needed.

Ursa resolves the canonical sequencing unit through Bloom with:

  • run_euid
  • flowcell_id
  • lane
  • library_barcode

Bloom returns:

  • sequenced_library_assignment_euid
  • atlas_tenant_id
  • atlas_trf_euid
  • atlas_test_euid
  • atlas_test_process_item_euid

Public beta APIs return EUIDs only. Internal UUIDs are not part of the supported contract.

Active Beta APIs

Atlas and Ursa integration paths live under:

  • /api/v1/external/atlas
  • /api/v1/external/atlas/beta

Atlas Configuration Values Required For Bloom API Access

When configuring Atlas to call Bloom, set all three fields below in Atlas Bloom integration settings:

  • bloom_base_url
    • Bloom API base URL Atlas calls (example: https://bloom.example.org).
  • bloom_api_key_secret_ref
    • Secret reference Atlas resolves to the Bloom bearer token (for example env:MY_BLOOM_API_KEY).
  • bloom_webhook_secret_ref
    • Secret reference Atlas uses to verify Bloom webhook signatures for inbound events.

The queue-driven beta endpoints are:

  • POST /api/v1/external/atlas/beta/materials
  • POST /api/v1/external/atlas/beta/queues/{queue_name}/items/{material_euid}
  • POST /api/v1/external/atlas/beta/extractions
  • POST /api/v1/external/atlas/beta/post-extract-qc
  • POST /api/v1/external/atlas/beta/library-prep
  • POST /api/v1/external/atlas/beta/pools
  • POST /api/v1/external/atlas/beta/runs
  • GET /api/v1/external/atlas/beta/runs/{run_euid}/resolve?flowcell_id=...&lane=...&library_barcode=...
  • POST /api/v1/external/atlas/tests/{test_euid}/status-events

Embedded TapDB Admin Mount

Bloom mounts the TapDB admin FastAPI surface inside the same Bloom server process at:

  • /admin/tapdb

Mounted-mode behavior:

  • Bloom session auth is the only gate.
  • Access is admin-only (role=admin).
  • Unauthenticated browser requests are redirected to /login.
  • Authenticated non-admin browser requests are redirected to /user_home?admin_required=1.
  • JSON/XHR-style denied requests receive 401 (unauthenticated) or 403 (non-admin).
  • TapDB local login/auth flow is disabled for mounted mode.

Runtime flags:

  • BLOOM_TAPDB_MOUNT_ENABLED (default 1)
  • BLOOM_TAPDB_MOUNT_PATH (default /admin/tapdb)

Legacy Isolation

Workflow/workset runtime surfaces are retired from active API/GUI mounts for the beta path. Any codepath that depends on workflow-step runtime, accession ownership, or UUID-based external contracts is not part of the supported beta system.

Development

Bloom runs on the TapDB-backed adapter layer used across the LSMC refactor. The beta queue flow uses explicit object creation, lineage writes, targeted lookup queries, process-item references, and idempotency keys on direct integration calls.

Focused validation commands for the beta path:

source bloom_activate.sh
pytest --no-cov tests/test_api_atlas_bridge.py tests/test_atlas_lookup_resilience.py tests/test_queue_flow.py tests/test_run_resolver.py tests/test_beta_cross_repo_smoke.py
ruff check bloom_lims tests

Cross-Repo 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

bloom_lims-0.32.0.tar.gz (13.2 MB view details)

Uploaded Source

Built Distribution

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

bloom_lims-0.32.0-py3-none-any.whl (9.2 MB view details)

Uploaded Python 3

File details

Details for the file bloom_lims-0.32.0.tar.gz.

File metadata

  • Download URL: bloom_lims-0.32.0.tar.gz
  • Upload date:
  • Size: 13.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.2

File hashes

Hashes for bloom_lims-0.32.0.tar.gz
Algorithm Hash digest
SHA256 03b57155c827fd5523a342456fe6231c1d2df563c83bfa1dc381f104b24281f6
MD5 f5d536a3de665038a7061b9ccf01700c
BLAKE2b-256 5e34784b282e6ee46aab1e34e9210106bbc2bddbf14feaef43ab9d846ab6cf36

See more details on using hashes here.

File details

Details for the file bloom_lims-0.32.0-py3-none-any.whl.

File metadata

  • Download URL: bloom_lims-0.32.0-py3-none-any.whl
  • Upload date:
  • Size: 9.2 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.2

File hashes

Hashes for bloom_lims-0.32.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9c917b0e7007772323db92a38d92c7f8c07496164d6985f51719569f5b6ac996
MD5 6f89dea98af650b0cf84f1b90a1c03fa
BLAKE2b-256 c2e8cba5dae3341ea15519035f0adae8128c566eecbb8d2ed056c8a519b3b6e8

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