Drupal modules for browsing and managing Fedora-based digital repositories.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
dannylamb 6e4815ef87 Meta link headers (#81) 7 years ago
.github Add JWT Token Authentication (#38) 8 years ago
config Referenced Media Condition (#75) 7 years ago
src Meta link headers (#81) 7 years ago
tests Meta link headers (#81) 7 years ago
.gitignore Add JWT Token Authentication (#38) 8 years ago
.travis.yml Fix OOM composer errors (#82) 7 years ago
CONTRIBUTING.md address Islandora-CLAW/CLAW#537 (#49) 8 years ago
LICENSE Use the correct LICENSE. 8 years ago
README.md No longer forcing REST config, README updates (#79) 7 years ago
composer.json Using Context instead of Rules (#68) 7 years ago
islandora.info.yml Using Context instead of Rules (#68) 7 years ago
islandora.install Issue 640 (#67) 7 years ago
islandora.links.menu.yml Issue 643 (#63) 7 years ago
islandora.module No longer forcing REST config, README updates (#79) 7 years ago
islandora.permissions.yml Issue 640 (#67) 7 years ago
islandora.routing.yml Move context controller from islandora to jsonld (#80) 7 years ago
islandora.services.yml Meta link headers (#81) 7 years ago

README.md

Islandora Islandora

Build Status Contribution Guidelines LICENSE

Introduction

CLAW's core Islandora module for Drupal 8.x

Installation

For a fully automated install, see claw-playbook. If you're installing manually, then at a minimum, the REST configuration for Nodes, Media, and Files need to be enabled with jwt_auth for authentication on all methods. The json and jsonld formats need to be enabled for for GET requests. Only the json fomat is required for POST, PATCH, and DELETE requests.

This can be done using the Rest UI module by setting granularity to 'Method'. If you want to use GET requests through a browser, you'll want to enable cookie authentication. And if you want to use a username/password with cURL, you'll want to enable basic authentication.

screenshot from 2018-03-09 10-09-57

If you want to import the configuration through Drupal's configuration synchronization tools, you can use these yaml files from claw-playbook for Nodes, Media, and Files.

REST API

Islandora has a light, mostly RESTful HTTP API that relies heavily on Drupal's core Rest module.

/media/{media}/source

You can PUT content to the /media/{media}/source endpoint to update the File associated with a Media. The Content-Type header is expected, as well as a Content-Disposition header of the form attachment; filename="your_filename" to indicate the name to give the file. Requests with empty bodies or no Content-Length header will be rejected.

Example usage:

curl -u admin:islandora -v -X PUT -H 'Content-Type: image/png' -H 'Content-Disposition: attachment; filename="my_image.png"' --data-binary @my_image.png localhost:8000/media/1/source

/node/{node}/media/{field}/add/{bundle}

You can POST content to the /node/{node}/media/{field}/add/{bundle} endpoint to create a new Media of the specified bundle using the POST body. It will be associated with the specified Node using the field from the route. The Content-Type header is expected, as well as a Content-Disposition header of the form attachment; filename="your_filename" to indicate the name to give the file. Requests with empty bodies or no Content-Length header will be rejected.

Example usage:

curl -v -u admin:islandora -H "Content-Type: image/jpeg" -H "Content-Disposition: attachment; filename=\"test.jpeg\"" --data-binary @test.jpeg http://localhost:8000/node/1/media/my_media_field/add/my_media_bundle

Maintainers

Current maintainers:

Development

If you would like to contribute, please get involved by attending our weekly Tech Call. We love to hear from you!

If you would like to contribute code to the project, you need to be covered by an Islandora Foundation Contributor License Agreement or Corporate Contributor License Agreement. Please see the Contributors pages on Islandora.ca for more information.

License

GPLv2