The changelog API stores platform release notes that CXB Console renders for operators. Each entry is one release (a version) containing a list of individual change records across CXB Core / CXB API / CXB Console. The changelog logic lives in the API service’s changelog route and changelog model. Stored in the changelogs collection.

Endpoints

All under /api/v1/changelog, requiring admin:
MethodPathPurpose
GETList entries (newest release_date first); limit (≤100), skip, component filter
GET/{changelog_id}Fetch one entry by _id
POSTCreate an entry (version must be unique)
PUT/{changelog_id}Update an entry (version must stay unique)
DELETE/{changelog_id}Delete an entry
The component filter matches against components_updated (CXB Core, CXB API, or CXB Console).

Schema

ChangeLogCreateRequest:
FieldTypeNotes
versionstre.g. v2.1.3 — unique across entries
release_datedatetimeSort key (descending)
title, summarystrRelease headline + summary
entries[]ChangeLogEntryIndividual changes
components_updated[]CXB Core/CXB API/CXB ConsoleFilterable
deployment_statusdeployed/pending/rollbackDefault pending
Each ChangeLogEntry: type (feature/bugfix/performance/security/operational), component, title, description, impact (critical/high/medium/low), optional technical_details, metrics, affected_calls. ChangeLogResponse aliases the stored _id to id (populate_by_name=True) and adds created_by/created_at/updated_by/updated_at.

Version uniqueness

  • POST rejects (400) a version that already exists.
  • PUT rejects (400) a version already used by a different entry (_id != changelog_id).

The string _id requirement

GET /{changelog_id}, PUT, and DELETE query MongoDB with the raw path string: find_one({"_id": changelog_id}). They do not wrap it in ObjectId. That means an entry is only addressable by these routes when its _id is a string.POST calls insert_one without setting _id, so MongoDB assigns an ObjectId by default — such an entry will not be retrievable/updatable/deletable by its hex id through these routes. Entries intended for management must be created with an explicit string _id (e.g. seeded directly, or the version string used as _id). This matches the operational note that changelog entries must use a string _id.

Users & roles

Admin gating for changelog management.

CXB API overview

Control-plane responsibilities.