package identity

import "github.com/moby/swarmkit/v2/identity"

Package identity provides functionality for generating and managing identifiers within a swarm. This includes entity identification, such as for Services, Tasks and Networks but also cryptographically-secure Node identities.

Random Identifiers

Identifiers provided by this package are cryptographically-strong, random 128 bit numbers encoded in Base36. This method is preferred over UUID4 since it requires less storage and leverages the full 128 bits of entropy.

Generating an identifier is simple. Simply call the `NewID` function:

id := NewID()

If an error occurs while generating the ID, it will panic.

Index

Functions

func CombineTwoIDs

func CombineTwoIDs(id1, id2 string) string

CombineTwoIDs combines the given IDs into a new ID, e.g. a secret and a task ID.

func NewID

func NewID() string

NewID generates a new identifier for use where random identifiers with low collision probability are required.

With the parameters in this package, the generated identifier will provide ~129 bits of entropy encoded with base36. Leading padding is added if the string is less 25 bytes. We do not intend to maintain this interface, so identifiers should be treated opaquely.

Source Files

combined_id.go doc.go randomid.go

Version
v2.0.0-20250103191802-8c1959736554 (latest)
Published
Jan 3, 2025
Platform
linux/amd64
Imports
4 packages
Last checked
1 week ago

Tools for package owners.