Skip to content

Current capabilities and limits

Verified October 13, 2026 against Centrali commit 6493412e3f050a94f519bc782eb8208fde676878. This is checked-in implementation and interface evidence, not a live production certification. Each row uses this same last verified commit; links are pinned so later source changes cannot silently alter the evidence.

Available means a current implementation and access path exist. Limited means implemented with a material restriction. Retired means removed. Planned means recorded intent without established shipped implementation. Surface order below is REST / SDK / MCP / console; “indirect” is consumption through a related feature, not an authoring API.

Capability Status Surfaces (REST / SDK / MCP / console) Source at verified commit Limits / disposition
Collections / records Available yes / yes / yes / yes services/backend/data/src/app/routes/records.ts CRUD and schema primitives; batch-write parity is an engineering issue (CEN-1558), not a documentation fix.
Record text search Available yes / yes / yes / yes services/backend/data/src/app/query/recordsExecutor.ts PostgreSQL simple-dictionary FTS; not typo-tolerant Meilisearch. MCP uses query_records.
Saved queries / alerts Available yes / yes / yes / yes services/backend/data/src/app/routes/alert_definitions.ts Configured scheduled query conditions; delivery inherits notification transport limits.
Compute / triggers Available yes / yes / yes / yes services/backend/data/src/app/routes/triggers.ts Gateway routes execution to Deno workers; quotas, permissions, schedules and domain allowlists apply.
Orchestrations Available yes / yes / yes / yes services/backend/orchestration/internal/engine/engine.go Compute, decision, loop and delay steps exist; no new restart, ordering or exactly-once guarantee implied.
Inbound capture / replay Available yes / yes / yes / yes services/backend/data/src/app/services/inboundEvent.ts Signature-verified arrivals; current-code replay may duplicate side effects. Targeted review: CEN-1586.
Outbound webhooks Available yes / yes / yes / yes services/backend/data/src/app/routes/webhook_subscriptions.ts Subscriptions, predicates, delivery history and replay. Retry/version documentation: CEN-1587.
Event Log / lineage Available yes / yes / yes / yes services/backend/data/src/app/routes/event_log.ts Queryable event projection; correlation is not proof of atomic delivery across services.
SSE record subscriptions Available yes / yes / no / no dedicated UI services/utils/centrali-sdk/src/realtime/manager.ts Go realtime service; not a reactive-query engine. REST endpoint exists, so SDK-only was false.
Service-account administration Available yes / no dedicated manager / yes / yes services/backend/iam/src/routes/serviceAccountRoutes.ts SDK service-account authentication exists; that does not imply SDK lifecycle administration.
External identity providers Available yes / verify per operation / yes / yes services/backend/iam/src/services/externalJwtValidator.ts Bring-your-own JWT/OIDC verification; not turnkey hosted customer identity SaaS.
Files / folders Available yes / yes / no upload tool / yes services/backend/storage/store/store.go Azure Blob client remains current. REST and console upload exist; SDK-only was false.
Webhook provider presets Limited yes / yes / yes / yes services/backend/data/src/app/routes/http_triggers.ts Signature validators and source mappings, not provisioned provider accounts; custom compute may call external APIs.
Notifications framework Limited platform/preferences / no general authoring / alerts only / inbox/preferences services/backend/notification/src/instance.ts Real AzureEmailChannel and BridgingInboxChannel, templates, categories, PostgreSQL storage and Redis cache are wired; old test-only mapping comments are not current absence evidence.
Notification durability Limited platform / indirect / indirect / inbox services/backend/notification/src/nats/subscriber.ts Most event intake uses core NATS and can lose messages while unsubscribed. Three alerts.platform topics use durable JetStream (CEN-1584). Downstream retries do not repair lost intake.
AI validation / anomaly helpers Limited yes / yes / yes / yes services/backend/data/src/app/routes/ai_validation.ts Routes and managers exist; inference credentials/configuration required. Quality and production accessibility not established by inspection.
Pages builder / runtime Retired no / no / no / no services/backend/iam/src/migrations/20260819120000_remove_pages_resource_and_permissions.ts CEN-1474; historical Pages documentation is not current availability (CEN-1585).
Separate search service / Meilisearch Retired no / no / no / no docs/decisions/006-postgres-fts-replaces-search-service.md CEN-1496; FTS remains in data, not a separate service.
Provider-portable file storage / R2 Planned not established on any surface services/backend/storage/store/store.go Strategic intent in the Confluence inventory; current Azure-specific client does not prove it shipped.

Cross-surface evidence

Topology and surface ownership

The only frontend service in this repository is console-server. Public marketing and MkDocs user documentation live in centrali-marketing and centrali-docs. The root README's in-tree marketing/docs paths were false and have been removed.

Production definitions were inspected in centrali-gitops commit 360ff49a6a3ee67a38d0aa780550a11615464618: production Compose and Fly worker. Applications run on a Compose VM; workers use Fly with private WireGuard connectivity. Azure still supplies blob storage and email, so “Azure retired” would be false. Kubernetes/Helm/Flux deployment was retired under CEN-1535. Deployment configuration was inspected; running versions and health were not queried.

Claims, strategy and overlapping work

The active Confluence inventory is a dated strategy input. Refresh it from this register and code, recording commit/date and limitations; do not regenerate capabilities from April snapshots. Product investment decisions remain separate from technical availability.

Generated strategy/marketing reports must be corrected through centrali-strategy/capabilities.json evidence and node scripts/generate-claims.mjs, then reviewed in generated .marketing/CLAIMS.md before downstream copy. The archived strategy repository was retrieved for this audit: search and MCP evidence were refreshed, notification/topology/retirement entries added, and the claims bank regenerated locally. GitHub rejected the ledger push because blueinit/centrali-strategy is archived; its reviewable changes are preserved as /private/tmp/CEN-1588-strategy-ledger.patch. Marketing comparison and retired Pages corrections consume those locally regenerated ledger sentences. The active Confluence register records current source evidence. Absence from a ledger does not establish absence from code.

CEN-1585 owns Pages claim cleanup, CEN-1586 inbound buffer/replay copy, CEN-1587 outbound retry/predicate/version copy; this audit corrects residual descriptions and records their boundaries. CEN-1474, CEN-1496 and CEN-1535 own the completed engineering retirements. Date-stamped plans and explicit retired documentation remain historical, not instructions for current deployment. The in-repo marketing draft's Meilisearch example now distinguishes external application indexing from Centrali FTS.

Engineering findings and verification limits

  • CEN-1558 tracks batch record validation/uniqueness/change-log/accounting parity. No documentation edit fixes that behavior.
  • Core-NATS notification intake still lacks offline durability for general lifecycle and saved-query alert topics. CEN-1584 covers only the three platform-alert topics; general intake requires separate engineering scope.
  • Storage portability is planned, not implemented by this documentation change.
  • No runtime logic, API contracts, schema, auth or deployment configuration changed. Verify delivery, tenant isolation, replay side effects and AI success separately before making reliability claims.

Refresh this register whenever routes, SDK exports, MCP registration, console access, or deployment ownership changes. Verify each interface independently; a service directory alone is insufficient evidence.