If you would like to allow researchers the option to place Aeon requests for archival objects directly from the ArchivesSpace Public User Interface (PUI), you can enable this functionality by installing the ArchivesSpace Request Fulfillment via Aeon plugin on your ArchivesSpace server. Once configured, this plugin will add a new Aeon request button to archival objects in the PUI, allowing users to easily submit a pre-populated Aeon request form for the item from ArchivesSpace. In order to use the plugin, settings will have to be configured both in ArchivesSpace and in your instance of Aeon. This article will note a few recommendations for configuring the plugin on the Aeon side.
Additional ArchivesSpace Addon Options for Aeon
The following additional addon options are available for installation in Aeon and can be used in conjunction with or separately from the ArchivesSpace Request Fulfillment via Aeon plugin discussed in this article:
- Aeon ArchivesSpace Location Import Server Addon: When configured, this addon will automatically import location information from ArchivesSpace into Aeon requests that are sent to the data import queue specified in the addon settings
- Aeon ArchivesSpace Client Addon: When configured, this addon will integrate the ArchivesSpace staff interface into the Aeon Desktop Client request form so that staff can manually search and import information from ArchivesSpace records into individual Aeon requests
For more information, please use the links above to view each individual addon's page in the Aeon Addon Directory.
Configuring the Atlas Dual Authentication Portal
This plugin is designed to send as much data from ArchivesSpace as possible to allow users to easily map fields on the Aeon side of the integration. As such, it uses POST data rather than GET parameters so that data does not get truncated. If you are using the Atlas Dual Auth Portal, please ensure that you have configured it to support POST data handling according to the instructions in the Using an Authentication Portal Landing Page article. If this is not properly configured, data will not persist from ArchivesSpace to Aeon via the plugin.
Configuring the OpenURLMapping Table
The Aeon OpenURLMapping table must be configured in the Customization Manager under Web Interface | OpenURL | OpenURLMapping before the plugin can be used. As of Aeon 5.2, several mappings for the plugin will be present in the table by default. These default mappings can be modified or removed from the table according to your preferred configuration. Below is an example configuration for an ArchivesSpace repository with a system ID of "ArchivesSpace" as indicated in the rfr_id column:
Example Configuration
URL_Ver | rfr_id | Aeon Action | Aeon Field Name | Open URL Field Name | Aeon Value |
---|---|---|---|---|---|
Default | ArchivesSpace | Replace | ItemAuthor | <#creators> | |
Default | ArchivesSpace | Replace | ItemDate | <#creation_date> | |
Default | ArchivesSpace | Replace | ItemTitle | <#collection_title> | |
Default | ArchivesSpace | Replace | ItemSubTitle | <#title> | |
Default | ArchivesSpace | Replace | Location | <#instance_top_container_location> | |
Default | ArchivesSpace | Replace | ItemNumber | <#instance_top_container_barcode> | |
Default | ArchivesSpace | Replace | ItemVolume | <#instance_top_container_type> <#instance_top_container_indicator> | |
Default | ArchivesSpace | Replace | CallNumber | <#collection_id> | |
Default | ArchivesSpace | Replace | ItemIssue | <#instance_container_child_type> <#instance_container_child_indicator> | |
Default | ArchivesSpace | Replace | ContainerID | <#instance_top_container_uri> | |
Default | ArchivesSpace | Replace | AccessRestrictions | <#accessrestrict> | |
Default | ArchivesSpace | Replace | DocumentType | manuscript | Loan:Manuscript:GenericRequestManuscript |
Configuring the Aeon Fields Used by the Plugin
Each row in the OpenURLMapping table configuration shown above contains a different Aeon field that will be populated with the value from ArchivesSpace field indicated in the Open URL Field Name column, with the exception of the row for the Aeon DocumentType field, which uses the Open URL Field Name column to indicate the document type that should be used when creating the Aeon request. You can add additional mappings to the table if you would like to populate different fields on the Aeon request.
Configuring the Aeon Request Form Used by the Plugin
The specific Aeon request form that ArchivesSpace should use to create the request should be indicated in the Aeon Value column for the DocumentType row using the format <RequestType>:<DocumentType>:<AeonForm>. In the example above, the DocumentType row indicates that ArchivesSpace will use the GenericRequestManuscript request form to create a Loan request of the Manuscript document type. If you are unsure about which AeonForm value to use for a specific request form, you can find this value by opening the HTML file for the request form and looking at the value in the hidden input for the AeonForm field on the page. For example:
<input type="hidden" name="AeonForm" value="GenericRequestManuscript">
Configuration Options Available for Aeon 5.2
An updated version of the ArchivesSpace Request Fulfillment plugin (v20230302) that introduces several new features and configuration options is available for use with Aeon 5.2 or later. After updating to Aeon 5.2, the new plugin can be installed in ArchivesSpace and configured to use these new features described below.
Archival Request Box Picker Form
The Aeon 5.2 version of the ArchivesSpace Request Fulfillment plugin can be configured to send users to a new box picker form (ArchivalRequest.html) that will accept the plugin request, display the request information and allow users to select which containers to submit for requesting rather than automatically sending requests for all boxes associated with a record. Implementing this functionality will require changing several settings in both Aeon and ArchivesSpace after the new plugin is installed.
Configurable Message Options for Unrequestable Records
The updated plugin features new functionality that will remove the Aeon Request button in ArchivesSpace and replace it with a brief note explaining why a request cannot be created for an ArchivesSpace record if that record is not requestable due to permissions you have configured in the other settings for the plugin. The default messages displayed by the plugin can be overridden with custom text using the following new 'message' settings:
Setting | Description |
:disallowed_record_level_message |
Sets the message that will be displayed instead of the Aeon Request button if the current record cannot be requested due to the values listed in the :requestable_archival_record_levels plugin setting. Default: "Not requestable" |
:no_containers_message |
Sets the message that will be displayed instead of the Aeon Request button if the current record has no associated top containers and the :top_container_mode plugin setting is active. Default: "No requestable containers" |
:restrictions_message |
Sets the message that will be displayed instead of the Aeon Request button if the current record cannot be requested because it has active restrictions matching the values in the :hide_button_for_access_restriction_types plugin setting. Default: "Access Restricted" |
Further Reading
- For detailed information on how access restrictions are set in ArchivesSpace and configured for use with the plugin, please see Impact of ArchivesSpace Local Access Restrictions on Requesting Top Containers.
- For generalized information on configuring settings for the plugin, see the GitHub documentation.
Additional Mapping Options
Several additional ArchivesSpace field mappings are only available in the Aeon 5.2 version of the ArchivesSpace Request Fulfillment plugin. After updating the plugin, these fields can be used in the Open URL Field Name column of the OpenURLMapping table to map the data obtained from these fields in ArchivesSpace to fields in Aeon, as described in the documentation above.
Record-Level Mappings
The following ArchivesSpace field values are mapped at the record level (i.e., the same value will apply to all top containers associated with the record):
Name | Data Obtained | Formatting for OpenURLMapping Table |
date_expression |
A semi-colon (;) separated list of strings containing the combined final_expressions of the single and inclusive dates associated with the record |
<#date_expression> |
userestrict |
A semi-colon (;) separated list of strings containing the combined contents of all published userestrict notes associated with the record |
<#userestrict> |
rights_type |
A semi-colon (;) separated list of strings containing the combined rights_type values of all rights statements associated with the record |
<#rights_type> |
digital_objects |
A semi-colon (;) separated list of strings containing the IDs of all digital objects associated with the record. |
<#digital_objects> |
Container-Level Mappings
The four values listed below are mapped at the container level (i.e., a different value may apply to each top container associated with the record):
Name | Data Obtained | Formatting for OpenURLMapping Table |
instance_top_ container_location_note |
The note for the location in which the top container is stored. |
<#instance_top_container_location_note> |
instance_top_ container_location_title |
The title of the location in which the top container is stored. | <#instance_top_container_location_title> |
instance_top_ container_location_id |
The ID of the location in which the top container is stored. | <#instance_top_container_location_id> |
instance_top_ container_location_ building |
The building name of the location in which the top container is stored. | <#instance_top_container_location_building> |