Changelog

A running log of updates to Centrali—new features, improvements, and fixes across the platform.

Versioned using semantic versioning (major.minor.patch).

v3.1.6Mar 3, 2026

Workspace Templates, Storage Visibility, and Free Tier Updates

New workspaces now launch with a guided template picker to get you productive from day one. The billing dashboard gives every workspace full visibility into storage and usage trends. Free tier limits have been updated to better reflect what each plan offers.

Added
  • Workspace template picker — new workspaces are guided through a curated set of starter templates on first login. Browse templates, preview the structure they create, and apply one with a single click to hit the ground running.
Improved
  • File storage usage is now tracked and surfaced in the billing dashboard for all workspace plans, giving you real-time visibility into your Azure Blob consumption.
  • Usage history is now available across all plans — month-over-month trends let you see how your consumption grows over time and plan your upgrades accordingly.
  • Free tier storage limits updated to 500 MB DB and 200 MB file storage, more accurately reflecting the tier's scope and creating a clearer boundary with the Standard plan.
  • Blob storage overage billing is now supported on the free plan, so you can keep going past the limit without interruption.
v3.1.5Mar 2, 2026

Record TTL, Structure View Redesign, and UX Improvements

Records can now expire automatically with built-in TTL support. The Structure detail view has been streamlined with better tab organization, and user management is smarter when inviting existing users.

Added
  • Record TTL (Time-to-Live) — assign expiration dates to individual records. Expired records are automatically swept and removed, keeping your structures clean without manual cleanup.
Improved
  • Structure detail view redesigned — tabs reduced from 14 to 11 with logical visual groupings, making navigation clearer and less cluttered.
  • Inviting an existing user to a workspace now adds them directly instead of returning a conflict error.
  • API error responses are now consistent across all services, making error handling more predictable for SDK and API users.
Fixed
  • Long text values in records table cells are now properly truncated, preventing tables from becoming difficult to scan.
  • User management page — improved layout, spacing, and interaction feedback.
v3.1.4Feb 27, 2026

Workspace Deletion and Data Export

Workspaces can now be safely deleted with a 30-day grace period and full data export. Restore anytime during the grace window, or download a complete archive of your workspace before it's removed.

Added
  • Workspace soft delete with 30-day grace period — owners can initiate workspace deletion from Settings, with a countdown and one-click restore during the grace window.
  • Workspace data export — download a ZIP archive of all workspace data (structures, records, functions, triggers, smart queries, settings) before deletion.
  • Guided export flow — step-by-step export experience before workspace deletion with real-time progress tracking and download.
  • Pending-deletion notice — users accessing a workspace pending deletion see a dedicated page with restore option for owners.
Improved
  • Export flow UX redesigned with clearer progress indicators and dark mode support.
  • Dashboard loads faster with improved metrics aggregation and caching.
  • Settings page layout cleaned up with redundant tabs removed.
Fixed
  • Role checks in workspace deletion UI now use correct permission names.
  • Settings link added to sidebar for easier access to workspace management.
v3.1.3Feb 25, 2026

Plan Limits, Overage Billing, and Performance Improvements

Workspace usage is now enforced against plan limits with optional pay-as-you-go overages for Standard and Pro plans. Dashboard performance is significantly improved with Redis caching, parallelized queries, and optimized metrics aggregation.

Added
  • Plan-based quota enforcement — workspace usage (compute executions, CPU, memory, storage) is now enforced against plan limits across all services, ensuring fair resource allocation.
  • Overage billing (pay-as-you-go) — Standard and Pro plan workspaces can opt in to continue using resources beyond plan limits. Includes configurable spending caps, payment method requirements, and automatic threshold notifications at 50%, 80%, and 100% of cap.
  • Overage settings in Console — new settings tab to enable or disable overages, set spending caps, and view current overage rates per plan.
  • On-demand function run context decryption — new policy-gated endpoint to decrypt function run execution context for authorized users.
  • Partner and internal workspace support — special license types for partner integrations and internal workspaces with unlimited resource quotas.
Improved
  • Dashboard metrics now load significantly faster with Redis caching, parallelized billing aggregation, and materialized trigger health metrics.
  • Triggers table uses a paginate-first query strategy for faster initial page loads.
  • Realtime SSE events and outbound webhooks now operate independently from compute function triggers, improving reliability.
  • Enhanced 402 responses guide users when plan limits are reached, with clear upgrade paths and overage opt-in options.
  • Provisioning banner no longer polls indefinitely for workspaces that have already completed setup.
v3.1.2Feb 23, 2026

Realtime and Webhook Independence Fix

Realtime SSE events and outbound webhooks now fire on every record event, regardless of whether compute function triggers are configured. Previously, workspaces without compute triggers received no realtime or webhook events.

Fixed
  • Realtime SSE events and outbound webhooks no longer depend on compute function triggers. Previously, the record event workflow returned early when no matching triggers were found, silently skipping webhook dispatch and Redis publish for realtime. Webhooks and realtime now fire unconditionally before trigger processing.
v3.1.1Feb 21, 2026

Function Runs Data Retention and Infrastructure Upgrades

Function run payloads are now automatically retained with configurable lifetimes — expired data is archived to Azure Blob Storage before being stripped, keeping your database lean while preserving full audit trails. Plus PostgreSQL 16 for local development.

Added
  • Function runs data retention — daily cron job automatically strips old run payloads past their retention period, with Prometheus metrics for observability.
  • Archive to Azure Blob Storage — run payloads are archived to blob storage before retention stripping, preserving full execution data for compliance and debugging.
  • Archive download endpoint — retrieve archived function run payloads via a dedicated API endpoint.
  • Console UI archive download button — download archived payloads directly from the run detail view when data has been retained.
  • Payload expired banner — the console now shows a clear banner on function runs whose payloads have been stripped, with a download link to the archived data.
  • Error summary columns — function runs now store structured error summaries, with a backfill migration for historical failed runs.
  • Partitioned function_runs table — migration, backfill, and cutover scripts for table partitioning to improve query performance at scale.
Improved
  • Local development PostgreSQL upgraded from 15 to 16.
  • Retention cron runs in UTC with Prometheus metrics for rows processed, errors, and duration.
Fixed
  • Column type mismatches in partitioned migration and Docker builds corrected.
  • Retention cron timezone set to UTC and dry-run batch cap removed for production use.
  • Retention metrics renamed to run_data_retention_* to avoid collision with existing metric names.
  • runData column made nullable so retention can safely strip old payloads without breaking queries.
v3.1.0Feb 17, 2026

Configuration-as-Code SDK and Console UI Fixes

22 new SDK methods enable programmatic management of structures, compute functions, triggers, and smart queries — unlocking infrastructure-as-code and CI/CD workflows. Plus fixes for sign-out, Smart Query field names, and a schema rename for clarity.

Added
  • Configuration-as-Code SDK support — 22 new methods across four managers: StructuresManager (list, get, getBySlug, create, update, delete, validate), ComputeFunctionsManager (list, get, create, update, delete, testExecute), TriggersManager (create, update, delete, listAll, getDetails), and SmartQueriesManager (create, update, delete, test).
  • New property type definitions, ComputeFunction interfaces, trigger CRUD types, and smart query CRUD types exported from the SDK.
  • Records CRUD API guide covering all record endpoints (CRUD, bulk ops, versioning, secrets, aggregations).
Improved
  • Renamed property-level `isStrict` to `strictProperties` to eliminate naming confusion with the removed structure-level `isStrict`. Includes a database migration to rename at all nesting levels and backward-compatible API ingestion.
  • Swagger component schemas fixed to match actual API responses (camelCase, correct Property type enum, PaginatedResponse shape).
  • Removed unused packages (keycloak-js, socket.io-client, duplicate express) from console-ui.
Fixed
  • Sign-out button now fully logs users out — clears OIDC browser state, destroys the Express session, and force-clears provider cookies. Previously, the server-side session was destroyed but browser state caused silent re-authentication.
  • Smart Query builder field name dropdowns no longer apply camelCase transformation, preserving kebab-case, snake_case, and spaced field names exactly as defined.
v3.0.9Feb 15, 2026

User Onboarding and Error Transparency Fixes

Fixed a critical user onboarding bug where admin-created users were invisible to workspace membership queries, and improved error transparency so connection errors in compute functions show the real cause instead of internal codes.

Fixed
  • Admin-created users (via createUser) now correctly get a `user_workspaces` entry, fixing an issue where they were invisible to workspace membership queries. Token issuance also validates that the fallback workspace has a valid membership before using it.
  • Compute function HTTP errors no longer mask real connection errors (ENOTFOUND, ECONNREFUSED, ETIMEDOUT, ECONNABORTED, ECONNRESET, SSL errors) with internal codes like WORKER_UNAVAILABLE. Each error type now surfaces an actionable message with the real error code attached.
  • Array field suggestions in schema discovery now include `items.type`, fixing incomplete suggestions for array properties.
v3.0.8Feb 13, 2026

Compute Error Observability Fix

Failed compute function runs now surface the actual error message and stack trace in the console Errors tab and in Loki logs, fixing a gap where failures were reported without any detail about what went wrong.

Fixed
  • Compute worker sandbox logger now includes `workspaceSlug`, fixing an issue where the `"Function execution failed"` error log was silently filtered out of Loki queries — making Deno runtime errors invisible in the console Logs tab.
  • Gateway logs now include `errorMessage` and `errorCode` for failed jobs instead of only logging `hasError: true`. The job completion callback and job completed log entries both surface the actual error details.
  • The console Errors tab now displays error details for failed function runs. Previously, the error was persisted to the database but never included in `runData`, so the Errors tab always showed "No errors" even for failed runs.
v3.0.7Feb 13, 2026

Event-Driven Trigger Parameter Fix

Event-driven compute function triggers now correctly pass event data via executionParams and trigger configuration via triggerParams, matching the documented behavior and aligning with all other trigger types.

Fixed
  • Event-driven triggers now pass the event payload (record data, event type, before/after state) in `executionParams` instead of incorrectly nesting it inside `triggerParams`. Trigger configuration parameters (secrets, API keys, URLs) are now available directly on `triggerParams` as a flat object — consistent with on-demand, HTTP, and scheduled triggers.
v3.0.6Feb 12, 2026

Compute Function HTTP and Query Response Fixes

Compute function HTTP methods now return full response objects with status codes and headers, and api.queryRecords returns the same response shape as the REST API and SDK.

Fixed
  • Compute function `api.httpGet()` and `api.httpPost()` now return full axios-style response objects (`{ status, headers, data }`) instead of just the response body as a string. Previously, status codes were inaccessible in compute functions.
  • Compute function `api.queryRecords()` response shape now matches the REST API and SDK — results are returned in the `items` array, consistent with all other query interfaces.
v3.0.5Feb 12, 2026

Atomic Upsert Records and SDK Allowed Domains

New upsertRecord operation atomically creates or updates records by business key with advisory locking for safe concurrent writes. SDK gains AllowedDomainsManager for managing compute function external HTTP access.

Added
  • Atomic upsert records — find a record by match fields and update it, or create a new one if no match exists. Uses PostgreSQL advisory locking to prevent race conditions. Available via HTTP API, SDK (`client.upsertRecord()`), NATS RPC, and compute functions (`api.upsertRecord()`).
  • SDK AllowedDomainsManager — programmatically manage allowed domains for compute function external HTTP calls with `client.allowedDomains.list()`, `.add()`, and `.remove()`.
Improved
  • Record creation events in schemaless and auto-evolving modes now fire after the transaction commits, preventing orphaned NATS events on rollback.
  • Improved customer-facing documentation for scheduled triggers with clearer examples and configuration guidance.
v3.0.4Feb 11, 2026

Schema Discovery Fixes and Documentation Overhaul

Resolved issues with query validation blocking filters on schemaless structures, improved schema discovery initialization, and overhauled customer-facing documentation.

Improved
  • Simplified schema mode configuration — removed legacy `isStrict` flag in favor of the unified `schemaDiscoveryMode` setting.
  • Customer-facing documentation overhauled with updated guides, SDK reference, and corrected screenshots to match the current UI.
  • Access control documentation updated to accurately reflect the actual authentication implementation.
Fixed
  • Query validation no longer blocks filters on structures using schemaless or auto-evolving mode.
  • Record updates in auto-evolving mode now correctly validate as partial updates instead of requiring all fields.
  • Schema discovery configuration now properly initializes when creating new structures.
  • Schema discovery defaults to strict mode when no configuration is specified, preventing unexpected behavior.
v3.0.3Feb 10, 2026

CORS Wildcards and Sort Order Fixes

Wildcard CORS patterns now work correctly with protocol prefixes, and sorting by numeric and datetime fields uses proper type-aware ordering.

Improved
  • CORS middleware updated in IAM, Data, Workspace, Notification, AI, Scheduler, and Search services to support wildcard patterns.
  • Record query sorting casts numeric fields to `::numeric` and datetime fields to `::timestamp` for correct ordering.
Fixed
  • CORS wildcard patterns with protocol prefix (e.g., `https://*.domain.com`) now work correctly across all services.
  • Numeric field sorting uses proper numeric ordering instead of lexicographic — no more '9' sorting after '10000'.
  • Datetime field sorting uses proper timestamp ordering for correct chronological results.
v3.0.2Feb 9, 2026

SDK Reliability, Nested Arrays, and Data Fixes

Improved SDK reliability with automatic token refresh, better record validation for partial updates, and support for nested array types in the structure builder.

Added
  • Nested array type definitions — define complex array-of-objects schemas directly in the visual structure builder.
  • Custom 404 page in documentation — improved navigation experience when a page isn't found.
Improved
  • SDK automatically refreshes tokens on 401/403 errors — no more manual token handling for expired sessions.
  • Clearer documentation on filter syntax differences between Client SDK and Compute Functions.
Fixed
  • Partial record updates now validate only the fields being updated, not the entire record schema.
  • JSONB filters correctly handle numeric comparisons — number fields now cast properly in filter conditions.
  • Structure bundle imports correctly resolve cross-references between structures in the same bundle.
  • Storage routes in Compute Gateway now use correct internal messaging subjects.
  • SDK pagination uses consistent page/pageSize parameters across all endpoints.
v3.0.1Jan 19, 2026

SDK Type Fix

Quick patch to correct TypeScript types in the SDK for record filtering.

Fixed
  • SDK filter parameter now correctly typed as object instead of string in QueryRecordOptions.
v3.0.0Jan 18, 2026

Smart Queries: Variables, Joins, and Developer Experience

Smart Queries get a major upgrade with parameterized variables, flexible record ID joins, and a cleaner result structure. Build dynamic, reusable queries that accept runtime parameters and seamlessly combine data across structures.

Added
  • Parameterized Variables — use `{{variableName}}` syntax in Smart Query conditions and provide values at execution time for dynamic, reusable queries.
  • Record ID Joins (`_recordId`) — join structures using actual record UUIDs instead of just data fields, perfect for foreign key relationships.
  • Join Where Filtering (`joinWhere`) — filter on fields from joined records, not just the main structure.
  • Nested `_joined` Results — joined data now returns in a clean `_joined.{structureSlug}` object, consistent with the `_expanded` pattern for references.
  • Visual Builder Join Support — configure joins directly in the Smart Query visual builder with field selection and join conditions.
  • SDK Variables Support — pass variables when executing Smart Queries via the SDK with full TypeScript support.
Improved
  • SDK reference expansion documentation with clear examples for `expand` parameter usage.
  • Storage URL helpers in SDK for consistent file URL construction.
  • Smart Query validation catches invalid variable names and missing required variables with helpful error messages.
v2.9.0Jan 15, 2026

Workflow Orchestration: Multi-Step Automation with Visual Editing

Build complex multi-step workflows without writing code. Chain compute functions together, add conditional branching, schedule delays, and monitor every execution with detailed observability.

Added
  • Workflow Orchestration — visual editor for building multi-step workflows that chain compute functions with automatic retry and error handling.
  • Decision Steps — route workflows based on data conditions with 10 comparison operators (equals, greater than, exists, in array, etc.) and support for multiple conditions per case.
  • Delay Steps — pause workflow execution for specified durations, perfect for reminder emails, approval timeouts, or rate-limited API calls.
  • Event-Driven Triggers — automatically start workflows when records are created, updated, deleted, or restored.
  • HTTP Webhook Triggers — expose public webhook endpoints with optional HMAC-256 signature validation for secure integrations.
  • Scheduled Triggers — run workflows on cron schedules, fixed intervals, or one-time execution with timezone support.
  • On-Demand Triggers — start workflows manually via API with custom input data.
  • Run Observability — track every workflow execution with step-by-step history, input/output inspection, activity logs, and execution traces.
  • Available Paths Reference — in-editor documentation showing how to reference trigger input, context variables, and step outputs in decision conditions.
Improved
  • Console UI gains new Orchestrations section with workflow list, visual editor, and run history views.
  • Compute functions can now be chained in orchestrations with automatic context passing between steps.
v2.8.0Jan 7, 2026

Permission Introspection, Compute Job Queues, and Security Enhancements

Debug and fix permission issues in seconds with the new Permission Introspection feature. Simulate authorization checks, see exactly why access is denied, and apply fixes with the guided remediation wizard.

Added
  • Permission Introspection — debug service account permissions with a comprehensive permission scanner showing allowed and denied actions across all resources.
  • Authorization Simulation — test 'what-if' scenarios by simulating access checks with custom context including IP address, time, and request metadata.
  • Remediation Wizard — one-click fix for permission issues with guided policy and permission creation.
  • Structure Security Tab — view all permissions granting access to a structure's records, with security warnings for overly broad access.
  • Compute Job Queue — reliable compute function dispatch with job queue and worker state tracking.
  • BYOT External Auth Providers — bring your own identity provider (Clerk, Auth0, Okta) with claim-based authorization.
Security
  • Debug and trace output requires explicit permission to prevent information disclosure.
v2.7.0Jan 6, 2026

Azure OpenAI, Secure Compute Architecture, and Infrastructure Upgrades

AI service now powered by Azure OpenAI for faster inference, new secure compute architecture with Deno sandboxing, and self-hosted Redis for improved performance.

Added
  • Azure OpenAI integration — AI service now uses Azure OpenAI for faster, more reliable inference.
  • Secure compute architecture — new Deno-based sandboxing for safer function execution.
  • Batch data operations — high-performance bulk operations for faster record processing.
Improved
  • AI inference timeout increased to 5 minutes for complex operations.
  • Compute function execution performance improvements.
v2.5.0Dec 25, 2025

Secret Fields, Trigger Health Monitoring, and Platform Hardening

Encrypt sensitive data with secret string fields, monitor trigger health at a glance, and benefit from comprehensive security and observability improvements.

Added
  • Secret string fields — mark string properties as secrets to encrypt at rest and mask in API responses.
  • Secret reveal endpoint — access plaintext values of secrets with explicit permission.
  • Secret compare endpoint — verify values match stored secrets without revealing them.
  • Secret key rotation — rotate encryption keys across workspaces without downtime.
  • Trigger health monitoring — badges show trigger status at a glance with detailed health cards.
  • Function execution email notifications — subscribe to receive emails when functions complete or fail.
  • Realtime compute events — stream function completion events via SSE.
  • CSV/JSON conversion helpers — parse and generate CSV/JSON in compute functions.
Improved
  • Console sidebar navigation revamped with new structure and styling.
  • Better error messages for CORS and authorization failures.
Fixed
  • Storage service performance improvements.
Security
  • Authorization added to scheduler and webhook subscription APIs.
  • Centralized IAM resource registration for consistent access control.
v2.4.0Dec 22, 2025

AI Everywhere: Schema Generation, Natural Language, and Intelligent Data Quality

Six major AI-powered features transform how you build with Centrali—from schema generation to anomaly detection.

Added
  • AI Schema Generator — describe your data in plain English and get a complete schema with fields, types, and validation rules.
  • Natural Language Search — search records using conversational queries like 'orders from last week with status shipped'.
  • Natural Language Record Creation — create records by describing them instead of filling out forms.
  • Compute AI Assistant — generate function code from descriptions of what you want the function to do.
  • AI Data Validation & Cleaning — real-time validation catches format issues, inconsistencies, and outliers as records are created.
  • Batch validation scanning — run validation across all existing records to find and fix historical data quality issues.
  • Auto-correction support — automatically fix trusted patterns like email typos and inconsistent formatting.
  • AI Anomaly Detection & Insights — continuous analysis surfaces unusual values, missing references, and data drift.
  • AI Insights dashboard — view data quality scores, top issues, trends, and recommendations per structure.
  • Auto-Schema Discovery — schemaless and auto-evolving modes for dynamic data ingestion.
  • Schema suggestion workflow — accept or reject new fields discovered from incoming data.
Improved
  • Console UI polish with unified favicon across all pages.
  • Improved notification template rendering.
v2.3.0Dec 16, 2025

Full-text search, reference properties, and SDK enhancements

Search records across your workspace instantly, define relationships between structures, and leverage smart queries in the SDK.

Added
  • Full-text search for records — search across all records in your workspace with instant results.
  • SDK search() method — search records programmatically with structure filtering and result limits.
  • Console UI record search — press Cmd+K to find any record in your workspace.
  • Reference property type — define relationships between structures with validation and cascade behaviors.
  • Cascade delete support — configure restrict, cascade, or set_null behaviors for references.
  • SDK smart queries support — list and execute smart queries programmatically.
  • Trigger pause/resume — pause and resume triggers from the console.
Improved
  • Search results grouped by structure type for easier navigation.
  • Reference validation prevents orphaned references at create/update time.
Fixed
  • Scheduler trigger state sync issues.
  • SDK response format consistency.
v2.2.0Dec 9, 2025

Real-time events, image transformation, and compute upgrades

Stream record changes via SSE, resize images on-the-fly, and new compute APIs for file storage, crypto, and templating.

Added
  • Real-time Events via Server-Sent Events (SSE) — subscribe to record changes with filtering by structure, event type, and data values.
  • SDK realtime namespace with subscribe() for SSE event streaming.
  • Image resize and compression — transform images on-the-fly without storing multiple versions.
  • Handlebars templating with api.renderTemplate() — 30+ built-in helpers for currency, dates, conditionals, and more.
  • api.storeFile() — store binary files (PDFs, images) directly from compute functions.
  • Crypto API with api.crypto.sha256() and api.crypto.hmacSha256() for hashing and signing.
  • Base64 utilities with api.base64.encode() and api.base64.decode().
  • Record import feature for bulk data migration.
  • SDK triggers namespace with invoke() method for on-demand trigger execution.
  • API Documentation Portal with interactive OpenAPI specs for all services.
  • Deleted structures tab with restore and permanent delete options.
  • Bulk delete action for structures, records, and other resources.
Improved
  • Renamed 'webhook' trigger type to 'http-trigger' for clarity.
  • Quick-select interval helpers for scheduled triggers (1 week, 1 month presets).
  • Redesigned IAM pages (login, logout, error, workspace selector).
  • Better error messages for structure imports and duplicate property names.
  • Option to skip smart queries/triggers during bundle import.
Fixed
  • Trigger drafts now save function selection reliably.
  • Increment counters properly cleaned up on structure deletion.
  • Unique constraint validation for nullable fields.
Security
  • Compute function sandbox hardening with execution timeouts and network isolation.
  • Domain allowlist validation prevents SSRF attacks in HTTP requests.
v2.1.0Nov 26, 2025

Real-time subscriptions and improved bulk operations

Subscribe to record changes via SSE and improved console UI for workspace management.

Added
  • Real-time service foundation for Server-Sent Events (SSE).
  • SDK realtime namespace initial implementation.
Improved
  • Bulk operations performance and reliability.
  • Console UI polish and responsiveness.
v2.0.1Nov 21, 2025

Bulk import/export for workspace resources

New bulk import/export flow for structures, functions, smart queries, and triggers with conflict-aware resolution.

Added
  • Bulk export for structure bundles (structures + smart queries).
  • Bulk export for function bundles (functions + triggers).
  • Bulk import APIs with conflict-aware validation and user-selectable resolution modes.
  • Resolution actions for imports: skip, rename, overwrite, import_as_new.
  • Dependency remapping for related resources (smart queries → structures, triggers → functions).
  • New bulk APIs for export, conflict detection, and import across structures and functions.
Improved
  • More robust validation and error messages for large imports.
  • Clearer conflict messages when structures or functions already exist.
v2.0.0Nov 20, 2025

Initial public platform release

First stable release of Centrali with structures, search, storage, functions, and workspaces.

Added
  • Structures for schema-based data modeling.
  • Smart queries for filtering, sorting, and search.
  • File storage with metadata and simple delivery APIs.
  • Serverless functions with event triggers and schedules.
  • Built-in full-text search indexing for records.
  • Workspace model with roles and permissions for multi-tenant apps.
  • Real-time updates API for subscriptions to data changes.
  • Console UI for managing data, functions, logs, and workspace settings.