🧠 LabCAS Infosphere
The LabCAS Infosphere is an API that provides information about the Laboratory Catalog and Archive Service for the Early Detection Research Network.
💁 Example Usage
To retreive the imaging coverage report using the curl command:
curl --silent \
--user 'secret:p4ssw0rd' \
https://edrn-labcas.jpl.nasa.gov/infosphere/imaging
Replace the username secret and password p4ssw0rd with the correct credentials. You'll see a response similar to:
[
{
"collection": "Lung_Team_Project_2",
"site": "AvinPOWpghrek",
"event": "1234567",
"participantId": "00112233455"
},
{
"collection": "Lung_Team_Project_2",
"site": "AvinPOWpghrek",
"event": "2345678",
"participantId": "11223344556"
},
To have the data formatted as CSV, run:
curl --silent \
--user 'secret:p4ssw0rd' \
'https://edrn-labcas.jpl.nasa.gov/infosphere/imaging?format=csv'
The response will be similar to:
collection,site,event,participantId
Lung_Team_Project_2,AvinPOWpghrek,1234567,00112233455
Lung_Team_Project_2,AvinPOWpghrek,2345678,11223344556
To retreive the Postman collection:
curl --silent https://edrn-labcas.jpl.nasa.gov/infosphere/docs/postman-collection
You can then explore and test the API using the Postman tool.
🎯 Features
This API server currently provides:
- Health check endpoint:
GET /pingreturns the current UTC timestamp so clients and operators can quickly verify service availability. - Protected imaging endpoint:
GET /imagingrequires HTTP Basic authentication and validates users against LDAP group membership. - Imaging coverage report: aggregates distinct
(site, event, participantID)values from Solr and the DMCC API for theLung_Team_Project_2andProstate_MRIcollections. - Multiple response formats:
GET /imagingsupports?format=json(default) and?format=csv. - Postman specification. You can retrieve a Postman-compatible specification of the API by following the link from
GET /docs.
These endpoints are typically available at https://SERVER/SUBPATH/ENDPOINT, such as https://edrn-labcas.jpl.nasa.gov/infosphere/imaging. The SUBPATH may be omitted depending on configuration.
📦 Installation
This software requires Python 3.12 or higher but lower than Python 4. To install the released version of the software, create a Python virtual environment and run
python3 -m venv .venv
.venv/bin/pip install jpl.labcas.infosphere==VERSION
Substitute VERSION for the desired version. Use .venv/bin/pip and .venv/bin/python so you do not need to activate the environment.
To install from source:
git clone --quiet https://github.com/EDRN/jpl.labcas.infosphere
cd jpl.labcas.infosphere
python3 -m venv .venv
.venv/bin/pip install --editable .
pre-commit install
🚀 Usage
Launch the server by running
.venv/bin/labcas-infosphere
Run it with --help to see the options. After installation, you can also run modules with .venv/bin/python -m jpl.labcas.infosphere.main. It's recommended to run the server at all times, such as under Supervisor or similar system.
👉 Note: The Infosphere uses the DMCC API which requires a client secret. This can be provided using an environment variable, DMCC_CLIENT_SECRET. If not specified, you'll be prompted to enter it.
To test locally, issue
curl --insecure --silent https://localhost:8998/ping
You should get a timestamp.
📄 License
Licensed under the Apache 2.0 software license. See LICENSE.md for details.
🤝 Contributing
Issues and pull requests are welcome on GitHub. See also the EDRN Code of Conduct and Contributors' Guide.
👤 Credits
- Developed by Sean Kelly
@nutjob4life - QC by Heather Kincaid
@hoodriverheather
This API was developed in response to EDRN/EDRN-metadata#180.
©️ Copyright
Copyright © 2026 California Institute of Technology. U.S. Government sponsorship acknowledged.
Metadata
Release files for jpl.labcas.infosphere 1.0.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| jpl_labcas_infosphere-1.0.1.tar.gz | 19.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| jpl_labcas_infosphere-1.0.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 43.9 kB
Release files / jpl_labcas_infosphere-1.0.1.tar.gz
| Download URL | jpl_labcas_infosphere-1.0.1.tar.gz |
|---|---|
| Size | 19.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
eba71fef67bf5bde0672418ad0952b7e74e014a986bfa94be44c077401b662b4
|
|
BLAKE2b-256 checksum How to use checksums |
b8a25b4035ac455b9abd836a5cfcbc63d0b83d2345f15543270ce1700b3f1c8f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.11.13
|
Release files / jpl_labcas_infosphere-1.0.1-py3-none-any.whl
| Download URL | jpl_labcas_infosphere-1.0.1-py3-none-any.whl |
|---|---|
| Size | 24.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
533c9eba1917531ea9dd00360ec1261aab89530f17e50cc8e42064ba262ffdf5
|
|
BLAKE2b-256 checksum How to use checksums |
b809e43242d6b8484cd8944d3fddc31569b7cd96573ec5868746b62c51271209
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.11.13
|