Metadata
Entities within ConfigHub each have a number of metadata attributes. Some of these attributes are identifying attributes, such as IDs and names, and some are other properties specific to the entity type. Some attributes may be set by clients and others may be readonly or immutable after creation.
IDs and Slugs (Names)
All entities have an UUID, named EntityID for entity type Entity, which is unique within its organization. It is not guaranteed to be globally/universally unique.
In addition most entities will have a Slug. A slug is a human-readable, client-assigned string that can contain lowercase letters, numbers, hyphens (-), underscores (_), and dots (.). It must start with a letter or number. Two entities cannot have the same slug within their namespace. For example, all spaces within an organization must have distinct slugs and all units within a space must have distinct slugs. While UUIDs are immutable, slugs can be changed by users with sufficient permissions so long as they don't violate the uniqueness requirement. Slug is called "name" in the CLI and UI.
Entities that are children of Unit that record historical events, Revision, Mutation, and UnitEvent, are among the entities that do not have Slugs. Revision and Mutation have unique, immutable sequence numbers instead.
References to other entities generally use UUIDs. They do not use mutable identifiers, such as Slugs.
Labels and Annotations
Labels and Annotations were inspired by similar concepts in Kubernetes. Labels are intended for categorizing, grouping, and filtering. Annotations are intended for tools to attach additional information to ConfigHub entities, and are not currently supported by filters, in order to keep the filter syntax relatively straightforward (e.g., without escaping of special characters).
Time fields
Time field names are of the form VerbedAt, such as CreatedAt and UpdatedAt, with values in RFC3339 ("2023-01-01T12:00:00Z") format.