{"id":27302264,"url":"https://github.com/ads04r/arches-curator","last_synced_at":"2026-04-17T01:32:07.171Z","repository":{"id":279464740,"uuid":"924188642","full_name":"ads04r/arches-curator","owner":"ads04r","description":"Arches plugin for creating and publishing saved searches.","archived":false,"fork":false,"pushed_at":"2025-04-08T10:46:53.000Z","size":58,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-12T02:15:48.380Z","etag":null,"topics":["archaeology","arches","arches-plugin","cidoc","database","django","geojson","heritage","ipfs","python","zenodo"],"latest_commit_sha":null,"homepage":"","language":"Python","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/ads04r.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-01-29T15:17:54.000Z","updated_at":"2025-04-08T10:46:57.000Z","dependencies_parsed_at":"2025-02-25T18:35:21.101Z","dependency_job_id":"cdb34fff-1729-485a-ad0d-123c495e3567","html_url":"https://github.com/ads04r/arches-curator","commit_stats":null,"previous_names":["ads04r/arches-curator"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ads04r/arches-curator","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ads04r%2Farches-curator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ads04r%2Farches-curator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ads04r%2Farches-curator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ads04r%2Farches-curator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ads04r","download_url":"https://codeload.github.com/ads04r/arches-curator/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ads04r%2Farches-curator/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31911464,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-16T18:22:33.417Z","status":"ssl_error","status_checked_at":"2026-04-16T18:21:47.142Z","response_time":69,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["archaeology","arches","arches-plugin","cidoc","database","django","geojson","heritage","ipfs","python","zenodo"],"created_at":"2025-04-12T02:15:46.112Z","updated_at":"2026-04-17T01:32:07.163Z","avatar_url":"https://github.com/ads04r.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Arches Curator\nArches Curator is a plugin for [Arches](https://github.com/archesproject/arches/). It allows each user to save the results of searches as datasets which are subsets of the entire database. Unlike traditional saved searches in Arches, the results are saved along with the search, as the results may change if the user repeats the search at a later time. These datasets may then be exported to a number of different external locations. Currently we support IPFS and Zenodo, both of these provide a (theoretically) permanent existance.\n\nThanks go to Cyrus Hiatt of Farallon Geographics for his [dashboard example](https://github.com/chiatt/dashboard), on which this plugin is based.\n\n## IPFS\nIPFS (InterPlanetary File System) is a protocol, hypermedia and file sharing peer-to-peer network for storing and sharing data in a distributed hash table. It uses content addressing, and so long as at least one person on the network has a particular file, it remains available. There are also various web gateways that make the contents of the IPFS network available to ordinary web users without requiring them to install any special software.\n## Zenodo\nThe Zenodo code is a modified version of the EAMENA Citation plugin by [Thomas Huet](https://github.com/zoometh) and [Reuben Osborne](https://github.com/reubenosborne1). Zenodo is a general-purpose open repository developed under the European OpenAIRE program and operated by CERN. This plugin allows the user to easily submit saved searches to Zenodo, automatically generating appropriate metadata. For each submission to Zenodo, a persistent digital object identifier (DOI) is generated, which makes the stored items easily citeable.\n\n## Installing the plugin\n\n* Stop the Arches server (either Ctrl+C from `runserver` or stop Apache or NGINX.)\n* From the root of your Arches project (the directory that contains `manage.py`), clone the repository into a subdirectory named `curator`...\n```bash\ngit clone https://github.com/ads04r/arches-curator.git curator\n```\n\n* Add `\"curator\"` to the `INSTALLED_APPS` setting in your Arches project...\n```python\nINSTALLED_APPS = [\n    ...\n    \"arches\",\n    \"[project_name]\"\n    \"curator\",\n    ...\n]\n```\n\n* As this plugin modifies part of the default Arches UI, we also need to make the plugin's templates directory visible. We can do this by modifying the `TEMPLATES` key in `settings.py`...\n```python\nTEMPLATES = build_templates_config(\n    debug=DEBUG,\n    app_root=APP_ROOT,\n    additional_directories=[os.path.join(os.path.dirname(APP_ROOT), 'curator', 'templates')],\n)\n```\n\n* Add the plugin `curator` as a dependency in `pyproject.toml`...\n```toml\ndependencies = [\n    \"arches\u003e=7.6.0,\u003c8.0.0\",\n    \"curator==0.1.0\",\n]\n```\n\n* Update `urls.py` file in your Arches project...\n```python\nurlpatterns = [\n\t...\n\tpath(\"\", include(\"curator.urls\")),\n\t...\n]\n```\n\n* Run the migrations to ensure the required database tables are created...\n```bash\npython manage.py migrate curator\n```\n\n* Change into your project directory (one below the directory containing `manage.py`) and from there, making sure the Arches server is running, run `npm` to ensure the plugin is built within Webpack...\n```bash\nnpm run build_development\n```\n\n## Configuration\n\nAs this point, you should see the Curator icon at the bottom of the navigation margin. Basic functionality (eg saving searches and recalling them) should now work. However, in order to push these searches to Zenodo or IPFS you'll need to add some extra settings into `settings.py`\n\n### IPFS\nIn order to upload to IPFS, you'll need a node that the Arches project can access (for example, a running instance of [kubo](https://github.com/ipfs/kubo)) and a web-accessible IPFS gateway. If you don't have a gateway, you can use `https://ipfs.io/ipfs/`, although using `http://localhost:8080/` will work for users who have the IPFS desktop application running on their local machine.\n\n```python\nIPFS_NODE = ['localhost', 5001] # [host, port]\nIPFS_WEB_PROXY = 'https://ipfs.io/ipfs/%CID%'\n```\n\n### Zenodo\nThe Zenodo export is a bit more complicated, because it needs to be configured based on your graph models. It needs to know which fields of your data to map to which metadata values in Zenodo. Shown below is an example that is valid for the EAMENA database. Feel free to use it as a template...\n```python\nZENODO_ACCESS_TOKEN = '[zenodo_token]' # Redacted, for obvious reasons\nZENODO_URL = 'https://zenodo.org/api/deposit/depositions'\nZENODO_METADATA = {\n\t'metadata': {\n\t\t'upload_type': 'dataset',\n\t\t'license': 'cc-by',\n\t\t'subjects': [{\"term\": \"Cultural property\", \"identifier\": \"https://id.loc.gov/authorities/subjects/sh97000183.html\", \"scheme\": \"url\"}],\n\t\t'method': 'EAMENA data entry methodology',\n\t\t'creators': [{'name': \"EAMENA database\",\n\t\t'affiliation': \"University of Oxford, University of Southampton\"}]\n\t},\n\t'keywords': {\n\t\t'static': ['EAMENA', 'MaREA', 'Cultural Heritage'],\n\t\t'fields': [\"Country Type\", \"Cultural Period Type\"]\n\t},\n\t'contributors': {\n\t\t'fields': ['Assessment Investigator - Actor', 'Disturbance Cause Assignment Assessor Name - Actor', 'Date Inference Making Actor Name'],\n\t\t'layout': {\"name\": None, \"type\": \"DataCollector\"},\n\t\t'default': [{'name': \"University of Oxford\", \"type\": \"DataManager\"},{'name': \"University of Southampton\", \"type\": \"DataManager\"}]\n\t},\n\t'dates': {\n\t\t'fields': [\"Assessment Activity Date\"]\n\t}\n}\n```\nSee https://developers.zenodo.org/#representation for a detailed description of Zenodo upload metadata. \n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fads04r%2Farches-curator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fads04r%2Farches-curator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fads04r%2Farches-curator/lists"}