External Entities plugins

Last updated on
1 February 2025

You will find on this page a list of available External Entities plugins with their categories (Data aggregator plugins, Storage client plugins, Field mapper plugins, Property mapper plugins, Data processor plugins, Miscellaneous extensions), descriptions and reviews. If you know an external entities plugin that is not listed there, please amend the documentation or leave a comment with the module references. The "Data source" column correspond to the main type of source used to fetch external data. The "Reported version" column tells on which version of the plugin module the review has been on (some reviews might be obsolete) and the supported external entity module version (xntt2/xntt3). The "Status" column tells about the stability of the module, the support and its current development.

Data aggregator plugins

Data aggregator plugin table
Module Status
Single storage client built-in
Built-in data aggregator to work with a single storage client as data source
Group aggregator built-in
Enables to aggregate data from multiple storage clients both in "vertical"* (accumulate entity data from multiple sources) and "horizontal"* (get distinct entities from multiple source) ways. It supports storage source grouping using group prefixes. It also support virtual entity identifier prefix to avoid identifier conflicts between sources.
Vertical* data aggregator built-in
Enables to aggregate data from multiple storage clients in "vertical" way (accumulate entity data from multiple sources). It is a simplified version of the Group Aggregator.
Horizontal* data aggregator built-in
Enables to aggregate data from multiple storage clients in "horizontal" way (get distinct entities from multiple source). It is a simplified version of the Group Aggregator.

*: vertical and horizontal aggregation: think of a family tree: the lineage of an individual is usually displayed vertically. The individual inherits his or her properties vertically from ancestors, while siblings and cousins (from other parents) are displayed on the same horizontal line. 'Vertical' accumulates from multiple sources into one entity, while 'horizontal' gathers multiple distinct entities from multiple sources.

Storage client plugins

Storage client plugin table
Module Data source Status CRUD support Query support
REST REST built-in yes partial (no support for operators)
Provided by external entities. A standard REST plugin that supports JSON, YAML and serialized data. It also supports pagination, API key, extra query URL parameters and query limitations.
JsonAPI REST built-in yes partial (no support for operators)
Provided by external entities. Based on REST storage client. For JSON:API REST endpoints. Supports filtering.
MediaWiki REST built-in yes partial (no support for operators)
Originally provided by external entities but now as a stand-alone extension. Based on REST storage client. For Mediawiki/wikipedia sites.
ACSF External Entities ACSF service (HTTP) seems inactive
Add support for Acquia Cloud Site Factory API Client. Last commit: March 09, 2021.
External Entities CARTO CARTO API (HTTP) seeking new maintainer, seems inactive yes
Allows to connect to CARTO datasets and use any CARTO item as a Drupal entity. Last commit: June 02, 2017.
BrAPI REST under dev, not stable yes partial (no support for operators)
Provides access to Plant Breeding API objects. Supports authentication. REST UI has been adapted to BrAPI needs.
GBIF REST under dev no partial (no support for operators)
Provides access to GBIF (Global Biodiversity Information Facility) occurrences.
Wikibase external entities REST under dev no partial (no support for operators)
Provides access to Wikibase content.
Sanity Other under dev yes partial
Provides access to Sanity content. Might be useful for Sanity <=> Drupal migrations.
Database storage Database quite stable, no automated tests, replaced by xnttsql yes, depends on provided queries classical SQL comparison operators including "LIKE" and "IN".

Provides access to external databases through the

Database cross-schema query API. Supports MySQL and PostgreSQL database types with credentials defined in Drupal's settings.php (as other database keys). External entities are built on raw SQL queries (requires SQL syntax knowledge).

SQL Database storage Database built-in yes, depends on provided queries classical SQL comparison operators including "LIKE" and "IN".

Replaces external entities v2 plugin xnttdb and now part of External Entities module as a companion module with extra-requirements (dbxschema). Provides access to external databases through the

Database cross-schema query API. Supports MySQL and PostgreSQL database types with credentials defined in Drupal's settings.php (as other database keys). External entities are built on raw SQL queries (requires SQL syntax knowledge).

Chado Light Database under dev, not stable, no automated tests inherits SQL Database storage inherits Database storage
Provides access to CHADO PostgreSQL database schema used for biological data. Module based on Database storage plugin that hides the complexity of SQL queries behind a nice user interface.
Files storage Files built-in Can delete, rename/move or touche files classical operations
Used to be a separate module (xnttfiles) for xntt2. Treats files as entities (which fields are file names, size, path, and other stats). It also provides a base API for other file plugins, including support for files as containing entities rather than being entities.
Image Files (exif) Files under dev, quite stable, no automated tests Can delete, rename/move or touch files inherits Files storage
Turns image files with EXIF data into external entities. Provided fields are inherited from the files storage plugin with additional fields extracted from  the EXIF data.
Media Files (getID3) Files under dev, quite stable, no automated tests Can delete, rename/move or touch files inherits Files storage
Turns media files with meta data into external entities. Provided fields are inherited from the files storage plugin with additional fields extracted using getID3 library which supports a wide range of media file formats.
JSON Files Files under dev, quite stable, no automated tests yes inherits Files storage
Turns data stored into one or more JSON files into external entities.
TSV Files Files under dev, quite stable, no automated tests yes inherits Files storage
Turns data stored into one or more TSV (tab-delimited files) files into external entities. The client config support the use of other types of character-delimited columns such as CSV, quoted values (to include new lines), and comments (used in GFF/VCF files for instance).
XML Files Files under dev, quite stable, no automated tests yes inherits Files storage
Turns data stored into one or more XML files into external entities.
YAML Files Files under dev, quite stable, no automated tests yes inherits Files storage
Turns data stored into one or more YAML files into external entities.
Multiple Storages n/a stable, no automated tests, replaced by data aggregator plugins in v3 n/a (yes) n/a (depends on plugins)
Replaced by data aggregator plugins in External Entities v3. This storage client does not store or fetch data itself but delegates it to other clients. It can mix multiple storage client sources into one with a wide range of possibilities (using fields of on client as keys for another to join data, group objects, add virtual prefixes to identifiers, select which clients are read-only, if field values should be overridden between clients, etc.). It can be used to mix data but also to convert data from one source to another.

Field mapper plugins

Field mapper plugin table
Module Status Comments
Generic field mapper built-in Built-in field mapper that supports any Drupal field type
Text field mapper built-in Built-in field mapper that support text fields with multiple text formats
File field mapper built-in Built-in field mapper that support files and image fields. It is available as a companion module because it uses a custom stream wrapper for the "xntt://" stream. Provides support for Drupal "File" and "Image" field mapping. Those fields are linking entities to Drupal managed files through their identifiers (fid). Enables to directly map an external URL/URI to a "virtual Drupal managed file" that does not really exists but enables the use of other plugins such as image styles and such.
Field Processors active Allows generating different processors for field values which can be associated to the appropriate fields of the external entity.

Property mapper plugins

Property mapper plugin table
Module Status Comments
Constant property mapper built-in Built-in property mapper to map constant values
Field property mapper built-in Built-in property mapper to map external data source fields to Drupal field properties using field names
Simple property mapper built-in Built-in property mapper to map external data source fields to Drupal field properties using expressions that supports sub-fields (x.x) and jockers (x.*) syntax.
JSONPath field mapper built-in Built-in property mapper based on JSONPath expressions
String Functions and JSONPath Field Mapper under dev, quite stable Provides the use of both simple mapping, JSONPath mapping and the use of PHP text and array functions in simple expressions to alter field values. As it can handle many uses cases, it does not use data processor plugins.

Data processor plugins

Data processor plugin table
Module Status Comments
Boolean data processor built-in Built-in data processor that supports boolean values.
Date and time data processor built-in Built-in data processor that supports date and time formats.
Default data processor built-in Built-in data processor that automatically detects field property data type and tries to adapt field values as needed.
Hash data processor built-in Built-in data processor to generate hash values from source data.
Numeric data processor built-in Built-in data processor that handles numeric values in text.
Numeric unit data processor built-in Built-in data processor that support numeric unit conversion.
String case data processor built-in Built-in data processor that support word case alterations.
Value mapping data processor built-in Built-in data processor that enables mapping between source values and values provided to Drupal field properties.
Version data processor built-in Built-in data processor that support version string parsing.

Miscellaneous extensions

Miscellaneous plugin table
Module Status Comments
External Entities Manager dev, partially stable, no automated tests

Enables the inspection of raw external entity fields and their mapping to Drupal fields (helps to map fields). Enables the automatic generation of annotation entities and/or the creation of local Drupal content synchronized to external entity content using batch processing (can also be used with xnttmulti to convert one source to another through batch saving). Manages synchronization crons. External entities complete config import/export (including field definitions and display).

Planned features: auto-generate Drupal fields with mapping for a given external entity type according to its external data.

External Entities Views built-in Used to be in a separate module (xnttviews) but now part of external entities v3 as a companion module. Enables the use of any external entity in Views. Supports all fields, filtering, sorting and contextual filters.
Image Cache External stable, active This is not a plugin for external entities but rather a helper module that can be used to manage external image URI and display them as images since external entities can not map "Image" field out of the box (see Files storage comment below).
Files storage file field mapper replaced by built-in file field mapper plugin, quite stable, no automated tests Provides support for Drupal "File" and "Image" field mapping. Those fields are linking entities to Drupal managed files through their identifiers (fid). External entities does not provide a native way to map an external file URI to such fields. Therefore, the usual trick is to use the "Link" field instead in combination with Image Cache External module. With the File Storage module, it is now possible to directly map n external URI to a "virtual Drupal managed file" that does not really exists but enables the use of other plugins such as image styles and so. It provides a stream wrapper for the "xntt://" stream.

Modules using External Entities

BrAPI is a module that implement the Plant Breeding API. It works with any type of content entity but reveals its full power with external entities since BrAPI data often comes from multiple kind of sources.

Help improve this page

Page status: No known problems

You can: