{"id":31202146,"url":"https://github.com/programmfabrik/easydb-publish-datacite","last_synced_at":"2025-09-20T13:09:45.252Z","repository":{"id":44841324,"uuid":"183624347","full_name":"programmfabrik/easydb-publish-datacite","owner":"programmfabrik","description":"Webhook Plugin for easydb to publish to datacite.org.","archived":false,"fork":false,"pushed_at":"2022-01-22T08:06:58.000Z","size":19,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":4,"default_branch":"master","last_synced_at":"2023-03-02T16:55:44.958Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/programmfabrik.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-04-26T12:25:52.000Z","updated_at":"2023-02-09T09:05:14.000Z","dependencies_parsed_at":"2022-08-28T03:01:51.574Z","dependency_job_id":null,"html_url":"https://github.com/programmfabrik/easydb-publish-datacite","commit_stats":null,"previous_names":[],"tags_count":null,"template":null,"template_full_name":null,"purl":"pkg:github/programmfabrik/easydb-publish-datacite","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/programmfabrik%2Feasydb-publish-datacite","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/programmfabrik%2Feasydb-publish-datacite/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/programmfabrik%2Feasydb-publish-datacite/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/programmfabrik%2Feasydb-publish-datacite/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/programmfabrik","download_url":"https://codeload.github.com/programmfabrik/easydb-publish-datacite/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/programmfabrik%2Feasydb-publish-datacite/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":276100318,"owners_count":25585179,"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","status":"online","status_checked_at":"2025-09-20T02:00:10.207Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":[],"created_at":"2025-09-20T13:09:44.297Z","updated_at":"2025-09-20T13:09:45.241Z","avatar_url":"https://github.com/programmfabrik.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003e This Plugin / Repo is being maintained by a community of developers.\nThere is no warranty given or bug fixing guarantee; especially not by\nProgrammfabrik GmbH. Please use the github issue tracking to report bugs\nand self organize bug fixing. Feel free to directly contact the committing\ndevelopers.\n \n# easydb-publish-datacite\n\nWebhook Plugin for easydb to publish to datacite.org.\n\n## Webhook workflow\n\nThe [webhook script](build/webhooks/register-doi.js) executes the following action:\n 1. Request Datacite metadata from easydb api/v1/objects/uuid/ using a XSLT stylesheet\n 2. Post this metadata to Datacite API with a generated DOI from prefix and system_object_id\n 3. Register the easyDb detail URL as underlying for the DOI to publish the DOI with Datacite\n 4. Post registered DOI and URL to easyDb publish API\n\n## Installation\n\n 1. Clone or Download the plugin in to the easyDB Plugin directory of your installation.\n    For example:\n    ```\n    cd /srv/easydb/instance-name/config/plugin\n    git clone https://github.com/programmfabrik/easydb-publish-datacite.git publish-datacite\n    ```\n 2. Run `npm install` in the plugin directory:\n    ```\n    cd publish-datacite\n    npm install\n    ```\n 3. Enable the plugin in your installation. See https://docs.easydb.de/en/technical/plugins/#enabling-the-plugin-in-the-server .\n    Add the relative path to the plugin YAML configuration, e. g., `plugin/publish-datacite/publish-datacite.config.yml` to your easyDb configuration file, as shown in the easyDb documentation.\n\n## Configuration\n\n 1. Copy the configuration template `config.TEMPLATE.js` to the actual configuration `config.js` used by the plugin.\n 2. Enter your Datacite credentials, DOI prefix, easyDb API user with password, HMACSecret and XSLT name. The easyDb user entered needs access to POST to the publish API.\n 3. Within the key `datacite` you can add several different profiles to use as different actions in a workflow.\n    For example, if you have a key `test` under `datacite` then you can configure a webhook with the additional query parameter `useConfig=test`.\n    The webhook will use the credentials stored under `datacite.test` in the `config.js`.\n\n 4. Add the Webhook URL in the easyDb base configuration under \"Tag \u0026 Workflow\" \u003e \"Workflow Webhook\".\n    The full URL of the webhook depends on your installation but it looks something like this:\n    `https://easydb-server/api/v1/plugin/base/webhook-plugin/webhook/publish-datacite/register-doi?useConfig=test`.\n    Also add the HMACSecret you entered in the plugin configuration to authenticate the requests.\n 5. Upload an XSLT that fits your datamodel under the easyDb base configuration item \"Export and OAI/PMH\" \u003e \"XSLT formats\".\n     Check the box \"Use for Deep-Links with /api/v1/objects\" and choose the name you entered in the plugin configuration. For starting out take a look at the [XSLT file used for heidICON](xslt/heidicon2datacite.xsl), most of the fields are required for Datacite. For further information about the XML schema see the Datacite API documentation: https://support.datacite.org/docs/schema-mandatory-properties-v41 .\n 6. Reload the frontend. Now you can use the webhook as part of a workflow action under \"Tags \u0026 Workflows\"\n\nSee https://docs.easydb.de/en/technical/plugins/webhooks/webhook/ for more information on easyDb webhooks and configuration.\n\n## Appendix\nDeveloped at University Library Heidelberg in 2019.\nhttps://www.ub.uni-heidelberg.de , https://github.com/UB-Heidelberg\nby Nils Weiher and Leonhard Maylein.\n\nPublished under [MIT License](LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprogrammfabrik%2Feasydb-publish-datacite","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fprogrammfabrik%2Feasydb-publish-datacite","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprogrammfabrik%2Feasydb-publish-datacite/lists"}