Workspace
A workspace is a team and billing-account boundary. It contains members, projects, a QuotaMint account plan, usage allowance, alerts, and audit history. Workspaces use the rolesOWNER, ADMIN, DEVELOPER, and VIEWER. The workspace owner is always able to access every project.
Project
A project is the runtime isolation boundary. It owns:- Customers and their plan assignments
- Plans, features, and entitlements
- API keys and their environment
- Usage events, idempotency records, and credit ledgers
- Project members
Customer
A customer represents a user, organization, account, or any billable subject in your product. QuotaMint stores yourexternalId; it does not require your customer to authenticate with QuotaMint.
Customers have an active or inactive status, one optional plan, and a credit balance. The pair (project, externalId) is unique.
Plan
A plan is a named set of access rules and a monthly credit grant. Plans have a stable key such asfree, pro, or enterprise. A customer can have one active plan at a time.
Feature
A feature is a project-defined capability such asgenerate_image, export_csv, or priority_support. Features can be:
BOOLEAN: entitlement is on or offMETERED: a numeric limit signalCREDIT: each quantity has a credit cost
CREDIT features participate in consume credit deduction. Usage enforcement for arbitrary numeric METERED limits is not implemented in the current runtime; use plan entitlements and your own application logic until that contract exists.
Credits
Credits are exact decimal units. A feature can cost fractional credits, and balances support up to six decimal places. The runtime writes an append-only ledger for grants, refunds, adjustments, monthly grants, and usage charges.Environment
The API key prefix names the environment:qm_test_...maps to the Test environment (development and staging)qm_live_...maps to the Live environment (production)
Decision versus record
checkasks whether a feature is affordable and writes nothing.consumemakes the authoritative decision, charges credits, and records usage.eventsrecords usage that does not move credits.