This document is the developer-facing reference for the Platform API 1.0 stable baseline. It
describes the third-party app surface covered by stable compatibility guarantees. The full
contract snapshot remains available through crypta-app api snapshot and
GET /api/v1/platform/contract; this page lists only the stableBaseline.name=1.0 members.
The stable baseline is separate from the integer compatibility contract version. The current
contract version records when descriptors were added or changed. The stable baseline name records
which descriptors are part of the Platform API 1.0 app-facing compatibility promise.
Platform API 1.0 membership is frozen at contract version 19. The current snapshot contract
version is 23. Later contract versions may add experimental or future baseline surface, but they
must not change stableBaseline.name=1.0 membership unless the project intentionally defines a
new stable baseline.
stable means app-facing Platform API 1.0 surface. Stable baseline capabilities and routes remain
available to apps that declare api.targetStability=stable.
experimental means app-facing but not covered by the Platform API 1.0 stable guarantee. Apps may
use experimental capabilities only when they declare api.targetStability=experimental and
api.experimentalCapabilitiesAccepted=true.
internal means daemon implementation API. Third-party apps cannot declare internal capabilities.
operator-only means host or Web Shell operator API. Third-party apps cannot declare operator-only
capabilities, even when api.targetStability=experimental.
deprecated remains available and remains part of the stable compatibility promise while warning
during compatibility verification.
scheduled-for-removal remains available during its migration window and remains part of the
stable compatibility promise until an approved future baseline and release policy allow removal.
A stable-only third-party app should declare:
api.minimumVersion=1
api.maximumTestedVersion=23
api.targetStability=stable
api.experimentalCapabilitiesAccepted=falseAn app that knowingly uses experimental app-facing API should declare:
api.minimumVersion=1
api.maximumTestedVersion=23
api.targetStability=experimental
api.experimentalCapabilitiesAccepted=trueLegacy manifests that omit api.targetStability remain readable. The compatibility metadata model
treats the effective target as experimental, records that the field was not declared, and emits
api_target_stability_missing when explicit API compatibility metadata is otherwise present.
The Platform API 1.0 stable baseline contains 9 capabilities and 32 endpoints.
Release certification also checks the stable endpoint required-capability sets, action labels, and app-principal access flags. A stable endpoint that changes required capabilities, changes the authorization/audit action label, drops app process/browser access, or changes method/route identity is treated as a stable breaking change.
app.data.readapp.data.writecontent.fetchcontent.insertcontent.insert.app-documentcontent.subscribeplatform.contract.readqueue.readqueue.write
DELETE /app-data/namespaces/{namespace}DELETE /app-data/records/{namespace}/{key}DELETE /content/subscriptions/{subscriptionId}GET /app-data/exportGET /app-data/namespacesGET /app-data/namespaces/{namespace}GET /app-data/recordsGET /app-data/records/{namespace}/{key}GET /app-data/statusGET /content/subscriptionsGET /content/subscriptions/{subscriptionId}GET /platform/contractGET /queueGET /queue/countGET /queue/keysPOST /app-data/importPOST /app-data/namespaces/{namespace}/schemaPOST /app-data/recordsPOST /content/fetchPOST /content/subscriptionsPOST /content/subscriptions/{subscriptionId}/pausePOST /content/subscriptions/{subscriptionId}/refreshPOST /content/subscriptions/{subscriptionId}/resumePOST /queue/cleanup/downloadsPOST /queue/cleanup/uploadsPOST /queue/downloadsPOST /queue/inserts/app-documentPOST /queue/inserts/directoryPOST /queue/inserts/filePOST /queue/requests/priorityPOST /queue/requests/removePOST /queue/requests/restart
The stable baseline intentionally excludes app-vault, identity-vault, app-service, and Trust Graph Local RC capabilities and routes. Those surfaces remain available in the full contract with their own stability labels, but third-party apps must not treat them as Platform API 1.0 stable.
Host-only and operator-only routes may still be visible in localhost contract snapshots for audit or Web Shell wiring, but they are not part of the third-party stable baseline and compatibility verification rejects app declarations that rely on them.
Third-party app-store pre-review uses this same baseline. A submission whose manifest declares
api.targetStability=stable must use only the stable capabilities and endpoints listed above.
Experimental app-facing capabilities require api.targetStability=experimental and
api.experimentalCapabilitiesAccepted=true. Internal, host-only, and operator-only capabilities
fail pre-review for third-party submissions.
See app-store-submission-and-review-workflow.md for the submission package format, automated pre-review report, and reviewer decision workflow. See platform-api-compatibility-support-window.md for the beta support-window policy, experimental opt-in consequences, deprecation windows, and release certification behavior for stable baseline regressions.
Release managers compare the current contract against the previous production beta contract
snapshot before promotion. The canonical baseline snapshot lives under
docs/platform-api/contracts/platform-api-1.0-baseline.json; production release artifacts also
write platform-api-contract-current.json, platform-api-contract-previous.json, and
platform-api-stable-diff.json. Those artifacts are redacted metadata only.
Stable apps can reproduce the app-author side of the check with:
crypta-app api snapshot --output build/platform-api-contract.json
crypta-app api policy --contract build/platform-api-contract.json
crypta-app compat verify \
--bundle-dir . \
--contract build/platform-api-contract.json \
--target-stability stable \
--strictThe canonical Stable RC freeze records platform-api-current-contract.json,
platform-api-stable-diff.json, the Platform API 1.0 baseline identity, and their digests beside
the deterministic product archive. Stable GA re-authenticates those files and requires the GA
payload to retain the same API snapshot. Promotion cannot add, remove, graduate, deprecate, or
otherwise change Platform API 1.0 membership.
After verified publication, stable-1.0-maintenance-baseline.json becomes the release-comparison
anchor for the GA build. Future maintenance and hotfix candidates compare their current contract,
stable surface, access flags, required capabilities, action labels, and support-window metadata
against that baseline. Any API change needed before GA must return to the Stable RC refreeze path.