Skip to content
Configuration

Plugins ​

Plugins extend what Entu can do at the entity type level. A plugin is an entity of type plugin, attached to an entity type via the entity type's plugin property.

Create plugin entities in the Configuration area, then reference them from the entity type's plugin property.

Plugin Categories ​

UI plugins open inside the edit drawer as an iframe tab alongside the standard edit form. Use them for custom create or edit experiences — a CSV importer, a form wizard, or an integration that pulls data from an external service. The plugin receives context as URL query parameters and renders inside Entu's own UI.

Webhook plugins are server-side triggers. When an entity is created or changed, Entu sends a POST request to the plugin's URL in the background without blocking the user. Use them to push data to external systems, trigger automations, sync with third-party services, or run any backend logic that should react to data changes.

Plugin Parameters ​

ParamDescription
nameDisplay name shown as the tab label in the edit drawer (for UI plugins).
typeWhat kind of plugin this is — see plugin types below.
urlFor UI plugins — the URL loaded in the iframe tab. For webhook plugins — the URL that receives the POST request; it must be https and must not point to localhost or a private network address, or the webhook is skipped.

Plugin Types ​

TypeWhen triggeredWhat happens
entity-editEdit drawer opened for an existing entityPlugin URL loaded as an iframe tab. URL receives account, entity, locale, token.
entity-addEdit drawer opened to create a new entityPlugin URL loaded as an iframe tab. URL receives account, type, parent (if adding as child), locale, token.
entity-edit-webhookAn existing entity of this type is saved, or one of its property values is deletedServer POSTs { db, plugin, entity: { _id }, token } to the plugin URL. Token is a short-lived JWT (1 min). Fire-and-forget.
entity-add-webhookA new entity of this type is created (not by duplicating)Same server-side POST as above, triggered on creation.

UI Plugin URL Parameters ​

When Entu loads a UI plugin in the iframe, it appends these query parameters to the plugin URL:

ParameterDescription
accountDatabase identifier
entityEntity ID (for entity-edit)
typeEntity type ID (for entity-add)
parentParent entity ID (for entity-add when creating a child)
localeCurrent UI language code
tokenThe current user's access token (JWT) for making API calls on their behalf

Webhook Payload ​

For webhook plugins (entity-edit-webhook, entity-add-webhook), Entu sends a POST request with this JSON body:

json
{
  "db": "mydatabase",
  "plugin": "entity-edit-webhook",
  "entity": {
    "_id": "ENTITY_ID"
  },
  "token": "SHORT_LIVED_JWT"
}

plugin is the plugin type that fired — entity-edit-webhook or entity-add-webhook. The token is valid for 1 minute, carries the rights of the user who made the change, and can be used to read or modify the entity via the API. The webhook is fire-and-forget — Entu does not wait for a response or retry on failure.

WARNING

Webhook delivery is not guaranteed. If your endpoint is down or returns an error, the request is lost. Implement your own retry or queue logic if reliability matters.

Built-in Plugins ​

Entu provides a set of ready-made plugins hosted at github.com/entu/plugins. Configure them by creating a plugin entity and setting its url to the corresponding plugin URL.

Updating Existing Entities ​

The source import plugins (Ester, Open Library, Discogs, MusicBrainz, TMDB, BoardGameGeek, IGDB, Brickset, Numista) also work as entity-edit plugins: create a second plugin entity with the same url and type entity-edit, and attach it to the entity type. Opened from an existing entity, the plugin searches for the entity's ISBN or barcode, if it has one. After you pick a result, it shows every property side by side — the current values and the values from the source — and you choose for each one:

  • Single-value property — Keep or Overwrite when both sides have a value; equal values are greyed out.
  • List property — every current value can be kept or deleted, and every source value added or skipped; a source value the entity already has is greyed out.
  • Property the source doesn't return — its values are shown too, so you can keep or delete them.

Values the source returns for properties the entity type doesn't define are listed separately; there, current values can only be kept. Formula, readonly and system properties are never shown or changed. Saving writes only the chosen changes and reloads the entity.

System ​

CSV Import ​

Bulk-import entities from a spreadsheet. Upload a CSV file, preview the rows, choose which ones to import, and map each CSV column to an entity property. Supports a wide range of text encodings, so legacy exports from older systems work without manual conversion — the encoding is detected automatically and can be changed. The header row is not skipped; leave it unselected. Only properties without a formula that are not readonly can be mapped.

To update existing entities, map a column holding entity IDs to _id. A row with an _id updates that entity — mapped columns replace the property's current values, empty cells keep them — and a row without one creates a new entity. With _id mapped, choose whether properties not mapped to any column are kept or deleted; deleting asks for confirmation first. Rows are colored by result: green for created or updated, red when the row failed (the _id doesn't exist, is of another entity type, or you can't edit it).

Schema Templates ​

A quick way to set up your database schema without starting from scratch. Instead of defining entity types and their properties by hand, you pick a ready-made type from the shared template library — for example Book, Document, Folder, or Audio-Visual Recording — and Entu copies the entity type and its property definitions (name, type, label, ordinal, formula, sharing, etc.) into your database. You can review the property list before importing and deselect any you don't need; types and properties you already have are marked as already imported.

Books ​

Ester Import ​

Search the ESTER union library catalog used by Estonian academic and public libraries. Find books and publications by title, author, ISBN, or ISSN and import them as entities with full bibliographic metadata. On phones you can also scan a book's ISBN barcode with the camera — tap the camera button next to the search field, or take a photo of the barcode — and the plugin searches for it automatically.

Open Library Import ​

Search the Open Library catalog — a free, worldwide book database. Find a book by title, author, or ISBN, then pick the exact edition — the edition list can be filtered by language. The chosen edition is imported as an entity with title, subtitle, author, publisher, publishing place and year, series, page count, dimensions, weight, language, subject tags, ISBN, and notes filled in automatically, along with the cover image. On phones you can also scan a book's ISBN barcode with the camera — tap the camera button next to the search field, or take a photo of the barcode — and the plugin searches for it automatically.

Audio-video ​

Discogs Import ​

Search the Discogs music database and add releases directly to your collection. Enter an artist or album title, then pick the exact release of the album (only albums with a Discogs master record are found) — Entu creates the entity with title, artist, label, catalog number, year, format, country, genre, style, barcode, and other metadata filled in automatically, along with the cover image. On phones you can also scan a release's barcode with the camera — tap the camera button next to the search field, or take a photo of the barcode — and the plugin searches for it automatically.

MusicBrainz Import ​

Search the open MusicBrainz music encyclopedia. Find an album, then pick the exact release (pressing, country, format) — the entity is created with title, artist, label, year, format, barcode, and genres, along with cover art from the Cover Art Archive. On phones you can also scan a release's barcode with the camera — tap the camera button next to the search field, or take a photo of the barcode — and the plugin finds the matching albums automatically.

TMDB Import ​

Search The Movie Database and import films into your collection. Search results and metadata are in Estonian when your interface language is Estonian, otherwise in English. The imported entity gets title, original title, director, top actors, year, genres, runtime, languages, countries, production companies, IMDb ID, and description filled in automatically, along with the movie poster.

Games ​

BoardGameGeek Import ​

Search BoardGameGeek and import board games with designer, artist, publisher, categories, mechanics, minimum and maximum player count, playing time, minimum age, year, and description filled in automatically, along with the box art.

IGDB Import ​

Search the IGDB video game database and import games with developer, publisher, platforms, genres, year, and description filled in automatically, along with the cover image.

Collectibles ​

Brickset Import ​

Search Brickset and import LEGO sets by name or set number. The entity gets set number, name, theme, subtheme, year, piece and minifig counts, age range, box dimensions, weight, description, tags, and barcodes filled in automatically, along with the set image. On phones you can also scan the barcode on a set's box with the camera — tap the camera button next to the search field, or take a photo of the barcode — and the plugin finds the set automatically.

Numista Import ​

Search the Numista coin and banknote catalogue and import types with issuer (as country), face value, first and last year of issue, composition, weight, diameter (as dimensions), shape, series, catalogue references, and notes filled in automatically, along with obverse and reverse images. Results are in English.

Locations ​

KML Import ​

Import geographic locations from KML files (the format used by Google Earth and most GIS tools). After uploading, you see a list of all placemarks in the file, pick which ones to include, and they are created as entities with name, lat and long properties. The description goes into a property named kirjeldus and image links found in it into pildilingid — the entity type needs properties with these names to keep them. Only point placemarks are imported; lines and shapes are skipped.

Access Control ​

Plugin entities use the same rights and sharing model as all other entities. The edit drawer only shows plugin tabs for plugins the current user can access.

Set _sharing: domain on a plugin entity to make it available to every user of the database — the plugin entity type and its property definitions must then share name, type and url too, see Entity Types → Visibility. Leave it private and assign explicit _viewer (or higher) rights to restrict it to specific people.

This lets you expose certain plugins to everyone (e.g. a CSV importer for all editors) while keeping others limited to administrators or specific teams.

TIP

A user needs at minimum _viewer rights on the plugin entity for the tab to appear. Webhook plugins are server-side and not shown in the UI, but their entity still respects the same rights model for management purposes.