PHPackages                             discoverygarden/dgi\_actions - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [API Development](/categories/api)
4. /
5. discoverygarden/dgi\_actions

ActiveDrupal-module[API Development](/categories/api)

discoverygarden/dgi\_actions
============================

Integration with external identifier service providers.

v1.8.2(8mo ago)21.8k↑38.5%7[1 issues](https://github.com/discoverygarden/dgi_actions/issues)1GPL-3.0-onlyPHP

Since Sep 18Pushed 2mo ago9 watchersCompare

[ Source](https://github.com/discoverygarden/dgi_actions)[ Packagist](https://packagist.org/packages/discoverygarden/dgi_actions)[ RSS](/packages/discoverygarden-dgi-actions/feed)WikiDiscussions main Synced 3d ago

READMEChangelog (4)Dependencies (1)Versions (22)Used By (1)

DGI Actions
===========

[](#dgi-actions)

Introduction
------------

[](#introduction)

Provides a framework to support minting and deletion of identifiers either locally or with external services.

Requirements
------------

[](#requirements)

This module requires the following modules/libraries:

- [Islandora](https://github.com/Islandora/islandora)

Installation
------------

[](#installation)

Install as usual, see [this](https://www.drupal.org/docs/extending-drupal/installing-modules) for further information.

Configuration
-------------

[](#configuration)

This module and its submodules come with no configuration out of the box. Below is the steps for configuring the included `dgi_actions_ark_identifier`.

### Entity configuration

[](#entity-configuration)

The main configuration overview for all entities used within the module is located at `admin/config/dgi_actions`.

#### Data profile configuration

[](#data-profile-configuration)

Data profile entities contain data used when building up a request to a service. These values are retrieved from the entity and are passed along with an HTTP request. [EZID](https://ezid.cdlib.org/doc/apidoc.html#metadata-profiles) provides a good example of how this is used.

1. Create a new data profile: `admin/config/dgi_actions/data_profile/add`.
2. Give the data profile a name.
3. Select the entity and bundle for which the data will be retrieved from. In this example choose `node` and `Repository Item`.
4. Select the `DataProfile` plugin that's being used. In this example choose `ERC`.
5. For the three `ERC` fields choose which fields to map from.
6. Save the data profile.

#### Service data configuration

[](#service-data-configuration)

Service data entities contain configuration used for interacting with external APIs.

1. Create a new service data: `admin/config/dgi_actions/service_data/add`.
2. Give the service data a name.
3. Select the `ServiceData` plugin that's being used. In this example choose `EZID`.
4. Fill in the required fields that is provided by the `EZID` plugin.
5. Save the service data.

#### Identifier configuration

[](#identifier-configuration)

Identifiers tie everything together. In the event `ServiceData` and `DataProfiles` are being used they store references to the configured entities from above. Similarly, they store where the minted identifier is going to be placed.

1. Create a new identifier: `admin/config/dgi_actions/identifier/add`.
2. Give the identifier a name.
3. Select the entity and bundle for which the data will be stored on. In this example choose `node` and `Repository Item`.
4. Select the field in which the identifier will be stored in. For the example choose whichever field you want.
5. Choose the `ServiceData` being used for the request from the dropdown if needed. For the example choose the one created above.
6. Choose the `DataProfile` being used for the request from the dropdown if needed. For the example choose the one created above.
7. Save the identifier.

### Action configuration

[](#action-configuration)

An action is required for each identifier being minted and optionally deleted.

1. Create a new action: `admin/config/system/actions`.
2. Under `Create an advanced action` choose either the mint or delete action to be configured. For the example choose `Mint ARK EZID Identifier`.
3. Choose the identifier entity that the action will trigger and save.
4. Repeat the above and instead choose `Delete ARK EZID Identifier` and save.

### Context configuration

[](#context-configuration)

Drupal's Context module is used in conjunction with conditions and entity hooks to handle minting and deleting with a custom condition to check if a entity already has a persistent identifier.

1. Create a new context: `admin/structure/context/add`.
2. Give it a name and optionally fill out the other fields and save.
3. Configure the conditions required for an identifier to be minted. For the example create two conditions: `Node Bundle` and `Entity Has Persistent Identifier`. Configure the `Node Bundle` condition to look for the `Repository Item` bundle and `Content from hook`. Configure the `Entity Has Persistent Identifier` condition to use the `Identifier` created above and `Content from hook`. Negate this condition such that it will only mint if it does not already exist.
4. Choose require all conditions.
5. Add a reaction choose `Mints an identifier`.
6. Under `entity` choose whatever the mint action created above was called.
7. Repeat the above and instead choose the `Deletes an identifier` reaction and conditions that satsify deletion. Normally this would be just removing the negation on `Entity Has Persistent Identifier`.

New Integrations
----------------

[](#new-integrations)

To create a new identifier minting integration at least a `MintIdentifier` action is required.

Optionally a `DataProfile` plugin, a `ServiceDataType` plugin and a `DeleteIdentifer` action can be created if required.

Troubleshooting/Issues
----------------------

[](#troubleshootingissues)

Having problems or solved a problem? Contact [discoverygarden](http://support.discoverygarden.ca).

Maintainers/Sponsors
--------------------

[](#maintainerssponsors)

Current maintainers:

- [discoverygarden](http://www.discoverygarden.ca)

Development
-----------

[](#development)

If you would like to contribute to this module, please check out the helpful [Documentation](https://github.com/Islandora/islandora/wiki#wiki-documentation-for-developers), [Developers](http://islandora.ca/developers) section on Islandora.ca and contact [discoverygarden](http://support.discoverygarden.ca).

License
-------

[](#license)

[GPLv3](http://www.gnu.org/licenses/gpl-3.0.txt)

###  Health Score

46

—

FairBetter than 92% of packages

Maintenance65

Regular maintenance activity

Popularity25

Limited adoption so far

Community27

Small or concentrated contributor base

Maturity60

Established project with proven stability

 Bus Factor1

Top contributor holds 62% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~94 days

Recently: every ~120 days

Total

17

Last Release

243d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/ed79bbc35ed0aaee2f603c6f16885fb01e203941eea0cd63013f9f6185df6c30?d=identicon)[adam-vessey](/maintainers/adam-vessey)

![](https://www.gravatar.com/avatar/49d799e416ff30e90b07d1b7b6a487dfe945ae884c53747de4724439965d7904?d=identicon)[lutaylor](/maintainers/lutaylor)

![](https://www.gravatar.com/avatar/454136e389341c2a9c22dfba3107e09e2f8653807185bb213c5272efa9b93864?d=identicon)[willtp87](/maintainers/willtp87)

---

Top Contributors

[![nchiasson-dgi](https://avatars.githubusercontent.com/u/53783039?v=4)](https://github.com/nchiasson-dgi "nchiasson-dgi (137 commits)")[![jordandukart](https://avatars.githubusercontent.com/u/1337738?v=4)](https://github.com/jordandukart "jordandukart (31 commits)")[![adam-vessey](https://avatars.githubusercontent.com/u/607975?v=4)](https://github.com/adam-vessey "adam-vessey (16 commits)")[![bibliophileaxe](https://avatars.githubusercontent.com/u/18718388?v=4)](https://github.com/bibliophileaxe "bibliophileaxe (14 commits)")[![JojoVes](https://avatars.githubusercontent.com/u/19390668?v=4)](https://github.com/JojoVes "JojoVes (9 commits)")[![seth-shaw-unlv](https://avatars.githubusercontent.com/u/29869988?v=4)](https://github.com/seth-shaw-unlv "seth-shaw-unlv (8 commits)")[![chrismacdonaldw](https://avatars.githubusercontent.com/u/31731869?v=4)](https://github.com/chrismacdonaldw "chrismacdonaldw (2 commits)")[![GervaisdeM](https://avatars.githubusercontent.com/u/963514?v=4)](https://github.com/GervaisdeM "GervaisdeM (1 commits)")[![axelerant-hardik](https://avatars.githubusercontent.com/u/142213759?v=4)](https://github.com/axelerant-hardik "axelerant-hardik (1 commits)")[![nigelgbanks](https://avatars.githubusercontent.com/u/487373?v=4)](https://github.com/nigelgbanks "nigelgbanks (1 commits)")[![willtp87](https://avatars.githubusercontent.com/u/688918?v=4)](https://github.com/willtp87 "willtp87 (1 commits)")

---

Tags

drupaldrupal-moduleislandorapluginprototype

### Embed Badge

![Health badge](/badges/discoverygarden-dgi-actions/health.svg)

```
[![Health](https://phpackages.com/badges/discoverygarden-dgi-actions/health.svg)](https://phpackages.com/packages/discoverygarden-dgi-actions)
```

###  Alternatives

[exsyst/swagger

A php library to manipulate Swagger specifications

35916.4M7](/packages/exsyst-swagger)[hubspot/api-client

Hubspot API client

24016.2M20](/packages/hubspot-api-client)[pocketmine/bedrock-protocol

An implementation of the Minecraft: Bedrock Edition protocol in PHP

172445.0k15](/packages/pocketmine-bedrock-protocol)[botman/driver-telegram

Telegram driver for BotMan

93459.5k6](/packages/botman-driver-telegram)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
