This repo demonstrates a typical custom ArchivesSpace data migration at Lyrasis. There are three main components that make up this repo:
-
kiba-extend
- a suite of Kiba extensions useful in transforming and reshaping data -
aspace-client-tasks
- a collection of thor tasks for processing data and interacting with the ASpace API -
kiba-extend-project
- a sample ETL project using kiba-extend. The top half of this repo is generated using this template.
kiba-extend
is used to perform the bulk of the transformations needed to get data from its source format into something ASpace expects. You’ll see the transformation jobs defined in ./lib/demo/jobs.
./lib/demo/registry_data.rb contains all of the in and out registries that are used by the transformation jobs to grab data from a source file and save transformed data to a target file.
aspace-client-tasks
is built on top of the archivesspace-client
gem. I use aspace-client-tasks
to perform any additional data transformation that ASpace expects that kiba-extend is unable to do. An example of this is building hierarchical archival object records from tabular references. See ./aspace-client-tasks/aspace_client/project_name/hierarchy.rb.
Common API tasks include:
-
Getting data from ASpace
-
Attaching ASpace data to data that’s about to go into ASpace. For example, attaching agent and subject records to incoming object records.
-
Sending data to ASpace
-
Moving data around in ASpace. For example, moving child records under their parents.
To learn more about how this piece is structured and used, see the aspace-client-tasks
repo