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 saved or created, 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.
new_windowBoolean. If true, opens the plugin URL in a new browser window instead of an iframe tab.

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 savedServer 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 createdSame 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
tokenShort-lived JWT token for making API calls on behalf of the current user

Webhook Payload

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

json
{
  "db": "mydatabase",
  "plugin": "PLUGIN_ENTITY_ID",
  "entity": {
    "_id": "ENTITY_ID"
  },
  "token": "SHORT_LIVED_JWT"
}

The token is valid for 1 minute 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.

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.

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, ordinal, etc.) into your database. You can review the property list before importing and deselect any you don't need.

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, author, publisher, publishing place and year, page count, dimensions, language, subject tags, and ISBN 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 — Entu creates the entity with title, artist, label, year, format, genre, 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 — and the plugin finds the matching albums automatically.

TMDB Import

Search The Movie Database and import films into your collection. Search results and metadata follow your interface language where translations exist. The imported entity gets title, original title, director, year, genres, runtime, countries, and description filled in automatically, along with the movie poster.

Games

BoardGameGeek Import

Search BoardGameGeek and import board games with designer, publisher, categories, player count, playing time, and year 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, 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 — and the plugin finds the set automatically.

Numista Import

Search the Numista coin and banknote catalogue and import types with issuer, face value, years of issue, composition, weight, diameter, shape, and catalogue references filled in automatically, along with obverse and reverse images.

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, description, and coordinate properties.

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 authenticated user, or _sharing: public to expose it even to unauthenticated visitors. Leave it private and assign explicit _viewer (or higher) rights to restrict it to specific people or groups.

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.