<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.archivematica.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Artefactual</id>
	<title>Archivematica - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.archivematica.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Artefactual"/>
	<link rel="alternate" type="text/html" href="https://wiki.archivematica.org/Special:Contributions/Artefactual"/>
	<updated>2026-06-03T02:32:13Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.35.4</generator>
	<entry>
		<id>https://wiki.archivematica.org/index.php?title=User:Jhs&amp;diff=13722</id>
		<title>User:Jhs</title>
		<link rel="alternate" type="text/html" href="https://wiki.archivematica.org/index.php?title=User:Jhs&amp;diff=13722"/>
		<updated>2024-07-19T06:29:09Z</updated>

		<summary type="html">&lt;p&gt;Artefactual: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Justin Simpson is the Managing Director at Artefactual Systems.&lt;/div&gt;</summary>
		<author><name>Artefactual</name></author>
	</entry>
	<entry>
		<id>https://wiki.archivematica.org/index.php?title=User:Kpunia&amp;diff=13720</id>
		<title>User:Kpunia</title>
		<link rel="alternate" type="text/html" href="https://wiki.archivematica.org/index.php?title=User:Kpunia&amp;diff=13720"/>
		<updated>2024-06-06T15:32:02Z</updated>

		<summary type="html">&lt;p&gt;Artefactual: Creating user page for new user.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is Katie's Artefactual account. Thank you - thank you!&lt;/div&gt;</summary>
		<author><name>Artefactual</name></author>
	</entry>
	<entry>
		<id>https://wiki.archivematica.org/index.php?title=User:Diab&amp;diff=13719</id>
		<title>User:Diab</title>
		<link rel="alternate" type="text/html" href="https://wiki.archivematica.org/index.php?title=User:Diab&amp;diff=13719"/>
		<updated>2024-06-03T12:13:43Z</updated>

		<summary type="html">&lt;p&gt;Artefactual: Creating user page for new user.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I'm 53 years old and a software architect. I'm interested in archivematica to learn more about integration of the tool as ingestion-tool.&lt;/div&gt;</summary>
		<author><name>Artefactual</name></author>
	</entry>
	<entry>
		<id>https://wiki.archivematica.org/index.php?title=Main_Page&amp;diff=13694</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.archivematica.org/index.php?title=Main_Page&amp;diff=13694"/>
		<updated>2023-08-14T15:49:25Z</updated>

		<summary type="html">&lt;p&gt;Artefactual: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;background: #fff; float: right; padding: 1em; width: 30%&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;download&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Free Demo and Download ==&lt;br /&gt;
* [http://sandbox.archivematica.org Demo] - see [[Sandbox|Sandbox info]] for login&lt;br /&gt;
* [[Release Notes|Release notes]]&lt;br /&gt;
* [https://www.archivematica.org/en/docs/latest/admin-manual/installation-setup/installation/installation/ Installation]&lt;br /&gt;
* [http://www.artefactual.com/services/ Installation services]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;documentation&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== [https://www.archivematica.org/ How to use Archivematica] ==&lt;br /&gt;
* User and administrative manuals at [http://www.archivematica.org archivematica.org]&lt;br /&gt;
* [https://www.artefactual.com/services/training/ Training services]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;development&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== [[Development|Developer resources]] ==&lt;br /&gt;
*[[Development roadmap: Archivematica|Development roadmap]]&lt;br /&gt;
* Development [[Documentation|documentation]]&lt;br /&gt;
*[[Improvements|Proposed Improvements]]&lt;br /&gt;
*[https://projects.artefactual.com/projects/archivematica Issues list]&lt;br /&gt;
*[https://www.artefactual.com/partners/ Become an innovation partner]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;community&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== [[Community|Community]] ==&lt;br /&gt;
*[https://groups.google.com/group/archivematica Discussion list]&lt;br /&gt;
* [https://wiki.archivematica.org/Community/Regional_User_Groups Regional groups]&lt;br /&gt;
*[[https://github.com/archivematica/archivematica-case-studies Case Studies]] &lt;br /&gt;
*[[Community|Free community resources]]&lt;br /&gt;
*[http://www.artefactual.com/services/archivematica/maintenance/ Get support]&lt;br /&gt;
*[[Contributors|Contributors]]&lt;br /&gt;
*[[Community/Camps|Camps]]&lt;br /&gt;
*[https://twitter.com/archivematica Twitter]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ''This is the Archivematica development wiki. For user and administrative manuals, as well as installation information, please visit [http://www.archivematica.org archivematica.org].'' ==&lt;br /&gt;
&lt;br /&gt;
='''Archivematica gets its own issues repo'''=&lt;br /&gt;
Artefactual has moved towards a centralized [https://github.com/archivematica/Issues Issues repository on Github ] to track all bugs, enhancements and feature requests in the Archivematica environment.&lt;br /&gt;
&lt;br /&gt;
From now on issues should be filed against the Issues repo instead of against a repo in the Artefactual organization.&lt;br /&gt;
&lt;br /&gt;
='''What is Archivematica?'''=&lt;br /&gt;
&lt;br /&gt;
Archivematica is a free and open-source [[wikipedia:Digital preservation|digital preservation]] system that is designed to maintain long-term access to digital memory. Archivematica is packaged with the web-based content management system [https://www.accesstomemory.org/ AtoM] for access to your digital objects.&lt;br /&gt;
&lt;br /&gt;
The [[overview]] section provides a detailed description of Archivematica's functionality and technical architecture.  This screencast gives a demo of the core features in the most current release of the system. &lt;br /&gt;
&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot; border=&amp;quot;0&amp;quot; style=&amp;quot;margin: 20px 0;&amp;quot; class=&amp;quot;youtube&amp;quot;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | &amp;lt;youtube&amp;gt;EjStNDXK48U&amp;lt;/youtube&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==='''Standards-based'''===&lt;br /&gt;
&lt;br /&gt;
Archivematica uses a [http://en.wikipedia.org/wiki/Microservices micro-services] design pattern to provide an integrated suite of software tools that allows users to process digital objects from ingest to access in compliance with the ISO-OAIS functional model. Users monitor and control the micro-services via a web-based dashboard. Archivematica uses METS, PREMIS (events, agents, rights and restrictions), Dublin Core, the Library of Congress BagIt specification and other best practice standards and practices to provide trustworthy, authentic, reliable, and interoperable archival packages (AIPs) for storage in your preferred repository.&lt;br /&gt;
&lt;br /&gt;
==='''Open source'''===&lt;br /&gt;
&lt;br /&gt;
All Archivematica code is released under a GNU Affero General Public License ([http://www.gnu.org/licenses/agpl.html AGPL 3.0]) – giving you the freedom to study, modify, improve, and distribute it. We believe that an important part of preservation is transparency, and that memory institutions should be able to demonstrate at every stage what happens when they process cultural heritage materials for preservation. Archivematica [https://github.com/artefactual code] is always freely available, and our documentation is also released under a Creative Commons Share-alike license.&lt;br /&gt;
&lt;br /&gt;
==='''Flexible and customizable'''===&lt;br /&gt;
&lt;br /&gt;
Archivematica provides several decision points that give the user control over choices about format identification tools, printing the original order of the directories ingested, examining contents for private and personal information, extracting contents of packages and forensic images, transcribing content, and more. Users may also preconfigure most of these options for seamless ingest to archival storage and access. Archivematica offers many ingest workflows: metadata and submission documentation import, zipped and unzipped Bag ingest, digital forensic image processing, SIP arrangement, manual normalization, and dataset management.&lt;br /&gt;
&lt;br /&gt;
==='''Compatible with hundreds of formats'''===&lt;br /&gt;
&lt;br /&gt;
In the Format Policy Registry (FPR), Archivematica implements its default [[media type preservation plans|format policies]] based on an analysis of the [[significant characteristics]] of file formats. The FPR also offers an editable, flexible framework for format identification, package extraction, transcription and normalization for preservation and access. Your institution can update tools, rules and commands in your local FPR from the Artefactual-managed FPR server. You can also add your own, local policies to your internal FPR. The FPR is integrated with PRONOM.&lt;br /&gt;
&lt;br /&gt;
==='''Advanced search and storage management'''===&lt;br /&gt;
&lt;br /&gt;
You can easily search your backlog and your archival storage from within your Archivematica web-based dashboard. This means you can download stored AIPs as complete packages, individual objects, or every package in an AIC. You can also manage your storage and processing locations using the Archivematica Storage Service, including a two-step deletion process that requires justification and approval to eliminate a stored AIP.&lt;br /&gt;
&lt;br /&gt;
==='''Integration with third-parties'''===&lt;br /&gt;
&lt;br /&gt;
Memory institutions have dedicated voluminous resources over the past couple of decades to implement various software platforms and tools to manage digital objects. For this reason, we believe in leveraging the strength of other tools and integrating with them wherever possible. Highlights include: [https://www.accesstomemory.org/en/ AtoM], [http://www.dspace.org/ DSpace], [http://www.contentdm.org/ CONTENTdm], [http://islandora.ca/ Islandora], [http://www.lockss.org/ LOCKSS], [http://www.duracloud.org/ DuraCloud], [http://www.openstack.org/ OpenStack] and [http://www.archiviststoolkit.org/ Archivists' Toolkit]&lt;br /&gt;
&lt;br /&gt;
The software applications integrated into Archivematica are each released under their own open source license. These are checked for license compatibility before they are integrated into the project. A full list of applications with their respective license is available on the [[External tools|external software tools]] page.&lt;br /&gt;
&lt;br /&gt;
==='''Lead developers and partners'''===&lt;br /&gt;
This project is managed by [http://artefactual.com/archivematica.html Artefactual Systems]. Key funding contrbutors have included UNESCO Memory of the World's [http://portal.unesco.org/ci/en/ev.php-URL_ID=1720&amp;amp;URL_DO=DO_TOPIC&amp;amp;URL_SECTION=201.html Subcommittee on Technology], the [http://vancouver.ca/ctyclerk/archives/ City of Vancouver Archives], [http://www.library.hbs.edu/ Harvard Business School Baker Library], the [http://www.moma.org/ Museum of Modern Art (MoMA)], the [http://www.library.ualberta.ca/ University of Alberta Libraries], the [http://diginit.library.ubc.ca/ University of British Columbia Library], the [http://rockarch.org/ Rockefeller Archive Center], [http://www.sfu.ca/archives/ Simon Fraser University Archives and Records Management], [http://www.library.yale.edu/ Yale University Library], [http://www.zib.de/en/home.html Zuse-Institute Berlin], [http://www.coppul.ca/ Council of Prairie and Pacific University Libraries (COPPUL)], [http://bentley.umich.edu/ Bentley Historical Library, University of Michigan], [http://duraspace.org Duraspace], [http://libraries.mit.edu/ MIT Libraries], [http://www.ocul.on.ca/ Ontario Council of University Libraries], [https://www.llgc.org.uk/ National Library of Wales], [http://www.archivescanada.ca/ Canadian Council of Archives] and a number of other collaborators.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Artefactual_Logo.png|240px|center|link=http://www.artefactual.com/]] [[File:Cva.gif|160px]] [[File:Ubcblue_full.png|80px]] [[File:RAC-logo.png|80px]] [[File:Logo_en.gif|140px]][[File:SFULogo.jpg|150px]] [[File:UofAlogo.png|180px]][[File:LOGO_ulib_4cp_under75_png_4f05de2698.png|200px]] [[File:MoMA.png|180px]] [[File:FinalULBlues_copy.png|300px]] [[File:ZIBlogo-mediumlines.png|75px]] [[File:HarvardBaker30_image.png|250px]] [[File:Coppullogo.jpg‎]] [[File:UM-BHL-logo.png|120px]] [[File:DuraSpace_logo_horiz_300.png|260px]][[File:Mit_logo.png]] [[File:ocul_logo.png|200 px]] [[File:york_logo.png|240px]] [[File:hull_logo.png|220px]]  [[File:NLW_logo1.jpg|330px]] [[File:Blue_Eng_First.png|360 px]] [[File:logo-en.png|360 px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;/div&gt;</summary>
		<author><name>Artefactual</name></author>
	</entry>
	<entry>
		<id>https://wiki.archivematica.org/index.php?title=Archivematica_1.13.0_and_Storage_Service_0.18.0_release_notes&amp;diff=13601</id>
		<title>Archivematica 1.13.0 and Storage Service 0.18.0 release notes</title>
		<link rel="alternate" type="text/html" href="https://wiki.archivematica.org/index.php?title=Archivematica_1.13.0_and_Storage_Service_0.18.0_release_notes&amp;diff=13601"/>
		<updated>2021-08-18T17:45:01Z</updated>

		<summary type="html">&lt;p&gt;Artefactual: /* Other changes */ minor typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Main_Page|Home]] &amp;gt; [[Release_Notes|Release Notes]] &amp;gt; Archivematica 1.13.0 and Storage Service 0.18.0&lt;br /&gt;
&lt;br /&gt;
'''Release date: July 12, 2021'''&lt;br /&gt;
&lt;br /&gt;
== Environments ==&lt;br /&gt;
&lt;br /&gt;
Please see the [https://www.archivematica.org/en/docs/archivematica-1.13/admin-manual/installation-setup/installation/installation/#installation installation instructions].&lt;br /&gt;
&lt;br /&gt;
Archivematica 1.13.0 and Storage Service 0.18.0 have been tested in the following environments:&lt;br /&gt;
&lt;br /&gt;
* Ubuntu 18.04 64-bit Server Edition&lt;br /&gt;
* CentOS 7 64-bit&lt;br /&gt;
&lt;br /&gt;
Please note that we've dropped support for Ubuntu Linux 16.04 since it reached the end of its five-year LTS window on April 30th 2021. We're planning to add support for Ubuntu 20.04 in the short term.&lt;br /&gt;
&lt;br /&gt;
For development purposes, most of our developers prefer to use Docker containers. These and all above environments are linked from the installation instructions above.&lt;br /&gt;
&lt;br /&gt;
== Added ==&lt;br /&gt;
&lt;br /&gt;
=== Disableable virus scanning ===&lt;br /&gt;
&lt;br /&gt;
* Issue: https://github.com/archivematica/Issues/issues/869&lt;br /&gt;
&lt;br /&gt;
Virus scanning can now be disabled from the processing configuration.&lt;br /&gt;
&lt;br /&gt;
This change was '''contributed''' by Bodleian Library. Thank you!&lt;br /&gt;
&lt;br /&gt;
=== Purge management command ===&lt;br /&gt;
&lt;br /&gt;
* Issue: https://github.com/archivematica/Issues/issues/1239&lt;br /&gt;
&lt;br /&gt;
A new [https://www.archivematica.org/en/docs/archivematica-1.13/admin-manual/maintenance/maintenance/#management-commands management command] has been added to provide a mechanism to remove old processing data from the system filling up the application database and search indices.&lt;br /&gt;
&lt;br /&gt;
=== Strong password validation ===&lt;br /&gt;
&lt;br /&gt;
* Issue: https://github.com/archivematica/Issues/issues/1332&lt;br /&gt;
&lt;br /&gt;
Archivematica and the Storage Service can now require strong passwords for user accounts. Prompts are given when creating a new user if the password doesn't meet the requirements.&lt;br /&gt;
&lt;br /&gt;
This feature was '''sponsored''' by the City of Winnipeg Archives. Thank you!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Audit logging capability ===&lt;br /&gt;
&lt;br /&gt;
* Issue: https://github.com/archivematica/Issues/issues/1341&lt;br /&gt;
&lt;br /&gt;
This addition allows audit logs to be written to third party applications- Artefactual Systems' implementation of this is in a new application called [https://github.com/artefactual-labs/auditmatica Auditmatica]. The change in Archivematica and the Storage Service is only to facilitate the capture of audit logging information in other applications.&lt;br /&gt;
&lt;br /&gt;
This addition was '''sponsored''' by the City of Winnipeg Archives. Thank you!&lt;br /&gt;
&lt;br /&gt;
=== Customized workflow file ===&lt;br /&gt;
&lt;br /&gt;
* Issue: https://github.com/archivematica/Issues/issues/1441&lt;br /&gt;
&lt;br /&gt;
This feature allows the user to indicate the location/existence of a customized workflow document, in json. This would allow institutions to add to the Archivematica workflow (e.g. custom micro-services) in a way that is easier to maintain through upgrades. Developer documentation is pending.&lt;br /&gt;
&lt;br /&gt;
== Changed ==&lt;br /&gt;
&lt;br /&gt;
=== Python 3 ===&lt;br /&gt;
&lt;br /&gt;
* Issues: https://github.com/archivematica/Issues/issues?q=is%3Aopen+is%3Aissue+milestone%3A1.13.0+label%3A%22%3Asnake%3A%C2%B3+Python+3%22&lt;br /&gt;
&lt;br /&gt;
All Archivematica components are now running on Python 3.6.&lt;br /&gt;
&lt;br /&gt;
=== Archivematica Storage Service now uses MySQL by default ===&lt;br /&gt;
&lt;br /&gt;
* Issue: https://github.com/archivematica/Issues/issues/952&lt;br /&gt;
&lt;br /&gt;
MySQL is now the default database in Archivematica Storage Service. SQLite is still supported but we encourage users to migrate. We have documented the process: [https://www.archivematica.org/en/docs/storage-service-0.18/migration-sqlite-mysql/#migration-sqlite-mysql Migrating data from SQLite to MySQL].&lt;br /&gt;
&lt;br /&gt;
=== Allow replicated AIPs to be packaged in a different format from the original ===&lt;br /&gt;
&lt;br /&gt;
*Issue: https://github.com/archivematica/Issues/issues/1440&lt;br /&gt;
&lt;br /&gt;
By using an offline replica storage space it is now possible to replicate AIPs in a different packaging format than the original AIP (helpful in use cases such as offline tape storage, etc).&lt;br /&gt;
&lt;br /&gt;
This change was '''sponsored''' by Norwegian Health Archives. Thank you!&lt;br /&gt;
&lt;br /&gt;
=== Tasks will open in one tab only ===&lt;br /&gt;
&lt;br /&gt;
* Issue: https://github.com/archivematica/Issues/issues/85&lt;br /&gt;
&lt;br /&gt;
Now instead of opening multiple tabs every time a user clicks on a task gear, they will all open in one new tab.&lt;br /&gt;
&lt;br /&gt;
This change was '''contributed''' by Bodleian Library. Thank you!&lt;br /&gt;
&lt;br /&gt;
=== Dev tools deprecated / Hiding active packages ===&lt;br /&gt;
&lt;br /&gt;
Issue: https://github.com/archivematica/Issues/issues/68&lt;br /&gt;
&lt;br /&gt;
Issue: https://github.com/archivematica/Issues/issues/1446&lt;br /&gt;
&lt;br /&gt;
Due to maintainability issues, we have removed the devtools repo. The most commonly used dev tool was used for resolving hidden transfers, which should no longer be relevant since resolving [https://github.com/archivematica/Issues/issues/1446 Issue 1446]- active transfers or SIPs can no longer be hidden. However as a precaution, we have made that command available within Archivematica (https://github.com/artefactual/archivematica/blob/qa/1.x/src/dashboard/src/main/management/commands/resolve_pending_jobs.py). &lt;br /&gt;
&lt;br /&gt;
=== DIP storage locations now allowed in S3 spaces ===&lt;br /&gt;
&lt;br /&gt;
* Issue: https://github.com/archivematica/Issues/issues/1442&lt;br /&gt;
&lt;br /&gt;
This is a '''contribution''' by Fashion Institute of Technology NYC. Thank you!&lt;br /&gt;
&lt;br /&gt;
=== Other changes ===&lt;br /&gt;
&lt;br /&gt;
* Archivematica now records granular time stamps for original files, Issue 1427: https://github.com/archivematica/Issues/issues/1427&lt;br /&gt;
* Archival storage csv file sortable by size column, Issue 1450: https://github.com/archivematica/Issues/issues/1450&lt;br /&gt;
* Deleting AIPs does not delete associated directories from AIP store, Issue 359: https://github.com/archivematica/Issues/issues/359&lt;br /&gt;
* Cannot add a processing configuration if the name has diacritics, Issue 1104: https://github.com/archivematica/Issues/issues/1104&lt;br /&gt;
* Cannot create a replicator location in Duracloud space, Issue 1350: https://github.com/archivematica/Issues/issues/1350&lt;br /&gt;
* Fixity status tab sorts alphabetically, now sorts by date, Issue 1196: https://github.com/archivematica/Issues/issues/1196&lt;br /&gt;
* Failure report not generated when email not configured, Issue 1033: https://github.com/archivematica/Issues/issues/1033&lt;br /&gt;
* Replicator does not replicate AIPs on re-ingest or delete replicated AIPs, Issue 985: https://github.com/archivematica/Issues/issues/985&lt;br /&gt;
&lt;br /&gt;
== Fixed ==&lt;br /&gt;
&lt;br /&gt;
Please see the 1.13 milestone in GitHub for all issues addressed in this release: https://github.com/archivematica/Issues/milestone/17.&lt;/div&gt;</summary>
		<author><name>Artefactual</name></author>
	</entry>
	<entry>
		<id>https://wiki.archivematica.org/index.php?title=User:JennR&amp;diff=13541</id>
		<title>User:JennR</title>
		<link rel="alternate" type="text/html" href="https://wiki.archivematica.org/index.php?title=User:JennR&amp;diff=13541"/>
		<updated>2021-03-01T18:23:39Z</updated>

		<summary type="html">&lt;p&gt;Artefactual: Creating user page for new user.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I am Artefactual's northernmost digipres enthusiast. Which is only 5 words long...&lt;/div&gt;</summary>
		<author><name>Artefactual</name></author>
	</entry>
	<entry>
		<id>https://wiki.archivematica.org/index.php?title=Update_mapping_and_reindex_Elasticsearch_indices&amp;diff=13531</id>
		<title>Update mapping and reindex Elasticsearch indices</title>
		<link rel="alternate" type="text/html" href="https://wiki.archivematica.org/index.php?title=Update_mapping_and_reindex_Elasticsearch_indices&amp;diff=13531"/>
		<updated>2020-12-21T16:52:58Z</updated>

		<summary type="html">&lt;p&gt;Artefactual: /* List indices to resize the Elasticsearch heap size when needed */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Backup Elasticsearch data =&lt;br /&gt;
&lt;br /&gt;
The easiest way to backup the Elasticsearch data is copying the data directory:&lt;br /&gt;
&lt;br /&gt;
  sudo service elasticsearch stop&lt;br /&gt;
  tar cvfz var_lib_elasticsearch.tgz /var/lib/elasticsearch&lt;br /&gt;
  sudo service elasticsearch start&lt;br /&gt;
&lt;br /&gt;
= List indices to resize the Elasticsearch heap size when needed =&lt;br /&gt;
&lt;br /&gt;
Use the following command to list indices:&lt;br /&gt;
&lt;br /&gt;
  curl -s -X GET 'http://localhost:9200/_cat/indices/%2A?v=&amp;amp;s=index:desc'&lt;br /&gt;
&lt;br /&gt;
The output should show something like this:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  root@archivematica-test-server:~# curl -s -X GET 'http://localhost:9200/_cat/indices/%2A?v=&amp;amp;s=index:desc'&lt;br /&gt;
  health status index         uuid                   pri rep docs.count docs.deleted store.size pri.store.size&lt;br /&gt;
  yellow open   transfers     lYqkYjwZRy2XG8CP_3S3PQ   5   1          0            0      1.2kb          1.2kb&lt;br /&gt;
  yellow open   transferfiles K5gnDZyOQz2JdIeZ6adJsQ   5   1          0            0      1.2kb          1.2kb&lt;br /&gt;
  yellow open   aips          yAyK_koXThaZcWsBYfzN7w   5   1         17            0    101.4mb        101.4mb&lt;br /&gt;
  yellow open   aipfiles      TVrrX8jkRhWWxGfvK_M6zg   5   1      11987            0      2.9gb          2.9gb&lt;br /&gt;
&lt;br /&gt;
Take the elasticsearch heap size from ''/etc/default/elasticsearch'' (Ubuntu) or ''/etc/sysconfig/elasticsearch'' (CentOS):&lt;br /&gt;
&lt;br /&gt;
  root@ny-gclibrary-test-release-1:~# grep ES_JAVA_OPTS= /etc/default/elasticsearch &lt;br /&gt;
  #ES_JAVA_OPTS=&lt;br /&gt;
  ES_JAVA_OPTS=&amp;quot;-Xms2g -Xmx2g&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The heap size for the example is 2G.&lt;br /&gt;
&lt;br /&gt;
Ensure your Elasticsearch heap size is greater than the max ''store.size'' in the indices list. For our example, it should be greater than 3GB. &lt;br /&gt;
&lt;br /&gt;
* Edit ''/etc/default/elasticsearch'' or ''/etc/sysconfig/elasticsearch''.&lt;br /&gt;
* Change ''ES_JAVA_OPTS'' to a bigger value, in our example: &lt;br /&gt;
  ES_JAVA_OPTS=&amp;quot;-Xms3g -Xmx3g&amp;quot;.&lt;br /&gt;
* Restart Elasticsearch service for the changes to take effect (''sudo service elasticsearch restart'')&lt;br /&gt;
&lt;br /&gt;
= Run script to reindex and use new mappings =&lt;br /&gt;
&lt;br /&gt;
Use the following script:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
es_url=&amp;quot;http://localhost:9200&amp;quot;&lt;br /&gt;
&lt;br /&gt;
index_list='aips aipfiles transfers transferfiles'&lt;br /&gt;
&lt;br /&gt;
echo -e &amp;quot;\nIndex list before reindexing:\n&amp;quot;&lt;br /&gt;
curl -s -X GET &amp;quot;${es_url}/_cat/indices/%2A?v=&amp;amp;s=index:desc&amp;quot;&lt;br /&gt;
echo -e &amp;quot;\n&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#Clone indices with _reindex API call:&lt;br /&gt;
for index in $index_list;do &lt;br /&gt;
    echo &amp;quot;Reindex ${index} in ${index}_new...&amp;quot;&lt;br /&gt;
    curl -s -X POST \&lt;br /&gt;
      ${es_url}/_reindex \&lt;br /&gt;
      -H 'Content-Type: application/json' \&lt;br /&gt;
      -d '{&lt;br /&gt;
      &amp;quot;source&amp;quot;: {&lt;br /&gt;
        &amp;quot;index&amp;quot;: &amp;quot;'&amp;quot;${index}&amp;quot;'&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;dest&amp;quot;: {&lt;br /&gt;
        &amp;quot;index&amp;quot;: &amp;quot;'&amp;quot;${index}_new&amp;quot;'&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
    }' &amp;gt; /dev/null&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
echo -e &amp;quot;\n\n&amp;quot;&lt;br /&gt;
&lt;br /&gt;
echo -e &amp;quot;Index list after tmp indices creation\n&amp;quot;&lt;br /&gt;
indices_output=$(curl -s -X GET &amp;quot;${es_url}/_cat/indices/%2A?v=&amp;amp;s=index:desc&amp;quot;)&lt;br /&gt;
curl -s -X GET &amp;quot;${es_url}/_cat/indices/%2A?v=&amp;amp;s=index:desc&amp;quot;&lt;br /&gt;
echo -e &amp;quot;\n&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#Delete old indices&lt;br /&gt;
for index in $index_list;do&lt;br /&gt;
  echo &amp;quot;Deleting ${index}...&amp;quot;&lt;br /&gt;
  curl -s -X DELETE ${es_url}/${index} &amp;gt; /dev/null&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
#Restart archivematica-dashboard to create indices with new mappings&lt;br /&gt;
echo -e &amp;quot;\nRestarting archivematica-dashboard&amp;quot;&lt;br /&gt;
sudo service archivematica-dashboard restart&lt;br /&gt;
&lt;br /&gt;
#Wait 30 seconds&lt;br /&gt;
echo &amp;quot;Wait 30 seconds to ensure dashboard has created the empty indices with new mapping&amp;quot;&lt;br /&gt;
sleep 30&lt;br /&gt;
echo -e &amp;quot;\n&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#When index has no docs the reindex doesn't create the new index (typically transferfiles index)&lt;br /&gt;
#There's a check to ensure the new index has been create before reindexing. &lt;br /&gt;
#Reindex fron *_new indices:&lt;br /&gt;
for index in $index_list;do&lt;br /&gt;
  if echo &amp;quot;$indices_output&amp;quot; | grep ${index}_new &amp;gt;/dev/null; then&lt;br /&gt;
    echo &amp;quot;Indexing ${index} using ${index}_new ...&amp;quot;&lt;br /&gt;
    curl -s -X POST \&lt;br /&gt;
      ${es_url}/_reindex \&lt;br /&gt;
      -H 'Content-Type: application/json' \&lt;br /&gt;
      -d '{&lt;br /&gt;
      &amp;quot;source&amp;quot;: {&lt;br /&gt;
        &amp;quot;index&amp;quot;: &amp;quot;'&amp;quot;${index}_new&amp;quot;'&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;dest&amp;quot;: {&lt;br /&gt;
        &amp;quot;index&amp;quot;: &amp;quot;'&amp;quot;${index}&amp;quot;'&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
    }' &amp;gt; /dev/null&lt;br /&gt;
  fi&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
echo -e &amp;quot;\n&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#Delete tmp indices&lt;br /&gt;
for index in $index_list;do&lt;br /&gt;
  if echo &amp;quot;$indices_output&amp;quot; | grep ${index}_new &amp;gt;/dev/null; then&lt;br /&gt;
     echo &amp;quot;Deleting ${index}_new...&amp;quot;&lt;br /&gt;
     curl -s -X DELETE ${es_url}/${index}_new &amp;gt; /dev/null&lt;br /&gt;
  fi&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
echo -e &amp;quot;\n\nReindexing done:\n&amp;quot;&lt;br /&gt;
curl -s -X GET &amp;quot;${es_url}/_cat/indices/%2A?v=&amp;amp;s=index:desc&amp;quot;&lt;br /&gt;
echo -e &amp;quot;\n&amp;quot;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For our example it takes 11 minutes, and this is the output:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
root@archivematica-test-server:~# time ./script_reindex_new_map.sh &lt;br /&gt;
&lt;br /&gt;
Index list before reindexing:&lt;br /&gt;
&lt;br /&gt;
health status index         uuid                   pri rep docs.count docs.deleted store.size pri.store.size&lt;br /&gt;
yellow open   transfers     lYqkYjwZRy2XG8CP_3S3PQ   5   1          3            0     11.6kb         11.6kb&lt;br /&gt;
yellow open   transferfiles K5gnDZyOQz2JdIeZ6adJsQ   5   1          0            0      1.2kb          1.2kb&lt;br /&gt;
yellow open   aips          yAyK_koXThaZcWsBYfzN7w   5   1         17            0    101.4mb        101.4mb&lt;br /&gt;
yellow open   aipfiles      TVrrX8jkRhWWxGfvK_M6zg   5   1      12905            0      2.6gb          2.6gb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reindex aips in aips_new...&lt;br /&gt;
Reindex aipfiles in aipfiles_new...&lt;br /&gt;
Reindex transfers in transfers_new...&lt;br /&gt;
Reindex transferfiles in transferfiles_new...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Index list after tmp indices creation&lt;br /&gt;
&lt;br /&gt;
health status index         uuid                   pri rep docs.count docs.deleted store.size pri.store.size&lt;br /&gt;
yellow open   transfers_new gdFevH8yRdiNTdrPcfo8Lg   5   1          0            0       460b           460b&lt;br /&gt;
yellow open   transfers     lYqkYjwZRy2XG8CP_3S3PQ   5   1          3            0     11.6kb         11.6kb&lt;br /&gt;
yellow open   transferfiles K5gnDZyOQz2JdIeZ6adJsQ   5   1          0            0      1.2kb          1.2kb&lt;br /&gt;
yellow open   aips_new      uJ-ehaYLTfe_1lOSErfu3Q   5   1         17            0     96.8mb         96.8mb&lt;br /&gt;
yellow open   aips          yAyK_koXThaZcWsBYfzN7w   5   1         17            0    101.4mb        101.4mb&lt;br /&gt;
yellow open   aipfiles_new  00Xxu7v2QvWsq92gM247xQ   5   1      12905            0      3.1gb          3.1gb&lt;br /&gt;
yellow open   aipfiles      TVrrX8jkRhWWxGfvK_M6zg   5   1      12905            0      2.6gb          2.6gb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Deleting aips...&lt;br /&gt;
Deleting aipfiles...&lt;br /&gt;
Deleting transfers...&lt;br /&gt;
Deleting transferfiles...&lt;br /&gt;
&lt;br /&gt;
Restarting archivematica-dashboard&lt;br /&gt;
Wait 30 seconds to ensure dashboard has created the empty indices with new mapping&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Indexing aips using aips_new ...&lt;br /&gt;
Indexing aipfiles using aipfiles_new ...&lt;br /&gt;
Indexing transfers using transfers_new ...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Deleting aips_new...&lt;br /&gt;
Deleting aipfiles_new...&lt;br /&gt;
Deleting transfers_new...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reindexing done:&lt;br /&gt;
&lt;br /&gt;
health status index         uuid                   pri rep docs.count docs.deleted store.size pri.store.size&lt;br /&gt;
yellow open   transfers     FC7aSVPmSmmCc_LTv1AQRA   5   1          3            0      1.2kb          1.2kb&lt;br /&gt;
yellow open   transferfiles 5JMAft3FQwmosZQFi7eJNw   5   1          0            0      1.2kb          1.2kb&lt;br /&gt;
yellow open   aips          EtwXG3-4SO2Px-4QMRufXA   5   1         17            0    102.1mb        102.1mb&lt;br /&gt;
yellow open   aipfiles      -PFuzslgTeWJ4CWny8VZoA   5   1      12905            0        3gb            3gb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
real	10m47.114s&lt;br /&gt;
user	0m0.068s&lt;br /&gt;
sys	0m0.032s&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The script uses the elasticsearch API and makes the following actions:&lt;br /&gt;
&lt;br /&gt;
* Reindex the ''transfers'', ''transferfiles'', ''aips'' and ''aipfiles'' indices in new temporary indices&lt;br /&gt;
* Delete original indices&lt;br /&gt;
* Restart ''archivematica-dashboard'' service to create empty indices with new mappings&lt;br /&gt;
* Reindex from temporary indices&lt;br /&gt;
* Delete temporary indices&lt;br /&gt;
&lt;br /&gt;
= Restore Elasticsearch heap size when needed=&lt;br /&gt;
&lt;br /&gt;
* Edit ''/etc/default/elasticsearch'' or ''/etc/sysconfig/elasticsearch'' when needed.&lt;br /&gt;
* Change ''ES_JAVA_OPTS'' when needed.&lt;br /&gt;
* Restart Elasticsearch service when needed (''sudo service elasticsearch restart'')&lt;/div&gt;</summary>
		<author><name>Artefactual</name></author>
	</entry>
	<entry>
		<id>https://wiki.archivematica.org/index.php?title=Update_mapping_and_reindex_Elasticsearch_indices&amp;diff=13529</id>
		<title>Update mapping and reindex Elasticsearch indices</title>
		<link rel="alternate" type="text/html" href="https://wiki.archivematica.org/index.php?title=Update_mapping_and_reindex_Elasticsearch_indices&amp;diff=13529"/>
		<updated>2020-12-21T13:50:22Z</updated>

		<summary type="html">&lt;p&gt;Artefactual: /* Run script to reindex and use new mappings */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Backup Elasticsearch data =&lt;br /&gt;
&lt;br /&gt;
The easiest way to backup the Elasticsearch data is copying the data directory:&lt;br /&gt;
&lt;br /&gt;
  sudo service elasticsearch stop&lt;br /&gt;
  tar cvfz var_lib_elasticsearch.tgz /var/lib/elasticsearch&lt;br /&gt;
  sudo service elasticsearch start&lt;br /&gt;
&lt;br /&gt;
= List indices to resize the Elasticsearch heap size when needed =&lt;br /&gt;
&lt;br /&gt;
Use the following command to list indices:&lt;br /&gt;
&lt;br /&gt;
  curl -s -X GET 'http://localhost:9200/_cat/indices/%2A?v=&amp;amp;s=index:desc'&lt;br /&gt;
&lt;br /&gt;
The output should show something like this:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  root@archivematica-test-server:~# curl -s -X GET 'http://localhost:9200/_cat/indices/%2A?v=&amp;amp;s=index:desc'&lt;br /&gt;
  health status index         uuid                   pri rep docs.count docs.deleted store.size pri.store.size&lt;br /&gt;
  yellow open   transfers     lYqkYjwZRy2XG8CP_3S3PQ   5   1          0            0      1.2kb          1.2kb&lt;br /&gt;
  yellow open   transferfiles K5gnDZyOQz2JdIeZ6adJsQ   5   1          0            0      1.2kb          1.2kb&lt;br /&gt;
  yellow open   aips          yAyK_koXThaZcWsBYfzN7w   5   1         17            0    101.4mb        101.4mb&lt;br /&gt;
  yellow open   aipfiles      TVrrX8jkRhWWxGfvK_M6zg   5   1      11987            0      2.9gb          2.9gb&lt;br /&gt;
&lt;br /&gt;
Take the elasticsearch heap size from ''/etc/default/elasticsearch'' (Ubuntu) or ''/etc/sysconfig/elasticsearch'' (CentOS):&lt;br /&gt;
&lt;br /&gt;
  root@ny-gclibrary-test-release-1:~# grep ES_JAVA_OPTS= /etc/default/elasticsearch &lt;br /&gt;
  #ES_JAVA_OPTS=&lt;br /&gt;
  ES_JAVA_OPTS=&amp;quot;-Xms2g -Xmx2g&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The heap size for the example is 2G.&lt;br /&gt;
&lt;br /&gt;
Ensure your Elasticsearch heap size is greater than the max ''store.size'' in the indices list. For our example, it should be greater than 3GB. &lt;br /&gt;
&lt;br /&gt;
* Edit ''/etc/default/elasticsearch'' or ''/etc/sysconfig/elasticsearch'' when needed.&lt;br /&gt;
* Change ''ES_JAVA_OPTS'' when needed.&lt;br /&gt;
* Restart Elasticsearch service when needed (''sudo service elasticsearch restart'')&lt;br /&gt;
&lt;br /&gt;
= Run script to reindex and use new mappings =&lt;br /&gt;
&lt;br /&gt;
Use the following script:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
es_url=&amp;quot;http://localhost:9200&amp;quot;&lt;br /&gt;
&lt;br /&gt;
index_list='aips aipfiles transfers transferfiles'&lt;br /&gt;
&lt;br /&gt;
echo -e &amp;quot;\nIndex list before reindexing:\n&amp;quot;&lt;br /&gt;
curl -s -X GET &amp;quot;${es_url}/_cat/indices/%2A?v=&amp;amp;s=index:desc&amp;quot;&lt;br /&gt;
echo -e &amp;quot;\n&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#Clone indices with _reindex API call:&lt;br /&gt;
for index in $index_list;do &lt;br /&gt;
    echo &amp;quot;Reindex ${index} in ${index}_new...&amp;quot;&lt;br /&gt;
    curl -s -X POST \&lt;br /&gt;
      ${es_url}/_reindex \&lt;br /&gt;
      -H 'Content-Type: application/json' \&lt;br /&gt;
      -d '{&lt;br /&gt;
      &amp;quot;source&amp;quot;: {&lt;br /&gt;
        &amp;quot;index&amp;quot;: &amp;quot;'&amp;quot;${index}&amp;quot;'&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;dest&amp;quot;: {&lt;br /&gt;
        &amp;quot;index&amp;quot;: &amp;quot;'&amp;quot;${index}_new&amp;quot;'&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
    }' &amp;gt; /dev/null&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
echo -e &amp;quot;\n\n&amp;quot;&lt;br /&gt;
&lt;br /&gt;
echo -e &amp;quot;Index list after tmp indices creation\n&amp;quot;&lt;br /&gt;
indices_output=$(curl -s -X GET &amp;quot;${es_url}/_cat/indices/%2A?v=&amp;amp;s=index:desc&amp;quot;)&lt;br /&gt;
curl -s -X GET &amp;quot;${es_url}/_cat/indices/%2A?v=&amp;amp;s=index:desc&amp;quot;&lt;br /&gt;
echo -e &amp;quot;\n&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#Delete old indices&lt;br /&gt;
for index in $index_list;do&lt;br /&gt;
  echo &amp;quot;Deleting ${index}...&amp;quot;&lt;br /&gt;
  curl -s -X DELETE ${es_url}/${index} &amp;gt; /dev/null&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
#Restart archivematica-dashboard to create indices with new mappings&lt;br /&gt;
echo -e &amp;quot;\nRestarting archivematica-dashboard&amp;quot;&lt;br /&gt;
sudo service archivematica-dashboard restart&lt;br /&gt;
&lt;br /&gt;
#Wait 30 seconds&lt;br /&gt;
echo &amp;quot;Wait 30 seconds to ensure dashboard has created the empty indices with new mapping&amp;quot;&lt;br /&gt;
sleep 30&lt;br /&gt;
echo -e &amp;quot;\n&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#When index has no docs the reindex doesn't create the new index (typically transferfiles index)&lt;br /&gt;
#There's a check to ensure the new index has been create before reindexing. &lt;br /&gt;
#Reindex fron *_new indices:&lt;br /&gt;
for index in $index_list;do&lt;br /&gt;
  if echo &amp;quot;$indices_output&amp;quot; | grep ${index}_new &amp;gt;/dev/null; then&lt;br /&gt;
    echo &amp;quot;Indexing ${index} using ${index}_new ...&amp;quot;&lt;br /&gt;
    curl -s -X POST \&lt;br /&gt;
      ${es_url}/_reindex \&lt;br /&gt;
      -H 'Content-Type: application/json' \&lt;br /&gt;
      -d '{&lt;br /&gt;
      &amp;quot;source&amp;quot;: {&lt;br /&gt;
        &amp;quot;index&amp;quot;: &amp;quot;'&amp;quot;${index}_new&amp;quot;'&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;dest&amp;quot;: {&lt;br /&gt;
        &amp;quot;index&amp;quot;: &amp;quot;'&amp;quot;${index}&amp;quot;'&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
    }' &amp;gt; /dev/null&lt;br /&gt;
  fi&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
echo -e &amp;quot;\n&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#Delete tmp indices&lt;br /&gt;
for index in $index_list;do&lt;br /&gt;
  if echo &amp;quot;$indices_output&amp;quot; | grep ${index}_new &amp;gt;/dev/null; then&lt;br /&gt;
     echo &amp;quot;Deleting ${index}_new...&amp;quot;&lt;br /&gt;
     curl -s -X DELETE ${es_url}/${index}_new &amp;gt; /dev/null&lt;br /&gt;
  fi&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
echo -e &amp;quot;\n\nReindexing done:\n&amp;quot;&lt;br /&gt;
curl -s -X GET &amp;quot;${es_url}/_cat/indices/%2A?v=&amp;amp;s=index:desc&amp;quot;&lt;br /&gt;
echo -e &amp;quot;\n&amp;quot;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For our example it takes 11 minutes, and this is the output:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
root@archivematica-test-server:~# time ./script_reindex_new_map.sh &lt;br /&gt;
&lt;br /&gt;
Index list before reindexing:&lt;br /&gt;
&lt;br /&gt;
health status index         uuid                   pri rep docs.count docs.deleted store.size pri.store.size&lt;br /&gt;
yellow open   transfers     lYqkYjwZRy2XG8CP_3S3PQ   5   1          3            0     11.6kb         11.6kb&lt;br /&gt;
yellow open   transferfiles K5gnDZyOQz2JdIeZ6adJsQ   5   1          0            0      1.2kb          1.2kb&lt;br /&gt;
yellow open   aips          yAyK_koXThaZcWsBYfzN7w   5   1         17            0    101.4mb        101.4mb&lt;br /&gt;
yellow open   aipfiles      TVrrX8jkRhWWxGfvK_M6zg   5   1      12905            0      2.6gb          2.6gb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reindex aips in aips_new...&lt;br /&gt;
Reindex aipfiles in aipfiles_new...&lt;br /&gt;
Reindex transfers in transfers_new...&lt;br /&gt;
Reindex transferfiles in transferfiles_new...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Index list after tmp indices creation&lt;br /&gt;
&lt;br /&gt;
health status index         uuid                   pri rep docs.count docs.deleted store.size pri.store.size&lt;br /&gt;
yellow open   transfers_new gdFevH8yRdiNTdrPcfo8Lg   5   1          0            0       460b           460b&lt;br /&gt;
yellow open   transfers     lYqkYjwZRy2XG8CP_3S3PQ   5   1          3            0     11.6kb         11.6kb&lt;br /&gt;
yellow open   transferfiles K5gnDZyOQz2JdIeZ6adJsQ   5   1          0            0      1.2kb          1.2kb&lt;br /&gt;
yellow open   aips_new      uJ-ehaYLTfe_1lOSErfu3Q   5   1         17            0     96.8mb         96.8mb&lt;br /&gt;
yellow open   aips          yAyK_koXThaZcWsBYfzN7w   5   1         17            0    101.4mb        101.4mb&lt;br /&gt;
yellow open   aipfiles_new  00Xxu7v2QvWsq92gM247xQ   5   1      12905            0      3.1gb          3.1gb&lt;br /&gt;
yellow open   aipfiles      TVrrX8jkRhWWxGfvK_M6zg   5   1      12905            0      2.6gb          2.6gb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Deleting aips...&lt;br /&gt;
Deleting aipfiles...&lt;br /&gt;
Deleting transfers...&lt;br /&gt;
Deleting transferfiles...&lt;br /&gt;
&lt;br /&gt;
Restarting archivematica-dashboard&lt;br /&gt;
Wait 30 seconds to ensure dashboard has created the empty indices with new mapping&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Indexing aips using aips_new ...&lt;br /&gt;
Indexing aipfiles using aipfiles_new ...&lt;br /&gt;
Indexing transfers using transfers_new ...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Deleting aips_new...&lt;br /&gt;
Deleting aipfiles_new...&lt;br /&gt;
Deleting transfers_new...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reindexing done:&lt;br /&gt;
&lt;br /&gt;
health status index         uuid                   pri rep docs.count docs.deleted store.size pri.store.size&lt;br /&gt;
yellow open   transfers     FC7aSVPmSmmCc_LTv1AQRA   5   1          3            0      1.2kb          1.2kb&lt;br /&gt;
yellow open   transferfiles 5JMAft3FQwmosZQFi7eJNw   5   1          0            0      1.2kb          1.2kb&lt;br /&gt;
yellow open   aips          EtwXG3-4SO2Px-4QMRufXA   5   1         17            0    102.1mb        102.1mb&lt;br /&gt;
yellow open   aipfiles      -PFuzslgTeWJ4CWny8VZoA   5   1      12905            0        3gb            3gb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
real	10m47.114s&lt;br /&gt;
user	0m0.068s&lt;br /&gt;
sys	0m0.032s&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The script uses the elasticsearch API and make the following actions:&lt;br /&gt;
&lt;br /&gt;
* Reindex the ''transfers'', ''transferfiles'', ''aips'' and ''aipfiles'' indices in new temporary indices&lt;br /&gt;
* Delete original indices&lt;br /&gt;
* Restart ''archivematica-dashboard'' service to create empty indices with new mappings&lt;br /&gt;
* Reindex from temporary indices&lt;br /&gt;
* Delete temporary indices&lt;br /&gt;
&lt;br /&gt;
= Restore Elasticsearch heap size when needed=&lt;br /&gt;
&lt;br /&gt;
* Edit ''/etc/default/elasticsearch'' or ''/etc/sysconfig/elasticsearch'' when needed.&lt;br /&gt;
* Change ''ES_JAVA_OPTS'' when needed.&lt;br /&gt;
* Restart Elasticsearch service when needed (''sudo service elasticsearch restart'')&lt;/div&gt;</summary>
		<author><name>Artefactual</name></author>
	</entry>
	<entry>
		<id>https://wiki.archivematica.org/index.php?title=Update_mapping_and_reindex_Elasticsearch_indices&amp;diff=13528</id>
		<title>Update mapping and reindex Elasticsearch indices</title>
		<link rel="alternate" type="text/html" href="https://wiki.archivematica.org/index.php?title=Update_mapping_and_reindex_Elasticsearch_indices&amp;diff=13528"/>
		<updated>2020-12-21T13:38:49Z</updated>

		<summary type="html">&lt;p&gt;Artefactual: /* Run script to reindex and use new mappings */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Backup Elasticsearch data =&lt;br /&gt;
&lt;br /&gt;
The easiest way to backup the Elasticsearch data is copying the data directory:&lt;br /&gt;
&lt;br /&gt;
  sudo service elasticsearch stop&lt;br /&gt;
  tar cvfz var_lib_elasticsearch.tgz /var/lib/elasticsearch&lt;br /&gt;
  sudo service elasticsearch start&lt;br /&gt;
&lt;br /&gt;
= List indices to resize the Elasticsearch heap size when needed =&lt;br /&gt;
&lt;br /&gt;
Use the following command to list indices:&lt;br /&gt;
&lt;br /&gt;
  curl -s -X GET 'http://localhost:9200/_cat/indices/%2A?v=&amp;amp;s=index:desc'&lt;br /&gt;
&lt;br /&gt;
The output should show something like this:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  root@archivematica-test-server:~# curl -s -X GET 'http://localhost:9200/_cat/indices/%2A?v=&amp;amp;s=index:desc'&lt;br /&gt;
  health status index         uuid                   pri rep docs.count docs.deleted store.size pri.store.size&lt;br /&gt;
  yellow open   transfers     lYqkYjwZRy2XG8CP_3S3PQ   5   1          0            0      1.2kb          1.2kb&lt;br /&gt;
  yellow open   transferfiles K5gnDZyOQz2JdIeZ6adJsQ   5   1          0            0      1.2kb          1.2kb&lt;br /&gt;
  yellow open   aips          yAyK_koXThaZcWsBYfzN7w   5   1         17            0    101.4mb        101.4mb&lt;br /&gt;
  yellow open   aipfiles      TVrrX8jkRhWWxGfvK_M6zg   5   1      11987            0      2.9gb          2.9gb&lt;br /&gt;
&lt;br /&gt;
Take the elasticsearch heap size from ''/etc/default/elasticsearch'' (Ubuntu) or ''/etc/sysconfig/elasticsearch'' (CentOS):&lt;br /&gt;
&lt;br /&gt;
  root@ny-gclibrary-test-release-1:~# grep ES_JAVA_OPTS= /etc/default/elasticsearch &lt;br /&gt;
  #ES_JAVA_OPTS=&lt;br /&gt;
  ES_JAVA_OPTS=&amp;quot;-Xms2g -Xmx2g&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The heap size for the example is 2G.&lt;br /&gt;
&lt;br /&gt;
Ensure your Elasticsearch heap size is greater than the max ''store.size'' in the indices list. For our example, it should be greater than 3GB. &lt;br /&gt;
&lt;br /&gt;
* Edit ''/etc/default/elasticsearch'' or ''/etc/sysconfig/elasticsearch'' when needed.&lt;br /&gt;
* Change ''ES_JAVA_OPTS'' when needed.&lt;br /&gt;
* Restart Elasticsearch service when needed (''sudo service elasticsearch restart'')&lt;br /&gt;
&lt;br /&gt;
= Run script to reindex and use new mappings =&lt;br /&gt;
&lt;br /&gt;
Use the following script:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
es_url=&amp;quot;http://localhost:9200&amp;quot;&lt;br /&gt;
&lt;br /&gt;
index_list='aips aipfiles transfers transferfiles'&lt;br /&gt;
&lt;br /&gt;
echo -e &amp;quot;\nIndex list before reindexing:\n&amp;quot;&lt;br /&gt;
curl -s -X GET &amp;quot;${es_url}/_cat/indices/%2A?v=&amp;amp;s=index:desc&amp;quot;&lt;br /&gt;
echo -e &amp;quot;\n&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#Clone indices with _reindex API call:&lt;br /&gt;
for index in $index_list;do &lt;br /&gt;
    echo &amp;quot;Reindex ${index} in ${index}_new...&amp;quot;&lt;br /&gt;
    curl -s -X POST \&lt;br /&gt;
      ${es_url}/_reindex \&lt;br /&gt;
      -H 'Content-Type: application/json' \&lt;br /&gt;
      -d '{&lt;br /&gt;
      &amp;quot;source&amp;quot;: {&lt;br /&gt;
        &amp;quot;index&amp;quot;: &amp;quot;'&amp;quot;${index}&amp;quot;'&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;dest&amp;quot;: {&lt;br /&gt;
        &amp;quot;index&amp;quot;: &amp;quot;'&amp;quot;${index}_new&amp;quot;'&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
    }' &amp;gt; /dev/null&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
echo -e &amp;quot;\n\n&amp;quot;&lt;br /&gt;
&lt;br /&gt;
echo -e &amp;quot;Index list after tmp indices creation\n&amp;quot;&lt;br /&gt;
indices_output=$(curl -s -X GET &amp;quot;${es_url}/_cat/indices/%2A?v=&amp;amp;s=index:desc&amp;quot;)&lt;br /&gt;
curl -s -X GET &amp;quot;${es_url}/_cat/indices/%2A?v=&amp;amp;s=index:desc&amp;quot;&lt;br /&gt;
echo -e &amp;quot;\n&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#Delete old indices&lt;br /&gt;
for index in $index_list;do&lt;br /&gt;
  echo &amp;quot;Deleting ${index}...&amp;quot;&lt;br /&gt;
  curl -s -X DELETE ${es_url}/${index} &amp;gt; /dev/null&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
#Restart archivematica-dashboard to create indices with new mappings&lt;br /&gt;
echo -e &amp;quot;\nRestarting archivematica-dashboard&amp;quot;&lt;br /&gt;
sudo service archivematica-dashboard restart&lt;br /&gt;
&lt;br /&gt;
#Wait 30 seconds&lt;br /&gt;
echo &amp;quot;Wait 30 seconds to ensure dashboard has created the empty indices with new mapping&amp;quot;&lt;br /&gt;
sleep 30&lt;br /&gt;
echo -e &amp;quot;\n&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#When index has no docs the reindex doesn't create the new index (typically transferfiles index)&lt;br /&gt;
#There's a check to ensure the new index has been create before reindexing. &lt;br /&gt;
#Reindex fron *_new indices:&lt;br /&gt;
for index in $index_list;do&lt;br /&gt;
  if echo &amp;quot;$indices_output&amp;quot; | grep ${index}_new &amp;gt;/dev/null; then&lt;br /&gt;
    echo &amp;quot;Indexing ${index} using ${index}_new ...&amp;quot;&lt;br /&gt;
    curl -s -X POST \&lt;br /&gt;
      ${es_url}/_reindex \&lt;br /&gt;
      -H 'Content-Type: application/json' \&lt;br /&gt;
      -d '{&lt;br /&gt;
      &amp;quot;source&amp;quot;: {&lt;br /&gt;
        &amp;quot;index&amp;quot;: &amp;quot;'&amp;quot;${index}_new&amp;quot;'&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;dest&amp;quot;: {&lt;br /&gt;
        &amp;quot;index&amp;quot;: &amp;quot;'&amp;quot;${index}&amp;quot;'&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
    }' &amp;gt; /dev/null&lt;br /&gt;
  fi&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
echo -e &amp;quot;\n&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#Delete tmp indices&lt;br /&gt;
for index in $index_list;do&lt;br /&gt;
  if echo &amp;quot;$indices_output&amp;quot; | grep ${index}_new &amp;gt;/dev/null; then&lt;br /&gt;
     echo &amp;quot;Deleting ${index}_new...&amp;quot;&lt;br /&gt;
     curl -s -X DELETE ${es_url}/${index}_new &amp;gt; /dev/null&lt;br /&gt;
  fi&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
echo -e &amp;quot;\n\nReindexing done:\n&amp;quot;&lt;br /&gt;
curl -s -X GET &amp;quot;${es_url}/_cat/indices/%2A?v=&amp;amp;s=index:desc&amp;quot;&lt;br /&gt;
echo -e &amp;quot;\n&amp;quot;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For our example it takes 11 minutes, and this is the output:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
root@archivematica-test-server:~# time ./script_reindex_new_map.sh &lt;br /&gt;
&lt;br /&gt;
Index list before reindexing:&lt;br /&gt;
&lt;br /&gt;
health status index         uuid                   pri rep docs.count docs.deleted store.size pri.store.size&lt;br /&gt;
yellow open   transfers     lYqkYjwZRy2XG8CP_3S3PQ   5   1          3            0     11.6kb         11.6kb&lt;br /&gt;
yellow open   transferfiles K5gnDZyOQz2JdIeZ6adJsQ   5   1          0            0      1.2kb          1.2kb&lt;br /&gt;
yellow open   aips          yAyK_koXThaZcWsBYfzN7w   5   1         17            0    101.4mb        101.4mb&lt;br /&gt;
yellow open   aipfiles      TVrrX8jkRhWWxGfvK_M6zg   5   1      12905            0      2.6gb          2.6gb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reindex aips in aips_new...&lt;br /&gt;
Reindex aipfiles in aipfiles_new...&lt;br /&gt;
Reindex transfers in transfers_new...&lt;br /&gt;
Reindex transferfiles in transferfiles_new...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Index list after tmp indices creation&lt;br /&gt;
&lt;br /&gt;
health status index         uuid                   pri rep docs.count docs.deleted store.size pri.store.size&lt;br /&gt;
yellow open   transfers_new gdFevH8yRdiNTdrPcfo8Lg   5   1          0            0       460b           460b&lt;br /&gt;
yellow open   transfers     lYqkYjwZRy2XG8CP_3S3PQ   5   1          3            0     11.6kb         11.6kb&lt;br /&gt;
yellow open   transferfiles K5gnDZyOQz2JdIeZ6adJsQ   5   1          0            0      1.2kb          1.2kb&lt;br /&gt;
yellow open   aips_new      uJ-ehaYLTfe_1lOSErfu3Q   5   1         17            0     96.8mb         96.8mb&lt;br /&gt;
yellow open   aips          yAyK_koXThaZcWsBYfzN7w   5   1         17            0    101.4mb        101.4mb&lt;br /&gt;
yellow open   aipfiles_new  00Xxu7v2QvWsq92gM247xQ   5   1      12905            0      3.1gb          3.1gb&lt;br /&gt;
yellow open   aipfiles      TVrrX8jkRhWWxGfvK_M6zg   5   1      12905            0      2.6gb          2.6gb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Deleting aips...&lt;br /&gt;
Deleting aipfiles...&lt;br /&gt;
Deleting transfers...&lt;br /&gt;
Deleting transferfiles...&lt;br /&gt;
&lt;br /&gt;
Restarting archivematica-dashboard&lt;br /&gt;
Wait 30 seconds to ensure dashboard has created the empty indices with new mapping&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Indexing aips using aips_new ...&lt;br /&gt;
Indexing aipfiles using aipfiles_new ...&lt;br /&gt;
Indexing transfers using transfers_new ...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Deleting aips_new...&lt;br /&gt;
Deleting aipfiles_new...&lt;br /&gt;
Deleting transfers_new...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reindexing done:&lt;br /&gt;
&lt;br /&gt;
health status index         uuid                   pri rep docs.count docs.deleted store.size pri.store.size&lt;br /&gt;
yellow open   transfers     FC7aSVPmSmmCc_LTv1AQRA   5   1          3            0      1.2kb          1.2kb&lt;br /&gt;
yellow open   transferfiles 5JMAft3FQwmosZQFi7eJNw   5   1          0            0      1.2kb          1.2kb&lt;br /&gt;
yellow open   aips          EtwXG3-4SO2Px-4QMRufXA   5   1         17            0    102.1mb        102.1mb&lt;br /&gt;
yellow open   aipfiles      -PFuzslgTeWJ4CWny8VZoA   5   1      12905            0        3gb            3gb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
real	10m47.114s&lt;br /&gt;
user	0m0.068s&lt;br /&gt;
sys	0m0.032s&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Restore Elasticsearch heap size when needed=&lt;br /&gt;
&lt;br /&gt;
* Edit ''/etc/default/elasticsearch'' or ''/etc/sysconfig/elasticsearch'' when needed.&lt;br /&gt;
* Change ''ES_JAVA_OPTS'' when needed.&lt;br /&gt;
* Restart Elasticsearch service when needed (''sudo service elasticsearch restart'')&lt;/div&gt;</summary>
		<author><name>Artefactual</name></author>
	</entry>
	<entry>
		<id>https://wiki.archivematica.org/index.php?title=Update_mapping_and_reindex_Elasticsearch_indices&amp;diff=13527</id>
		<title>Update mapping and reindex Elasticsearch indices</title>
		<link rel="alternate" type="text/html" href="https://wiki.archivematica.org/index.php?title=Update_mapping_and_reindex_Elasticsearch_indices&amp;diff=13527"/>
		<updated>2020-12-21T13:37:37Z</updated>

		<summary type="html">&lt;p&gt;Artefactual: Created page with &amp;quot;= Backup Elasticsearch data =  The easiest way to backup the Elasticsearch data is copying the data directory:    sudo service elasticsearch stop   tar cvfz var_lib_elasticsea...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Backup Elasticsearch data =&lt;br /&gt;
&lt;br /&gt;
The easiest way to backup the Elasticsearch data is copying the data directory:&lt;br /&gt;
&lt;br /&gt;
  sudo service elasticsearch stop&lt;br /&gt;
  tar cvfz var_lib_elasticsearch.tgz /var/lib/elasticsearch&lt;br /&gt;
  sudo service elasticsearch start&lt;br /&gt;
&lt;br /&gt;
= List indices to resize the Elasticsearch heap size when needed =&lt;br /&gt;
&lt;br /&gt;
Use the following command to list indices:&lt;br /&gt;
&lt;br /&gt;
  curl -s -X GET 'http://localhost:9200/_cat/indices/%2A?v=&amp;amp;s=index:desc'&lt;br /&gt;
&lt;br /&gt;
The output should show something like this:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  root@archivematica-test-server:~# curl -s -X GET 'http://localhost:9200/_cat/indices/%2A?v=&amp;amp;s=index:desc'&lt;br /&gt;
  health status index         uuid                   pri rep docs.count docs.deleted store.size pri.store.size&lt;br /&gt;
  yellow open   transfers     lYqkYjwZRy2XG8CP_3S3PQ   5   1          0            0      1.2kb          1.2kb&lt;br /&gt;
  yellow open   transferfiles K5gnDZyOQz2JdIeZ6adJsQ   5   1          0            0      1.2kb          1.2kb&lt;br /&gt;
  yellow open   aips          yAyK_koXThaZcWsBYfzN7w   5   1         17            0    101.4mb        101.4mb&lt;br /&gt;
  yellow open   aipfiles      TVrrX8jkRhWWxGfvK_M6zg   5   1      11987            0      2.9gb          2.9gb&lt;br /&gt;
&lt;br /&gt;
Take the elasticsearch heap size from ''/etc/default/elasticsearch'' (Ubuntu) or ''/etc/sysconfig/elasticsearch'' (CentOS):&lt;br /&gt;
&lt;br /&gt;
  root@ny-gclibrary-test-release-1:~# grep ES_JAVA_OPTS= /etc/default/elasticsearch &lt;br /&gt;
  #ES_JAVA_OPTS=&lt;br /&gt;
  ES_JAVA_OPTS=&amp;quot;-Xms2g -Xmx2g&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The heap size for the example is 2G.&lt;br /&gt;
&lt;br /&gt;
Ensure your Elasticsearch heap size is greater than the max ''store.size'' in the indices list. For our example, it should be greater than 3GB. &lt;br /&gt;
&lt;br /&gt;
* Edit ''/etc/default/elasticsearch'' or ''/etc/sysconfig/elasticsearch'' when needed.&lt;br /&gt;
* Change ''ES_JAVA_OPTS'' when needed.&lt;br /&gt;
* Restart Elasticsearch service when needed (''sudo service elasticsearch restart'')&lt;br /&gt;
&lt;br /&gt;
= Run script to reindex and use new mappings =&lt;br /&gt;
&lt;br /&gt;
Use the following script:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
es_url=&amp;quot;http://localhost:9200&amp;quot;&lt;br /&gt;
&lt;br /&gt;
index_list='aips aipfiles transfers transferfiles'&lt;br /&gt;
&lt;br /&gt;
echo -e &amp;quot;\nIndex list before reindexing:\n&amp;quot;&lt;br /&gt;
curl -s -X GET &amp;quot;${es_url}/_cat/indices/%2A?v=&amp;amp;s=index:desc&amp;quot;&lt;br /&gt;
echo -e &amp;quot;\n&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#Clone indices with _reindex API call:&lt;br /&gt;
for index in $index_list;do &lt;br /&gt;
    echo &amp;quot;Reindex ${index} in ${index}_new...&amp;quot;&lt;br /&gt;
    curl -s -X POST \&lt;br /&gt;
      ${es_url}/_reindex \&lt;br /&gt;
      -H 'Content-Type: application/json' \&lt;br /&gt;
      -d '{&lt;br /&gt;
      &amp;quot;source&amp;quot;: {&lt;br /&gt;
        &amp;quot;index&amp;quot;: &amp;quot;'&amp;quot;${index}&amp;quot;'&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;dest&amp;quot;: {&lt;br /&gt;
        &amp;quot;index&amp;quot;: &amp;quot;'&amp;quot;${index}_new&amp;quot;'&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
    }' &amp;gt; /dev/null&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
echo -e &amp;quot;\n\n&amp;quot;&lt;br /&gt;
&lt;br /&gt;
echo -e &amp;quot;Index list after tmp indices creation\n&amp;quot;&lt;br /&gt;
indices_output=$(curl -s -X GET &amp;quot;${es_url}/_cat/indices/%2A?v=&amp;amp;s=index:desc&amp;quot;)&lt;br /&gt;
curl -s -X GET &amp;quot;${es_url}/_cat/indices/%2A?v=&amp;amp;s=index:desc&amp;quot;&lt;br /&gt;
echo -e &amp;quot;\n&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#Delete old indices&lt;br /&gt;
for index in $index_list;do&lt;br /&gt;
  echo &amp;quot;Deleting ${index}...&amp;quot;&lt;br /&gt;
  curl -s -X DELETE ${es_url}/${index} &amp;gt; /dev/null&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
#Restart archivematica-dashboard to create indices with new mappings&lt;br /&gt;
echo -e &amp;quot;\nRestarting archivematica-dashboard&amp;quot;&lt;br /&gt;
sudo service archivematica-dashboard restart&lt;br /&gt;
&lt;br /&gt;
#Wait 30 seconds&lt;br /&gt;
echo &amp;quot;Wait 30 seconds to ensure dashboard has created the empty indices with new mapping&amp;quot;&lt;br /&gt;
sleep 30&lt;br /&gt;
echo -e &amp;quot;\n&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#When index has no docs the reindex doesn't create the new index (typically transferfiles index)&lt;br /&gt;
#There's a check to ensure the new index has been create before reindexing. &lt;br /&gt;
#Reindex fron *_new indices:&lt;br /&gt;
for index in $index_list;do&lt;br /&gt;
  if echo &amp;quot;$indices_output&amp;quot; | grep ${index}_new &amp;gt;/dev/null; then&lt;br /&gt;
    echo &amp;quot;Indexing ${index} using ${index}_new ...&amp;quot;&lt;br /&gt;
    curl -s -X POST \&lt;br /&gt;
      ${es_url}/_reindex \&lt;br /&gt;
      -H 'Content-Type: application/json' \&lt;br /&gt;
      -d '{&lt;br /&gt;
      &amp;quot;source&amp;quot;: {&lt;br /&gt;
        &amp;quot;index&amp;quot;: &amp;quot;'&amp;quot;${index}_new&amp;quot;'&amp;quot;&lt;br /&gt;
      },&lt;br /&gt;
      &amp;quot;dest&amp;quot;: {&lt;br /&gt;
        &amp;quot;index&amp;quot;: &amp;quot;'&amp;quot;${index}&amp;quot;'&amp;quot;&lt;br /&gt;
      }&lt;br /&gt;
    }' &amp;gt; /dev/null&lt;br /&gt;
  fi&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
echo -e &amp;quot;\n&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#Delete tmp indices&lt;br /&gt;
for index in $index_list;do&lt;br /&gt;
  if echo &amp;quot;$indices_output&amp;quot; | grep ${index}_new &amp;gt;/dev/null; then&lt;br /&gt;
     echo &amp;quot;Deleting ${index}_new...&amp;quot;&lt;br /&gt;
     curl -s -X DELETE ${es_url}/${index}_new &amp;gt; /dev/null&lt;br /&gt;
  fi&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
echo -e &amp;quot;\n\nReindexing done:\n&amp;quot;&lt;br /&gt;
curl -s -X GET &amp;quot;${es_url}/_cat/indices/%2A?v=&amp;amp;s=index:desc&amp;quot;&lt;br /&gt;
echo -e &amp;quot;\n&amp;quot;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For our example it takes 11 minutes, and this is the output:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
root@archivematica-test-server:~# time ./script_reindex_new_map.sh &lt;br /&gt;
&lt;br /&gt;
Index list before reindexing:&lt;br /&gt;
&lt;br /&gt;
health status index         uuid                   pri rep docs.count docs.deleted store.size pri.store.size&lt;br /&gt;
yellow open   transfers     lYqkYjwZRy2XG8CP_3S3PQ   5   1          3            0     11.6kb         11.6kb&lt;br /&gt;
yellow open   transferfiles K5gnDZyOQz2JdIeZ6adJsQ   5   1          0            0      1.2kb          1.2kb&lt;br /&gt;
yellow open   aips          yAyK_koXThaZcWsBYfzN7w   5   1         17            0    101.4mb        101.4mb&lt;br /&gt;
yellow open   aipfiles      TVrrX8jkRhWWxGfvK_M6zg   5   1      12905            0      2.6gb          2.6gb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reindex aips in aips_new...&lt;br /&gt;
Reindex aipfiles in aipfiles_new...&lt;br /&gt;
Reindex transfers in transfers_new...&lt;br /&gt;
Reindex transferfiles in transferfiles_new...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Index list after tmp indices creation&lt;br /&gt;
&lt;br /&gt;
health status index         uuid                   pri rep docs.count docs.deleted store.size pri.store.size&lt;br /&gt;
yellow open   transfers_new gdFevH8yRdiNTdrPcfo8Lg   5   1          0            0       460b           460b&lt;br /&gt;
yellow open   transfers     lYqkYjwZRy2XG8CP_3S3PQ   5   1          3            0     11.6kb         11.6kb&lt;br /&gt;
yellow open   transferfiles K5gnDZyOQz2JdIeZ6adJsQ   5   1          0            0      1.2kb          1.2kb&lt;br /&gt;
yellow open   aips_new      uJ-ehaYLTfe_1lOSErfu3Q   5   1         17            0     96.8mb         96.8mb&lt;br /&gt;
yellow open   aips          yAyK_koXThaZcWsBYfzN7w   5   1         17            0    101.4mb        101.4mb&lt;br /&gt;
yellow open   aipfiles_new  00Xxu7v2QvWsq92gM247xQ   5   1      12905            0      3.1gb          3.1gb&lt;br /&gt;
yellow open   aipfiles      TVrrX8jkRhWWxGfvK_M6zg   5   1      12905            0      2.6gb          2.6gb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Deleting aips...&lt;br /&gt;
Deleting aipfiles...&lt;br /&gt;
Deleting transfers...&lt;br /&gt;
Deleting transferfiles...&lt;br /&gt;
&lt;br /&gt;
Restarting archivematica-dashboard&lt;br /&gt;
Wait 30 seconds to ensure dashboard has created the empty indices with new mapping&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Indexing aips using aips_new ...&lt;br /&gt;
Indexing aipfiles using aipfiles_new ...&lt;br /&gt;
Indexing transfers using transfers_new ...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Deleting aips_new...&lt;br /&gt;
Deleting aipfiles_new...&lt;br /&gt;
Deleting transfers_new...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reindexing done:&lt;br /&gt;
&lt;br /&gt;
health status index         uuid                   pri rep docs.count docs.deleted store.size pri.store.size&lt;br /&gt;
yellow open   transfers     FC7aSVPmSmmCc_LTv1AQRA   5   1          3            0      1.2kb          1.2kb&lt;br /&gt;
yellow open   transferfiles 5JMAft3FQwmosZQFi7eJNw   5   1          0            0      1.2kb          1.2kb&lt;br /&gt;
yellow open   aips          EtwXG3-4SO2Px-4QMRufXA   5   1         17            0    102.1mb        102.1mb&lt;br /&gt;
yellow open   aipfiles      -PFuzslgTeWJ4CWny8VZoA   5   1      12905            0        3gb            3gb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
real	10m47.114s&lt;br /&gt;
user	0m0.068s&lt;br /&gt;
sys	0m0.032s&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Restore Elasticsearch heap size when needed=&lt;br /&gt;
&lt;br /&gt;
* Edit ''/etc/default/elasticsearch'' or ''/etc/sysconfig/elasticsearch'' when needed.&lt;br /&gt;
* Change ''ES_JAVA_OPTS'' when needed.&lt;br /&gt;
* Restart Elasticsearch service when needed (''sudo service elasticsearch restart'')&lt;/div&gt;</summary>
		<author><name>Artefactual</name></author>
	</entry>
	<entry>
		<id>https://wiki.archivematica.org/index.php?title=Archivematica_1.8_and_Storage_Service_0.13_release_notes&amp;diff=12703</id>
		<title>Archivematica 1.8 and Storage Service 0.13 release notes</title>
		<link rel="alternate" type="text/html" href="https://wiki.archivematica.org/index.php?title=Archivematica_1.8_and_Storage_Service_0.13_release_notes&amp;diff=12703"/>
		<updated>2018-10-12T18:34:44Z</updated>

		<summary type="html">&lt;p&gt;Artefactual: /* Indexing can be enabled/disabled for Transfers and/or Archival Storage */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Main_Page|Home]] &amp;gt; [[Release_Notes|Release Notes]] &amp;gt; Major release notes template&lt;br /&gt;
&lt;br /&gt;
'''Work in progress'''&lt;br /&gt;
&lt;br /&gt;
==Supported environments==&lt;br /&gt;
&lt;br /&gt;
Link to installation instructions.&lt;br /&gt;
&lt;br /&gt;
Specify supported environments.&lt;br /&gt;
&lt;br /&gt;
Make special note of any changes to supported environment.&lt;br /&gt;
&lt;br /&gt;
==Added==&lt;br /&gt;
&lt;br /&gt;
Describe new features.&lt;br /&gt;
&lt;br /&gt;
===New feature template===&lt;br /&gt;
&lt;br /&gt;
This is a description of this amazing feature! Here's why it's a net benefit to the project and the community. Also included are any special notes, like if it's a beta feature.&lt;br /&gt;
&lt;br /&gt;
This work was sponsored by some amazing institution. Thank you!&lt;br /&gt;
&lt;br /&gt;
* Documentation: link&lt;br /&gt;
* Pull requests: link&lt;br /&gt;
&lt;br /&gt;
===Processing configuration reset and download buttons===&lt;br /&gt;
&lt;br /&gt;
A new installation of Archivematica comes with a pre-set processing configuration called &amp;quot;default&amp;quot;, and a second one (used only in Jisc workflows) called &amp;quot;automated&amp;quot;. In testing, users are encouraged to change the configurations to suit their workflows, but may need to reset the configuration to the installation pre-sets. A reset button has been added so that users can easily change the default and automated processing configurations back to their installation pre-sets.&lt;br /&gt;
&lt;br /&gt;
The second part of this feature is the addition of a download button for the processing configuration files. If you create a custom processing configuration, you can download the resulting processingMCP.xml file using the button and then include it at the top level of your transfer. Archivematica will then use this to automate your transfer selections, rather than the default configuration.&lt;br /&gt;
&lt;br /&gt;
This work was sponsored by Jisc. Thank you!&lt;br /&gt;
&lt;br /&gt;
* Documentation: [https://www.archivematica.org/en/docs/archivematica-1.8/user-manual/administer/dashboard-admin/#processing-configuration Processing configuration documentation]&lt;br /&gt;
* Issue: [https://github.com/artefactual/archivematica/issues/1138 #1138]&lt;br /&gt;
&lt;br /&gt;
==Changed==&lt;br /&gt;
&lt;br /&gt;
Describe enhancements or major fixes.&lt;br /&gt;
&lt;br /&gt;
===Streamline checksum verification===&lt;br /&gt;
&lt;br /&gt;
This enhancement de-duplicates checksum verification in Archivematica, which helps to improve the performance of Archivematica in processing large transfers (many files and/or large files). This enhancement includes three changes:&lt;br /&gt;
&lt;br /&gt;
* Remove the &amp;quot;Verify checksums generated on ingest&amp;quot; micro-service&lt;br /&gt;
* Enhance the &amp;quot;Verify AIP&amp;quot; micro-service to bulk query the database for transfer-generated checksums and then verify that they match what is documented in the bag-generated manifest-&amp;lt;ALGORITHM&amp;gt;.txt.&lt;br /&gt;
* Have &amp;quot;Verify AIP&amp;quot; create an AIP-level &amp;quot;fixity check&amp;quot; PREMIS:EVENT that it can pass to the Storage Service, which will document this verification in the pointer file.&lt;br /&gt;
&lt;br /&gt;
This should not impact regular workflows, but it is worth noting that there is no AIP-level fixity check PREMIS event for uncompressed AIPs, which don't have pointer files. For uncompressed AIPs, there are still object-level fixity events in place. Note that there is an issue in the Archivematica Issues repository regarding this note - [https://github.com/artefactual/archivematica-storage-service/issues/324 Problem: uncompressed AIPs need pointer files #32]&lt;br /&gt;
&lt;br /&gt;
This work was sponsored by Columbia University Library. Thank you!&lt;br /&gt;
&lt;br /&gt;
* Issue: [https://github.com/artefactual/archivematica/issues/918 #918]&lt;br /&gt;
* Pull requests: [https://github.com/artefactual/archivematica/pull/1012 PR 1012]&lt;br /&gt;
&lt;br /&gt;
===File format identification updates===&lt;br /&gt;
&lt;br /&gt;
Archivematica 1.8 is now up to date with PRONOM v.94! For more information on new data added to PRONOM, check the [http://www.nationalarchives.gov.uk/aboutapps/pronom/release-notes.xml PRONOM release notes].&lt;br /&gt;
&lt;br /&gt;
This work was sponsored by the Denver Art Museum. Thank you!&lt;br /&gt;
&lt;br /&gt;
===Indexing can be enabled/disabled for Transfers and/or Archival Storage===&lt;br /&gt;
Previously, the ElasticSearch index feature could be disabled globally as a scalability measure since indexing consumes a lot of resources. However, this also disabled Backlog and Appraisal features (which also uses indexing) and which some users still wanted to access. As of release 1.8, Archivematica can be deployed to run with indexing enabled just for Transfers (Backlog and Appraisal enabled), just for Archival Storage (Backlog and Appraisal disabled), for both indexes, or for none.&lt;br /&gt;
&lt;br /&gt;
* Issue: [https://github.com/artefactual/archivematica/issues/1172 1172]&lt;br /&gt;
&lt;br /&gt;
==Fixed==&lt;br /&gt;
&lt;br /&gt;
List bugfixes with a link to the Github issue.&lt;br /&gt;
&lt;br /&gt;
* Bugfix 1: ASCII codes can't decode when the filename contains a backtick https://github.com/archivematica/Issues/issues/16&lt;br /&gt;
* Bugfix 2: AIP re-ingest fails.  https://github.com/archivematica/Issues/issues/42&lt;br /&gt;
* Bugfix 3: PREMIS events from previous transfers are re-appearing https://github.com/archivematica/Issues/issues/43&lt;br /&gt;
* Bugfix 4: Metadata reingest fails when dc:type is null https://github.com/artefactual/archivematica/issues/1132&lt;br /&gt;
* Bugfix 5: Use 7-zip without compression (Copy) mode https://github.com/archivematica/Issues/issues/46&lt;br /&gt;
* Bugfix 6: Metadata added before &amp;quot;Approve Transfer&amp;quot; disappears https://github.com/archivematica/Issues/issues/140&lt;br /&gt;
* Bugfix 7: Generate AIP METS fails for bag SIPs if bag-info.txt has multiple instances of the same label https://github.com/archivematica/Issues/issues/173&lt;br /&gt;
* Bugfix 8: Zip files with diacritic characters are failing to extract https://github.com/artefactual/archivematica/issues/1104&lt;br /&gt;
&lt;br /&gt;
==Upgraded tools and dependencies==&lt;br /&gt;
&lt;br /&gt;
* Tool has been updated to version X.&lt;br /&gt;
* Fido has been upgraded to version 1.3.12&lt;br /&gt;
* Siegfried has been upgraded to version 1.7.10&lt;br /&gt;
&lt;br /&gt;
==End of life dependencies==&lt;br /&gt;
&lt;br /&gt;
===Archivists' Toolkit integration===&lt;br /&gt;
&lt;br /&gt;
Archivists' Toolkit has been deprecated since 2013. The Archivists' Toolkit DIP upload feature has not had active development or testing since then. There are no plans to start testing or to fix any problems with the feature. As a result, there is a [https://github.com/archivematica/Issues/issues/174 proposal deprecate this feature in Archivematica 1.9]. Community response is welcome via a comment on the issue in GitHub.&lt;/div&gt;</summary>
		<author><name>Artefactual</name></author>
	</entry>
	<entry>
		<id>https://wiki.archivematica.org/index.php?title=Archivematica_1.8_and_Storage_Service_0.13_release_notes&amp;diff=12702</id>
		<title>Archivematica 1.8 and Storage Service 0.13 release notes</title>
		<link rel="alternate" type="text/html" href="https://wiki.archivematica.org/index.php?title=Archivematica_1.8_and_Storage_Service_0.13_release_notes&amp;diff=12702"/>
		<updated>2018-10-12T16:28:55Z</updated>

		<summary type="html">&lt;p&gt;Artefactual: /* Indexing can be enabled/disabled for Transfers and/or Archival Storage */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Main_Page|Home]] &amp;gt; [[Release_Notes|Release Notes]] &amp;gt; Major release notes template&lt;br /&gt;
&lt;br /&gt;
'''Work in progress'''&lt;br /&gt;
&lt;br /&gt;
==Supported environments==&lt;br /&gt;
&lt;br /&gt;
Link to installation instructions.&lt;br /&gt;
&lt;br /&gt;
Specify supported environments.&lt;br /&gt;
&lt;br /&gt;
Make special note of any changes to supported environment.&lt;br /&gt;
&lt;br /&gt;
==Added==&lt;br /&gt;
&lt;br /&gt;
Describe new features.&lt;br /&gt;
&lt;br /&gt;
===New feature template===&lt;br /&gt;
&lt;br /&gt;
This is a description of this amazing feature! Here's why it's a net benefit to the project and the community. Also included are any special notes, like if it's a beta feature.&lt;br /&gt;
&lt;br /&gt;
This work was sponsored by some amazing institution. Thank you!&lt;br /&gt;
&lt;br /&gt;
* Documentation: link&lt;br /&gt;
* Pull requests: link&lt;br /&gt;
&lt;br /&gt;
===Processing configuration reset and download buttons===&lt;br /&gt;
&lt;br /&gt;
A new installation of Archivematica comes with a pre-set processing configuration called &amp;quot;default&amp;quot;, and a second one (used only in Jisc workflows) called &amp;quot;automated&amp;quot;. In testing, users are encouraged to change the configurations to suit their workflows, but may need to reset the configuration to the installation pre-sets. A reset button has been added so that users can easily change the default and automated processing configurations back to their installation pre-sets.&lt;br /&gt;
&lt;br /&gt;
The second part of this feature is the addition of a download button for the processing configuration files. If you create a custom processing configuration, you can download the resulting processingMCP.xml file using the button and then include it at the top level of your transfer. Archivematica will then use this to automate your transfer selections, rather than the default configuration.&lt;br /&gt;
&lt;br /&gt;
This work was sponsored by Jisc. Thank you!&lt;br /&gt;
&lt;br /&gt;
* Documentation: [https://www.archivematica.org/en/docs/archivematica-1.8/user-manual/administer/dashboard-admin/#processing-configuration Processing configuration documentation]&lt;br /&gt;
* Issue: [https://github.com/artefactual/archivematica/issues/1138 #1138]&lt;br /&gt;
&lt;br /&gt;
==Changed==&lt;br /&gt;
&lt;br /&gt;
Describe enhancements or major fixes.&lt;br /&gt;
&lt;br /&gt;
===Streamline checksum verification===&lt;br /&gt;
&lt;br /&gt;
This enhancement de-duplicates checksum verification in Archivematica, which helps to improve the performance of Archivematica in processing large transfers (many files and/or large files). This enhancement includes three changes:&lt;br /&gt;
&lt;br /&gt;
* Remove the &amp;quot;Verify checksums generated on ingest&amp;quot; micro-service&lt;br /&gt;
* Enhance the &amp;quot;Verify AIP&amp;quot; micro-service to bulk query the database for transfer-generated checksums and then verify that they match what is documented in the bag-generated manifest-&amp;lt;ALGORITHM&amp;gt;.txt.&lt;br /&gt;
* Have &amp;quot;Verify AIP&amp;quot; create an AIP-level &amp;quot;fixity check&amp;quot; PREMIS:EVENT that it can pass to the Storage Service, which will document this verification in the pointer file.&lt;br /&gt;
&lt;br /&gt;
This should not impact regular workflows, but it is worth noting that there is no AIP-level fixity check PREMIS event for uncompressed AIPs, which don't have pointer files. For uncompressed AIPs, there are still object-level fixity events in place. Note that there is an issue in the Archivematica Issues repository regarding this note - [https://github.com/artefactual/archivematica-storage-service/issues/324 Problem: uncompressed AIPs need pointer files #32]&lt;br /&gt;
&lt;br /&gt;
This work was sponsored by Columbia University Library. Thank you!&lt;br /&gt;
&lt;br /&gt;
* Issue: [https://github.com/artefactual/archivematica/issues/918 #918]&lt;br /&gt;
* Pull requests: [https://github.com/artefactual/archivematica/pull/1012 PR 1012]&lt;br /&gt;
&lt;br /&gt;
===File format identification updates===&lt;br /&gt;
&lt;br /&gt;
Archivematica 1.8 is now up to date with PRONOM v.94! For more information on new data added to PRONOM, check the [http://www.nationalarchives.gov.uk/aboutapps/pronom/release-notes.xml PRONOM release notes].&lt;br /&gt;
&lt;br /&gt;
This work was sponsored by the Denver Art Museum. Thank you!&lt;br /&gt;
&lt;br /&gt;
===Indexing can be enabled/disabled for Transfers and/or Archival Storage===&lt;br /&gt;
Previously, the ElasticSearch index feature could be disabled globally as a scalability measure since indexing consumes a lot of resources. However, this also disabled Backlog and Appraisal features (which also uses indexing) and which some users still wanted to access. As of release 1.8, Archivematica can be deployed to run with indexing enabled just for Transfers (Backlog and Appraisal enabled), just for Archival Storage (Backlog and Appraisal disabled), for both indexes, or for none.&lt;br /&gt;
&lt;br /&gt;
* Issue: [https://github.com/artefactual/archivematica/issues/1172 #1172]&lt;br /&gt;
&lt;br /&gt;
==Fixed==&lt;br /&gt;
&lt;br /&gt;
List bugfixes with a link to the Github issue.&lt;br /&gt;
&lt;br /&gt;
* Bugfix 1: ASCII codes can't decode when the filename contains a backtick https://github.com/archivematica/Issues/issues/16&lt;br /&gt;
* Bugfix 2: AIP re-ingest fails.  https://github.com/archivematica/Issues/issues/42&lt;br /&gt;
* Bugfix 3: PREMIS events from previous transfers are re-appearing https://github.com/archivematica/Issues/issues/43&lt;br /&gt;
* Bugfix 4: Metadata reingest fails when dc:type is null https://github.com/artefactual/archivematica/issues/1132&lt;br /&gt;
* Bugfix 5: Use 7-zip without compression (Copy) mode https://github.com/archivematica/Issues/issues/46&lt;br /&gt;
* Bugfix 6: Metadata added before &amp;quot;Approve Transfer&amp;quot; disappears https://github.com/archivematica/Issues/issues/140&lt;br /&gt;
* Bugfix 7: Generate AIP METS fails for bag SIPs if bag-info.txt has multiple instances of the same label https://github.com/archivematica/Issues/issues/173&lt;br /&gt;
* Bugfix 8: Zip files with diacritic characters are failing to extract https://github.com/artefactual/archivematica/issues/1104&lt;br /&gt;
&lt;br /&gt;
==Upgraded tools and dependencies==&lt;br /&gt;
&lt;br /&gt;
* Tool has been updated to version X.&lt;br /&gt;
* Fido has been upgraded to version 1.3.12&lt;br /&gt;
* Siegfried has been upgraded to version 1.7.10&lt;br /&gt;
&lt;br /&gt;
==End of life dependencies==&lt;br /&gt;
&lt;br /&gt;
===Archivists' Toolkit integration===&lt;br /&gt;
&lt;br /&gt;
Archivists' Toolkit has been deprecated since 2013. The Archivists' Toolkit DIP upload feature has not had active development or testing since then. There are no plans to start testing or to fix any problems with the feature. As a result, there is a [https://github.com/archivematica/Issues/issues/174 proposal deprecate this feature in Archivematica 1.9]. Community response is welcome via a comment on the issue in GitHub.&lt;/div&gt;</summary>
		<author><name>Artefactual</name></author>
	</entry>
	<entry>
		<id>https://wiki.archivematica.org/index.php?title=Archivematica_1.8_and_Storage_Service_0.13_release_notes&amp;diff=12701</id>
		<title>Archivematica 1.8 and Storage Service 0.13 release notes</title>
		<link rel="alternate" type="text/html" href="https://wiki.archivematica.org/index.php?title=Archivematica_1.8_and_Storage_Service_0.13_release_notes&amp;diff=12701"/>
		<updated>2018-10-12T16:28:23Z</updated>

		<summary type="html">&lt;p&gt;Artefactual: /* Changed */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Main_Page|Home]] &amp;gt; [[Release_Notes|Release Notes]] &amp;gt; Major release notes template&lt;br /&gt;
&lt;br /&gt;
'''Work in progress'''&lt;br /&gt;
&lt;br /&gt;
==Supported environments==&lt;br /&gt;
&lt;br /&gt;
Link to installation instructions.&lt;br /&gt;
&lt;br /&gt;
Specify supported environments.&lt;br /&gt;
&lt;br /&gt;
Make special note of any changes to supported environment.&lt;br /&gt;
&lt;br /&gt;
==Added==&lt;br /&gt;
&lt;br /&gt;
Describe new features.&lt;br /&gt;
&lt;br /&gt;
===New feature template===&lt;br /&gt;
&lt;br /&gt;
This is a description of this amazing feature! Here's why it's a net benefit to the project and the community. Also included are any special notes, like if it's a beta feature.&lt;br /&gt;
&lt;br /&gt;
This work was sponsored by some amazing institution. Thank you!&lt;br /&gt;
&lt;br /&gt;
* Documentation: link&lt;br /&gt;
* Pull requests: link&lt;br /&gt;
&lt;br /&gt;
===Processing configuration reset and download buttons===&lt;br /&gt;
&lt;br /&gt;
A new installation of Archivematica comes with a pre-set processing configuration called &amp;quot;default&amp;quot;, and a second one (used only in Jisc workflows) called &amp;quot;automated&amp;quot;. In testing, users are encouraged to change the configurations to suit their workflows, but may need to reset the configuration to the installation pre-sets. A reset button has been added so that users can easily change the default and automated processing configurations back to their installation pre-sets.&lt;br /&gt;
&lt;br /&gt;
The second part of this feature is the addition of a download button for the processing configuration files. If you create a custom processing configuration, you can download the resulting processingMCP.xml file using the button and then include it at the top level of your transfer. Archivematica will then use this to automate your transfer selections, rather than the default configuration.&lt;br /&gt;
&lt;br /&gt;
This work was sponsored by Jisc. Thank you!&lt;br /&gt;
&lt;br /&gt;
* Documentation: [https://www.archivematica.org/en/docs/archivematica-1.8/user-manual/administer/dashboard-admin/#processing-configuration Processing configuration documentation]&lt;br /&gt;
* Issue: [https://github.com/artefactual/archivematica/issues/1138 #1138]&lt;br /&gt;
&lt;br /&gt;
==Changed==&lt;br /&gt;
&lt;br /&gt;
Describe enhancements or major fixes.&lt;br /&gt;
&lt;br /&gt;
===Streamline checksum verification===&lt;br /&gt;
&lt;br /&gt;
This enhancement de-duplicates checksum verification in Archivematica, which helps to improve the performance of Archivematica in processing large transfers (many files and/or large files). This enhancement includes three changes:&lt;br /&gt;
&lt;br /&gt;
* Remove the &amp;quot;Verify checksums generated on ingest&amp;quot; micro-service&lt;br /&gt;
* Enhance the &amp;quot;Verify AIP&amp;quot; micro-service to bulk query the database for transfer-generated checksums and then verify that they match what is documented in the bag-generated manifest-&amp;lt;ALGORITHM&amp;gt;.txt.&lt;br /&gt;
* Have &amp;quot;Verify AIP&amp;quot; create an AIP-level &amp;quot;fixity check&amp;quot; PREMIS:EVENT that it can pass to the Storage Service, which will document this verification in the pointer file.&lt;br /&gt;
&lt;br /&gt;
This should not impact regular workflows, but it is worth noting that there is no AIP-level fixity check PREMIS event for uncompressed AIPs, which don't have pointer files. For uncompressed AIPs, there are still object-level fixity events in place. Note that there is an issue in the Archivematica Issues repository regarding this note - [https://github.com/artefactual/archivematica-storage-service/issues/324 Problem: uncompressed AIPs need pointer files #32]&lt;br /&gt;
&lt;br /&gt;
This work was sponsored by Columbia University Library. Thank you!&lt;br /&gt;
&lt;br /&gt;
* Issue: [https://github.com/artefactual/archivematica/issues/918 #918]&lt;br /&gt;
* Pull requests: [https://github.com/artefactual/archivematica/pull/1012 PR 1012]&lt;br /&gt;
&lt;br /&gt;
===File format identification updates===&lt;br /&gt;
&lt;br /&gt;
Archivematica 1.8 is now up to date with PRONOM v.94! For more information on new data added to PRONOM, check the [http://www.nationalarchives.gov.uk/aboutapps/pronom/release-notes.xml PRONOM release notes].&lt;br /&gt;
&lt;br /&gt;
This work was sponsored by the Denver Art Museum. Thank you!&lt;br /&gt;
&lt;br /&gt;
===Indexing can be enabled/disabled for Transfers and/or Archival Storage===&lt;br /&gt;
Previously, the ElasticSearch index feature could be disabled globally as a scalability measure since indexing consumes a lot of resources. However, this also disabled Backlog and Appraisal features (which also uses indexing) and which some users still wanted to access. As of release 1.8, Archivematica can be deployed to run with indexing enabled just for Transfers (Backlog and Appraisal enabled), just for Archival Storage (Backlog and Appraisal disabled), for both indexes or for none.&lt;br /&gt;
&lt;br /&gt;
* Issue: [https://github.com/artefactual/archivematica/issues/1172 #1172]&lt;br /&gt;
&lt;br /&gt;
==Fixed==&lt;br /&gt;
&lt;br /&gt;
List bugfixes with a link to the Github issue.&lt;br /&gt;
&lt;br /&gt;
* Bugfix 1: ASCII codes can't decode when the filename contains a backtick https://github.com/archivematica/Issues/issues/16&lt;br /&gt;
* Bugfix 2: AIP re-ingest fails.  https://github.com/archivematica/Issues/issues/42&lt;br /&gt;
* Bugfix 3: PREMIS events from previous transfers are re-appearing https://github.com/archivematica/Issues/issues/43&lt;br /&gt;
* Bugfix 4: Metadata reingest fails when dc:type is null https://github.com/artefactual/archivematica/issues/1132&lt;br /&gt;
* Bugfix 5: Use 7-zip without compression (Copy) mode https://github.com/archivematica/Issues/issues/46&lt;br /&gt;
* Bugfix 6: Metadata added before &amp;quot;Approve Transfer&amp;quot; disappears https://github.com/archivematica/Issues/issues/140&lt;br /&gt;
* Bugfix 7: Generate AIP METS fails for bag SIPs if bag-info.txt has multiple instances of the same label https://github.com/archivematica/Issues/issues/173&lt;br /&gt;
* Bugfix 8: Zip files with diacritic characters are failing to extract https://github.com/artefactual/archivematica/issues/1104&lt;br /&gt;
&lt;br /&gt;
==Upgraded tools and dependencies==&lt;br /&gt;
&lt;br /&gt;
* Tool has been updated to version X.&lt;br /&gt;
* Fido has been upgraded to version 1.3.12&lt;br /&gt;
* Siegfried has been upgraded to version 1.7.10&lt;br /&gt;
&lt;br /&gt;
==End of life dependencies==&lt;br /&gt;
&lt;br /&gt;
===Archivists' Toolkit integration===&lt;br /&gt;
&lt;br /&gt;
Archivists' Toolkit has been deprecated since 2013. The Archivists' Toolkit DIP upload feature has not had active development or testing since then. There are no plans to start testing or to fix any problems with the feature. As a result, there is a [https://github.com/archivematica/Issues/issues/174 proposal deprecate this feature in Archivematica 1.9]. Community response is welcome via a comment on the issue in GitHub.&lt;/div&gt;</summary>
		<author><name>Artefactual</name></author>
	</entry>
	<entry>
		<id>https://wiki.archivematica.org/index.php?title=Archivematica_1.8_and_Storage_Service_0.13_release_notes&amp;diff=12700</id>
		<title>Archivematica 1.8 and Storage Service 0.13 release notes</title>
		<link rel="alternate" type="text/html" href="https://wiki.archivematica.org/index.php?title=Archivematica_1.8_and_Storage_Service_0.13_release_notes&amp;diff=12700"/>
		<updated>2018-10-12T16:18:33Z</updated>

		<summary type="html">&lt;p&gt;Artefactual: /* Fixed */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Main_Page|Home]] &amp;gt; [[Release_Notes|Release Notes]] &amp;gt; Major release notes template&lt;br /&gt;
&lt;br /&gt;
'''Work in progress'''&lt;br /&gt;
&lt;br /&gt;
==Supported environments==&lt;br /&gt;
&lt;br /&gt;
Link to installation instructions.&lt;br /&gt;
&lt;br /&gt;
Specify supported environments.&lt;br /&gt;
&lt;br /&gt;
Make special note of any changes to supported environment.&lt;br /&gt;
&lt;br /&gt;
==Added==&lt;br /&gt;
&lt;br /&gt;
Describe new features.&lt;br /&gt;
&lt;br /&gt;
===New feature template===&lt;br /&gt;
&lt;br /&gt;
This is a description of this amazing feature! Here's why it's a net benefit to the project and the community. Also included are any special notes, like if it's a beta feature.&lt;br /&gt;
&lt;br /&gt;
This work was sponsored by some amazing institution. Thank you!&lt;br /&gt;
&lt;br /&gt;
* Documentation: link&lt;br /&gt;
* Pull requests: link&lt;br /&gt;
&lt;br /&gt;
===Processing configuration reset and download buttons===&lt;br /&gt;
&lt;br /&gt;
A new installation of Archivematica comes with a pre-set processing configuration called &amp;quot;default&amp;quot;, and a second one (used only in Jisc workflows) called &amp;quot;automated&amp;quot;. In testing, users are encouraged to change the configurations to suit their workflows, but may need to reset the configuration to the installation pre-sets. A reset button has been added so that users can easily change the default and automated processing configurations back to their installation pre-sets.&lt;br /&gt;
&lt;br /&gt;
The second part of this feature is the addition of a download button for the processing configuration files. If you create a custom processing configuration, you can download the resulting processingMCP.xml file using the button and then include it at the top level of your transfer. Archivematica will then use this to automate your transfer selections, rather than the default configuration.&lt;br /&gt;
&lt;br /&gt;
This work was sponsored by Jisc. Thank you!&lt;br /&gt;
&lt;br /&gt;
* Documentation: [https://www.archivematica.org/en/docs/archivematica-1.8/user-manual/administer/dashboard-admin/#processing-configuration Processing configuration documentation]&lt;br /&gt;
* Issue: [https://github.com/artefactual/archivematica/issues/1138 #1138]&lt;br /&gt;
&lt;br /&gt;
==Changed==&lt;br /&gt;
&lt;br /&gt;
Describe enhancements or major fixes.&lt;br /&gt;
&lt;br /&gt;
===Streamline checksum verification===&lt;br /&gt;
&lt;br /&gt;
This enhancement de-duplicates checksum verification in Archivematica, which helps to improve the performance of Archivematica in processing large transfers (many files and/or large files). This enhancement includes three changes:&lt;br /&gt;
&lt;br /&gt;
* Remove the &amp;quot;Verify checksums generated on ingest&amp;quot; micro-service&lt;br /&gt;
* Enhance the &amp;quot;Verify AIP&amp;quot; micro-service to bulk query the database for transfer-generated checksums and then verify that they match what is documented in the bag-generated manifest-&amp;lt;ALGORITHM&amp;gt;.txt.&lt;br /&gt;
* Have &amp;quot;Verify AIP&amp;quot; create an AIP-level &amp;quot;fixity check&amp;quot; PREMIS:EVENT that it can pass to the Storage Service, which will document this verification in the pointer file.&lt;br /&gt;
&lt;br /&gt;
This should not impact regular workflows, but it is worth noting that there is no AIP-level fixity check PREMIS event for uncompressed AIPs, which don't have pointer files. For uncompressed AIPs, there are still object-level fixity events in place. Note that there is an issue in the Archivematica Issues repository regarding this note - [https://github.com/artefactual/archivematica-storage-service/issues/324 Problem: uncompressed AIPs need pointer files #32]&lt;br /&gt;
&lt;br /&gt;
This work was sponsored by Columbia University Library. Thank you!&lt;br /&gt;
&lt;br /&gt;
* Issue: [https://github.com/artefactual/archivematica/issues/918 #918]&lt;br /&gt;
* Pull requests: [https://github.com/artefactual/archivematica/pull/1012 PR 1012]&lt;br /&gt;
&lt;br /&gt;
===File format identification updates===&lt;br /&gt;
&lt;br /&gt;
Archivematica 1.8 is now up to date with PRONOM v.94! For more information on new data added to PRONOM, check the [http://www.nationalarchives.gov.uk/aboutapps/pronom/release-notes.xml PRONOM release notes].&lt;br /&gt;
&lt;br /&gt;
This work was sponsored by the Denver Art Museum. Thank you!&lt;br /&gt;
&lt;br /&gt;
==Fixed==&lt;br /&gt;
&lt;br /&gt;
List bugfixes with a link to the Github issue.&lt;br /&gt;
&lt;br /&gt;
* Bugfix 1: ASCII codes can't decode when the filename contains a backtick https://github.com/archivematica/Issues/issues/16&lt;br /&gt;
* Bugfix 2: AIP re-ingest fails.  https://github.com/archivematica/Issues/issues/42&lt;br /&gt;
* Bugfix 3: PREMIS events from previous transfers are re-appearing https://github.com/archivematica/Issues/issues/43&lt;br /&gt;
* Bugfix 4: Metadata reingest fails when dc:type is null https://github.com/artefactual/archivematica/issues/1132&lt;br /&gt;
* Bugfix 5: Use 7-zip without compression (Copy) mode https://github.com/archivematica/Issues/issues/46&lt;br /&gt;
* Bugfix 6: Metadata added before &amp;quot;Approve Transfer&amp;quot; disappears https://github.com/archivematica/Issues/issues/140&lt;br /&gt;
* Bugfix 7: Generate AIP METS fails for bag SIPs if bag-info.txt has multiple instances of the same label https://github.com/archivematica/Issues/issues/173&lt;br /&gt;
* Bugfix 8: Zip files with diacritic characters are failing to extract https://github.com/artefactual/archivematica/issues/1104&lt;br /&gt;
&lt;br /&gt;
==Upgraded tools and dependencies==&lt;br /&gt;
&lt;br /&gt;
* Tool has been updated to version X.&lt;br /&gt;
* Fido has been upgraded to version 1.3.12&lt;br /&gt;
* Siegfried has been upgraded to version 1.7.10&lt;br /&gt;
&lt;br /&gt;
==End of life dependencies==&lt;br /&gt;
&lt;br /&gt;
===Archivists' Toolkit integration===&lt;br /&gt;
&lt;br /&gt;
Archivists' Toolkit has been deprecated since 2013. The Archivists' Toolkit DIP upload feature has not had active development or testing since then. There are no plans to start testing or to fix any problems with the feature. As a result, there is a [https://github.com/archivematica/Issues/issues/174 proposal deprecate this feature in Archivematica 1.9]. Community response is welcome via a comment on the issue in GitHub.&lt;/div&gt;</summary>
		<author><name>Artefactual</name></author>
	</entry>
	<entry>
		<id>https://wiki.archivematica.org/index.php?title=Archivematica_1.8_and_Storage_Service_0.13_release_notes&amp;diff=12691</id>
		<title>Archivematica 1.8 and Storage Service 0.13 release notes</title>
		<link rel="alternate" type="text/html" href="https://wiki.archivematica.org/index.php?title=Archivematica_1.8_and_Storage_Service_0.13_release_notes&amp;diff=12691"/>
		<updated>2018-10-01T21:57:56Z</updated>

		<summary type="html">&lt;p&gt;Artefactual: /* Changed */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Main_Page|Home]] &amp;gt; [[Release_Notes|Release Notes]] &amp;gt; Major release notes template&lt;br /&gt;
&lt;br /&gt;
'''Work in progress'''&lt;br /&gt;
&lt;br /&gt;
==Supported environments==&lt;br /&gt;
&lt;br /&gt;
Link to installation instructions.&lt;br /&gt;
&lt;br /&gt;
Specify supported environments.&lt;br /&gt;
&lt;br /&gt;
Make special note of any changes to supported environment.&lt;br /&gt;
&lt;br /&gt;
==Added==&lt;br /&gt;
&lt;br /&gt;
Describe new features.&lt;br /&gt;
&lt;br /&gt;
===New feature 1===&lt;br /&gt;
&lt;br /&gt;
This is a description of this amazing feature! Here's why it's a net benefit to the project and the community. Also included are any special notes, like if it's a beta feature.&lt;br /&gt;
&lt;br /&gt;
This work was sponsored by some amazing institution. Thank you!&lt;br /&gt;
&lt;br /&gt;
* Documentation: link&lt;br /&gt;
* Pull requests: link&lt;br /&gt;
&lt;br /&gt;
===New feature 2===&lt;br /&gt;
&lt;br /&gt;
Here is a description of this amazing feature! Here's why it's a net benefit to the project and the community, and here is how it will impact your workflow. Also included are any special notes, like if it's a beta feature.&lt;br /&gt;
&lt;br /&gt;
This work was sponsored by some amazing institution. Thank you!&lt;br /&gt;
&lt;br /&gt;
* Documentation: link&lt;br /&gt;
* Pull requests: link&lt;br /&gt;
* Feature files: link&lt;br /&gt;
&lt;br /&gt;
==Changed==&lt;br /&gt;
&lt;br /&gt;
Describe enhancements or major fixes.&lt;br /&gt;
&lt;br /&gt;
===Enhancement 1===&lt;br /&gt;
&lt;br /&gt;
We fixed this issue. Here's why it's a net benefit to the project and the community, and here is how it will impact your workflow. Also included are any special notes, like if it's a beta feature.&lt;br /&gt;
&lt;br /&gt;
This work was sponsored by some amazing institution. Thank you!&lt;br /&gt;
&lt;br /&gt;
* Documentation: link&lt;br /&gt;
* Pull requests: link&lt;br /&gt;
* Feature files: link&lt;br /&gt;
&lt;br /&gt;
===File Format Identification updates===&lt;br /&gt;
* PRONOM 94 upgrade (sponsored by Denver Art Museum)&lt;br /&gt;
* Fido 1.3.12 upgrade&lt;br /&gt;
* Siegfried 1.7.10 upgrade&lt;br /&gt;
&lt;br /&gt;
==Fixed==&lt;br /&gt;
&lt;br /&gt;
List bugfixes with a link to the Github issue.&lt;br /&gt;
&lt;br /&gt;
* Bugfix 1: Failures on filenames with backticks and other 'silly' characters https://github.com/archivematica/Issues/issues/16&lt;br /&gt;
* Bugfix 2: AIP re-ingest fails.  https://github.com/archivematica/Issues/issues/42&lt;br /&gt;
* Bugfix 3: PREMIS events from previous transfers are re-appearing https://github.com/archivematica/Issues/issues/43&lt;br /&gt;
* Bugfix 4: Metadata reingest fails when dc:type is null https://github.com/artefactual/archivematica/issues/1132&lt;br /&gt;
* Bugfix 5: Use 7-zip without compression (Copy) mode https://github.com/archivematica/Issues/issues/46&lt;br /&gt;
* Bugfix 6: Metadata added before &amp;quot;Approve Transfer&amp;quot; disappears https://github.com/archivematica/Issues/issues/140&lt;br /&gt;
* Bugfix 7: Generate AIP METS fails for bag SIPs if bag-info.txt has multiple instances of the same label https://github.com/archivematica/Issues/issues/173&lt;br /&gt;
&lt;br /&gt;
==Upgraded tools and dependencies==&lt;br /&gt;
&lt;br /&gt;
List any tools and dependencies that have been upgraded.&lt;br /&gt;
&lt;br /&gt;
* Tool has been updated to version X.&lt;br /&gt;
&lt;br /&gt;
==End of life dependencies==&lt;br /&gt;
&lt;br /&gt;
List any dependencies that have reached end of life since the last release, as well as a note on the plan going forward.&lt;br /&gt;
&lt;br /&gt;
Make note of any risks, and how users can mitigate them.&lt;/div&gt;</summary>
		<author><name>Artefactual</name></author>
	</entry>
	<entry>
		<id>https://wiki.archivematica.org/index.php?title=Getting_started&amp;diff=12596</id>
		<title>Getting started</title>
		<link rel="alternate" type="text/html" href="https://wiki.archivematica.org/index.php?title=Getting_started&amp;diff=12596"/>
		<updated>2018-08-10T18:44:18Z</updated>

		<summary type="html">&lt;p&gt;Artefactual: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Main Page]] &amp;gt; [[Development]] &amp;gt; [[:Category:Development documentation|Development documentation]] &amp;gt; Getting Started&lt;br /&gt;
&lt;br /&gt;
This wiki page describes getting started with Archivematica as a developer. For user and administrative manuals, please see http://www.archivematica.org.&lt;br /&gt;
&lt;br /&gt;
== Vital Stats ==&lt;br /&gt;
&lt;br /&gt;
* Language: Python (primarily)&lt;br /&gt;
* License: [https://en.wikipedia.org/wiki/Affero_General_Public_License AGPL]&lt;br /&gt;
* VCS: git&lt;br /&gt;
* Major libraries: [https://www.djangoproject.com/ Django], [http://gearman.org/ gearman] ([https://pythonhosted.org/gearman/ Python API])&lt;br /&gt;
* [[Contribute_code|Contribution guidelines]]&lt;br /&gt;
** [[Contribute_code#Code_Style_Guide_For_Archivematica|Coding style]]&lt;br /&gt;
&lt;br /&gt;
== Projects ==&lt;br /&gt;
&lt;br /&gt;
Archivematica consists of several projects working together.&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/artefactual/archivematica Archivematica]: Main repository containing the user-facing dashboard, task manager MCPServer and clients scripts for the MCPClient&lt;br /&gt;
* [https://github.com/artefactual/archivematica-storage-service Storage Service]: Responsible for moving files to Archivematica for processing, and from Archivematica into storage&lt;br /&gt;
* [https://github.com/artefactual/archivematica-fpr-admin Format Policy Registry]: Submodule shared between Archivematica and the Format Policy Registry (FPR) server that displays and updates FPR rules and commands&lt;br /&gt;
&lt;br /&gt;
There are also several smaller repositories that support Archivematica in various ways.  In general, you will not need these to develop on Archivematica.&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/artefactual/archivematica-devtools Development tools]: Scripts to help with development. E.g. restarting services, workflow analysis&lt;br /&gt;
* [https://github.com/artefactual/archivematica-fpr-tools FPR tools]: All the tools, commands and rules used to populate the FPR database.  Changes to the FPR should be submitted here.&lt;br /&gt;
* [https://github.com/artefactual/archivematica-docs Archivematica Documentation]: Documentation found at https://www.archivematica.org/en/docs/ for Archivematica&lt;br /&gt;
* [https://github.com/artefactual/archivematica-storage-service-docs Storage Service Documentation]: Documentation found at https://www.archivematica.org/en/docs/ for the Storage Service&lt;br /&gt;
* [https://github.com/artefactual/automation-tools Automation Tools]: Scripts used to automate processing material through Archivematica&lt;br /&gt;
* [https://github.com/artefactual/deploy-pub Deployment]: Ansible scripts for deploying and configuring Archivematica&lt;br /&gt;
* [https://github.com/artefactual-labs/ansible-archivematica Deployment-Archivematica]: Ansible playbook for Archivematica package install.&lt;br /&gt;
* [https://github.com/artefactual-labs/ansible-role-archivematica-src Deployment-Archivematica-dev]: Ansible playbook for Archivematica github install.&lt;br /&gt;
* [https://github.com/artefactual/fixity Fixity checker]: Commandline tool that assists in checking fixity for AIPs stored in Archivematica Storage Service instances.&lt;br /&gt;
* [https://github.com/artefactual-labs/mets-reader-writer METS reader/writer]: Library to create and parse METS files.&lt;br /&gt;
* [https://github.com/artefactual-labs/agentarchives agentarchives]: Clients to retrieve, add, and modify records from archival management systems.&lt;br /&gt;
* [https://github.com/artefactual/archivematica-sampledata Sample data]: Data to test and show off Archivematica's processing&lt;br /&gt;
* [https://github.com/artefactual/archivematica-history History]: Contains the pre-git history of Archivematica. Useful for checking the origins of code.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
The recommended way to install Archivematica for development is with Ansible and Vagrant.&lt;br /&gt;
&lt;br /&gt;
Alternatively, you can try our environment based on Docker Compose - see https://github.com/artefactual-labs/am/tree/master/compose.&lt;br /&gt;
&lt;br /&gt;
=== Ansible &amp;amp; Vagrant ===&lt;br /&gt;
&lt;br /&gt;
The following instructions detail how to install and run Archivematica from source on a virtual machine.&lt;br /&gt;
# Install VirtualBox, Vagrant, and Ansible with the following commands:&lt;br /&gt;
#* &amp;lt;code&amp;gt;sudo apt-get install virtualbox vagrant&amp;lt;/code&amp;gt; (this is the command for Ubuntu; if you use Mac or a different Linux distribution, it may be slightly different).&lt;br /&gt;
#** Note: Vagrant must be at least 1.5 (it can also be downloaded from [https://www.vagrantup.com/downloads.html vagrantup.com]). Check your version with &amp;lt;code&amp;gt;vagrant --version&amp;lt;/code&amp;gt;.&lt;br /&gt;
#* &amp;lt;code&amp;gt;sudo pip install -U ansible&amp;lt;/code&amp;gt;&lt;br /&gt;
# Checkout the deployment repo:&lt;br /&gt;
#* &amp;lt;code&amp;gt;git clone https://github.com/artefactual/deploy-pub.git&amp;lt;/code&amp;gt;&lt;br /&gt;
# Download the Ansible roles:&lt;br /&gt;
#* &amp;lt;code&amp;gt;cd deploy-pub/playbooks/archivematica&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;ansible-galaxy install -f -p roles/ -r requirements.yml&amp;lt;/code&amp;gt;&lt;br /&gt;
# (Optional) Change the branch by opening the file &amp;lt;code&amp;gt;vars-singlenode.yml&amp;lt;/code&amp;gt; and modifying the following:&lt;br /&gt;
#* &amp;lt;code&amp;gt;archivematica_src_am_version: &amp;quot;branch-name&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;archivematica_src_ss_version: &amp;quot;branch-name&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
# Create the virtual machine and provision it:&lt;br /&gt;
#* &amp;lt;code&amp;gt;vagrant up&amp;lt;/code&amp;gt; (it takes a while!)&lt;br /&gt;
# You can now log in to your virtual machine:&lt;br /&gt;
#* &amp;lt;code&amp;gt;vagrant ssh&amp;lt;/code&amp;gt;&lt;br /&gt;
# You can now access the following services in a web browser:&lt;br /&gt;
#* Archivematica - http://192.168.168.192&lt;br /&gt;
#* Archivematica Storage Service: http://192.168.168.192:8000&lt;br /&gt;
&lt;br /&gt;
You may also wish to do the following.&lt;br /&gt;
# Provisioning (via ansible) can be re-run with vagrant to update the code on the server (for example, if new features are added):&lt;br /&gt;
#* &amp;lt;code&amp;gt;vagrant provision&amp;lt;/code&amp;gt;&lt;br /&gt;
# To re-deploy a new branch to the same VM, update the branch variables in &amp;lt;code&amp;gt;vars-singlenode.yml&amp;lt;/code&amp;gt;:&lt;br /&gt;
#* &amp;lt;code&amp;gt;archivematica_src_am_version: &amp;quot;branch-name&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;archivematica_src_ss_version: &amp;quot;branch-name&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
#** This will probably require resetting the Archivematica installation as well.  This can be done by adding variables to &amp;lt;code&amp;gt;vars-singlenode.yml&amp;lt;/code&amp;gt;&lt;br /&gt;
#* &amp;lt;code&amp;gt;archivematica_src_reset_am_all: &amp;quot;true&amp;quot;&amp;lt;/code&amp;gt;  This will reset the Archivematica database, clear ElasticSearch and clear shared directories&lt;br /&gt;
#* &amp;lt;code&amp;gt;archivematica_src_reset_ss_db: &amp;quot;true&amp;quot;&amp;lt;/code&amp;gt; This will reset the Storage Service database&lt;br /&gt;
#* For more variables to control deployment, see the [https://github.com/artefactual-labs/ansible-role-archivematica-src/blob/master/README.md  README]&lt;br /&gt;
# See also the FAQ below&lt;br /&gt;
&lt;br /&gt;
=== Alternative Vagrant projects ===&lt;br /&gt;
&lt;br /&gt;
Community-provided alternatives have also been developed.&lt;br /&gt;
&lt;br /&gt;
*https://github.com/emltech/eml-archivematica-vagrant&lt;br /&gt;
*https://github.com/statsbiblioteket/archivematica-vagrant&lt;br /&gt;
&lt;br /&gt;
== Tests ==&lt;br /&gt;
&lt;br /&gt;
Archivematica and the related projects have a small but growing test suite. We use [http://pytest.org/ py.test] to run our tests, which should be listed as a requirement in the development/local requirements file.&lt;br /&gt;
&lt;br /&gt;
To run the tests, go to the repository root and run &amp;lt;code&amp;gt;py.test&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See below for project-specific setup or changes to running the tests.&lt;br /&gt;
&lt;br /&gt;
=== Archivematica ===&lt;br /&gt;
&lt;br /&gt;
Before running Archivematica tests, set the following environment variable.  Archivematica does not currently have a virtualenv that needs to be activated.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/fish&lt;br /&gt;
set -xg PYTHONPATH /usr/share/archivematica/dashboard/:/usr/lib/archivematica/archivematicaCommon/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/bash&lt;br /&gt;
export PYTHONPATH=$PYTHONPATH:/usr/share/archivematica/dashboard/:/usr/lib/archivematica/archivematicaCommon/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Storage Service ===&lt;br /&gt;
&lt;br /&gt;
Before running Storage Service tests, activate the virtualenv and set the following environment variables. The tests should be run from the &amp;lt;code&amp;gt;storage_service&amp;lt;/code&amp;gt; directory.  This is the same directory that contains &amp;lt;code&amp;gt;manage.py&amp;lt;/code&amp;gt;. You may need to install &amp;lt;code&amp;gt;requirements/test.txt&amp;lt;/code&amp;gt; to install testing dependencies.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/fish&lt;br /&gt;
set -xg PYTHONPATH (pwd)/storage_service  # This directory contains manage.py&lt;br /&gt;
set -xg DJANGO_SETTINGS_MODULE storage_service.settings.test&lt;br /&gt;
set -xg DJANGO_SECRET_KEY 'ADDKEY'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/bash&lt;br /&gt;
export PYTHONPATH=$(pwd)/storage_service  # This directory contains manage.py&lt;br /&gt;
export DJANGO_SETTINGS_MODULE=storage_service.settings.test&lt;br /&gt;
export DJANGO_SECRET_KEY='ADDKEY'&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
&lt;br /&gt;
=== How do I restart everything in Archivematica? ===&lt;br /&gt;
&lt;br /&gt;
A default install using Ansible also installs the devtools.  Run &amp;lt;code&amp;gt;am restart-services&amp;lt;/code&amp;gt; to restart all services related to Archivematica and the storage service.&lt;br /&gt;
&lt;br /&gt;
=== How do I restart just the dashboard? ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo /etc/init.d/apache2 start&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;sudo service apache2 restart&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== How do I restart the storage service? ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo service uwsgi restart&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== How do I restart nginx? ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo service uwsgi restart&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;sudo service nginx restart&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== How do I update or reset an ansible install? ===&lt;br /&gt;
&lt;br /&gt;
To update an install, re-run &amp;lt;code&amp;gt;vagrant provision&amp;lt;/code&amp;gt;.  If you only want to run part of the ansible tasks, you can use ansible's tags, for example: &amp;lt;code&amp;gt;env ANSIBLE_ARGS=&amp;quot;--tags=amsrc-ss-code&amp;quot; vagrant provision&amp;lt;/code&amp;gt;  More tags are documented in the [https://github.com/artefactual-labs/ansible-role-archivematica-src ansible repo]&lt;br /&gt;
&lt;br /&gt;
To reset an install (delete all existing data like a fresh install) you can use ansible's role variables.  For example: &amp;lt;code&amp;gt;env ANSIBLE_ARGS=&amp;quot;--extra-vars=archivematica_src_reset_ss_db=true&amp;quot; vagrant provision&amp;lt;/code&amp;gt; will reset the storage service database.  More role variables are documented in the [https://github.com/artefactual-labs/ansible-role-archivematica-src ansible repo] &lt;br /&gt;
&lt;br /&gt;
The other way to control a deployment is to modify the Vagrantfile and vars-singlenote.yml files directly.  Tags can be provided in the Vagrantfile.  For example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# ... more above&lt;br /&gt;
  # Ansible provisioning&lt;br /&gt;
  config.vm.provision :ansible do |ansible|&lt;br /&gt;
    ansible.playbook = &amp;quot;./singlenode.yml&amp;quot;&lt;br /&gt;
    ansible.host_key_checking = false&lt;br /&gt;
    # ansible.verbose = &amp;quot;v&amp;quot;&lt;br /&gt;
    ansible.extra_vars = {&lt;br /&gt;
      &amp;quot;archivematica_src_dir&amp;quot; =&amp;gt; &amp;quot;/srv&amp;quot;,&lt;br /&gt;
      &amp;quot;archivematica_src_environment_type&amp;quot; =&amp;gt; &amp;quot;development&amp;quot;,&lt;br /&gt;
    }&lt;br /&gt;
    ansible.raw_arguments = ENV['ANSIBLE_ARGS']&lt;br /&gt;
    ansible.tags = ['amsrc-pipeline']&lt;br /&gt;
end&lt;br /&gt;
# ... more below&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Role variables can be modified in vars-singlenote.yml.  Default values are found in the Archivematica role (in &amp;lt;code&amp;gt;roles/archivematica-src/defaults/main.yml&amp;lt;/code&amp;gt;).  For example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
# archivematica-src role&lt;br /&gt;
&lt;br /&gt;
# What to install&lt;br /&gt;
archivematica_src_install_devtools: &amp;quot;yes&amp;quot;&lt;br /&gt;
archivematica_src_install_automationtools: &amp;quot;yes&amp;quot;&lt;br /&gt;
# archivematica_src_install_appraisaltab: &amp;quot;yes&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# SS django environment variables&lt;br /&gt;
archivematica_src_ss_env_django_setings_module: &amp;quot;storage_service.settings.local&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Branches,&lt;br /&gt;
archivematica_src_am_version: &amp;quot;qa/1.x&amp;quot;&lt;br /&gt;
archivematica_src_ss_version: &amp;quot;qa/0.x&amp;quot;&lt;br /&gt;
# archivematica_src_devtools_version: &amp;quot;master&amp;quot;&lt;br /&gt;
# archivematica_src_automationtools_version: &amp;quot;master&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Reset&lt;br /&gt;
# archivematica_src_reset_mcpdb: &amp;quot;true&amp;quot;&lt;br /&gt;
# archivematica_src_reset_shareddir: &amp;quot;true&amp;quot;&lt;br /&gt;
# archivematica_src_reset_es: &amp;quot;true&amp;quot;&lt;br /&gt;
archivematica_src_reset_am_all: &amp;quot;true&amp;quot;&lt;br /&gt;
archivematica_src_reset_ss_db: &amp;quot;true&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== How do I activate the Storage Service virtualenv? ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;source /usr/share/python/archivematica-storage-service/bin/activate&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The location of the virtualenv is configured as part of the ansible install, which by default is &amp;lt;code&amp;gt;/usr/share/python/archivematica-storage-service&amp;lt;/code&amp;gt;  Sourcing the activate script should modify the prompt to display &amp;lt;code&amp;gt;(archivematica-storage-service)vagrant@am-local&amp;lt;/code&amp;gt;.  Note that if you're running fish, the activate script will not work; you may want to look in to [http://virtualfish.readthedocs.io/en/latest/ virtualfish].&lt;br /&gt;
&lt;br /&gt;
You will also want to set environment variables as described in the storage service testing section.&lt;br /&gt;
&lt;br /&gt;
== Documentation ==&lt;br /&gt;
&lt;br /&gt;
Developer facing documentation can be found in the [[:Category:Development documentation|Development documentation]] category.  Notable pages include:&lt;br /&gt;
&lt;br /&gt;
* [[MCPServer]]&lt;br /&gt;
* [[MCPClient]]&lt;br /&gt;
* [[Storage Service]]&lt;br /&gt;
* [[Storage Service API]]&lt;br /&gt;
* [[Archivematica API]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Development documentation]]&lt;/div&gt;</summary>
		<author><name>Artefactual</name></author>
	</entry>
</feed>