<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://wiki.accesstomemory.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Kgoetz</id>
		<title>AtoM wiki - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="http://wiki.accesstomemory.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Kgoetz"/>
		<link rel="alternate" type="text/html" href="http://wiki.accesstomemory.org/wiki/Special:Contributions/Kgoetz"/>
		<updated>2026-05-25T11:19:03Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.27.7</generator>

	<entry>
		<id>http://wiki.accesstomemory.org/index.php?title=User:Kgoetz&amp;diff=2722</id>
		<title>User:Kgoetz</title>
		<link rel="alternate" type="text/html" href="http://wiki.accesstomemory.org/index.php?title=User:Kgoetz&amp;diff=2722"/>
				<updated>2019-12-05T05:51:28Z</updated>
		
		<summary type="html">&lt;p&gt;Kgoetz: change page text&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Staff member of the University of Tasmania; previously employed managing various library systems and now in eResearch.&lt;br /&gt;
&lt;br /&gt;
Sporadically active on Atom and Archivematica user group forums.&lt;br /&gt;
&lt;br /&gt;
To contact me email karl.goetz then add @utas.edu.au.&lt;/div&gt;</summary>
		<author><name>Kgoetz</name></author>	</entry>

	<entry>
		<id>http://wiki.accesstomemory.org/index.php?title=Development/Archivematica_integration&amp;diff=2721</id>
		<title>Development/Archivematica integration</title>
		<link rel="alternate" type="text/html" href="http://wiki.accesstomemory.org/index.php?title=Development/Archivematica_integration&amp;diff=2721"/>
				<updated>2019-12-05T05:49:04Z</updated>
		
		<summary type="html">&lt;p&gt;Kgoetz: add more 'see also' links from recent group discussions&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#pagetitle:Archivematica integration}}&lt;br /&gt;
[[Development]] &amp;gt; Development/Archivematica_integration&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Access to Memory (AtoM) and [https://www.archivematica.org Archivematica] have a strong connection - they’re developed by the same vendor and Archivematica uses AtoM as its display frontend. Despite that communication is not currently bidirectional and when an AtoM site has data loaded there is currently no mechanism to synchronise the two platforms.&lt;br /&gt;
&lt;br /&gt;
This page attempts to summarise any discoveries from [https://groups.google.com/forum/#!topic/ica-atom-users/TEkIGSUTEvo/overview the discussion started on AtoM-users] and will, in time, start to form a description of what integration might look like.&lt;br /&gt;
&lt;br /&gt;
There is also a similar project for [https://github.com/eprintsug/EPrintsArchivematica integrating EPrints with Archivematica] who’s standards document includes useful information including layout and other legwork required for an export like this.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Integration should cover ==&lt;br /&gt;
* An AtoM instance that contains records to which Archivematica is added as a backend&lt;br /&gt;
* An AtoM instance which is installed parallel to Archivematica but which is uploaded to directly&lt;br /&gt;
&lt;br /&gt;
This will mean a variety of factors need to be considered (and questions asked) including&lt;br /&gt;
* Data uploaded to AtoM should be exportable to Archivematica for ingest and when the processed data is returned to AtoM no duplicate entries should be recorded.&lt;br /&gt;
* Optional support for Metadata only updates&lt;br /&gt;
* Should thumbnails generated by AtoM be exported and preserved?&lt;br /&gt;
* Does AtoM store revision history? Should we Archive revisions if it does?&lt;br /&gt;
* How will metadata only updates be handled&lt;br /&gt;
* What to do with external digital objects. ensure they are skipped with warning by export process? Export the thumbnails/metadata? Detection code is available [https://github.com/artefactual/atom/blob/stable/2.4.x/lib/model/QubitDigitalObject.php#L1569 in the repository]&lt;br /&gt;
&lt;br /&gt;
== Options for integration ==&lt;br /&gt;
&lt;br /&gt;
=== Option one: Data exported to directory ===&lt;br /&gt;
&lt;br /&gt;
Export required data+metadata into a single directory which Archivematica imports ; AtoM then imports the export package (DIP) created by Archivematica&lt;br /&gt;
&lt;br /&gt;
==== Export stage ====&lt;br /&gt;
Data which we can export (if Archivematica [https://www.archivematica.org/en/docs/archivematica-1.8/user-manual/transfer/transfer/#the-transfer-tab transfer] can use it) which would help populate fields in Archivematica and can then be used to re-match with AtoM after processing.&lt;br /&gt;
&lt;br /&gt;
* Transfer type (File type of item)&lt;br /&gt;
* Transfer name (current items name or description)&lt;br /&gt;
* Accession number (Accession number of item being exported)&lt;br /&gt;
* Access system ID (AtoM install performing export)&lt;br /&gt;
* Approve automatically (make this optional ; some may want it and some not)&lt;br /&gt;
&lt;br /&gt;
[https://www.archivematica.org/en/docs/archivematica-1.8/user-manual/transfer/transfer/#preparing-digital-objects-for-transfer Export structure is important], as with [https://github.com/eprintsug/EPrintsArchivematica EPrints with Archivematica integration] I suggest this project supplies various bits of data (metadata/ , checksums, documentation, etc) as described on [https://www.archivematica.org/en/docs/archivematica-1.8/user-manual/transfer/transfer/#preparing-digital-objects-for-transfer Archivematicas transfer page].&lt;br /&gt;
&lt;br /&gt;
Working draft of filesystem layout&lt;br /&gt;
* object_slug-unique_identifer directory (object slug is the slug stored in DB, unique identifier is however AtoM identifies the object internally)&lt;br /&gt;
** Metadata directory, files in here are formatted per [https://www.archivematica.org/en/docs/archivematica-1.8/user-manual/transfer/import-metadata/#import-metadata Archivematica metadata import documentation] and should be populated with data from AtoM&lt;br /&gt;
*** metadata.csv (mandatory)&lt;br /&gt;
*** rights.csv (mandatory if rights are specified)&lt;br /&gt;
*** checksum.md5, checksum.sha1, or checksum.sha256 TBC: check which format/s AtoM uses and restrict output to that/those format/s&lt;br /&gt;
*** All other available metadata: optional; if supplied by AtoM and configured to export&lt;br /&gt;
** Objects directory, where actual files will go&lt;br /&gt;
*** Structure TODO&lt;br /&gt;
&lt;br /&gt;
AtoM uses [https://github.com/artefactual/atom/blob/stable/2.4.x/lib/model/QubitDigitalObject.php#L1796 getAssetPath] to access its objects so we can lean on that to find files we want&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Reimport ====&lt;br /&gt;
Import is currently managed by AtoM already, but will need to be augmented to deal with new issues.&lt;br /&gt;
&lt;br /&gt;
* AtoM will have the original format files and the normalised format following the conversion. A way to remove the original files will need to be included&lt;br /&gt;
* AtoM will need to ensure it doesn’t enter a loop of: export files -&amp;gt; import from AM -&amp;gt; update files with those from AM -&amp;gt; trigger export of newly imported files.&lt;br /&gt;
* Duplicates in AtoM. Archivematica's DIP upload creates new stub information objects when it deposits the DIP objects - it won't replace existing objects. How manageable this problem is will depend on how much identifying metadata we can feed through Archivematica&lt;br /&gt;
&lt;br /&gt;
Things which might make this easier:&lt;br /&gt;
* Using the functions for managing [https://www.archivematica.org/en/docs/archivematica-1.8/user-manual/transfer/transfer/#transferring-material-with-preservation-or-access-derivatives-manual-normalization Transfer and Access derivatives] or [https://www.archivematica.org/en/docs/archivematica-1.8/user-manual/transfer/transfer/#transferring-material-with-service-mezzanine-files material with service files]&lt;br /&gt;
&lt;br /&gt;
Atom may be extended to use the MDTYPE=OTHER metadata available in the DIP METS file, this would help with the roundtrip and (if it works) might solve all the identification problems.&lt;br /&gt;
&lt;br /&gt;
Atom includes a tool for importing data from a DIP via CSV file. this tool or its backing library might be usable in this context. https://github.com/artefactual/atom/blob/qa/2.5.x/lib/task/import/importDipObjectsTask.class.php&lt;br /&gt;
&lt;br /&gt;
=== Option two: Data exported to SIP/bag ===&lt;br /&gt;
&lt;br /&gt;
Export packages (SIPs, bagit, or similar) which can be imported to Archivematica; AtoM then imports the export package (DIP) created by Archivematica.&lt;br /&gt;
&lt;br /&gt;
This is the same as option one, but includes a packaging step at the end.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Option three: Bidirectional communication ===&lt;br /&gt;
&lt;br /&gt;
Atom and Archivematica currently use SWORD1 (a unidirectional protocol) to push data from Archivematica to AtoM. Under this option they would use an existing protocol with bi directional support (eg SWORD2 or the work in progress SWORD3, see  http://swordapp.org/).&lt;br /&gt;
&lt;br /&gt;
* Both applications need changes in this instance&lt;br /&gt;
** Archivematica doesn't support plugins so its not as easy as a plugin at each end to add support.&lt;br /&gt;
* TBD: what would they communicate and how - would a SIP/bag be sent over SWORD or would individual files and associated data be sent and Archivematica packages it up?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* Archivematica's [https://www.archivematica.org/en/docs/archivematica-1.8/getting-started/overview/technical/#format-policies Format Policy] Registry (currently in the process of becoming its own project to be used by multiple digital preservation systems; now known as the Preservation Action Registry) to manage derivatives creation in a more intelligent way.&lt;br /&gt;
&lt;br /&gt;
* TODO describe https://mediaarea.net/Events/2018-10-26_NoTimeToWait3/presentations/07.%20Martin%20Wrigley%20-%20Preservation%20Action%20Registry/OPF%20PAR%20Presentation%20notime%20to%20wait%20event.pdf&lt;br /&gt;
&lt;br /&gt;
* [https://groups.google.com/forum/#!topic/archivematica/Ipvft2zC8ZA Question regarding retroactive archivematica uploads] which links to [https://www.accesstomemory.org/en/docs/2.3/user-manual/add-edit-content/archival-descriptions/#add-alternative-identifiers-to-an-archival-description AtoM documentation on how to Add alternative identifiers to an archival description].&lt;br /&gt;
&lt;br /&gt;
* [https://groups.google.com/forum/#!msg/ica-atom-users/tePqjGpqLdQ/Xe4Lf4W8AAAJ Discussion on Exporting data and metadata from AtoM to archivematica] on the Atom users list.&lt;br /&gt;
&lt;br /&gt;
* [https://groups.google.com/forum/#!msg/archivematica/E-ESb5TiiI4/wwM5Hqj0AwAJ Query around sending DIP to Atom via API] from Archivematica user group&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
* [[Development|Back to Development]]&lt;br /&gt;
* [[Main Page|AtoM wiki home]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Development documentation]]&lt;/div&gt;</summary>
		<author><name>Kgoetz</name></author>	</entry>

	<entry>
		<id>http://wiki.accesstomemory.org/index.php?title=Development/Archivematica_integration&amp;diff=2285</id>
		<title>Development/Archivematica integration</title>
		<link rel="alternate" type="text/html" href="http://wiki.accesstomemory.org/index.php?title=Development/Archivematica_integration&amp;diff=2285"/>
				<updated>2019-01-10T00:41:08Z</updated>
		
		<summary type="html">&lt;p&gt;Kgoetz: add links to another stop gap approach for existing data&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#pagetitle:Archivematica integration}}&lt;br /&gt;
[[Development]] &amp;gt; Development/Archivematica_integration&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Access to Memory (AtoM) and [https://www.archivematica.org Archivematica] have a strong connection - they’re developed by the same vendor and Archivematica uses AtoM as its display frontend. Despite that communication is not currently bidirectional and when an AtoM site has data loaded there is currently no mechanism to synchronise the two platforms.&lt;br /&gt;
&lt;br /&gt;
This page attempts to summarise any discoveries from [https://groups.google.com/forum/#!topic/ica-atom-users/TEkIGSUTEvo/overview the discussion started on AtoM-users] and will, in time, start to form a description of what integration might look like.&lt;br /&gt;
&lt;br /&gt;
There is also a similar project for [https://github.com/eprintsug/EPrintsArchivematica integrating EPrints with Archivematica] who’s standards document includes useful information including layout and other legwork required for an export like this.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Integration should cover ==&lt;br /&gt;
* An AtoM instance that contains records to which Archivematica is added as a backend&lt;br /&gt;
* An AtoM instance which is installed parallel to Archivematica but which is uploaded to directly&lt;br /&gt;
&lt;br /&gt;
This will mean a variety of factors need to be considered (and questions asked) including&lt;br /&gt;
* Data uploaded to AtoM should be exportable to Archivematica for ingest and when the processed data is returned to AtoM no duplicate entries should be recorded.&lt;br /&gt;
* Optional support for Metadata only updates&lt;br /&gt;
* Should thumbnails generated by AtoM be exported and preserved?&lt;br /&gt;
* Does AtoM store revision history? Should we Archive revisions if it does?&lt;br /&gt;
* How will metadata only updates be handled&lt;br /&gt;
* What to do with external digital objects. ensure they are skipped with warning by export process? Export the thumbnails/metadata? Detection code is available [https://github.com/artefactual/atom/blob/stable/2.4.x/lib/model/QubitDigitalObject.php#L1569 in the repository]&lt;br /&gt;
&lt;br /&gt;
== Options for integration ==&lt;br /&gt;
&lt;br /&gt;
=== Option one: Data exported to directory ===&lt;br /&gt;
&lt;br /&gt;
Export required data+metadata into a single directory which Archivematica imports ; AtoM then imports the export package (DIP) created by Archivematica&lt;br /&gt;
&lt;br /&gt;
==== Export stage ====&lt;br /&gt;
Data which we can export (if Archivematica [https://www.archivematica.org/en/docs/archivematica-1.8/user-manual/transfer/transfer/#the-transfer-tab transfer] can use it) which would help populate fields in Archivematica and can then be used to re-match with AtoM after processing.&lt;br /&gt;
&lt;br /&gt;
* Transfer type (File type of item)&lt;br /&gt;
* Transfer name (current items name or description)&lt;br /&gt;
* Accession number (Accession number of item being exported)&lt;br /&gt;
* Access system ID (AtoM install performing export)&lt;br /&gt;
* Approve automatically (make this optional ; some may want it and some not)&lt;br /&gt;
&lt;br /&gt;
[https://www.archivematica.org/en/docs/archivematica-1.8/user-manual/transfer/transfer/#preparing-digital-objects-for-transfer Export structure is important], as with [https://github.com/eprintsug/EPrintsArchivematica EPrints with Archivematica integration] I suggest this project supplies various bits of data (metadata/ , checksums, documentation, etc) as described on [https://www.archivematica.org/en/docs/archivematica-1.8/user-manual/transfer/transfer/#preparing-digital-objects-for-transfer Archivematicas transfer page].&lt;br /&gt;
&lt;br /&gt;
Working draft of filesystem layout&lt;br /&gt;
* object_slug-unique_identifer directory (object slug is the slug stored in DB, unique identifier is however AtoM identifies the object internally)&lt;br /&gt;
** Metadata directory, files in here are formatted per [https://www.archivematica.org/en/docs/archivematica-1.8/user-manual/transfer/import-metadata/#import-metadata Archivematica metadata import documentation] and should be populated with data from AtoM&lt;br /&gt;
*** metadata.csv (mandatory)&lt;br /&gt;
*** rights.csv (mandatory if rights are specified)&lt;br /&gt;
*** checksum.md5, checksum.sha1, or checksum.sha256 TBC: check which format/s AtoM uses and restrict output to that/those format/s&lt;br /&gt;
*** All other available metadata: optional; if supplied by AtoM and configured to export&lt;br /&gt;
** Objects directory, where actual files will go&lt;br /&gt;
*** Structure TODO&lt;br /&gt;
&lt;br /&gt;
AtoM uses [https://github.com/artefactual/atom/blob/stable/2.4.x/lib/model/QubitDigitalObject.php#L1796 getAssetPath] to access its objects so we can lean on that to find files we want&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Reimport ====&lt;br /&gt;
Import is currently managed by AtoM already, but will need to be augmented to deal with new issues.&lt;br /&gt;
&lt;br /&gt;
* AtoM will have the original format files and the normalised format following the conversion. A way to remove the original files will need to be included&lt;br /&gt;
* AtoM will need to ensure it doesn’t enter a loop of: export files -&amp;gt; import from AM -&amp;gt; update files with those from AM -&amp;gt; trigger export of newly imported files.&lt;br /&gt;
* Duplicates in AtoM. Archivematica's DIP upload creates new stub information objects when it deposits the DIP objects - it won't replace existing objects. How manageable this problem is will depend on how much identifying metadata we can feed through Archivematica&lt;br /&gt;
&lt;br /&gt;
Things which might make this easier:&lt;br /&gt;
* Using the functions for managing [https://www.archivematica.org/en/docs/archivematica-1.8/user-manual/transfer/transfer/#transferring-material-with-preservation-or-access-derivatives-manual-normalization Transfer and Access derivatives] or [https://www.archivematica.org/en/docs/archivematica-1.8/user-manual/transfer/transfer/#transferring-material-with-service-mezzanine-files material with service files]&lt;br /&gt;
&lt;br /&gt;
Atom may be extended to use the MDTYPE=OTHER metadata available in the DIP METS file, this would help with the roundtrip and (if it works) might solve all the identification problems.&lt;br /&gt;
&lt;br /&gt;
Atom includes a tool for importing data from a DIP via CSV file. this tool or its backing library might be usable in this context. https://github.com/artefactual/atom/blob/qa/2.5.x/lib/task/import/importDipObjectsTask.class.php&lt;br /&gt;
&lt;br /&gt;
=== Option two: Data exported to SIP/bag ===&lt;br /&gt;
&lt;br /&gt;
Export packages (SIPs, bagit, or similar) which can be imported to Archivematica; AtoM then imports the export package (DIP) created by Archivematica.&lt;br /&gt;
&lt;br /&gt;
This is the same as option one, but includes a packaging step at the end.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Option three: Bidirectional communication ===&lt;br /&gt;
&lt;br /&gt;
Atom and Archivematica currently use SWORD1 (a unidirectional protocol) to push data from Archivematica to AtoM. Under this option they would use an existing protocol with bi directional support (eg SWORD2 or the work in progress SWORD3, see  http://swordapp.org/).&lt;br /&gt;
&lt;br /&gt;
* Both applications need changes in this instance&lt;br /&gt;
** Archivematica doesn't support plugins so its not as easy as a plugin at each end to add support.&lt;br /&gt;
* TBD: what would they communicate and how - would a SIP/bag be sent over SWORD or would individual files and associated data be sent and Archivematica packages it up?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* Archivematica's [https://www.archivematica.org/en/docs/archivematica-1.8/getting-started/overview/technical/#format-policies Format Policy] Registry (currently in the process of becoming its own project to be used by multiple digital preservation systems; now known as the Preservation Action Registry) to manage derivatives creation in a more intelligent way.&lt;br /&gt;
&lt;br /&gt;
* TODO describe https://mediaarea.net/Events/2018-10-26_NoTimeToWait3/presentations/07.%20Martin%20Wrigley%20-%20Preservation%20Action%20Registry/OPF%20PAR%20Presentation%20notime%20to%20wait%20event.pdf&lt;br /&gt;
&lt;br /&gt;
* [https://groups.google.com/forum/#!topic/archivematica/Ipvft2zC8ZA Question regarding retroactive archivematica uploads] which links to [https://www.accesstomemory.org/en/docs/2.3/user-manual/add-edit-content/archival-descriptions/#add-alternative-identifiers-to-an-archival-description AtoM documentation on how to Add alternative identifiers to an archival description].&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
* [[Development|Back to Development]]&lt;br /&gt;
* [[Main Page|AtoM wiki home]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Development documentation]]&lt;/div&gt;</summary>
		<author><name>Kgoetz</name></author>	</entry>

	<entry>
		<id>http://wiki.accesstomemory.org/index.php?title=Development/Archivematica_integration&amp;diff=2189</id>
		<title>Development/Archivematica integration</title>
		<link rel="alternate" type="text/html" href="http://wiki.accesstomemory.org/index.php?title=Development/Archivematica_integration&amp;diff=2189"/>
				<updated>2018-12-12T23:09:36Z</updated>
		
		<summary type="html">&lt;p&gt;Kgoetz: link to atom built in tool for importing objects in a DIP&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#pagetitle:Archivematica integration}}&lt;br /&gt;
[[Development]] &amp;gt; Development/Archivematica_integration&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Access to Memory (AtoM) and [https://www.archivematica.org Archivematica] have a strong connection - they’re developed by the same vendor and Archivematica uses AtoM as its display frontend. Despite that communication is not currently bidirectional and when an AtoM site has data loaded there is currently no mechanism to synchronise the two platforms.&lt;br /&gt;
&lt;br /&gt;
This page attempts to summarise any discoveries from [https://groups.google.com/forum/#!topic/ica-atom-users/TEkIGSUTEvo/overview the discussion started on AtoM-users] and will, in time, start to form a description of what integration might look like.&lt;br /&gt;
&lt;br /&gt;
There is also a similar project for [https://github.com/eprintsug/EPrintsArchivematica integrating EPrints with Archivematica] who’s standards document includes useful information including layout and other legwork required for an export like this.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Integration should cover ==&lt;br /&gt;
* An AtoM instance that contains records to which Archivematica is added as a backend&lt;br /&gt;
* An AtoM instance which is installed parallel to Archivematica but which is uploaded to directly&lt;br /&gt;
&lt;br /&gt;
This will mean a variety of factors need to be considered (and questions asked) including&lt;br /&gt;
* Data uploaded to AtoM should be exportable to Archivematica for ingest and when the processed data is returned to AtoM no duplicate entries should be recorded.&lt;br /&gt;
* Optional support for Metadata only updates&lt;br /&gt;
* Should thumbnails generated by AtoM be exported and preserved?&lt;br /&gt;
* Does AtoM store revision history? Should we Archive revisions if it does?&lt;br /&gt;
* How will metadata only updates be handled&lt;br /&gt;
* What to do with external digital objects. ensure they are skipped with warning by export process? Export the thumbnails/metadata? Detection code is available [https://github.com/artefactual/atom/blob/stable/2.4.x/lib/model/QubitDigitalObject.php#L1569 in the repository]&lt;br /&gt;
&lt;br /&gt;
== Options for integration ==&lt;br /&gt;
&lt;br /&gt;
=== Option one: Data exported to directory ===&lt;br /&gt;
&lt;br /&gt;
Export required data+metadata into a single directory which Archivematica imports ; AtoM then imports the export package (DIP) created by Archivematica&lt;br /&gt;
&lt;br /&gt;
==== Export stage ====&lt;br /&gt;
Data which we can export (if Archivematica [https://www.archivematica.org/en/docs/archivematica-1.8/user-manual/transfer/transfer/#the-transfer-tab transfer] can use it) which would help populate fields in Archivematica and can then be used to re-match with AtoM after processing.&lt;br /&gt;
&lt;br /&gt;
* Transfer type (File type of item)&lt;br /&gt;
* Transfer name (current items name or description)&lt;br /&gt;
* Accession number (Accession number of item being exported)&lt;br /&gt;
* Access system ID (AtoM install performing export)&lt;br /&gt;
* Approve automatically (make this optional ; some may want it and some not)&lt;br /&gt;
&lt;br /&gt;
[https://www.archivematica.org/en/docs/archivematica-1.8/user-manual/transfer/transfer/#preparing-digital-objects-for-transfer Export structure is important], as with [https://github.com/eprintsug/EPrintsArchivematica EPrints with Archivematica integration] I suggest this project supplies various bits of data (metadata/ , checksums, documentation, etc) as described on [https://www.archivematica.org/en/docs/archivematica-1.8/user-manual/transfer/transfer/#preparing-digital-objects-for-transfer Archivematicas transfer page].&lt;br /&gt;
&lt;br /&gt;
Working draft of filesystem layout&lt;br /&gt;
* object_slug-unique_identifer directory (object slug is the slug stored in DB, unique identifier is however AtoM identifies the object internally)&lt;br /&gt;
** Metadata directory, files in here are formatted per [https://www.archivematica.org/en/docs/archivematica-1.8/user-manual/transfer/import-metadata/#import-metadata Archivematica metadata import documentation] and should be populated with data from AtoM&lt;br /&gt;
*** metadata.csv (mandatory)&lt;br /&gt;
*** rights.csv (mandatory if rights are specified)&lt;br /&gt;
*** checksum.md5, checksum.sha1, or checksum.sha256 TBC: check which format/s AtoM uses and restrict output to that/those format/s&lt;br /&gt;
*** All other available metadata: optional; if supplied by AtoM and configured to export&lt;br /&gt;
** Objects directory, where actual files will go&lt;br /&gt;
*** Structure TODO&lt;br /&gt;
&lt;br /&gt;
AtoM uses [https://github.com/artefactual/atom/blob/stable/2.4.x/lib/model/QubitDigitalObject.php#L1796 getAssetPath] to access its objects so we can lean on that to find files we want&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Reimport ====&lt;br /&gt;
Import is currently managed by AtoM already, but will need to be augmented to deal with new issues.&lt;br /&gt;
&lt;br /&gt;
* AtoM will have the original format files and the normalised format following the conversion. A way to remove the original files will need to be included&lt;br /&gt;
* AtoM will need to ensure it doesn’t enter a loop of: export files -&amp;gt; import from AM -&amp;gt; update files with those from AM -&amp;gt; trigger export of newly imported files.&lt;br /&gt;
* Duplicates in AtoM. Archivematica's DIP upload creates new stub information objects when it deposits the DIP objects - it won't replace existing objects. How manageable this problem is will depend on how much identifying metadata we can feed through Archivematica&lt;br /&gt;
&lt;br /&gt;
Things which might make this easier:&lt;br /&gt;
* Using the functions for managing [https://www.archivematica.org/en/docs/archivematica-1.8/user-manual/transfer/transfer/#transferring-material-with-preservation-or-access-derivatives-manual-normalization Transfer and Access derivatives] or [https://www.archivematica.org/en/docs/archivematica-1.8/user-manual/transfer/transfer/#transferring-material-with-service-mezzanine-files material with service files]&lt;br /&gt;
&lt;br /&gt;
Atom may be extended to use the MDTYPE=OTHER metadata available in the DIP METS file, this would help with the roundtrip and (if it works) might solve all the identification problems.&lt;br /&gt;
&lt;br /&gt;
Atom includes a tool for importing data from a DIP via CSV file. this tool or its backing library might be usable in this context. https://github.com/artefactual/atom/blob/qa/2.5.x/lib/task/import/importDipObjectsTask.class.php&lt;br /&gt;
&lt;br /&gt;
=== Option two: Data exported to SIP/bag ===&lt;br /&gt;
&lt;br /&gt;
Export packages (SIPs, bagit, or similar) which can be imported to Archivematica; AtoM then imports the export package (DIP) created by Archivematica.&lt;br /&gt;
&lt;br /&gt;
This is the same as option one, but includes a packaging step at the end.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Option three: Bidirectional communication ===&lt;br /&gt;
&lt;br /&gt;
Atom and Archivematica currently use SWORD1 (a unidirectional protocol) to push data from Archivematica to AtoM. Under this option they would use an existing protocol with bi directional support (eg SWORD2 or the work in progress SWORD3, see  http://swordapp.org/).&lt;br /&gt;
&lt;br /&gt;
* Both applications need changes in this instance&lt;br /&gt;
** Archivematica doesn't support plugins so its not as easy as a plugin at each end to add support.&lt;br /&gt;
* TBD: what would they communicate and how - would a SIP/bag be sent over SWORD or would individual files and associated data be sent and Archivematica packages it up?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* Archivematica's [https://www.archivematica.org/en/docs/archivematica-1.8/getting-started/overview/technical/#format-policies Format Policy] Registry (currently in the process of becoming its own project to be used by multiple digital preservation systems; now known as the Preservation Action Registry) to manage derivatives creation in a more intelligent way.&lt;br /&gt;
&lt;br /&gt;
* TODO describe https://mediaarea.net/Events/2018-10-26_NoTimeToWait3/presentations/07.%20Martin%20Wrigley%20-%20Preservation%20Action%20Registry/OPF%20PAR%20Presentation%20notime%20to%20wait%20event.pdf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
* [[Development|Back to Development]]&lt;br /&gt;
* [[Main Page|AtoM wiki home]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Development documentation]]&lt;/div&gt;</summary>
		<author><name>Kgoetz</name></author>	</entry>

	<entry>
		<id>http://wiki.accesstomemory.org/index.php?title=Development/Archivematica_integration&amp;diff=2187</id>
		<title>Development/Archivematica integration</title>
		<link rel="alternate" type="text/html" href="http://wiki.accesstomemory.org/index.php?title=Development/Archivematica_integration&amp;diff=2187"/>
				<updated>2018-12-07T03:10:12Z</updated>
		
		<summary type="html">&lt;p&gt;Kgoetz: mention new information&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#pagetitle:Archivematica integration}}&lt;br /&gt;
[[Development]] &amp;gt; Development/Archivematica_integration&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Access to Memory (AtoM) and [https://www.archivematica.org Archivematica] have a strong connection - they’re developed by the same vendor and Archivematica uses AtoM as its display frontend. Despite that communication is not currently bidirectional and when an AtoM site has data loaded there is currently no mechanism to synchronise the two platforms.&lt;br /&gt;
&lt;br /&gt;
This page attempts to summarise any discoveries from [https://groups.google.com/forum/#!topic/ica-atom-users/TEkIGSUTEvo/overview the discussion started on AtoM-users] and will, in time, start to form a description of what integration might look like.&lt;br /&gt;
&lt;br /&gt;
There is also a similar project for [https://github.com/eprintsug/EPrintsArchivematica integrating EPrints with Archivematica] who’s standards document includes useful information including layout and other legwork required for an export like this.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Integration should cover ==&lt;br /&gt;
* An AtoM instance that contains records to which Archivematica is added as a backend&lt;br /&gt;
* An AtoM instance which is installed parallel to Archivematica but which is uploaded to directly&lt;br /&gt;
&lt;br /&gt;
This will mean a variety of factors need to be considered (and questions asked) including&lt;br /&gt;
* Data uploaded to AtoM should be exportable to Archivematica for ingest and when the processed data is returned to AtoM no duplicate entries should be recorded.&lt;br /&gt;
* Optional support for Metadata only updates&lt;br /&gt;
* Should thumbnails generated by AtoM be exported and preserved?&lt;br /&gt;
* Does AtoM store revision history? Should we Archive revisions if it does?&lt;br /&gt;
* How will metadata only updates be handled&lt;br /&gt;
* What to do with external digital objects. ensure they are skipped with warning by export process? Export the thumbnails/metadata? Detection code is available [https://github.com/artefactual/atom/blob/stable/2.4.x/lib/model/QubitDigitalObject.php#L1569 in the repository]&lt;br /&gt;
&lt;br /&gt;
== Options for integration ==&lt;br /&gt;
&lt;br /&gt;
=== Option one: Data exported to directory ===&lt;br /&gt;
&lt;br /&gt;
Export required data+metadata into a single directory which Archivematica imports ; AtoM then imports the export package (DIP) created by Archivematica&lt;br /&gt;
&lt;br /&gt;
==== Export stage ====&lt;br /&gt;
Data which we can export (if Archivematica [https://www.archivematica.org/en/docs/archivematica-1.8/user-manual/transfer/transfer/#the-transfer-tab transfer] can use it) which would help populate fields in Archivematica and can then be used to re-match with AtoM after processing.&lt;br /&gt;
&lt;br /&gt;
* Transfer type (File type of item)&lt;br /&gt;
* Transfer name (current items name or description)&lt;br /&gt;
* Accession number (Accession number of item being exported)&lt;br /&gt;
* Access system ID (AtoM install performing export)&lt;br /&gt;
* Approve automatically (make this optional ; some may want it and some not)&lt;br /&gt;
&lt;br /&gt;
[https://www.archivematica.org/en/docs/archivematica-1.8/user-manual/transfer/transfer/#preparing-digital-objects-for-transfer Export structure is important], as with [https://github.com/eprintsug/EPrintsArchivematica EPrints with Archivematica integration] I suggest this project supplies various bits of data (metadata/ , checksums, documentation, etc) as described on [https://www.archivematica.org/en/docs/archivematica-1.8/user-manual/transfer/transfer/#preparing-digital-objects-for-transfer Archivematicas transfer page].&lt;br /&gt;
&lt;br /&gt;
Working draft of filesystem layout&lt;br /&gt;
* object_slug-unique_identifer directory (object slug is the slug stored in DB, unique identifier is however AtoM identifies the object internally)&lt;br /&gt;
** Metadata directory, files in here are formatted per [https://www.archivematica.org/en/docs/archivematica-1.8/user-manual/transfer/import-metadata/#import-metadata Archivematica metadata import documentation] and should be populated with data from AtoM&lt;br /&gt;
*** metadata.csv (mandatory)&lt;br /&gt;
*** rights.csv (mandatory if rights are specified)&lt;br /&gt;
*** checksum.md5, checksum.sha1, or checksum.sha256 TBC: check which format/s AtoM uses and restrict output to that/those format/s&lt;br /&gt;
*** All other available metadata: optional; if supplied by AtoM and configured to export&lt;br /&gt;
** Objects directory, where actual files will go&lt;br /&gt;
*** Structure TODO&lt;br /&gt;
&lt;br /&gt;
AtoM uses [https://github.com/artefactual/atom/blob/stable/2.4.x/lib/model/QubitDigitalObject.php#L1796 getAssetPath] to access its objects so we can lean on that to find files we want&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Reimport ====&lt;br /&gt;
Import is currently managed by AtoM already, but will need to be augmented to deal with new issues.&lt;br /&gt;
&lt;br /&gt;
* AtoM will have the original format files and the normalised format following the conversion. A way to remove the original files will need to be included&lt;br /&gt;
* AtoM will need to ensure it doesn’t enter a loop of: export files -&amp;gt; import from AM -&amp;gt; update files with those from AM -&amp;gt; trigger export of newly imported files.&lt;br /&gt;
* Duplicates in AtoM. Archivematica's DIP upload creates new stub information objects when it deposits the DIP objects - it won't replace existing objects. How manageable this problem is will depend on how much identifying metadata we can feed through Archivematica&lt;br /&gt;
&lt;br /&gt;
Things which might make this easier:&lt;br /&gt;
* Using the functions for managing [https://www.archivematica.org/en/docs/archivematica-1.8/user-manual/transfer/transfer/#transferring-material-with-preservation-or-access-derivatives-manual-normalization Transfer and Access derivatives] or [https://www.archivematica.org/en/docs/archivematica-1.8/user-manual/transfer/transfer/#transferring-material-with-service-mezzanine-files material with service files]&lt;br /&gt;
&lt;br /&gt;
Atom may be extended to use the MDTYPE=OTHER metadata available in the DIP METS file, this would help with the roundtrip and (if it works) might solve all the identification problems.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Option two: Data exported to SIP/bag ===&lt;br /&gt;
&lt;br /&gt;
Export packages (SIPs, bagit, or similar) which can be imported to Archivematica; AtoM then imports the export package (DIP) created by Archivematica.&lt;br /&gt;
&lt;br /&gt;
This is the same as option one, but includes a packaging step at the end.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Option three: Bidirectional communication ===&lt;br /&gt;
&lt;br /&gt;
Atom and Archivematica currently use SWORD1 (a unidirectional protocol) to push data from Archivematica to AtoM. Under this option they would use an existing protocol with bi directional support (eg SWORD2 or the work in progress SWORD3, see  http://swordapp.org/).&lt;br /&gt;
&lt;br /&gt;
* Both applications need changes in this instance&lt;br /&gt;
** Archivematica doesn't support plugins so its not as easy as a plugin at each end to add support.&lt;br /&gt;
* TBD: what would they communicate and how - would a SIP/bag be sent over SWORD or would individual files and associated data be sent and Archivematica packages it up?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* Archivematica's [https://www.archivematica.org/en/docs/archivematica-1.8/getting-started/overview/technical/#format-policies Format Policy] Registry (currently in the process of becoming its own project to be used by multiple digital preservation systems; now known as the Preservation Action Registry) to manage derivatives creation in a more intelligent way.&lt;br /&gt;
&lt;br /&gt;
* TODO describe https://mediaarea.net/Events/2018-10-26_NoTimeToWait3/presentations/07.%20Martin%20Wrigley%20-%20Preservation%20Action%20Registry/OPF%20PAR%20Presentation%20notime%20to%20wait%20event.pdf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
* [[Development|Back to Development]]&lt;br /&gt;
* [[Main Page|AtoM wiki home]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Development documentation]]&lt;/div&gt;</summary>
		<author><name>Kgoetz</name></author>	</entry>

	<entry>
		<id>http://wiki.accesstomemory.org/index.php?title=Community/Community_resources/Development&amp;diff=2184</id>
		<title>Community/Community resources/Development</title>
		<link rel="alternate" type="text/html" href="http://wiki.accesstomemory.org/index.php?title=Community/Community_resources/Development&amp;diff=2184"/>
				<updated>2018-11-29T05:38:19Z</updated>
		
		<summary type="html">&lt;p&gt;Kgoetz: Shibboleth plugins git log indicates it has been updated for 2.3&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#pagetitle:Community development}}&lt;br /&gt;
[[Main Page]] &amp;gt; [[Community]] &amp;gt; [[Community/Community resources]] &amp;gt; Community/Community resources/Development&lt;br /&gt;
&lt;br /&gt;
In this section of the wiki, we'll add links to custom patches, plugins, themes, images, forks, and other resources developed by community users and publicly available for developers to explore and work with.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;admonition type=&amp;quot;warning&amp;quot;&amp;gt;&lt;br /&gt;
'''PLEASE NOTE''': Artefactual does '''not''' test these features and modules developed by AtoM community members. As such, we cannot offer support for them, nor can we speak as to their security, quality, performance, or compatibility with the latest public releases. If you intend to make use of these features, do so at your own risk. We strongly recommend studying the code prior to use, and deploying any community-developed features in a test environment where they can be properly evaluated.&lt;br /&gt;
&amp;lt;/admonition&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;admonition type=&amp;quot;tip&amp;quot;&amp;gt;&lt;br /&gt;
Have you developed custom code for your AtoM installation? Let us know! And... why not consider contributing your code to the public project? That way, we maintain the code for you through future releases, and the entire community benefits from your work! Here are some links to get you started:&lt;br /&gt;
* [[Development/Contribute code]]&lt;br /&gt;
* [[Development#Development_resources|Other developer resources in our wiki]]&lt;br /&gt;
&amp;lt;/admonition&amp;gt;&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==CENDARI Shibboleth authentication plugin==&lt;br /&gt;
&lt;br /&gt;
CENDARI (Collaborative European Digital Archive Infrastructure) is a research collaboration aimed at integrating digital archives and resources for research on medieval and modern European history. They have chosen AtoM for use as their collaborative Archival Directory (site [https://archives.cendari.dariah.eu/ here], more information [http://www.cendari.eu/archival-directories/ here]), and have done some custom development, including a plugin to integrate with [http://shibboleth.net/ Shibboleth], an &amp;quot;''open-source project that provides Single Sign-On capabilities and allows sites to make informed authorization decisions for individual access of protected online resources in a privacy-preserving manner.''&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The plugin was developed against AtoM 2.1, and has had compatibility updates for 2.3. Status of testing against other releases is unknown. The development was done by [https://github.com/schildwaechter Carsten Thiel], primarily between November and December of 2014.&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/CENDARI/sfDariahShibUserPlugin GitHub repository]&lt;br /&gt;
* [https://int2.cendari.dariah.eu/docs/developer/atom/shibboleth.html Plugin documentation]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==PeaceWorks MAID plugins ==&lt;br /&gt;
&lt;br /&gt;
In March of 2015, [http://www.peaceworks.ca/ PeaceWorks Technology Solutions] helped to launch [http://archives.mhsc.ca/ MAID] (Mennonite Archival Image Database), a collaborative project of the Mennonite Historical Society of Canada  which includes Mennonite archival partners in British Columbia, Alberta, Saskatchewan, Manitoba, and Ontario, with images held in a shared AtoM instance. Over the course of the 2-year design and development project leading up to the launch, PeaceWorks developed several custom features and plugins for use in MAID, including an eCommerce &amp;quot;shopping cart&amp;quot; plugin for purchasing prints of images available in MAID; an image carousel for the home page; integration with [http://www.tinymce.com/ TinyMCE] to add a [https://en.wikipedia.org/wiki/WYSIWYG WYSIWYG] set of editing tools to AtoM's static pages (e.g. so users did not need to know basic HTML to style static pages); and the ability to upload a different watermark (to be applied to digital object derivatives) for each institution. More details on each below.&lt;br /&gt;
&lt;br /&gt;
===eCommerce plugin===&lt;br /&gt;
&lt;br /&gt;
This plugin has been developed by [https://github.com/jasonhildebrand Jason Hildebrand] of  [http://www.peaceworks.ca/ PeaceWorks Technology Solutions], primarily between July 2014 and March 2015.&lt;br /&gt;
&lt;br /&gt;
According to the [https://github.com/PeaceWorksTechnologySolutions/atom/blob/ecommerce/plugins/sfEcommercePlugin/README.md plugin documentation's] Overview section, &amp;quot;This plugin allows website visitors to select and purchase individual photos. Payment for the photos happens via PayPal. E-Commerce admins review each order and may approve or reject (remove) photos from the order. After approval, the customer is sent an email containing a link which they can use to download the image(s).&lt;br /&gt;
&lt;br /&gt;
Users have access to a shopping cart, where photos from multiple repositories can be added as users browse the site, and then ordered/checked out via PayPal. The shopping cart has basic integration with AtoM's PREMIS rights module, so when Dissemination = &amp;quot;Disallow,&amp;quot; a message about restrictions is supplied instead. Other features include a vacation setting and a sales report.&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/PeaceWorksTechnologySolutions/atom/tree/ecommerce PeaceWorks GitHub AtoM fork, eCommerce branch]&lt;br /&gt;
* [https://github.com/PeaceWorksTechnologySolutions/atom/blob/ecommerce/plugins/sfEcommercePlugin/README.md eCommerce plugin documentation]&lt;br /&gt;
* [http://archives.mhsc.ca/ MAID], where you can see the shopping cart in action&lt;br /&gt;
&lt;br /&gt;
MAID has also prepared a summary description of the plugin's functionality, available as a PDF here:&lt;br /&gt;
&lt;br /&gt;
* [[File:Ecommerce-MAID.pdf]] (PDF, approx 431KB)&lt;br /&gt;
&lt;br /&gt;
===Home page carousel plugin===&lt;br /&gt;
&lt;br /&gt;
This plugin has been developed by [https://github.com/jasonhildebrand Jason Hildebrand] of  [http://www.peaceworks.ca/ PeaceWorks Technology Solutions], primarily between July 2014 and March 2015.&lt;br /&gt;
&lt;br /&gt;
This plugin adds a slideshow to the AtoM front page which displays up to 30 of the most recently added/updated photos in the system. Photos and their captions (if available) are displayed. Users may click a photo to go to its archival description.&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/PeaceWorksTechnologySolutions/atom/tree/carousel PeaceWorks GitHub AtoM fork, Carousel branch]&lt;br /&gt;
* [https://github.com/PeaceWorksTechnologySolutions/atom/blob/carousel/plugins/sfCarouselPlugin/README.md Carousel README documentation]&lt;br /&gt;
* [http://archives.mhsc.ca/ MAID] homepage, where you can see the carousel in action&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===TinyMCE visual editor integration for editing static pages===&lt;br /&gt;
&lt;br /&gt;
This integration has been developed by [https://github.com/jasonhildebrand Jason Hildebrand] of  [http://www.peaceworks.ca/ PeaceWorks Technology Solutions], primarily between April 2014 and March 2015. At this time, this integration has not been packaged as a plugin.&lt;br /&gt;
&lt;br /&gt;
[http://www.tinymce.com/ TinyMCE] is &amp;quot;'' a platform independent web based Javascript HTML [https://en.wikipedia.org/wiki/WYSIWYG WYSIWYG] editor control released as Open Source under LGPL,''&amp;quot; that, when integrated with AtoM, allows users unfamiliar with HTML to style static pages using familiar buttons, tools, and other user interface elements. The integration includes basic text styling (bold, underline, italics), table creation, image and file upload, link creation, and more.&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/PeaceWorksTechnologySolutions/atom/tree/tinymce PeaceWorks GitHub AtoM fork, TinyMCE branch]&lt;br /&gt;
* [https://github.com/PeaceWorksTechnologySolutions/atom/blob/tinymce/README_tinymce.md TinyMCE README documentation]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Per-institution watermarks for digital objects===&lt;br /&gt;
&lt;br /&gt;
This integration has been developed by [https://github.com/jasonhildebrand Jason Hildebrand] of  [http://www.peaceworks.ca/ PeaceWorks Technology Solutions], between July 2014 and March 2015 (primarily in July 2014). At this time, this integration has not been packaged as a plugin.&lt;br /&gt;
&lt;br /&gt;
AtoM includes the little-known ability to apply a watermark to uploaded photos. However there is only provision for a single global watermark which is applied to all images. This customization allows each institution to have their own watermark, and institutional watermarks can be uploaded and managed via the user interface, in the archival institution's &amp;quot;Edit theme&amp;quot; page. Uploading a new watermark will not affect photos already present in AtoM, but AtoM does provide a way for a developer to cause all watermarks to be re-applied (see “Regenerating Derivatives” in the Command-line tools section of the Administrator's Manual of the [https://www.accesstomemory.org/docs AtoM documentation] for more details).&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/PeaceWorksTechnologySolutions/atom/tree/multiple-watermarks Peaceworks GitHub AtoM fork, multiple-watermarks branch]&lt;br /&gt;
* [https://github.com/PeaceWorksTechnologySolutions/atom/commit/6e1e9e9e4bd4c2df5bf4da7b4063e4c739031fb4 the commit with the changes]&lt;br /&gt;
* [https://github.com/PeaceWorksTechnologySolutions/atom/blob/multiple-watermarks/README_watermarks.md Multiple watermarks README documentation]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Docker and AtoM==&lt;br /&gt;
&lt;br /&gt;
Two different community developers have combined AtoM with [https://www.docker.com/ Docker], an open, container-based virtualization platform for distributed applications. Details below.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;admonition type=&amp;quot;tip&amp;quot;&amp;gt;&lt;br /&gt;
Did you know? As of the AtoM 2.3 release, the AtoM project now has its own officially supported Docker Compose development environment! See:&lt;br /&gt;
* https://www.accesstomemory.org/docs/2.3/dev-manual/env/compose/&lt;br /&gt;
&amp;lt;/admonition&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===AtoM Docker Files===&lt;br /&gt;
&lt;br /&gt;
Created by Dominic Boisvert ([https://github.com/DominicBoisvert @DominicBoisvert]) for use in an archival course taught at the University of Montreal, Boisvert has shared Docker files for [[Releases/Release_announcements/Release_2.1.2|AtoM 2.1.2]], and [[Releases/Release_announcements/Release_2.1.1,_2.0.2,_1.3.2|ICA-AtoM 1.3.2]], including simple installation instructions (written in French):&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/ARV3054/docker-atom AtoM 2.1.2 Dockerfile]&lt;br /&gt;
* [https://github.com/ARV3054/docker-ica-atom ICA-AtoM 1.3.2 Dockerfile]&lt;br /&gt;
&lt;br /&gt;
===AtoM Docker Compose recipe===&lt;br /&gt;
&lt;br /&gt;
Created by John Fink ([https://github.com/jbfink @jbfink]), this is a Docker [https://docs.docker.com/compose/ Compose] recipe for AtoM. Compose is described by Docker as &amp;quot;''a tool for defining and running multi-container applications with Docker. With Compose, you define a multi-container application in a single file, then spin your application up in a single command which does everything that needs to be done to get it running.''&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The developer adds, &amp;quot;''Note that I've only tested this on 64bit native Linux using Docker directly, so if you're using boot2docker or a VM things might be different.''&amp;quot; For further configuration information and troubleshooting, see the [https://github.com/jbfink/docker-atom/blob/master/README.md README] provided.&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/jbfink/docker-atom Docker Compose recipe for AtoM - GitHub repository]&lt;br /&gt;
* [https://github.com/jbfink/docker-atom/blob/master/README.md README file for configuration and troubleshooting]&lt;br /&gt;
* [https://groups.google.com/d/topic/ica-atom-users/p7ACO3jKZv8/discussion Related AtoM User Forum thread]&lt;br /&gt;
&lt;br /&gt;
===AtoM Docker Image===&lt;br /&gt;
&lt;br /&gt;
Created by the Governo Regional Azores, this is a Docker image of AtoM 2.2.0. Note that it does not currently include the MySQL database required for AtoM, which needs to be linked.&lt;br /&gt;
&lt;br /&gt;
* [https://hub.docker.com/r/governoregionalazores/atom-accesstomemory/ Link on the DockerHub page]&lt;br /&gt;
* [https://github.com/GovernoRegionalAcores/atom-accesstomemory GitHub repository for the Docker image]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==AtoM 2.3 ISO image - ready for use on a flash drive==&lt;br /&gt;
&lt;br /&gt;
A group of archivists in Brazil, the [http://documentosarquivisticosdigitais.blogspot.com.br/ Grupo de Pesquisa do CNPq GED/A e Patrimônio Documental Arquivístico], have used the  [https://launchpad.net/systemback SystemBack] backup management tool to prepare an ISO image of AtoM 2.3 that can be launched from a flash drive. From the related blog post:&lt;br /&gt;
&lt;br /&gt;
* Operating System: Ubuntu 16.04 - 64 Bits;&lt;br /&gt;
* Size: 3GBs&lt;br /&gt;
* Format: sblive&lt;br /&gt;
* Remasterer: SystemBack&lt;br /&gt;
&lt;br /&gt;
&amp;quot;''After Download, use SystemBack to write to the flash drive, and use with a system boot that is persistent - your data stored in the session will remain available in the next.'&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Ubuntu Linux password: &amp;lt;code&amp;gt;icaatom99&amp;lt;/code&amp;gt;&lt;br /&gt;
* User in AtoM (ICA-AtoM): &amp;lt;code&amp;gt;GrupoCNPqDocsDigitais@gmail.com&amp;lt;/code&amp;gt;&lt;br /&gt;
* Password in AtoM (ICA-AtoM):  &amp;lt;code&amp;gt;icaatom&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Blog post here (Brazilian Portuguese): http://documentosarquivisticosdigitais.blogspot.com.br/2017/01/o-grupo-de-pesquisa-cnpq-ufsm-geda.html&lt;br /&gt;
* Download link: https://drive.google.com/file/d/0BwBRoubj23bpNWZLSVhtSmNoN00/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==HTML scrub scripts for other entities==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;admonition type=&amp;quot;important&amp;quot;&amp;gt;&lt;br /&gt;
'''UPDATE''': Thanks to collaboration among several community members, this work has now been added to the existing AtoM task, and merged into the 2.4 release. For more information, see:&lt;br /&gt;
&lt;br /&gt;
* Issue ticket: https://projects.artefactual.com/issues/11207&lt;br /&gt;
* Source pull request: https://github.com/artefactual/atom/pull/568&lt;br /&gt;
&lt;br /&gt;
Thank you to Clara Rosales and Darryl Friesen for this collaborative enhancement!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/admonition&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In [[Releases/Release_announcements/Release_2.2|Release 2.2]] we introduced [[Releases/Release_announcements/Release_2.2#Security_enhancement:_HTML_escaping_to_prevent_XSS_exploits|HTML escaping]] as part of the security enhancements included in the release - the related work is captured in issue ticket #7647. Since some users might have legacy HTML content in their descriptions, we also included a command-line task that would allow users to scrub legacy HTML from archival descriptions - see the related documentation [https://www.accesstomemory.org/docs/latest/admin-manual/maintenance/cli-tools/#remove-html-content-from-archival-description-fields here].&lt;br /&gt;
&lt;br /&gt;
However, this task '''only''' currently works for archival descriptions. To help clean up other entities, users from Brazil have adapted versions of the original task that can be run for actors, notes, repository records, and rights records. These were posted in the AtoM user forum on 2017-05-22:&lt;br /&gt;
&lt;br /&gt;
* https://groups.google.com/d/msg/ica-atom-users/_xdBK0ucegg/RQnNM5DKBAAJ&lt;br /&gt;
&lt;br /&gt;
Artefactual has not tested these scripts. To run them:&lt;br /&gt;
&lt;br /&gt;
# Download and unzip the rar file attached to the message in the user forum.&lt;br /&gt;
# Place the scripts in a directory accessible from the root directory of your AtoM instance, such as a new tmp directory.&lt;br /&gt;
# Use the tools:run command to run each script. For example, for the script to clean up HTML in authority records:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
php symfony tools:run tmp/actor_i18n.php&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The effects will be similar to what is described for the command-line task:&lt;br /&gt;
&lt;br /&gt;
* https://www.accesstomemory.org/docs/latest/admin-manual/maintenance/cli-tools/#remove-html-content-from-archival-description-fields&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
* [[Community/Community resources|Back to Community resources]]&lt;br /&gt;
* [[Community|Back to Community landing page]]&lt;br /&gt;
* [[Main Page|Main AtoM wiki page]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Community]]&lt;/div&gt;</summary>
		<author><name>Kgoetz</name></author>	</entry>

	<entry>
		<id>http://wiki.accesstomemory.org/index.php?title=Development/Archivematica_integration&amp;diff=2183</id>
		<title>Development/Archivematica integration</title>
		<link rel="alternate" type="text/html" href="http://wiki.accesstomemory.org/index.php?title=Development/Archivematica_integration&amp;diff=2183"/>
				<updated>2018-11-28T22:08:55Z</updated>
		
		<summary type="html">&lt;p&gt;Kgoetz: Start of an atom -&amp;gt; archivematica syncronisation spec&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#pagetitle:Archivematica integration}}&lt;br /&gt;
[[Development]] &amp;gt; Development/Archivematica_integration&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Access to Memory (AtoM) and [https://www.archivematica.org Archivematica] have a strong connection - they’re developed by the same vendor and Archivematica uses AtoM as its display frontend. Despite that communication is not currently bidirectional and when an AtoM site has data loaded there is currently no mechanism to synchronise the two platforms.&lt;br /&gt;
&lt;br /&gt;
This page attempts to summarise any discoveries from [https://groups.google.com/forum/#!topic/ica-atom-users/TEkIGSUTEvo/overview the discussion started on AtoM-users] and will, in time, start to form a description of what integration might look like.&lt;br /&gt;
&lt;br /&gt;
There is also a similar project for [https://github.com/eprintsug/EPrintsArchivematica integrating EPrints with Archivematica] who’s standards document includes useful information including layout and other legwork required for an export like this.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Integration should cover ==&lt;br /&gt;
* An AtoM instance that contains records to which Archivematica is added as a backend&lt;br /&gt;
* An AtoM instance which is installed parallel to Archivematica but which is uploaded to directly&lt;br /&gt;
&lt;br /&gt;
This will mean a variety of factors need to be considered (and questions asked) including&lt;br /&gt;
* Data uploaded to AtoM should be exportable to Archivematica for ingest and when the processed data is returned to AtoM no duplicate entries should be recorded.&lt;br /&gt;
* Optional support for Metadata only updates&lt;br /&gt;
* Should thumbnails generated by AtoM be exported and preserved?&lt;br /&gt;
* Does AtoM store revision history? Should we Archive revisions if it does?&lt;br /&gt;
* How will metadata only updates be handled&lt;br /&gt;
* What to do with external digital objects. ensure they are skipped with warning by export process? Export the thumbnails/metadata? Detection code is available [https://github.com/artefactual/atom/blob/stable/2.4.x/lib/model/QubitDigitalObject.php#L1569 in the repository]&lt;br /&gt;
&lt;br /&gt;
== Options for integration ==&lt;br /&gt;
&lt;br /&gt;
=== Option one: Data exported to directory ===&lt;br /&gt;
&lt;br /&gt;
Export required data+metadata into a single directory which Archivematica imports ; AtoM then imports the export package (DIP) created by Archivematica&lt;br /&gt;
&lt;br /&gt;
==== Export stage ====&lt;br /&gt;
Data which we can export (if Archivematica [https://www.archivematica.org/en/docs/archivematica-1.8/user-manual/transfer/transfer/#the-transfer-tab transfer] can use it) which would help populate fields in Archivematica and can then be used to re-match with AtoM after processing.&lt;br /&gt;
&lt;br /&gt;
* Transfer type (File type of item)&lt;br /&gt;
* Transfer name (current items name or description)&lt;br /&gt;
* Accession number (Accession number of item being exported)&lt;br /&gt;
* Access system ID (AtoM install performing export)&lt;br /&gt;
* Approve automatically (make this optional ; some may want it and some not)&lt;br /&gt;
&lt;br /&gt;
[https://www.archivematica.org/en/docs/archivematica-1.8/user-manual/transfer/transfer/#preparing-digital-objects-for-transfer Export structure is important], as with [https://github.com/eprintsug/EPrintsArchivematica EPrints with Archivematica integration] I suggest this project supplies various bits of data (metadata/ , checksums, documentation, etc) as described on [https://www.archivematica.org/en/docs/archivematica-1.8/user-manual/transfer/transfer/#preparing-digital-objects-for-transfer Archivematicas transfer page].&lt;br /&gt;
&lt;br /&gt;
Working draft of filesystem layout&lt;br /&gt;
* object_slug-unique_identifer directory (object slug is the slug stored in DB, unique identifier is however AtoM identifies the object internally)&lt;br /&gt;
** Metadata directory, files in here are formatted per [https://www.archivematica.org/en/docs/archivematica-1.8/user-manual/transfer/import-metadata/#import-metadata Archivematica metadata import documentation] and should be populated with data from AtoM&lt;br /&gt;
*** metadata.csv (mandatory)&lt;br /&gt;
*** rights.csv (mandatory if rights are specified)&lt;br /&gt;
*** checksum.md5, checksum.sha1, or checksum.sha256 TBC: check which format/s AtoM uses and restrict output to that/those format/s&lt;br /&gt;
*** All other available metadata: optional, populate if supplied by AtoM and configured to export&lt;br /&gt;
** Objects directory, where actual files will go&lt;br /&gt;
*** Structure TODO&lt;br /&gt;
&lt;br /&gt;
AtoM uses [https://github.com/artefactual/atom/blob/stable/2.4.x/lib/model/QubitDigitalObject.php#L1796 getAssetPath] to access its objects so we can lean on that to find files we want&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Reimport ====&lt;br /&gt;
Import is currently managed by AtoM already, but will need to be augmented to deal with new issues.&lt;br /&gt;
&lt;br /&gt;
* AtoM will have the original format files and the normalised format following the conversion. A way to remove the original files will need to be included&lt;br /&gt;
* AtoM will need to ensure it doesn’t enter a loop of: export files -&amp;gt; import from AM -&amp;gt; update files with those from AM -&amp;gt; trigger export of newly imported files.&lt;br /&gt;
* Duplicates in AtoM. Archivematica's DIP upload creates new stub information objects when it deposits the DIP objects - it won't replace existing objects. How manageable this problem is will depend on how much identifying metadata we can feed through Archivematica&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Option two: Data exported to SIP/bag ===&lt;br /&gt;
&lt;br /&gt;
Export packages (SIPs, bagit, or similar) which can be imported to Archivematica; AtoM then imports the export package (DIP) created by Archivematica.&lt;br /&gt;
&lt;br /&gt;
This is the same as option one, but includes a packaging step at the end.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Option three: Bidirectional communication ===&lt;br /&gt;
&lt;br /&gt;
Atom and Archivematica currently use SWORD1 (a unidirectional protocol) to push data from Archivematica to AtoM. Under this option they would use an existing protocol with bi directional support (eg SWORD2 or the work in progress SWORD3, see  http://swordapp.org/).&lt;br /&gt;
&lt;br /&gt;
* Both applications need changes in this instance&lt;br /&gt;
** Archivematica doesn't support plugins so its not as easy as a plugin at each end to add support.&lt;br /&gt;
* TBD: what would they communicate and how - would a SIP/bag be sent over SWORD or would individual files and associated data be sent and Archivematica packages it up?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* Archivematica's [https://www.archivematica.org/en/docs/archivematica-1.8/getting-started/overview/technical/#format-policies Format Policy] Registry (currently in the process of becoming its own project to be used by multiple digital preservation systems; now known as the Preservation Action Registry) to manage derivatives creation in a more intelligent way.&lt;br /&gt;
&lt;br /&gt;
* TODO describe https://mediaarea.net/Events/2018-10-26_NoTimeToWait3/presentations/07.%20Martin%20Wrigley%20-%20Preservation%20Action%20Registry/OPF%20PAR%20Presentation%20notime%20to%20wait%20event.pdf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
* [[Development|Back to Development]]&lt;br /&gt;
* [[Main Page|AtoM wiki home]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Development documentation]]&lt;/div&gt;</summary>
		<author><name>Kgoetz</name></author>	</entry>

	</feed>