Skip to content

UUID Generation

Generate universally unique identifiers. Adapted for workflows - random UUIDs return consistent values on replay.

local uuid = require("uuid")

Time-based UUID with timestamp and node ID.

local id, err = uuid.v1()

Returns: string, error

Random UUID.

local id, err = uuid.v4()

Returns: string, error

Time-ordered UUID. Sortable by creation time.

local id, err = uuid.v7()

Returns: string, error

Deterministic UUID from namespace and name using MD5.

local id, err = uuid.v3(namespace, name)
ParameterTypeDescription
namespacestringValid UUID string
namestringValue to hash

Returns: string, error

Deterministic UUID from namespace and name using SHA-1.

local NS_URL = "6ba7b811-9dad-11d1-80b4-00c04fd430c8"
local id, err = uuid.v5(NS_URL, "https://example.com/resource")
ParameterTypeDescription
namespacestringValid UUID string
namestringValue to hash

Returns: string, error

local valid = uuid.validate(input)
ParameterTypeDescription
inputanyValue to check

Returns: boolean, error

local ver, err = uuid.version(id)
ParameterTypeDescription
uuidstringValid UUID string

Returns: integer, error

local var, err = uuid.variant(id)
ParameterTypeDescription
uuidstringValid UUID string

Returns: string, error (RFC4122, Reserved, Microsoft, Future, NCS, or Invalid)

local info, err = uuid.parse(id)
ParameterTypeDescription
uuidstringValid UUID string

Returns: table, error

Returned table fields:

  • version (integer): UUID version (1, 3, 4, 5, or 7)
  • variant (string): RFC4122, Reserved, Microsoft, Future, NCS, or Invalid
  • timestamp (integer): Unix timestamp (v1 and v7 only)
  • node (string): Node ID (v1 only)
local formatted, err = uuid.format(id, "standard")
local formatted, err = uuid.format(id, "simple")
local formatted, err = uuid.format(id, "urn")
ParameterTypeDescription
uuidstringValid UUID string
formatstring?standard (default), simple, or urn

Returns: string, error

ConditionKindRetryable
Invalid input typeerrors.INVALIDno
Invalid UUID formaterrors.INVALIDno
Unsupported format typeerrors.INVALIDno
Generation failederrors.INTERNALno

See Error Handling for working with errors.