WeaviateEx.Types.UUID (WeaviateEx v0.7.4)
View SourceUUID utilities for Weaviate objects.
Provides UUID generation, validation, and deterministic UUID creation.
Examples
# Generate new UUID
uuid = UUID.generate()
# Validate UUID
{:ok, uuid} = UUID.validate("550e8400-e29b-41d4-a716-446655440000")
# Generate deterministic UUID from string
uuid = UUID.from_string("Article", "my-unique-id")
Summary
Functions
Extract UUID from a Weaviate beacon URL.
Generate a deterministic UUID v5 from namespace and name.
Generate a new random UUID v4.
Check if string is valid UUID.
Validate a UUID string.
Functions
Extract UUID from a Weaviate beacon URL.
Beacon URLs have the format:
weaviate://localhost/<uuid>weaviate://localhost/<collection>/<uuid>
Examples
iex> UUID.extract_from_beacon("weaviate://localhost/550e8400-e29b-41d4-a716-446655440000")
{:ok, "550e8400-e29b-41d4-a716-446655440000"}
iex> UUID.extract_from_beacon("weaviate://localhost/Article/550e8400-e29b-41d4-a716-446655440000")
{:ok, "550e8400-e29b-41d4-a716-446655440000"}
iex> UUID.extract_from_beacon("https://example.com/uuid")
{:error, "Not a valid Weaviate beacon URL: https://example.com/uuid"}
Generate a deterministic UUID v5 from namespace and name.
Useful for creating reproducible UUIDs from string identifiers.
Examples
iex> UUID.from_string("Article", "my-unique-id")
"..." # Same result every time for same inputs
iex> UUID.from_string("Article", "id-1") == UUID.from_string("Article", "id-2")
false
@spec generate() :: String.t()
Generate a new random UUID v4.
Examples
iex> uuid = UUID.generate()
iex> UUID.valid?(uuid)
true
Check if string is valid UUID.
Examples
iex> UUID.valid?("550e8400-e29b-41d4-a716-446655440000")
true
iex> UUID.valid?("invalid")
false
Validate a UUID string.
Returns the UUID normalized to lowercase if valid.
Examples
iex> UUID.validate("550e8400-e29b-41d4-a716-446655440000")
{:ok, "550e8400-e29b-41d4-a716-446655440000"}
iex> UUID.validate("550E8400-E29B-41D4-A716-446655440000")
{:ok, "550e8400-e29b-41d4-a716-446655440000"}
iex> UUID.validate("invalid")
{:error, "Invalid UUID format: invalid"}