Release Notes

Sign In
Releases
1.59
1.58
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.59
Released:
2026-10-09

Ligantic 1.59

Ligantic 1.59 makes the ligantic CLI and the public API complete enough to build with: every API operation is a CLI command, Schemas, Flows, and Experiences can be changed one piece at a time, and output is designed for scripts and AI agents. The Experience designer now supports multi-select editing, and Display Templates now include a field picker.

Highlights

  • The whole API from the CLI - every public API operation is now a ligantic command: Experiences, Space secrets, roles, domains, invites, OAuth credentials, folders, organisations, billing, and more.
  • Built for agents and scripts - JSON output whenever the CLI is not writing to a terminal, structured JSON errors, meaningful exit codes, and ligantic cli search to find the command for a task.
  • Change one piece at a time - add, update, or delete a single Schema field, Flow node or edge, or Experience block, from the CLI or the API.
  • Experiences in the API - create, read, update, version, publish, and clone Experiences through the public API and SDK.
  • Multi-select in the Experience designer - select several blocks, edit their shared styles together, and wrap them in a Box.
  • Markdown for content fields - send a markdown string to any content field through the API or CLI and it is stored as formatted content.

CLI

  • Generated commands for every API operation. Commands that are not hand-written are generated from the API: the current Space is used automatically, ids in the route are positional arguments, and request fields are typed flags. --data <json|@file|-> supplies a whole request body, and --dry-run prints the request without sending it.
  • Output for programs. When stdout is a pipe, a file, an agent, or CI, every command prints one JSON document. On a terminal, tables remain the default. --json and --table force either format.
  • Structured errors. In JSON mode an error is a single line on stderr: {"error":{"message","code","status","requestId?","issues?"}}.
  • Exit codes.0 success, 1 failure, 2 usage error, 3 not authenticated or not permitted, 4 not found.
  • Command discovery.ligantic cli search "update a record" ranks commands for a task, ligantic cli commands --json lists every command with its arguments and options, and ligantic <command> --help --json describes one command.
  • Incremental editing.
    • schemas fields add|update|delete changes one field, addressed by id, name, or dot path.
    • flows nodes add|update|delete and flows edges add|delete change one node or edge. flows nodes list shows each node's handles, and an edge to a handle that does not exist is rejected with the node's real handles.
    • experiences blocks add|update|replace|move|delete changes one block; experiences blocks outline and experiences blocks show read the block tree compactly or one block in full.
    • flows node-types show <type> and experiences block-types show <type> describe the configuration a node or block accepts.
    • Node, edge, and block edits go to the draft version. Editing a published Flow or Experience first creates a draft from it, as Studio does.
  • Records.
    • records link and records unlink connect and disconnect Records through a relationship field by its name, in either direction. Single-value relationships reject a second target.
    • records list and records show accept --expand to include related Records, show field names instead of field ids by default (--id-based for ids), and render content fields as markdown. records list reports how many Records match and how to page through them. records show includes the Record's relationships.
    • records create and records patch accept markdown for content fields.
    • records create <schema> without --data shows a form on a terminal: text, number, date, and markdown fields are typed in, option and boolean fields are picked with the arrow keys, and required fields are asked again until answered.
    • records update is renamed records put, to make clear it replaces the whole Record; update and set still work.
  • Schemas and Spaces.schemas show lists each field's type, whether it is required, and its options. spaces overview lists a Space's Schemas with their Record counts. spaces secrets set reads the secret value from piped input or a hidden prompt, never from a flag.
  • Profiles.
    • auth login --profile <name> stores a key for a named profile; auth list, auth use, and auth select (an arrow-key picker) switch between them. Each profile can have its own API base URL.
    • --profile <name> or LIGANTIC_PROFILE uses a profile for one command without changing the current profile.
    • Each profile remembers its own current Space, so switching profile switches Space.
    • auth whoami shows the current Space.
  • Friendlier commands. Singular and plural names both work (record / records, space / spaces), and common verbs are accepted as aliases: get for show, ls for list, add for create, edit for patch, rm for delete, and others.
  • Confirmations.records delete, records unlink, and destructive generated commands such as spaces delete need --yes. On a terminal the CLI asks instead; in a script the command fails with exit code 2 and changes nothing.
  • Update notice. The CLI tells you on stderr when a newer version is published. Set LIGANTIC_NO_UPDATE_CHECK to turn this off. LIGANTIC_CONFIG_DIR moves the CLI configuration to another directory.

API

  • 169 operations, all with a summary. The public API reference now has a summary for every operation, and the same text appears in CLI help.
  • Experiences. New operations create, list, read, update, delete, clone, version, and publish Experiences, read and edit their version metadata, and add, update, move, and delete individual blocks. Block type definitions can be listed and read.
  • Incremental Schema and Flow editing. New operations add, update, and delete a single Schema field or Flow node or edge, and list and describe Flow node types.
  • Markdown for content fields. When you create, replace, patch, or JSON-patch a Record, a content field's value can be a markdown string instead of a block array, including inside object and array fields. It is stored as formatted content.
  • Rate limits. Public API requests are limited per API key and per account, according to your plan. A request over the limit returns 429 Too Many Requests; the Ligantic SDK retries safe requests automatically.

Experiences

  • Multi-select editing. Shift-, Cmd-, or Ctrl-click blocks on the canvas or in the layers panel to select several at once, edit their shared styles together, and wrap them in a new Box with ⌘ G / Ctrl G, Shift A, or Wrap in box in the context menu.
  • Settings stay open. Expanded sections in the block settings panel stay expanded when you select another block, and after a reload.
  • Selection stays in place. When the selected block is deleted, cut, undone, or replaced by an AI suggestion, the selection moves to the nearest remaining parent instead of clearing the settings panel.
  • Less clutter. "Not configured" badges appear only while a block is hovered or selected; the orange outline stays. Badges and labels that wrap onto several lines now grow away from the block instead of covering it.
  • Missing data sources. A block that refers to data from a block that has since been deleted shows a needs-setup outline instead of failing to render.
  • Faster editing. Typing in large Experiences is more responsive, auto-save does less work per save, and undo history is capped so long editing sessions no longer slow down.

Schemas and Records

  • Display Template editor. Display Templates are edited with a field picker when creating or editing a Schema. References use single braces, such as {First Name} {Last Name}; templates written with double braces are converted automatically.
  • Nested fields in Display Templates. Dotted references to fields inside object fields, such as {Address.City}, now render.
  • Upload progress. File uploads show their progress in the Record editor and in Experiences, including under a media preview.

Flows

  • New AI models. GPT-6 Astra, GPT-6 Sol, and GPT-6 Luna; Claude Fable 5.1 and Claude Opus 5.5; Gemini 3.8 Flash, 3.7 Flash, 3.6 Flash, and 3.5 Flash Lite. Claude Opus 4.1 is deprecated; Flows that use it run on the current default Opus model.
  • Connections are tidied on save. When a node setting change removes or renames a handle, the editor keeps the connection while you edit and removes connections to removed handles when you save. Save reports any other invalid connection instead of removing it.

Studio and Spaces

  • Share. A share button at the end of the Studio breadcrumbs shares the current page, or copies a link to it. On a Record table with a saved view, the link is titled with the Schema and view names.
  • Avatars. People are shown with an avatar that falls back to their initials, with a background colour derived from their name.
  • Space identities. The Space Identities table shows each identity's authentication strategy and claim value.

Preview

These features are turned on per Space. If you can't see them, contact your administrator.

  • Custom Endpoints. Expose a published Flow at an HTTP method and path you choose, such as POST tasks/{taskId}/update-status, with typed path, query, and body parameters mapped to the Flow's inputs. Endpoints are managed under Space Settings → Endpoints, tested on the Studio preview while in draft, and published to the App. Each Space publishes an OpenAPI description of its Endpoints. Callers need permission to run the Flow; anyone else gets 404.
  • Flow-controlled responses. An Endpoint can return the response chosen by its Flow: the new Endpoint - Respond node sets the status (including redirects and statuses without a body), response headers, cookies, and a typed body.
  • JWT authentication. A new Space authentication strategy accepts Authorization: Bearer <token> from an external identity provider on App requests. The token's signature, issuer, audience, and expiry are checked on every request, and a claim (by default sub) identifies the Space identity.
  • Relationship map. The map's sample size can be set to 500, 1,000, or 2,000 Records, cards stay beside their Records, and Records from older Schema versions are included.

Fixes

  • Sub-flow failures. A synchronous sub-flow whose node fails without a connected error output now fails, and the calling Flow - Execute node follows its error output. Previously the failure was logged but the node still followed success, and some runs never finished. See "Changes to Be Aware Of".
  • "Today" date defaults now use the viewer's timezone. Records created by Flows previously got the UTC date, and date fields that include a time could fail to save.
  • AI responses containing email addresses are no longer dropped from LLM Chat Message results.
  • Saving deeply nested content and Experience layouts no longer slows down, or fails, as nesting grows.
  • Default views. Updating a default view no longer removes its default status.
  • Audit history names the person for relationship changes made with an API key, instead of showing "Unknown".
  • Endpoints (Preview). The Studio preview accepts valid JSON request bodies, and an Endpoint's response timeout can be cleared while editing.
  • Record page titles no longer show quotes or an "Edit" prefix.
  • Error messages. Unexpected server errors return Internal Server Error without internal details. Messages written for users are kept, for example a taken Space name now returns 409 Space name already taken.

Security

  • Authorisation checks on Record links, Flows, Schemas, and other resources addressed by ID are now limited to the Space in the request, and relationship links can no longer be created across Spaces.
  • Outbound requests from Flows and integrations check the address they actually connect to, so a changed DNS answer can't reach a blocked address.
  • Resources you can't access return 404, so their existence is not revealed. Space members without the required role get 403 with a reason.

Changes to Be Aware Of

  • Sub-flow error handling. Flows that relied on a Flow - Execute node following success after a node in the sub-flow failed now follow error. When error is not connected, the calling Flow fails as well, up to the first caller that handles the error.
  • API status codes. Denied requests that returned 500 now return 403 or 404. Space members without the admin role get 403 instead of 404 (or 401 for API keys) from Space administration operations. A taken Space name returns 409 instead of 500.
  • API rate limits. Scripts that send bursts of requests may receive 429 and should retry with backoff.
  • CLI output in scripts. Scripts that parsed table output now receive JSON. Pass --table to keep tables.
  • CLI exit codes. Failures that exited 1 may now exit 2 (usage, including no Space selected), 3 (not authenticated or not permitted), or 4 (not found).
  • CLI errors in JSON mode are a JSON document on stderr instead of error: … text.
  • CLI current Space per profile. Profiles no longer share one current Space. Run ligantic spaces use <id> once for each profile that needs a Space.
  • CLI confirmations.records delete and records unlink need --yes when not run on a terminal.
  • CLI records create without --data fails with exit code 2 off a terminal when the Schema has required fields, instead of sending an empty Record.
  • ligantic with no command exits 2 instead of 1.
Related Releases
Related Releases
1.59

Ligantic 1.59 completes the CLI and API, enabling incremental editing of Schemas, Flows, and Experiences. Enjoy multi-select in the designer, agent-friendly output, and new AI models.

1.58

Version 1.58 introduces portable integrations for OAuth and SQL credentials, enhanced OAuth client credentials, and faster PPTX/PDF previews. Plus, enjoy secrets in HTTP headers and improved entity table selection.

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.