Changelog
API changelog and release notes
All notable changes to the k0rdent API documentation will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Pre-Release - 2026-02-22
Changed - API Spec MVP Alignment
Revised k0rdent-api.json to reflect MVP scope based on stakeholder review.
Authentication
- Added
GET /v1/regions/global/auth/sessions— list active sessions for the authenticated user - Added
POST /v1/regions/global/auth/sessions— create a browser session (password login with optional MFA) - Added
DELETE /v1/regions/global/auth/sessions— end the current session (logout) - Added
Sessionschema tocomponents/schemaswith fields:id,userId,ipAddress,userAgent,lastActiveAt,expiresAt,createdAt - Added
sessionstag to theAuthenticationtag group inx-tagGroups
Organization Invitations
createOrganizationInvitationrequest body: replaced singlerolestring withrolesarray; addedgroupsarray for assigning group membership at invite time; added optionalmessagestring for a custom invite email messageInvitationresponse schema: renamedname→displayNamefor consistency with all other resource schemas; replacedrolestring withrolesarray; addedgroupsarray
Roles
- Removed
POST /v1/regions/global/iam/roles(role creation) — roles are predefined for MVP - Removed
PATCH /v1/regions/global/iam/roles/{id}(role update) — roles are predefined for MVP - Removed
DELETE /v1/regions/global/iam/roles/{id}(role deletion) — roles are predefined for MVP GET /v1/regions/global/iam/rolesandGET /v1/regions/global/iam/roles/{id}are retained as read-onlyRoleschema: updatedidfield to enumerate the four predefined system roles:owner,admin,member,viewer; updateddescription,example, andselfLinkexample accordingly- Updated all role name examples throughout the spec to use
owner,admin,member,viewer
Scope Levels
- Removed
folderfrom all scope enums — API keys, service accounts, and token minting now support onlyorganizationandprojectscope levels - Updated all related field descriptions to remove references to the folder scope level
List Endpoints
- All 20 list endpoints now support both cursor-based and offset-based pagination
- Added shared component parameters:
PageToken(cursor string),PageSize(integer, 1–500, default 50),Offset(integer, default 0) - Added
nextPageToken(string) andtotal(integer) to all list response schemas pageTokenandoffsetare mutually exclusive — use one per request- Updated
info.descriptionto document the dual pagination model
Networks
- Updated
listNetworksdescription to note that an optional filter query parameter is under consideration, pending a team decision
Pre-Release - 2026-02-22
Changed - Docs Pipeline Bug Fixes
Build script improvements to fix MDX compilation errors and broken navigation links.
MDX JSX Brace Escaping (scripts/generate-docs.mts)
OpenAPI descriptions often contain path parameter references like /groups/{id}/members. When copied verbatim into MDX body text by fumadocs-openapi, bare {identifier} expressions are interpreted as JSX expressions, causing ReferenceError at build time when no matching variable exists.
- Added
escapeMdxBracesInText()post-processing step that rewrites{id}→\{id\}in plain-text lines of generated MDX files - Escaping is scoped to plain text only — JSX tags, JSX expression blocks (
{/* ... */}), and code fences are left untouched - Applied to all tag subdirectory MDX files after doc generation
Endpoint Index Fixes
- URL base computation: Endpoint links in index tables now correctly compute their URL path using
computeUrlBase(baseDir)rather than splitting on the raw directory string, fixing broken links when directory structure changed - Summary escaping: MDX table cells now escape
{,}, and|in endpoint summary text (previously only applied to path strings) - Frontmatter description: Multi-line
info.descriptionvalues from OpenAPI specs are now truncated to a single line before being written to YAML frontmatter, preventing YAML parse errors at build time
Pre-Release - 2026-02-21
Changed - API Spec Consolidation & Build Infrastructure
Merged all 11 individual API specs into a single unified k0rdent-api.json spec and restructured the build pipeline directory layout.
Unified API Spec
All previously separate API specs (arc, atlas, auth, audit, billing, notifications, observability, organizations, regions, webhooks, workflows) have been merged and are now served as a single consolidated OpenAPI document.
- New spec location:
content/docs/api-docs/generate/k0rdent-api.json - Git-tracked copies:
docs/api-docs/k0rdent-api.jsonanddocs/api-docs/k0rdent-api.yaml - Scalar registry: Published as
@k0rdent/apis/k0rdent-api@0.2.0-draft
Directory Structure Restructure
| Before | After | Purpose |
|---|---|---|
content/docs/api-docs/src/*.source.json | content/docs/api-docs/base/*.base.json | Source specs (edit these) |
content/docs/api-docs/*.json | content/docs/api-docs/bundled/*.json | Per-spec bundled output |
content/docs/api-docs/*.json | content/docs/api-docs/generate/k0rdent-api.json | Unified spec for doc generation |
Updated build pipeline:
src/lib/openapi.ts Simplified
- Removed dynamic multi-spec filesystem discovery (
discoverOpenAPIs(),getOpenAPI(),openapismap) - Now exports a single
openapiinstance pointing to the unifiedk0rdent-api.json - Named backward-compatible exports (
openapiAtlas,openapiArc,openapiAuth,openapiNotifications) now all alias the unified instance
scripts/bundle-openapi.mjs Updated
- Source directory changed from
./content/docs/api-docs/srcto./content/docs/api-docs/base - Output directory changed from
./content/docs/api-docsto./content/docs/api-docs/bundled - Now matches source files by
/\.(base\.json|base\.ya?ml)$/pattern (supports both JSON and YAML sources)
scripts/generate-docs.mts and scripts/regenerate-indexes.mts Updated
- Input directory changed from
./content/docs/api-docsto./content/docs/api-docs/generate - Both scripts now read only the unified spec rather than scanning all bundled files
API Version Label
- Added
"version": "0.2.0-draft"to both/api(Scalar hosted) and/local(local file) routes inscalar.config.json
Scalar Config Improvements
- Header links (
k0rdent AI,k0rdent AI Registry) now open in a new tab ("newTab": true) - Registry link updated to point to the versioned spec:
@k0rdent/apis/k0rdent-api@0.2.0-draft - Documentation structure updated to reflect new
docs/asset directory layout
Pre-Release - 2026-02-13 (post-changelog)
Fixed - Docs Navigation & Script Issues
Follow-up fixes to the docs build pipeline after the Feb 13 API spec restructure.
Navigation Structure
- Flattened OpenAPI docs: Removed
groupBy: tagfrom doc generation — endpoints are now listed directly under their API spec section without an extra grouping level (fix(scripts): remove groupBy tag and flatten navigation structure) - Spec titles as headers: API section headers now use the spec's
info.title(e.g. "Auth & IAM API") rather than the filename (fix(scripts): flatten OpenAPI docs and use spec titles)
Build Order
- Fixed
pnpm buildscript to rungenerate-docsbeforeregenerate-indexes— previously the index regeneration could run against stale generated MDX files (fix(build): generate docs before regenerating indexes)
Script Refactoring
- Streamlined endpoint aggregation logic in
scripts/generate-docs.mts— consolidated duplicate loops, simplified the per-spec endpoint collection pass (refactor(scripts): streamline endpoint aggregation)
Icons & Labels
- Removed " API" suffix from API section titles in sidebar navigation (e.g. "Auth & IAM API" → "Auth & IAM") (
fix(scripts): remove API suffix from titles and fix bell icon) - Fixed Notifications API icon: changed
bell→Bell(PascalCase required to match Lucide icon exports used by other APIs) (fix(notifications): use PascalCase Bell icon to match other APIs)
Pre-Release - 2026-02-22
Changed - API Spec Restructure
Complete rewrite of OpenAPI specifications to align with MVP requirements from the k0rdent API Spec Google Sheet.
This represents a major restructuring of the API surface to match the enterprise platform's MVP scope. All changes are based on the Google Sheet defining 48 unique endpoints across 11 API domains as the source of truth.
Breaking Changes
- Path prefix: All paths migrated from singular
/v1/region/to plural/v1/regions/ - Arc API → Compute API: Restructured with focus on clusters, VMs, and SDN (14 endpoint groups)
- Atlas API → Infrastructure API: Restructured for bare-metal server lifecycle and inventory (8 endpoint groups)
- Auth API → Auth + IAM API: Consolidated authentication and identity/access management (10 endpoint groups)
- Organizations extracted: Org/project management moved from individual specs to dedicated
organizationsspec
API Domain Changes
Compute API (formerly Arc)
- 14 endpoint groups: clusters, VMs, networks, subnets, addresses, load balancers, peering, interconnects, firewalls
- All paths:
/v1/regions/{region}/compute/* - Removed: Organization/project paths (moved to organizations spec), storage endpoints, nested network sub-paths
- New endpoints:
/v1/regions/{region}/compute/vms- Virtual machine lifecycle/v1/regions/{region}/compute/subnets- Network IP mapping/v1/regions/{region}/compute/addresses- IPAM: IP address allocations/v1/regions/{region}/compute/loadbalancers- Network load balancing/v1/regions/{region}/compute/peering- Within-region routing/v1/regions/{region}/compute/interconnects- Region-to-region routing/v1/regions/{region}/compute/firewalls- Network policy/v1/regions/{region}/compute/clusters/{clusterId}/kubeconfigs- Kubeconfig issuance/v1/regions/{region}/compute/clusters/{clusterId}/nodes/{nodeId}/ssh- Node SSH access
Infrastructure API (formerly Atlas)
- 8 endpoint groups: servers CRUD, batch enrollment, batch/single actions, logs, profiles, switches
- All paths:
/v1/regions/{region}/infrastructure/* - Removed: Organization/project/quota paths, compute paths, storage paths
- New endpoints:
/v1/regions/{region}/infrastructure/servers/batch- Bulk server enrollment (POST with array)/v1/regions/{region}/infrastructure/servers/actions- Batch actions on multiple servers (POST with{action, ids})/v1/regions/{region}/infrastructure/servers/{id}/actions- Single server actions (provision, validate, state transitions)/v1/regions/{region}/infrastructure/servers/{id}/logs- Host provisioning & status logs/v1/regions/{region}/infrastructure/profiles- Profiles/Persona CRUD/v1/regions/{region}/infrastructure/switches- Network management
Auth + IAM API (formerly Auth)
- 10 endpoint groups: tokens, sessions, users, user profiles, roles, groups, policies, service accounts, API keys, identity providers
- All paths:
/v1/regions/global/auth/*and/v1/regions/global/iam/* - Removed: Old auth paths (me, signup, invitations, organizations, members)
- New endpoints:
/v1/regions/global/auth/tokens- OAuth2/OIDC token acquire/refresh/revoke/v1/regions/global/auth/sessions- Session login/logout, list active sessions, MFA/v1/regions/global/iam/users- Tenant user lifecycle/v1/regions/global/iam/users/profile- Self-service profile/v1/regions/global/iam/roles- Authorization/RBAC role definitions/v1/regions/global/iam/groups- Group management (SSO-driven, IAM policy bindings)/v1/regions/global/iam/policies- Role bindings at org/project/resource level/v1/regions/global/iam/service-accounts- Machine identity for automation/v1/regions/global/iam/apikeys- API key lifecycle management/v1/regions/global/iam/providers- Identity provider configuration (SSO)
Organizations API (new)
- 6 endpoint groups: organizations CRUD, org invitations, org quotas, folders (stub), projects, project quotas
- All paths:
/v1/regions/global/organizations/*and/v1/regions/global/projects/* - New spec consolidating org/project management previously scattered across arc, atlas, auth
- Key decision: Projects are top-level at
/v1/regions/global/projects(org context from auth token, not URL nesting) - Endpoints:
/v1/regions/global/organizations- Organization CRUD/v1/regions/global/organizations/{orgId}/invitations- Organization invitations/v1/regions/global/organizations/quotas- Customer org quota management/v1/regions/global/organizations/folders- Folder management (stub — hierarchy TBD)/v1/regions/global/projects- Top-level project management/v1/regions/global/projects/quotas- Project quota management
Webhooks API (new)
- 3 endpoint groups: webhooks, subscriptions, delivery history
- All paths:
/v1/regions/global/webhooks/* - Endpoints:
/v1/regions/global/webhooks- Webhook management/v1/regions/global/webhooks/subscriptions- Webhook subscriptions/v1/regions/global/webhooks/subscriptions/{id}/deliveries- Delivery history
Workflows API (new, internal-only)
- 4 endpoint groups: workflow definitions, workflow runs, run logs, metrics
- All paths:
/v1/regions/global/workflows/* - Marked as internal-only — for platform orchestration, not public API
- Endpoints:
/v1/regions/global/workflows- Workflow definitions/orchestration/v1/regions/global/workflows/{id}/runs- Workflow execution instances/v1/regions/global/workflows/{id}/runs/{runId}/logs- Workflow run logs/v1/regions/global/workflows/metrics- Aggregate performance stats
Observability API (new, stub)
- 1 endpoint: stub for future analytics & observability
- Path:
/v1/regions/global/observability
Audit API (simplified)
- Path changed from
/v1/region/{region}/audit/eventsto/v1/regions/global/audit - Single collection endpoint per spreadsheet spec
Billing API (simplified)
- Path changed from
/v1/region/global/billing/accounts/...to/v1/regions/global/projects/billing - Single endpoint per spreadsheet spec
Regions API (renamed)
- Path changed from
/v1/region/global/regionsto/v1/regions/global/locations
Notifications API (prefix update)
- Prefix updated from
/v1/region/global/to/v1/regions/global/ - Existing endpoint structure preserved
Schema Changes
Common Schemas (added)
Quota- Resource quota configuration with enforcement policies (hard/soft)Folder- Project organization hierarchy (stub — full design TBD)
Compute Schemas (new)
VM- Virtual machine definitionSubnet- Network subnet configurationAddress- IPAM IP address allocationLoadBalancer- Load balancer configurationPeeringConnection- Within-region network routingInterconnect- Region-to-region network routingFirewall- Network policy rules
Infrastructure Schemas (new)
Profile- Server profile/persona definitionSwitch- Network switch managementServerAction- Action enum: provision, validate, start, stop, restart, decommission
Auth + IAM Schemas (new)
Token- OAuth2/OIDC tokenSession- User sessionUser- Tenant userRole- RBAC role definitionGroup- User groupPolicy- IAM policy (role bindings)ServiceAccount- Machine identityApiKey- API key credentialIdentityProvider- SSO provider configuration
Organizations Schemas
Organization,Project,Member,Invitation- Moved to organizations spec (previously scattered)Folder- Stub for project hierarchyQuota- Resource quota (shared schema)
Key Design Decisions
- Path naming: Plural
/v1/regions/per Google Sheet (singular was incorrect) - Project URLs: Flat top-level
/v1/regions/global/projects(org context from auth token, not URL nesting) — cleaner, less cluttered - IAM consolidation: IAM endpoints folded into auth spec (single identity domain)
- Workflows visibility: Internal-only (still documented for platform developers)
- Instance types: Dropped for MVP (not in spreadsheet)
- Infrastructure actions: Both single (
/servers/{id}/actions) and batch (/servers/actions) endpoints for flexibility - Batch enrollment: Dedicated
/servers/batchendpoint (POST array of servers) - Folders: Stub only (GCP-style hierarchy design TBD)
- VMs vs Instances: Use
/compute/vmsterminology (not/compute/instances)
Files Changed
Source specs edited (7):
content/docs/api-docs/src/arc.base.json- Rewritten as Compute APIcontent/docs/api-docs/src/atlas.base.json- Rewritten as Infrastructure APIcontent/docs/api-docs/src/auth.base.json- Rewritten as Auth + IAM APIcontent/docs/api-docs/src/audit.base.json- Simplified to single endpointcontent/docs/api-docs/src/billing.base.json- Simplified to single endpointcontent/docs/api-docs/src/regions.base.json- Path renamed to /locationscontent/docs/api-docs/src/notifications.base.json- Prefix updated
Source specs created (4):
content/docs/api-docs/src/organizations.base.json- New Organizations APIcontent/docs/api-docs/src/webhooks.base.json- New Webhooks APIcontent/docs/api-docs/src/workflows.base.json- New Workflows API (internal)content/docs/api-docs/src/observability.base.json- New Observability stub
Common files updated (1):
content/docs/api-docs/common/schemas.json- Added Quota and Folder schemas
Generated/bundled files (22):
- All corresponding
*.jsonfiles incontent/docs/api-docs/anddocs/api-docs/ - Auto-generated MDX documentation in
content/docs/(generated)/
Statistics
- 38 files changed: +16,571 insertions, -77,336 deletions (net -60,765 lines)
- 11 API specs: arc, atlas, auth, audit, billing, notifications, observability, organizations, regions, webhooks, workflows
- 48 unique endpoints from Google Sheet MVP requirements
- 100+ MDX pages generated via fumadocs-openapi
Build Pipeline
Migration Notes
Verification
- ✅
pnpm bundle-openapi- 11 specs bundled successfully - ✅
pnpm generate-docs- 100+ MDX pages generated - ✅
pnpm build- Site builds successfully (209+ pages) - ✅ Path prefix verification - Zero singular
/v1/region/paths remain - ✅ Spreadsheet coverage - All 48 MVP endpoints mapped
References
- Source of Truth: k0rdent API Spec Google Sheet
- Implementation Plan:
.claude/plans/velvety-doodling-willow.md
Prior to 2026-02-13
No structured changelog maintained before this date. See git history for previous changes.
Last updated on
How is this guide?