Registry Service
Standalone semantic registration service for UUID and metadata mapping.
Indaleko is an implementation of the Unified Personal Index service, a means of using metadata to bridge human episodic memory and traditional storage. Indaleko uses dynamic data sources, so the purpose of the registration service is:
- To allow dynamically adding services to the system. Each new service is given a UUID to represent it.
- To separate semantic meaning from database labeling.
- Every collection (table) in the database has a UUID name. The mapping of that name to the UUID is maintained separately from the database where the information is stored.
- Elements in the schema are UUIDs. The mapping of that element to the UUID is maintained separately from the database where the information is stored.
- Each UUID may have optional metadata associated with it. For example, this can be used to have per data type encryption keys to protect sensitive information. This works because the mapping table is small relative to the data and can be protected, even when using public facing services for the database.
- Semantic descriptions need not be limited to a single name. They can (and should) be provided with a description. Indaleko uses these along with LLMs to construct an ontology. In this way a dynamic system with distributed providers can be identified as providing equivalent information (that is, there is a mapping between them, such as data providers that keep distance in parsecs and another that keeps it in Angstrom.)
- Semantic labels, which are the identifier used by the service provider, must be unique and once the label->UUID mapping is established it is immutable. Note that this mapping will vary on a per-installation basis.
- UUIDs can be mapped back to semantic labels, semantic descriptions, and other properties the registry stores.
Status
Test Version
Distribution Version
Installation
Install via uv:
uv pip install .
Usage
Run the service with the CLI:
registry-service
Or directly with Uvicorn:
uvicorn registry_service.service:app --host 0.0.0.0 --port 8000
Lookup
To resolve a semantic label to a UUID:
...
Reverse Lookup
To resolve a UUID back to its semantic identifier, call the /lookup endpoint with the uuid query parameter:
curl -X GET "http://localhost:8000/lookup?uuid=<UUID>"
Response example:
{
"uuid": "123e4567-e89b-12d3-a456-426614174000",
"category": "semantic_label",
"name": "test_label"
}
Running Tests
Execute the full test suite:
pytest
Release files for indaleko-registry-service 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| indaleko_registry_service-0.1.0.tar.gz | 20.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| indaleko_registry_service-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 38.2 kB
Release files / indaleko_registry_service-0.1.0.tar.gz
| Download URL | indaleko_registry_service-0.1.0.tar.gz |
|---|---|
| Size | 20.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
bdbc109a8b34ec91888f7acc387cfad98de9f1ea77789989913c1a3800da137e
|
|
BLAKE2b-256 checksum How to use checksums |
1facd0c1c9ddfd7e429049cb376bac025e178783febb4ab6c2b126db62401d29
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.2
|
Release files / indaleko_registry_service-0.1.0-py3-none-any.whl
| Download URL | indaleko_registry_service-0.1.0-py3-none-any.whl |
|---|---|
| Size | 17.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
6cdb386ee3101b63d0c1160c0ad0bdee02e0d41ff5a254c468afa9514d3e3db5
|
|
BLAKE2b-256 checksum How to use checksums |
dd5383c55b54da1c3e0d8e21940fafa162d51a2e5d3d1067eef9ae11af3f2cea
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.2
|