Entity types
Entity types are vendor-defined categories of resource that can be governed. You define them once per environment — they describe the shape of your governance model, not specific instances of it. Entity types fall into two roles:- Hierarchical — levels in your customers’ org structure, such as
org,team,user, oragent. Entities of these types can be arranged in a parent–child tree so that consuming against a team also counts against its parent org. - Dimensional — cross-cutting attributes such as
region,model, orproduct. These are not placed in a hierarchy but can be used as scope filters on assignments (see Scope).
attributionKeys field tells the governance engine which keys in a usage event’s dimensions map correspond to instances of this type. When an event carries { "orgId": "acme", "modelId": "gpt-4o" }, the engine resolves entity acme of type org and entity gpt-4o of type model. The dimensions field in check and ingest requests is simply how you pass these attribution key–value pairs when you don’t know the entity IDs directly.
Entities
An entity is a specific instance of an entity type, owned by one of your customers (the owner). Each entity belongs to exactly one owner and has a uniqueid within that owner’s scope.
Capabilities
A capability is a metered resource that you allow customers to consume — for exampleapi-calls, tokens, or seats. Capabilities form the column axis of the governance matrix.
In V1 all capabilities are of type METER (a counter that increments on ingest and resets on cadence rollover).
Assignments
An assignment is the per-(entity, capability) governance rule: how much of a capability an entity is allowed to consume per cadence period. Assignments are the governance equivalent of entitlements — they appear as entitlement columns in the Stigg console’s Governance tab. The natural key is (entityId, capabilityId, scopeEntityIds).
Cadence
The cadence is an ISO 8601 duration that controls how often the usage counter resets.| Cadence | Resets every |
|---|---|
PT1H | 1 hour |
P1D | 1 day |
P7D | 7 days |
P30D | 30 days |
P1M | 1 calendar month |
PT1H) acts as a rate-limit window.
Scope (dimension-scoped sub-budgets)
An assignment’sscopeEntityIds field lets you attach a tighter budget that applies only when a specific sub-context is present. For example, you might give team-eng a global budget of 50,000 tokens per month, and a tighter budget of 5,000 tokens that applies only when the model-gpt4o entity is in the request’s resolved set.
Hierarchy
Entities can be arranged in a parent–child tree to reflect a customer’s organizational structure. TheparentId field on an assignment places the entity in the hierarchy.
Governance is opt-in
If an entity has no assignment for a capability, the check endpoint returnshasAccess: true with an empty checks array. There is no default deny. You can roll out governance incrementally — ungoverned entities continue to work exactly as before.
Check and Ingest
Governance exposes two runtime endpoints:- Check (
POST /owners/:ownerId/check) — read-only; returnshasAccessand current usage. Call this before allowing consumption. - Ingest (
POST /owners/:ownerId/ingest) — increments the usage counter. Call this after consumption. Ingest never gates — it always succeeds.
Coming in early access
The following capabilities are on the governance roadmap and available in early access. Contact us to learn more.Allocated budgets per entity
Today, a limit is set directly on an entity. Allocated budgets let a parent entity distribute a portion of its own budget down to children — for example, an org allocates 200,000 tokens toteam-eng out of its own 1,000,000 total. Consuming against the child’s allocation reduces the parent’s remaining pool automatically.
