Release Notes

Sign In
Releases
1.57
1.56
1.55
1.54
1.53
1.52
1.51
1.50
1.49
1.48
1.47
1.46
1.45
1.44
1.43
1.42
1.41
1.40
1.39
1.38
1.37
1.34
1.33
1.28
1.27
1.57
Released:
2026-08-25

Release Highlights

  • Ligantic SDK and CLI - a new TypeScript client and command-line tool for scripting against your spaces, schemas, records, and flows.
  • Dynamic text in experiences - text blocks can now reference datums in scope as inline variables, with per-variable formatting and default values.
  • File previews - PDF and DOCX files can be previewed directly in the record.
  • Faster entity search - the entity list search that could take several seconds for large entity sets now returns results in milliseconds, with no change to what matches.
  • Faithful table copy - copying a table out of the content editor preserves its structure, variables, and links when pasted back into Ligantic.

Feature Spotlights

Entity Search Speedup

The problem: Searching the record list could take 5-6 seconds, making it impractical for large datasets.

What's new: Record search now returns results in milliseconds. Search semantics are unchanged - the same terms match the same results, just dramatically faster.

How to use it: Nothing changes for end users - the same search box, the same results, just fast.

Configuration: No configuration required.

Ligantic SDK & CLI

The problem: Integrating with Ligantic outside the product required hand-rolled HTTP calls without the support or harness of an SDK and CLI.

What's new: Two new published packages:

  • @ligantic/sdk - a TypeScript client for Ligantic (identity, spaces, schemas, records, flow runs + run inspection) with automatic retries and typed error handling.
  • @ligantic/cli - a command-line tool for managing spaces, schemas, records, and flows, with --json output for scripting and secure credential storage.

How to use the CLI:

  1. npm install @ligantic/cli
  2. ligantic auth login - authenticates and stores credentials securely
  3. ligantic space use <space> - select the space to work against
  4. ligantic records list --json - script against your data, or ligantic flows run <flow> --wait to run a flow and wait for its outputs

Configuration: Set LIGANTIC_API_KEY (and optionally LIGANTIC_API_BASE_URL and LIGANTIC_SPACE_ID) for the CLI, or pass them to the SDK constructor.

Scoped Datum Variables in Text Blocks

The problem: Experience text blocks were either static or fully dynamic - authors could not compose static and dynamic text like "Thanks, {customer.name}" without leaving the text block.

What's new: Text blocks can now inline references to the datums available in their scope, rendered as {{variable}} chips in the designer and resolved to live datum values at runtime. Each variable chip is editable inline: date variables expose a date format picker, and array/object/geojson variables expose a value format picker. Each variable has an optional default value that is shown when the referenced value is empty.

How to use it:

  1. Select a text block in the experience designer.
  2. Click the variables button in the content toolbar to insert the next unused variable from the block's scope.
  3. Click a chip to set its date/value format and optional default value.
  4. Publish - the chip resolves to the live datum value at runtime.

Configuration: No configuration required. Variables are automatically scoped to the block's available datums.

New Features

SDK & CLI

Two new publishable workspace packages:

  • @ligantic/sdk - a self-contained, never-throwing TypeScript client over the OpenAPI v1 surface (identity, spaces, schemas, records, flows run + run inspection), with a Result<T, LiganticError> pattern, idempotent-only retry with exponential backoff, and spec-derived types via codegen.
  • @ligantic/cli - a human-friendly command tree over the SDK: auth (login/whoami/logout), space (list/use/select/current), schemas (list/show), records (list/show/create/delete), and flows (list/show/run --wait/run show/outputs), with --json output for scripting and OS key-store credential storage.

Experiences

Scoped datum variables in text blocks

Experience text blocks can now inline references to the datums available in their scope, rendered as {{variable}} chips in the designer and resolved to live datum values at runtime.

What changed:

  • Variable nodes in content - a new variable content node type (an inline void element) can be inserted into a text block's rich content. withVariables (core-ui/content/withVariables.tsx) registers the node with the Slate editor and provides the VariableProvider/useVariables context that exposes the set of available variables to the editor toolbar.
  • Scoped to the block - TextBlock.tsx builds the available variable set from the block's useAvailableDatums(block.id), keeping only true datums and mapping each to its schema. getFullVariablesSet flattens object schemas so nested fields are individually referenceable (e.g. order.customer.name), and the resulting set is passed to the content editor as variables.
  • Insertion & editing - a variables button in the content toolbar inserts the next unused variable. Each inserted variable chip is editable inline: date variables expose a date format picker, and array/object/geojson variables expose a value format picker (via DateFormatSelect/ValueFormatSelect).
  • Default values - each variable node carries an optional defaultValue. When the referenced value is empty, the defaultValue is shown (or nothing, if unset). Serialisation precedence is: an existing non-empty value → the variable's defaultValue → the schema's current default.
  • Runtime resolution - TextRenderer renders content with resolveVariables, and VariableBlock resolves each node into a DatumValueRenderer using a DatumReference built from the variable path (referenceId + optional path), preserving any date format. In the designer the chip shows {{variableName}} with a purple background, or a grey "missing" style when the variable no longer resolves to a known datum.
  • Rendering polish - text blocks now render with white-space: pre-wrap, overflow-wrap: break-word and flex-grow: 1 so multi-line content and long values wrap correctly, and content is rendered as inline spans so variables flow naturally within a sentence.

Why does it matter? Authors can compose dynamic text like "Thanks, {{customer.name}} - your order {{order.id}} was placed on {{order.createdAt}}" directly in the Experience designer text block, with per-variable formatting and sensible fallbacks when a value is absent.

Schema

Document File previews

Built into the Schema and Record, when a "File" type field has the "Display media preview?" option turned on and the file is a PDF or Docx, it will show a preview of the document inline.

Content copy handler

Copying a table out of the rich content editor now produces a faithful, re-importable payload instead of a lossy HTML blob. Previously, copying a selected table used the browser's default copy path, which serialised the rendered DOM, losing structured content (and any nested variables/links) and only round-tripping as plain HTML on paste.

Why does it matter? Now you can copy a table in one Ligantic content field, paste it into another, and the full structured content (including variables) is preserved rather than flattened to HTML.

Fixes

  • List item div wrappers removed from the content rendering.
  • Duplicate label on scalar items removed.
Related Releases
Related Releases
1.57

Give your agents access to build on Ligantic with our new SDK & CLI! Experience dynamic text variables, instant file previews, and lightning-fast record search.

1.56

Now you've got Self-Service Billing for direct subscription management, an enhanced Dashboard Search, and vital Accessibility Improvements. Experience a more efficient and accessible platform today.

1.55

v1.55 makes experiences printable. A new responsive state system lets you style blocks per breakpoint and per print media, and a new experience:pdf:create flow node renders those experiences to a PDF and hands the file back to the user as a download.

Schemas gain a working duration field type across authoring, validation, entry, display, filtering, sorting, CSV and AI, and relationships gain custom target-side labels. The AI model catalogue was refreshed with GPT-5.6 tiers and the Claude 5 family, with automatic replacement for retired models.

1.54

v1.54 delivers safer data operations and stronger day-to-day flow tooling.

The headline feature is entity version restore from audit history. Space admins can now inspect prior versions of an entity and restore it - including its relationships - to a selected point in time.

Flows gain a new file:zip:create node for packaging files into a single archive with configurable naming and size controls. The Flow designer now has node search for faster authoring.

This release also tightens relationship integrity and query performance, adds strict-cardinality controls, and resolves schema-side issues with display mode persistence and relationship lifecycle handling.

1.53

Version 1.53 introduces a new Flow node to build experience URLs and refreshes the AI Image Generation Node. Navigate related entities directly with new field links.