Skip to main content

Semantic registration service for UUID and metadata mapping.

Project description

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

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

indaleko_registry_service-0.1.0.tar.gz (20.7 kB view details)

Uploaded Source

Built Distribution

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

indaleko_registry_service-0.1.0-py3-none-any.whl (17.5 kB view details)

Uploaded Python 3

File details

Details for the file indaleko_registry_service-0.1.0.tar.gz.

File metadata

File hashes

Hashes for indaleko_registry_service-0.1.0.tar.gz
Algorithm Hash digest
SHA256 bdbc109a8b34ec91888f7acc387cfad98de9f1ea77789989913c1a3800da137e
MD5 e2606e542af5c1aef5b79fd28b6237bd
BLAKE2b-256 1facd0c1c9ddfd7e429049cb376bac025e178783febb4ab6c2b126db62401d29

See more details on using hashes here.

File details

Details for the file indaleko_registry_service-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for indaleko_registry_service-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6cdb386ee3101b63d0c1160c0ad0bdee02e0d41ff5a254c468afa9514d3e3db5
MD5 a7361656f6c23843753561909e20b625
BLAKE2b-256 dd5383c55b54da1c3e0d8e21940fafa162d51a2e5d3d1067eef9ae11af3f2cea

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