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_prodextraction_rndpost_extract_qcilmn_lib_prepont_lib_prepilmn_seq_poolont_seq_poolilmn_start_seq_runont_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_euidflowcell_idlanelibrary_barcode
Bloom returns:
sequenced_library_assignment_euidatlas_tenant_idatlas_trf_euidatlas_test_euidatlas_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 base URL Atlas calls (example:
bloom_api_key_secret_ref- Secret reference Atlas resolves to the Bloom bearer token (for example
env:MY_BLOOM_API_KEY).
- Secret reference Atlas resolves to the Bloom bearer token (for example
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/materialsPOST /api/v1/external/atlas/beta/queues/{queue_name}/items/{material_euid}POST /api/v1/external/atlas/beta/extractionsPOST /api/v1/external/atlas/beta/post-extract-qcPOST /api/v1/external/atlas/beta/library-prepPOST /api/v1/external/atlas/beta/poolsPOST /api/v1/external/atlas/beta/runsGET /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) or403(non-admin). - TapDB local login/auth flow is disabled for mounted mode.
Runtime flags:
BLOOM_TAPDB_MOUNT_ENABLED(default1)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
- active Bloom beta API contract: docs/bloom_beta_api_contracts.md
- queue/runtime execution summary: docs/bloom_queue_refactor_execplan.md
- parent beta contract: /Users/jmajor/projects/lims3/_refactor/cross_repo_contracts.md
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
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 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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
03b57155c827fd5523a342456fe6231c1d2df563c83bfa1dc381f104b24281f6
|
|
| MD5 |
f5d536a3de665038a7061b9ccf01700c
|
|
| BLAKE2b-256 |
5e34784b282e6ee46aab1e34e9210106bbc2bddbf14feaef43ab9d846ab6cf36
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9c917b0e7007772323db92a38d92c7f8c07496164d6985f51719569f5b6ac996
|
|
| MD5 |
6f89dea98af650b0cf84f1b90a1c03fa
|
|
| BLAKE2b-256 |
c2e8cba5dae3341ea15519035f0adae8128c566eecbb8d2ed056c8a519b3b6e8
|