{"id":20782419,"url":"https://github.com/discoverygarden/dgi_actions","last_synced_at":"2025-04-30T22:50:39.969Z","repository":{"id":39968563,"uuid":"279943141","full_name":"discoverygarden/dgi_actions","owner":"discoverygarden","description":"Provides a framework to support minting and deletion of identifiers either locally or with external services.","archived":false,"fork":false,"pushed_at":"2025-03-26T17:55:35.000Z","size":321,"stargazers_count":2,"open_issues_count":3,"forks_count":6,"subscribers_count":10,"default_branch":"main","last_synced_at":"2025-03-30T20:43:00.726Z","etag":null,"topics":["drupal","drupal-module","islandora","plugin","prototype"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/discoverygarden.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-07-15T18:12:21.000Z","updated_at":"2025-01-10T16:58:08.000Z","dependencies_parsed_at":"2023-02-17T21:30:27.227Z","dependency_job_id":"20611eb6-b093-4055-ab97-d2ab821389b3","html_url":"https://github.com/discoverygarden/dgi_actions","commit_stats":{"total_commits":141,"total_committers":6,"mean_commits":23.5,"dds":"0.26241134751773054","last_synced_commit":"0dc547baa77a9dfeedba78ae76bbfe954ffd321d"},"previous_names":[],"tags_count":14,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/discoverygarden%2Fdgi_actions","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/discoverygarden%2Fdgi_actions/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/discoverygarden%2Fdgi_actions/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/discoverygarden%2Fdgi_actions/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/discoverygarden","download_url":"https://codeload.github.com/discoverygarden/dgi_actions/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251795387,"owners_count":21645019,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["drupal","drupal-module","islandora","plugin","prototype"],"created_at":"2024-11-17T14:10:56.487Z","updated_at":"2025-04-30T22:50:39.946Z","avatar_url":"https://github.com/discoverygarden.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# DGI Actions\n\n## Introduction\n\nProvides a framework to support minting and deletion of identifiers either locally or with external services.\n\n## Requirements\n\nThis module requires the following modules/libraries:\n\n* [Islandora](https://github.com/Islandora/islandora)\n\n## Installation\n\nInstall as usual, see\n[this](https://www.drupal.org/docs/extending-drupal/installing-modules) for\nfurther information.\n\n## Configuration\n\nThis module and its submodules come with no configuration out of the box. Below\nis the steps for configuring the included `dgi_actions_ark_identifier`.\n\n### Entity configuration\nThe main configuration overview for all entities used within the module is\nlocated at `admin/config/dgi_actions`.\n\n#### Data profile configuration\nData profile entities contain data used when building up a request to a service. These values are retrieved from\nthe 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.\n\n1. Create a new data profile: `admin/config/dgi_actions/data_profile/add`.\n2. Give the data profile a name.\n3. Select the entity and bundle for which the data will be retrieved from. In this example choose `node` and `Repository Item`.\n4. Select the `DataProfile` plugin that's being used. In this example choose `ERC`.\n5. For the three `ERC` fields choose which fields to map from.\n6. Save the data profile.\n\n#### Service data configuration\nService data entities contain configuration used for interacting with external APIs.\n\n1. Create a new service data: `admin/config/dgi_actions/service_data/add`.\n2. Give the service data a name.\n3. Select the `ServiceData` plugin that's being used. In this example choose `EZID`.\n4. Fill in the required fields that is provided by the `EZID` plugin.\n5. Save the service data.\n\n#### Identifier configuration\nIdentifiers tie everything together. In the event `ServiceData` and `DataProfiles` are being used they\nstore references to the configured entities from above. Similarly, they store where the minted identifier is going to be placed.\n\n1. Create a new identifier: `admin/config/dgi_actions/identifier/add`.\n2. Give the identifier a name.\n3. Select the entity and bundle for which the data will be stored on. In this example choose `node` and `Repository Item`.\n4. Select the field in which the identifier will be stored in. For the example choose whichever field you want.\n5. Choose the `ServiceData` being used for the request from the dropdown if needed. For the example choose the one created above.\n6. Choose the `DataProfile` being used for the request from the dropdown if needed. For the example choose the one created above.\n7. Save the identifier.\n\n### Action configuration\nAn action is required for each identifier being minted and optionally deleted.\n\n1. Create a new action: `admin/config/system/actions`.\n2. Under `Create an advanced action` choose either the mint or delete action to be configured. For the example choose `Mint ARK EZID Identifier`.\n3. Choose the identifier entity that the action will trigger and save.\n4. Repeat the above and instead choose `Delete ARK EZID Identifier` and save.\n\n### Context configuration\nDrupal'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.\n\n1. Create a new context: `admin/structure/context/add`.\n2. Give it a name and optionally fill out the other fields and save.\n3. 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.\n4. Choose require all conditions.\n4. Add a reaction choose `Mints an identifier`.\n5. Under `entity` choose whatever the mint action created above was called.\n6. 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`.\n\n## New Integrations\n\nTo create a new identifier minting integration at least a `MintIdentifier` action is required.\n\nOptionally a `DataProfile` plugin, a `ServiceDataType` plugin and a `DeleteIdentifer` action can be created if required.\n\n## Troubleshooting/Issues\n\nHaving problems or solved a problem? Contact\n[discoverygarden](http://support.discoverygarden.ca).\n\n## Maintainers/Sponsors\n\nCurrent maintainers:\n\n* [discoverygarden](http://www.discoverygarden.ca)\n\n## Development\n\nIf you would like to contribute to this module, please check out the helpful\n[Documentation](https://github.com/Islandora/islandora/wiki#wiki-documentation-for-developers),\n[Developers](http://islandora.ca/developers) section on Islandora.ca and\ncontact [discoverygarden](http://support.discoverygarden.ca).\n\n## License\n\n[GPLv3](http://www.gnu.org/licenses/gpl-3.0.txt)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdiscoverygarden%2Fdgi_actions","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdiscoverygarden%2Fdgi_actions","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdiscoverygarden%2Fdgi_actions/lists"}