FlowRunner
PricingContact
Theme
Start Free

LEAV Engine

Database

LEAV Engine is an open-source, self-hosted no-code data platform with a GraphQL API. Agents manage libraries, attributes, trees and views, create and deactivate records, save values in bulk and run GraphQL queries against your own deployment.

46 actions API key available
Platform Documentation Capability data verified 2026-08-27
A quarterly data model review flags attributes that nothing appears to be using
List Attributes and List Libraries map each candidate attribute to every library that references it
Check Permission confirms the API key's own user is allowed to change the schema at all before the review goes any further
List Records counts how many records in each of those libraries still hold a value for the candidate
The agent posts the per library record counts next to the retirement proposal
A data steward approves each removal, because Delete Attribute takes the stored values with it across every library that used the attribute, not only the one under review

What This Integration Enables

LEAV Engine is open source and self-hosted, which means there is no vendor tenant to point at: the connection reaches your own deployment, on your own infrastructure. FlowRunner offers a self-hosted deployment option of its own, so the pairing keeps both the data platform and the orchestration layer inside your perimeter. That is a real buying reason and it is worth naming before the capability list.

The data model is the second reason to read this page rather than skim it. LEAV Engine does not store rows. It stores values per attribute, and attributes are defined once and shared across libraries rather than belonging to any one of them. Hierarchy is a first-class tree that points at records rather than containing them. Deactivation is a genuine soft delete with its own reversal, and purging is separate and final. FlowRunner agents work all of that: they create records in a draft state and activate them, save values individually, in batches on one record, or across every record a filter matches, walk and reshape trees, manage libraries, attributes and views, inspect configured and inherited permissions, and run a raw GraphQL query when a deployment exposes something no fixed operation list could have anticipated.

That last capability is exactly why human-in-the-loop matters here rather than being a nice sentence. A shared attribute model and an open query surface both mean the reach of a write is wider than the screen the operator was looking at.

Without FlowRunner

Schema cleanup nobody dares start An attribute looks unused in the library in front of you, and no one can cheaply prove it is unused everywhere else
Soft delete that is really a delete Records are removed to tidy a list and there is no state between visible and gone
A fixed integration against a customized instance Plugins and local modules extend the deployment, and the connector reaches only what someone enumerated in advance

With FlowRunner

Blast radius measured before the write Agents count the affected records per library and hand a steward a number rather than an assumption
A real draft state Records are created inactive, activated when they are ready, and deactivated when they should stop appearing without being destroyed
An escape hatch that follows the deployment A raw query reaches whatever this instance actually exposes, including the modules added locally

Use Case Scenarios

  • Product data that is not visible until it is finished

    An import brings in product records from a supplier feed. The agent calls Create Record with activation skipped, so each record exists in a draft state that ordinary reads do not return. It then fills the record with Save Values Batch, resolving references through the category tree with Get Tree Content and Add Tree Element. Only when the record passes its completeness checks does Activate New Record make it visible. Records that fail are left inactive with the failures recorded, and Index Records runs at the end so search can actually find what was loaded.

  • A bulk value write that is sized before it runs

    A supplier changes its brand name and every record carrying the old value needs updating. Save Values Bulk writes one attribute across every record a filter matches, and it has no dry run, so the agent runs the same filter through List Records first and reports the match count. If the number is what the operator expected, the bulk write goes ahead. If it is an order of magnitude larger, the filter was wrong and the agent says so instead of finding out afterward. The result posts to Slack with the before and after counts.

  • Reaching what this instance actually exposes

    LEAV Engine assembles its schema from many modules and a self-hosted deployment can add plugins with fields of their own, so no fixed operation list covers every installation. When a workflow needs an automation rule, an export definition or a notification that the named operations do not reach, the agent uses Run GraphQL Query against the instance's real schema. Reads it runs on its own. A mutation reached this way is shown to the operator with the document it intends to send, because a raw query surface is exactly where an integration can do something nobody scoped.

Human-in-Loop Highlight

In most databases, deleting a field affects the table you are looking at. In LEAV Engine an attribute is defined once and shared, so Delete Attribute removes the attribute and the values held under it across every library that used it. The library on the reviewer's screen may be the least important of them. That asymmetry between what a person can see and what the operation reaches is the reason the schema agent stops. It posts: "Attribute reference_fournisseur is proposed for removal. It is referenced by 4 libraries. Records currently holding a value: Products 0, Suppliers 2,118, ProductVariants 340, ArchivedProducts 61. The review covered Products only. Remove the attribute, deactivate the records that use it, or cancel?" The steward decides. The same gate covers Purge Inactive Records, which takes no filter and empties the entire soft-delete safety net in one call, because a safety net you can clear without naming what is in it is not one an agent should clear alone. The agent measured the blast radius. A person judged whether it was acceptable.

Agent processes routinely
Detects exception requiring judgment
Clear match Continues automatically
Ambiguous Routes to human via preferred channel
Human decides
Agent resumes with decision

Agent Capabilities

46 actions

Records

9
  • List Records Reads records from a library, with filtering, sorting, full text search and pagination. A library is LEAV Engine's table and every record operation is scoped to one.
  • Create Record Creates a record in a library, optionally with its initial values. A new record is activated by default, and can instead be created in a draft state that ordinary reads do not return.
  • Activate New Record Activates a record that was created in the draft state, making it visible to ordinary reads.
  • Delete Record Removes one record.
  • Activate Records Activates several records at once, named individually or selected by a filter.
  • Deactivate Records Deactivates several records. This is LEAV Engine's soft delete: they stop appearing in ordinary reads but are still there and can be brought back.
  • Purge Record Permanently removes one record and its history. This is the real delete, and there is no undo.
  • Purge Inactive Records Permanently removes every deactivated record in a library. There is no filter and no undo, so everything soft deleted is gone after it runs.
  • Index Records Rebuilds the full text index for a library or for named records in it. Run it after a bulk import, because search will not find records whose index is stale.

Values

5
  • Save Value Writes one attribute's value on one record. Values are stored per attribute, which is why a write names the library, the record and the attribute separately.
  • Save Values Batch Writes several attributes on one record in a single call. It reports per value success and failure, so a partial write returns successfully and both results have to be read.
  • Save Values Bulk Writes one attribute across every record matching a filter or a search. There is no dry run, so size the match with a read first.
  • Delete Value Removes a value from a record's attribute. The result is the value that was deleted rather than the record.
  • List Distinct Values Lists the distinct values a link or tree attribute takes across a library, which is how a facet or a picker is built without reading every record.

Schema

6
  • List Libraries Lists the libraries in the instance with their attributes. The source of the identifiers every other operation needs.
  • Save Library Creates or replaces a library. One write covers both: an identifier that already exists is updated, one that does not is created.
  • Delete Library Removes a library and the records in it.
  • List Attributes Lists the attributes defined in the instance. Attributes are defined once and shared across libraries rather than belonging to one.
  • Save Attribute Creates or replaces an attribute.
  • Delete Attribute Removes an attribute and the values held under it across every library that used it.

Trees

9
  • List Trees Lists the trees defined in the instance. A tree is LEAV Engine's hierarchy, used for categories, folders and permission targets.
  • Get Tree Content Reads a tree's nodes, optionally starting from one node rather than the root. It walks the whole subtree in one response.
  • Get Tree Node Children Reads one level of a tree with paging. The operation to walk a large tree with.
  • Get Record By Node Reads the record a tree node points at. A node and the record it carries are separate things, and most operations need the record.
  • Save Tree Creates or replaces a tree definition.
  • Delete Tree Removes a tree. The records that were in it are not deleted, because a node only points at a record.
  • Add Tree Element Places a record into a tree, under a parent node or at the top level.
  • Move Tree Element Moves a node to a different parent or position among its siblings. Its children move with it.
  • Delete Tree Element Removes a node from a tree, leaving the record untouched. Whether its children are deleted or moved up to the removed node's parent is a choice on the call.

Views

5
  • List Views Lists the saved views on a library, both the caller's own and the ones shared with them.
  • Get View Reads one saved view, including its filters, sorting and display settings.
  • Save View Creates or replaces a saved view. This replaces the whole view.
  • Update View Changes part of a saved view, leaving everything not named untouched.
  • Delete View Removes a saved view. The records it showed are unaffected.

Forms

2
  • List Forms Lists the forms defined on a library.
  • Get Record Form Reads a form as it applies to one record, with its element tree and the record's current values already resolved into it. This is what an editor renders rather than the bare definition.

Permissions

5
  • Check Permission Reports whether the caller is allowed to perform particular actions. It answers for the API key's own user, which makes it the check to run before an operation.
  • Get Permissions Reads the permissions set for a user group as configured, rather than as inherited.
  • Get Inherited Permissions Reads what a user group effectively has once inheritance is applied, and says where each answer came from. The read that makes a misbehaving permission debuggable.
  • List Permission Actions Lists the action names valid for a permission type. Call it before the other permission operations, because the vocabulary differs per type.
  • Save Permission Sets a permission.

Administration

4
  • List API Keys Lists the instance's API keys. A key acts as a particular user, so what it can do is decided by that user's groups rather than by anything on the key.
  • Save API Key Creates or updates an API key. The key itself is returned only when it is first created and cannot be read back afterward.
  • Delete API Key Revokes an API key.
  • Get Instance Info Reads the instance's version and configured languages. The cheapest call in the API and the connection test.

Advanced

1
  • Run GraphQL Query Sends any GraphQL document to the instance. Because a self-hosted deployment assembles its schema from many modules and can add plugins of its own, this reaches whatever the instance actually exposes, including automation rules, imports, exports, tasks, notifications and discussions.

Frequently Asked Questions

What can FlowRunner do with LEAV Engine?

FlowRunner agents can run List Records, Create Record, and Activate New Record in LEAV Engine, plus 43 more actions.

Does connecting LEAV Engine to FlowRunner require OAuth?

No. LEAV Engine connects to FlowRunner with an API key, no OAuth flow required.

Can LEAV Engine trigger a FlowRunner workflow automatically?

LEAV Engine doesn't currently expose triggers in FlowRunner. It connects as an action step inside workflows started by another trigger.

Start building with LEAV Engine

Free plan, no card required. Connect in minutes.