Skip to main content

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

TestPyPI

Distribution Version

PyPI 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)

Source distribution for indaleko-registry-service 0.1.0
File Size Uploaded
indaleko_registry_service-0.1.0.tar.gz 20.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for indaleko-registry-service 0.1.0
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page