External Entities plugins
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
| 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
| 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
| 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
| 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
| 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
| 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
You can:
- Log in, click Edit, and edit this page
- Log in, click Discuss, update the Page status value, and suggest an improvement
- Log in and create a Documentation issue with your suggestion