<?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=Joseph</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=Joseph"/>
	<link rel="alternate" type="text/html" href="https://wiki.archivematica.org/Special:Contributions/Joseph"/>
	<updated>2026-06-03T07:00:08Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.35.4</generator>
	<entry>
		<id>https://wiki.archivematica.org/index.php?title=Digital_forensics_image_ingest&amp;diff=8589</id>
		<title>Digital forensics image ingest</title>
		<link rel="alternate" type="text/html" href="https://wiki.archivematica.org/index.php?title=Digital_forensics_image_ingest&amp;diff=8589"/>
		<updated>2013-06-25T20:52:03Z</updated>

		<summary type="html">&lt;p&gt;Joseph: /* Detail */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Main Page]] &amp;gt; [[Development]] &amp;gt; [[:Category:Development documentation|Development documentation]] &amp;gt; Digital forensics image ingest&lt;br /&gt;
[[Category:Development documentation]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Related issues: #5265&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Forensics image transfer type ==&lt;br /&gt;
&lt;br /&gt;
* Archivematica transfer type: forensic image&lt;br /&gt;
** One or more images make up a transfer&lt;br /&gt;
** Repository makes image using outside imaging software prior to ingest&lt;br /&gt;
** Some metadata from ingest process will be included, first from FTK, but later from other tools like Guymager (see metadata requirements below)&lt;br /&gt;
* Forensic image types accepted: dd (Raw), ISO, AD1, BIN (these formats are sponsored, support for the formats listed [http://www.forensicswiki.org/wiki/Forensic_file_formats here] is desirable in future releases)&lt;br /&gt;
&lt;br /&gt;
== Forensics image transfer workflow ==&lt;br /&gt;
[[File:ArchivematicaForensicImageIngest.png|900px|thumb|center|]]&lt;br /&gt;
[[File:ArchivematicaForensicImageIngest(2).png|700px|thumb|center|]]&lt;br /&gt;
====Detail====&lt;br /&gt;
* User images external media outside the Archivematica workflow&lt;br /&gt;
* User uploads image(s) into the Archivematica transfer tab of the dashboard by browsing to the appropriate transfer source directory and selecting a directory containing their image(s)&lt;br /&gt;
* User enters transfer name and accession number&lt;br /&gt;
* User selects MD entry template for entering MD about the imaging process &lt;br /&gt;
** User enters MD (see MD requirements below)&lt;br /&gt;
** User saves MD and starts transfer processes&lt;br /&gt;
* User selects Start transfer to begin Archivematica transfer processing&lt;br /&gt;
* Fiwalk with Fido completes the Characterize and extract metadata micro-service&lt;br /&gt;
* Archivematica runs [http://www.forensicswiki.org/wiki/Bulk_extractor Bulk Extractor] tool('''Examine contents micro-service''') and indexes output (this is to allow for reporting and visualization in the transfer backlog search for SIP creation and/or the AIP advanced search to allow for minimal description)&lt;br /&gt;
* Transfer micro-services complete&lt;br /&gt;
* At Create SIP from Transfer micro-service, user selects one of two options:&lt;br /&gt;
** If the user is an archivist/curator ready to process the image through to storage and/or access, choose Create single SIP and continue processing&lt;br /&gt;
** If the user is uploading multiple images as part of one accession, for processing by an archivist/curator later, choose Send to backlog&lt;br /&gt;
*** In the second scenario, once all images from an accession are in the backlog, user alerts archivist/curator that the accession is ready for further processing&lt;br /&gt;
** Archivist searches for the accession in the transfer backlog, selects the appropriate transfers, and selects Create SIP &lt;br /&gt;
* In ingest tab, user approves SIP creation&lt;br /&gt;
* In ingest tab, prior to normalization, there is a decision point at '''Extract packages micro-service''' - User selects from drop-down: Extract objects from image, Do not extract objects from image, Reject&lt;br /&gt;
** If user chooses not to extract objects, then skip micro-service decision about tool output to base normalization on, choose normalization for preservation only or no normalization, and continue standard micro-services to store AIP.&lt;br /&gt;
** If user chooses to extract objects, Archivematica runs FITS on the extracted contents. The user continues standard workflow, choosing any of the normalization options (including manual normalization) and continues processing to storage and/or access.&lt;br /&gt;
&lt;br /&gt;
==Metadata requirements==&lt;br /&gt;
When the user selects Forensic image transfer type, each image uploaded as part of the transfer will include a metadata form icon that, if selected, will open a form in another browser tab. There, the user will enter some or all of the MD indicated below in the Template for manual data entry list. &lt;br /&gt;
&lt;br /&gt;
* Template for manual data entry&lt;br /&gt;
**accession number - recorded in transfer upload in dashboard&lt;br /&gt;
**media number - manual &lt;br /&gt;
**label text - manual (long text field)&lt;br /&gt;
**media manufacture - manual&lt;br /&gt;
**serial number - manual&lt;br /&gt;
**media format - manual, could be controlled value list&lt;br /&gt;
**media density - manual, could be controlled value list&lt;br /&gt;
**source filesystem&lt;br /&gt;
**notes about the imaging process&lt;br /&gt;
**imaging interface - manual, could be controlled value list&lt;br /&gt;
**examiner - manual, could be from Archivematica registered users&lt;br /&gt;
**image format - manual, could be controlled value list&lt;br /&gt;
**imaging software - manual, could be controlled value list&lt;br /&gt;
**notes about the imaging process - manual (long text field)&lt;br /&gt;
&lt;br /&gt;
* Import from imaging tool FTK or fiwalk/sleuthkit&lt;br /&gt;
**imaging date (FTK or other imaging tool output)&lt;br /&gt;
**imaging success - Yes, Yes with errors (FTK or other imaging tool output)&lt;br /&gt;
**image fixity (FTK or other imaging tool output&lt;br /&gt;
**source filesystem (fiwalk)&lt;br /&gt;
**accession data about extent (fiwalk)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!'''element'''&lt;br /&gt;
!'''description'''&lt;br /&gt;
!'''DACS (2013)'''&lt;br /&gt;
!'''ISAD(G)'''&lt;br /&gt;
!'''EAD'''&lt;br /&gt;
!'''PREMIS 2.2'''&lt;br /&gt;
|-&lt;br /&gt;
|media number&lt;br /&gt;
|repository specific alphanumeric designation assigned to individual physical media/carrier&lt;br /&gt;
|2.1.3 local identifier - At the highest level of a multilevel description or in a single level description,&lt;br /&gt;
provide a unique identifier for the materials being described in accordance with the&lt;br /&gt;
institution’s administrative control system. Optionally, devise unique identifiers at lower&lt;br /&gt;
levels of a multilevel description.&lt;br /&gt;
|3.1.1 - Reference codes&lt;br /&gt;
|&amp;lt;unitid&amp;gt; &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|label text&lt;br /&gt;
|textual transcription&lt;br /&gt;
|7.1.2 Record, as needed, information not accommodated by any of the defined elements of description. &lt;br /&gt;
|3.6.1 Note&lt;br /&gt;
|&amp;lt;odd&amp;gt;, &amp;lt;note&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|media manufacturer&lt;br /&gt;
|&lt;br /&gt;
|7.1.4 - If the materials being described are in electronic form, give details of any migration or logical reformatting since its transfer to archival custody. Indicate the location of any relevant documentation. Information regarding digitization is provided in the Existence and Location of Copies Element (6.2).&lt;br /&gt;
|3.6.1 Note&lt;br /&gt;
|&amp;lt;odd&amp;gt;, &amp;lt;note&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|serial number&lt;br /&gt;
|when applicable to external media&lt;br /&gt;
|7.1.4 or 7.1.6 If appropriate at the file or item level of description, make a note of any important numbers borne by the unit being described. &lt;br /&gt;
|3.6.1 Note&lt;br /&gt;
|&amp;lt;odd&amp;gt;, &amp;lt;note&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|media format&lt;br /&gt;
|a controlled value list (e.g. 3.5&amp;quot; floppy, 5.25&amp;quot; floppy, CD-R, etc)&lt;br /&gt;
|7.1.4 &lt;br /&gt;
|3.6.1 Note&lt;br /&gt;
|&amp;lt;odd&amp;gt;, &amp;lt;note&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|media density&lt;br /&gt;
|a controlled value list (e.g. single density, double density, quad density, high density)&lt;br /&gt;
|7.1.4 &lt;br /&gt;
|3.6.1 Note&lt;br /&gt;
|&amp;lt;odd&amp;gt;, &amp;lt;note&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|source filesystem&lt;br /&gt;
|a controlled file list(e.g. HFS, FAT, etc.) with the ability to add terms&lt;br /&gt;
|7.1.4&lt;br /&gt;
|3.6.1 Note&lt;br /&gt;
|&amp;lt;odd&amp;gt;, &amp;lt;note&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|notes about the imaging process&lt;br /&gt;
|textual field to describe more detail about the imaging process&lt;br /&gt;
|7.1.4&lt;br /&gt;
|3.6.1 Note&lt;br /&gt;
|&amp;lt;odd&amp;gt;, &amp;lt;note&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|imaging interface&lt;br /&gt;
|a controlled value list (e.g. Catweasel, Firewire, USB, IDE, etc.)&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|2.2 - Event: Image capture&lt;br /&gt;
|-&lt;br /&gt;
|examiner&lt;br /&gt;
|the person doing the imaging&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|2.2 - Agent&lt;br /&gt;
|-&lt;br /&gt;
|imaging date&lt;br /&gt;
|date of imaging&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|2.2 - Event: Image capture&lt;br /&gt;
|-&lt;br /&gt;
|imaging success&lt;br /&gt;
|ex Yes/Yes, with errors&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|2.2 - Event: Image capture&lt;br /&gt;
|-&lt;br /&gt;
|image format&lt;br /&gt;
|a controlled value list (e.g. AFF3, dd/secort image, AD1, etc.) with the ability to add terms&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|2.2 - Object&lt;br /&gt;
|-&lt;br /&gt;
|imaging software&lt;br /&gt;
|a controlled value list (e.g. FTK imager 3.1.0.1514, Kryoflux, DTC 2.00 beta 9, etc.) with the ability to add terms&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|2.2 - Agent&lt;br /&gt;
|-&lt;br /&gt;
|image fixity&lt;br /&gt;
|type(s) and value(s) from FTK csv output&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|2.2 - Object&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Forensic image transfer tools ==&lt;br /&gt;
&lt;br /&gt;
===fiwalk===&lt;br /&gt;
 &lt;br /&gt;
* Characterize and extract metadata micro-service&lt;br /&gt;
* Use Mark Matienzo's github version which includes FIDO for format identification since fiwalk's format identification is libmagic (unsatisfactory for our purposes)&lt;br /&gt;
&lt;br /&gt;
Sample fiwalk xml output:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;?xml version='1.0' encoding='ISO-8859-1'?&amp;gt;&lt;br /&gt;
&amp;lt;fiwalk xmloutputversion='0.2'&amp;gt;&lt;br /&gt;
  &amp;lt;metadata &lt;br /&gt;
  xmlns='http://example.org/myapp/' &lt;br /&gt;
  xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' &lt;br /&gt;
  xmlns:dc='http://purl.org/dc/elements/1.1/'&amp;gt;&lt;br /&gt;
    &amp;lt;dc:type&amp;gt;Disk Image&amp;lt;/dc:type&amp;gt;&lt;br /&gt;
  &amp;lt;/metadata&amp;gt;&lt;br /&gt;
  &amp;lt;creator&amp;gt;&lt;br /&gt;
    &amp;lt;program&amp;gt;fiwalk&amp;lt;/program&amp;gt;&lt;br /&gt;
    &amp;lt;version&amp;gt;0.5.7&amp;lt;/version&amp;gt;&lt;br /&gt;
    &amp;lt;os&amp;gt;Darwin&amp;lt;/os&amp;gt;&lt;br /&gt;
    &amp;lt;library name=&amp;quot;tsk&amp;quot; version=&amp;quot;3.0.1&amp;quot;&amp;gt;&amp;lt;/library&amp;gt;&lt;br /&gt;
    &amp;lt;library name=&amp;quot;afflib&amp;quot; version=&amp;quot;3.5.2&amp;quot;&amp;gt;&amp;lt;/library&amp;gt;&lt;br /&gt;
    &amp;lt;command_line&amp;gt;fiwalk -x /dev/disk2&amp;lt;/command_line&amp;gt;&lt;br /&gt;
  &amp;lt;/creator&amp;gt;&lt;br /&gt;
  &amp;lt;source&amp;gt;&lt;br /&gt;
    &amp;lt;imagefile&amp;gt;/dev/disk2&amp;lt;/imagefile&amp;gt;&lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;!-- fs start: 512 --&amp;gt;&lt;br /&gt;
  &amp;lt;volume offset='512'&amp;gt;&lt;br /&gt;
    &amp;lt;Partition_Offset&amp;gt;512&amp;lt;/Partition_Offset&amp;gt;&lt;br /&gt;
    &amp;lt;block_size&amp;gt;512&amp;lt;/block_size&amp;gt;&lt;br /&gt;
    &amp;lt;ftype&amp;gt;2&amp;lt;/ftype&amp;gt;&lt;br /&gt;
    &amp;lt;ftype_str&amp;gt;fat12&amp;lt;/ftype_str&amp;gt;&lt;br /&gt;
    &amp;lt;block_count&amp;gt;5062&amp;lt;/block_count&amp;gt;&lt;br /&gt;
    &amp;lt;first_block&amp;gt;0&amp;lt;/first_block&amp;gt;&lt;br /&gt;
    &amp;lt;last_block&amp;gt;5061&amp;lt;/last_block&amp;gt;&lt;br /&gt;
    &amp;lt;fileobject&amp;gt;&lt;br /&gt;
      &amp;lt;filename&amp;gt;README.txt&amp;lt;/filename&amp;gt;&lt;br /&gt;
      &amp;lt;id&amp;gt;2&amp;lt;/id&amp;gt;&lt;br /&gt;
      &amp;lt;filesize&amp;gt;43&amp;lt;/filesize&amp;gt;&lt;br /&gt;
      &amp;lt;partition&amp;gt;1&amp;lt;/partition&amp;gt;&lt;br /&gt;
      &amp;lt;alloc&amp;gt;1&amp;lt;/alloc&amp;gt;&lt;br /&gt;
      &amp;lt;used&amp;gt;1&amp;lt;/used&amp;gt;&lt;br /&gt;
      &amp;lt;inode&amp;gt;6&amp;lt;/inode&amp;gt;&lt;br /&gt;
      &amp;lt;type&amp;gt;1&amp;lt;/type&amp;gt;&lt;br /&gt;
      &amp;lt;mode&amp;gt;511&amp;lt;/mode&amp;gt;&lt;br /&gt;
      &amp;lt;nlink&amp;gt;1&amp;lt;/nlink&amp;gt;&lt;br /&gt;
      &amp;lt;uid&amp;gt;0&amp;lt;/uid&amp;gt;&lt;br /&gt;
      &amp;lt;gid&amp;gt;0&amp;lt;/gid&amp;gt;&lt;br /&gt;
      &amp;lt;mtime&amp;gt;1258916904&amp;lt;/mtime&amp;gt;&lt;br /&gt;
      &amp;lt;atime&amp;gt;1258876800&amp;lt;/atime&amp;gt;&lt;br /&gt;
      &amp;lt;crtime&amp;gt;1258916900&amp;lt;/crtime&amp;gt;&lt;br /&gt;
      &amp;lt;byte_runs&amp;gt;&lt;br /&gt;
       &amp;lt;run file_offset='0' fs_offset='37376' img_offset='37888' len='43'/&amp;gt;&lt;br /&gt;
      &amp;lt;/byte_runs&amp;gt;&lt;br /&gt;
      &amp;lt;hashdigest type='md5'&amp;gt;2bbe5c3b554b14ff710a0a2e77ce8c4d&amp;lt;/hashdigest&amp;gt;&lt;br /&gt;
      &amp;lt;hashdigest type='sha1'&amp;gt;b3ccdbe2db1c568e817c25bf516e3bf976a1dea6&amp;lt;/hashdigest&amp;gt;&lt;br /&gt;
    &amp;lt;/fileobject&amp;gt;&lt;br /&gt;
  &amp;lt;/volume&amp;gt;&lt;br /&gt;
&amp;lt;!-- end of volume --&amp;gt;&lt;br /&gt;
&amp;lt;!-- clock: 0 --&amp;gt;&lt;br /&gt;
  &amp;lt;runstats&amp;gt;&lt;br /&gt;
    &amp;lt;user_seconds&amp;gt;0&amp;lt;/user_seconds&amp;gt;&lt;br /&gt;
    &amp;lt;system_seconds&amp;gt;0&amp;lt;/system_seconds&amp;gt;&lt;br /&gt;
    &amp;lt;maxrss&amp;gt;1814528&amp;lt;/maxrss&amp;gt;&lt;br /&gt;
    &amp;lt;reclaims&amp;gt;546&amp;lt;/reclaims&amp;gt;&lt;br /&gt;
    &amp;lt;faults&amp;gt;1&amp;lt;/faults&amp;gt;&lt;br /&gt;
    &amp;lt;swaps&amp;gt;0&amp;lt;/swaps&amp;gt;&lt;br /&gt;
    &amp;lt;inputs&amp;gt;56&amp;lt;/inputs&amp;gt;&lt;br /&gt;
    &amp;lt;outputs&amp;gt;0&amp;lt;/outputs&amp;gt;&lt;br /&gt;
    &amp;lt;stop_time&amp;gt;Sun Nov 22 11:08:36 2009&amp;lt;/stop_time&amp;gt;&lt;br /&gt;
  &amp;lt;/runstats&amp;gt;&lt;br /&gt;
&amp;lt;/fiwalk&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Bulk Extractor===&lt;/div&gt;</summary>
		<author><name>Joseph</name></author>
	</entry>
	<entry>
		<id>https://wiki.archivematica.org/index.php?title=Adding_Format_Identification_Tools&amp;diff=8376</id>
		<title>Adding Format Identification Tools</title>
		<link rel="alternate" type="text/html" href="https://wiki.archivematica.org/index.php?title=Adding_Format_Identification_Tools&amp;diff=8376"/>
		<updated>2013-05-29T22:28:27Z</updated>

		<summary type="html">&lt;p&gt;Joseph: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
These are developer facing instructions for adding a new tool to base normalization on.&lt;br /&gt;
&lt;br /&gt;
The basic steps this section is looking to implement are:&lt;br /&gt;
* Make the fileID tool a selectable choice&lt;br /&gt;
* Specify that normalization will be using that fileIDType during normalization&lt;br /&gt;
* Identify files using that tool, with valid archivematica fileIDs (format IDs)&lt;br /&gt;
* Use those format IDs and associated commands to normalize files.&lt;br /&gt;
=Add tool=&lt;br /&gt;
To include a new tool in the archivematica packages, it should be a dependancy package itself.&lt;br /&gt;
&lt;br /&gt;
=Add workflow=&lt;br /&gt;
The choices for file identification tool choices are made at link f4dea20e-f3fe-4a37-b20f-0e70a7bc960e.&lt;br /&gt;
&lt;br /&gt;
Additional choices can be added by adding entries.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT &lt;br /&gt;
    chainAvailable, startingLink, description &lt;br /&gt;
FROM &lt;br /&gt;
    MicroServiceChainChoice &lt;br /&gt;
    JOIN MicroServiceChains ON chainAvailable = MicroServiceChains.pk &lt;br /&gt;
WHERE &lt;br /&gt;
    choiceAvailableAtLink = 'f4dea20e-f3fe-4a37-b20f-0e70a7bc960e';&lt;br /&gt;
+--------------------------------------+--------------------------------------+---------------------+&lt;br /&gt;
| chainAvailable                       | startingLink                         | description         |&lt;br /&gt;
+--------------------------------------+--------------------------------------+---------------------+&lt;br /&gt;
| 229e34d9-3768-4b78-97b7-6cd4a2f07868 | b549130c-943b-4791-b1f6-93b837990138 | extension (default) |&lt;br /&gt;
| c44e0251-1c69-482d-a679-669b70d09fb1 | 56b42318-3eb3-466c-8a0d-7ac272136a96 | FITS - DROID        |&lt;br /&gt;
| 1d8836cf-ac02-437c-9283-4ddb7b018810 | 37f2e794-6485-4524-a384-37b3209916ed | FITS - ffident      |&lt;br /&gt;
| d607f083-7c86-49a2-bc36-06a03db28a80 | 766b23ad-65ed-46a3-aa2e-b9bdaf3386d0 | FITS - JHOVE        |&lt;br /&gt;
| 586006d1-f3af-4b5f-9f1a-c893244fa7a9 | d7a0e33d-aa3c-435f-a6ef-8e39f2e7e3a0 | FITS - summary      |&lt;br /&gt;
| 50f47870-3932-4a88-879d-d021a24758ad | f87f13d2-8aae-45c9-bc8a-e5c32a37654e | FITS - file utility |&lt;br /&gt;
| c76624a8-6f85-43cf-8ea7-0663502c712f | 982229bd-73b8-432e-a1d9-2d9d15d7287d | FIDO                |&lt;br /&gt;
+--------------------------------------+--------------------------------------+---------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
FIDO was added by:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
INSERT INTO MicroServiceChains (pk, startingLink, description)&lt;br /&gt;
    VALUES ('c76624a8-6f85-43cf-8ea7-0663502c712f', '982229bd-73b8-432e-a1d9-2d9d15d7287d', 'FIDO');&lt;br /&gt;
INSERT INTO MicroServiceChainChoice (pk, choiceAvailableAtLink, chainAvailable)&lt;br /&gt;
    VALUES ('e95b8f27-ea52-4247-bdf0-615273bc5fca', 'f4dea20e-f3fe-4a37-b20f-0e70a7bc960e', 'c76624a8-6f85-43cf-8ea7-0663502c712f');&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Set selection==&lt;br /&gt;
The first step in the workflow is to set the selection as the tool to use during normalization. This is done by making an insert into the unit's variables table for the variable normalizationFileIdentificationToolIdentifierTypes. The value set is a peice of a SQL query used in [https://github.com/artefactual/archivematica/blob/master/src/MCPServer/lib/linkTaskManagerSplitOnFileIdAndruleset.py linkTaskManagerSplitOnFileIdAndruleset.py] to restrict the fileIDs used to the desired type.&lt;br /&gt;
&lt;br /&gt;
For FIDO:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
INSERT INTO `MicroServiceChainLinks` (`pk`, `currentTask`, `defaultNextChainLink`, `defaultPlaySound`, `microserviceGroup`, `reloadFileList`, `defaultExitMessage`, `replaces`, `lastModified`) &lt;br /&gt;
    VALUES ('982229bd-73b8-432e-a1d9-2d9d15d7287d','1e516ea6-6814-4292-9ea9-552ebfaa0d23','4c4281a1-43cd-4c6e-b1dc-573bd1a23c43',NULL,'Normalize',1,'Failed',NULL,'2012-10-23 19:41:23');&lt;br /&gt;
INSERT INTO `TasksConfigs` (`pk`, `taskType`, `taskTypePKReference`, `description`, `replaces`, `lastModified`) &lt;br /&gt;
    VALUES ('1e516ea6-6814-4292-9ea9-552ebfaa0d23','6f0b612c-867f-4dfd-8e43-5b35b7f882d7','f130c16d-d419-4063-8c8b-2e4c3ad138bb','Set SIP to normalize with FIDO file identification.',NULL,'2012-10-23 19:41:23');&lt;br /&gt;
INSERT INTO `TasksConfigsSetUnitVariable` (`pk`, `variable`, `variableValue`, `microServiceChainLink`, `createdTime`, `updatedTime`) &lt;br /&gt;
    VALUES ('f130c16d-d419-4063-8c8b-2e4c3ad138bb','normalizationFileIdentificationToolIdentifierTypes','FileIDTypes.pk = \'afdbee13-eec5-4182-8c6c-f5638ee290f3\'',NULL,'2012-10-23 19:41:23','0000-00-00 00:00:00');&lt;br /&gt;
INSERT INTO `MicroServiceChainLinksExitCodes` (`pk`, `microServiceChainLink`, `exitCode`, `nextMicroServiceChainLink`, `playSound`, `exitMessage`, `replaces`, `lastModified`) &lt;br /&gt;
    VALUES ('82c97f8d-087d-4636-9dd9-59bbc04e6520','982229bd-73b8-432e-a1d9-2d9d15d7287d',0,'4c4281a1-43cd-4c6e-b1dc-573bd1a23c43',NULL,'Completed successfully',NULL,'2012-10-23 21:39:43');&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Run tool==&lt;br /&gt;
The next step is to run the tool on the objects. This requires both definition of the workflow, and a task to support it.&lt;br /&gt;
&lt;br /&gt;
===workflow===&lt;br /&gt;
FIDO workflow link:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SET @YLink = '83484326-7be7-4f9f-b252-94553cd42370';&lt;br /&gt;
&lt;br /&gt;
SET @TasksConfigPKReference = '46883944-8561-44d0-ac50-e1c3fd9aeb59';&lt;br /&gt;
SET @TasksConfig = '7f786b5c-c003-4ef1-97c2-c2269a04e89a';&lt;br /&gt;
SET @MicroServiceChainLink = '4c4281a1-43cd-4c6e-b1dc-573bd1a23c43';&lt;br /&gt;
SET @MicroServiceChainLinksExitCodes = 'd7653bbd-cd71-473d-b09e-fdd5b36a1d65';&lt;br /&gt;
SET @defaultNextChainLink = @YLink;&lt;br /&gt;
SET @NextMicroServiceChainLink = @YLink;&lt;br /&gt;
&lt;br /&gt;
INSERT INTO StandardTasksConfigs (pk, filterFileEnd, filterFileStart, filterSubDir, requiresOutputLock, standardOutputFile, standardErrorFile, execute, arguments)&lt;br /&gt;
    VALUES (@TasksConfigPKReference, NULL, NULL, 'objects/', FALSE, NULL, NULL, 'archivematicaFido_v0.0', '--fileUUID &amp;quot;%fileUUID%&amp;quot; --SIPUUID &amp;quot;%SIPUUID%&amp;quot; --filePath &amp;quot;%relativeLocation%&amp;quot; --eventIdentifierUUID &amp;quot;%taskUUID%&amp;quot; --date &amp;quot;%date%&amp;quot; --fileGrpUse &amp;quot;%fileGrpUse%&amp;quot;');&lt;br /&gt;
INSERT INTO TasksConfigs (pk, taskType, taskTypePKReference, description)&lt;br /&gt;
    VALUES&lt;br /&gt;
    (@TasksConfig, 'a6b1c323-7d36-428e-846a-e7e819423577', @TasksConfigPKReference, 'Identify file formats with FIDO');&lt;br /&gt;
INSERT INTO MicroServiceChainLinks (pk, microserviceGroup, currentTask, defaultNextChainLink)&lt;br /&gt;
    VALUES (@MicroServiceChainLink, @microserviceGroup, @TasksConfig, @defaultNextChainLink);&lt;br /&gt;
INSERT INTO MicroServiceChainLinksExitCodes (pk, microServiceChainLink, exitCode, nextMicroServiceChainLink)&lt;br /&gt;
    VALUES (@MicroServiceChainLinksExitCodes, @MicroServiceChainLink, 0, @NextMicroServiceChainLink);&lt;br /&gt;
SET @NextMicroServiceChainLink = @MicroServiceChainLink;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Identify files script===&lt;br /&gt;
The script must be created to identify the file and put an entry(s) in the FilesIdentifiedIDs table.&lt;br /&gt;
For Fido this script is [https://github.com/artefactual/archivematica/blob/642a3df29707e014f6c9ee5b7ea64785454c76cc/src/MCPClient/lib/clientScripts/archivematicaFido.py archivematicaFido.py]&lt;br /&gt;
&lt;br /&gt;
This script must be added to the client as a supported module.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
archivematicaFido_v0.0 = %clientScriptsDirectory%archivematicaFido.py  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[https://github.com/artefactual/archivematica/blob/642a3df29707e014f6c9ee5b7ea64785454c76cc/src/MCPClient/etc/archivematicaClientModules archivematicaClientModules]&lt;br /&gt;
&lt;br /&gt;
==Return==&lt;br /&gt;
The last link, to return to the processing workflow already exists, and must be defined as the next chain to process.&lt;br /&gt;
The link is 83484326-7be7-4f9f-b252-94553cd42370&lt;br /&gt;
&lt;br /&gt;
=Add FPR rules=&lt;br /&gt;
Populating the local FPR rules can be done by creating a temporary script, and using a set of sample files with extensions. Use the FileIDs for the extensions to populate values for already in preservation/access status, and related commands.&lt;br /&gt;
&lt;br /&gt;
Fido example: [https://github.com/artefactual/archivematica/commit/ea02f7d6ffc420d5675fcd3bf261c63870881a65]&lt;br /&gt;
==FileIDTypes==&lt;br /&gt;
Remember an entry for FileIDTypes is required.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
INSERT INTO `FileIDTypes` (`pk`, `description`, `replaces`, `lastModified`, `enabled`) VALUES ('afdbee13-eec5-4182-8c6c-f5638ee290f3','FileIDByFIDO',NULL,'2013-03-12 01:54:24',1);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Development documentation]]&lt;/div&gt;</summary>
		<author><name>Joseph</name></author>
	</entry>
	<entry>
		<id>https://wiki.archivematica.org/index.php?title=Development_environment&amp;diff=8375</id>
		<title>Development environment</title>
		<link rel="alternate" type="text/html" href="https://wiki.archivematica.org/index.php?title=Development_environment&amp;diff=8375"/>
		<updated>2013-05-29T21:58:59Z</updated>

		<summary type="html">&lt;p&gt;Joseph: /* Update */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Main Page]] &amp;gt; [[Development]] &amp;gt; Development Environment&lt;br /&gt;
&lt;br /&gt;
This page explains how you can configure and use a standard Linux system as an Archivematica development environment.&lt;br /&gt;
The Archivematica development environment is available for developers that want the ability to customize or enhance their own Archivematica installation and/or [[contribute code]] back to the Archivematica project.&lt;br /&gt;
&lt;br /&gt;
=Setup=&lt;br /&gt;
*Install ubuntu 12.04&lt;br /&gt;
*Use git to checkout Archivematica code&lt;br /&gt;
**If you have commit access, use the private repository&lt;br /&gt;
**If you have read-only access, use the public [https://github.com/artefactual/archivematica GitHub repository]&lt;br /&gt;
&amp;lt;pre&amp;gt;git clone https://github.com/artefactual/archivematica.git&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Run the install and helper scripts. &lt;br /&gt;
** &amp;lt;pre&amp;gt;cd archivematica&amp;lt;/pre&amp;gt;&lt;br /&gt;
** &amp;lt;pre&amp;gt;./dev-installer&amp;lt;/pre&amp;gt;&lt;br /&gt;
** Answer Y to all prompts.&lt;br /&gt;
** &amp;lt;pre&amp;gt;./dev-helper&amp;lt;/pre&amp;gt;&lt;br /&gt;
** Answer Y to all prompts.&lt;br /&gt;
** Restart the machine.&lt;br /&gt;
** &amp;lt;pre&amp;gt;cd archivematica&amp;lt;/pre&amp;gt;&lt;br /&gt;
** &amp;lt;pre&amp;gt;./dev-helper&amp;lt;/pre&amp;gt;&lt;br /&gt;
** Answer Y to all prompts.&lt;br /&gt;
** You may need to restart the services (see below for instructions)&lt;br /&gt;
** Complete AtoM setup&lt;br /&gt;
*** The database should already be created.&lt;br /&gt;
*** http://localhost/atom&lt;br /&gt;
*** https://www.qubit-toolkit.org/wiki/Installation#Open_Qubit.2C_ICA-AtoM.2C_or_DCB_in_your_web_browser&lt;br /&gt;
** Open the [dashboard http://localhost]&lt;br /&gt;
&lt;br /&gt;
=Configuring and Using Archivematica=&lt;br /&gt;
These manuals contain information about the use and configuration of Archivematica:&lt;br /&gt;
&amp;lt;br/&amp;gt;https://www.archivematica.org/wiki/Administrator_manual&lt;br /&gt;
&amp;lt;br/&amp;gt;https://www.archivematica.org/wiki/User_Manual&lt;br /&gt;
&lt;br /&gt;
=Update=&lt;br /&gt;
&lt;br /&gt;
To pull down the latest code commits from the repository, and reset your dev install, navigate to the directory where Archivematica has been cloned:&lt;br /&gt;
*Change Directory to the archivematica git directory.&lt;br /&gt;
&amp;lt;pre&amp;gt;cd ~/archivematica/&amp;lt;/pre&amp;gt;&lt;br /&gt;
*Check to see if you have any local changes that need to be stashed&lt;br /&gt;
&amp;lt;pre&amp;gt;git diff&amp;lt;/pre&amp;gt;&lt;br /&gt;
*If there are local changes please stash or commit them. (Or you won't be able to update).&lt;br /&gt;
&amp;lt;pre&amp;gt;git stash&amp;lt;/pre&amp;gt;&lt;br /&gt;
Update...&lt;br /&gt;
*&amp;lt;pre&amp;gt;./dev-helper&amp;lt;/pre&amp;gt;&lt;br /&gt;
*&amp;lt;pre&amp;gt;&amp;quot;Would you like to git pull?&amp;quot; (y/N) y&amp;lt;/pre&amp;gt;&lt;br /&gt;
*&amp;lt;pre&amp;gt;&amp;quot;Would you like to recreate the databases?&amp;quot; (y/N) y&amp;lt;/pre&amp;gt;&lt;br /&gt;
**Note: this command will remove any processing sips/transfers.&lt;br /&gt;
*&amp;lt;pre&amp;gt;&amp;quot;Would you like to Include mock FPR data?&amp;quot; (y/N) y &amp;lt;/pre&amp;gt;&lt;br /&gt;
*&amp;lt;pre&amp;gt;&amp;quot;Would you like to restart archivematica services?&amp;quot; (y/N) y&amp;lt;/pre&amp;gt;&lt;br /&gt;
*&amp;lt;pre&amp;gt;&amp;quot;Would you like to re-create gui-scripts editor file?&amp;quot; (y/N) y&amp;lt;/pre&amp;gt;&lt;br /&gt;
*&amp;lt;pre&amp;gt;&amp;quot;Would you like to update AtoM and restart its atom-worker service?&amp;quot; (y/N) y&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you stashed changes, re-apply them with&lt;br /&gt;
&amp;lt;pre&amp;gt;git stash pop&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Troubleshooting=&lt;br /&gt;
* If it stalls during update &amp;quot;Would you like to update/install package requirements?&amp;quot; (y/N)&lt;br /&gt;
** Stop the script with CTRL + C&lt;br /&gt;
** Try installing the item it failed on on the command line. Ie.&lt;br /&gt;
** &amp;lt;pre&amp;gt;sudo apt-get install postfix&amp;lt;/pre&amp;gt;&lt;br /&gt;
** Restart the dev-helper &amp;quot;Would you like to update/install package requirements?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* If you get this error error starting service:&lt;br /&gt;
** &amp;lt;pre&amp;gt;sudo start archivematica-mcp-server&amp;lt;/pre&amp;gt;&lt;br /&gt;
** &amp;lt;pre&amp;gt;start: Unknown job: archivematica-mcp-server&amp;lt;/pre&amp;gt;&lt;br /&gt;
** Then reboot the machine.&lt;br /&gt;
&lt;br /&gt;
*If a SIP processing fails, it will move it to the 'failed' directory which is located:&lt;br /&gt;
**&amp;lt;pre&amp;gt;/var/archivematica/sharedDirectory/watchedDirectories/failed&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*if ArchivematicaServer freezes &lt;br /&gt;
**&amp;lt;pre&amp;gt;sudo restart archivematica-mcp-server&amp;lt;/pre&amp;gt;&lt;br /&gt;
**&amp;lt;pre&amp;gt;sudo restart archivematica-mcp-client&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*if ArchivematicaClient freezes (in terminal kill command)&lt;br /&gt;
**&amp;lt;pre&amp;gt;sudo restart archivematica-mcp-client&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Updates to the Dashboard may require an Apache webserver restart:&lt;br /&gt;
**&amp;lt;pre&amp;gt;sudo /etc/init.d/apache2 restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*If you find a problem running the Dashboard and you want to get a detailed error log to report us, please switch it to debug mode following [http://archivematica.org/wiki/index.php?title=Dashboard#Debug_mode these instructions].&lt;br /&gt;
&lt;br /&gt;
*MCP is currently logging to the /tmp/directory&lt;br /&gt;
** /tmp/archivematicaMCPClient-HOST.log&lt;br /&gt;
** /tmp/archivematicaMCPServer-HOST-DATE.log&lt;br /&gt;
** /tmp/archivematicaMCPServerPID&lt;br /&gt;
&lt;br /&gt;
[[Category:Development documentation]]&lt;/div&gt;</summary>
		<author><name>Joseph</name></author>
	</entry>
	<entry>
		<id>https://wiki.archivematica.org/index.php?title=Development_environment&amp;diff=8372</id>
		<title>Development environment</title>
		<link rel="alternate" type="text/html" href="https://wiki.archivematica.org/index.php?title=Development_environment&amp;diff=8372"/>
		<updated>2013-05-29T20:59:02Z</updated>

		<summary type="html">&lt;p&gt;Joseph: /* Configuring and Using Archivematica */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Main Page]] &amp;gt; [[Development]] &amp;gt; Development Environment&lt;br /&gt;
&lt;br /&gt;
This page explains how you can configure and use a standard Linux system as an Archivematica development environment.&lt;br /&gt;
The Archivematica development environment is available for developers that want the ability to customize or enhance their own Archivematica installation and/or [[contribute code]] back to the Archivematica project.&lt;br /&gt;
&lt;br /&gt;
=Setup=&lt;br /&gt;
*Install ubuntu 12.04&lt;br /&gt;
*Use git to checkout Archivematica code&lt;br /&gt;
**If you have commit access, use the private repository&lt;br /&gt;
**If you have read-only access, use the public [https://github.com/artefactual/archivematica GitHub repository]&lt;br /&gt;
&amp;lt;pre&amp;gt;git clone https://github.com/artefactual/archivematica.git&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Run the install and helper scripts. &lt;br /&gt;
** &amp;lt;pre&amp;gt;cd archivematica&amp;lt;/pre&amp;gt;&lt;br /&gt;
** &amp;lt;pre&amp;gt;./dev-installer&amp;lt;/pre&amp;gt;&lt;br /&gt;
** Answer Y to all prompts.&lt;br /&gt;
** &amp;lt;pre&amp;gt;./dev-helper&amp;lt;/pre&amp;gt;&lt;br /&gt;
** Answer Y to all prompts.&lt;br /&gt;
** Restart the machine.&lt;br /&gt;
** &amp;lt;pre&amp;gt;cd archivematica&amp;lt;/pre&amp;gt;&lt;br /&gt;
** &amp;lt;pre&amp;gt;./dev-helper&amp;lt;/pre&amp;gt;&lt;br /&gt;
** Answer Y to all prompts.&lt;br /&gt;
** You may need to restart the services (see below for instructions)&lt;br /&gt;
** Complete AtoM setup&lt;br /&gt;
*** The database should already be created.&lt;br /&gt;
*** http://localhost/atom&lt;br /&gt;
*** https://www.qubit-toolkit.org/wiki/Installation#Open_Qubit.2C_ICA-AtoM.2C_or_DCB_in_your_web_browser&lt;br /&gt;
** Open the [dashboard http://localhost]&lt;br /&gt;
&lt;br /&gt;
=Configuring and Using Archivematica=&lt;br /&gt;
These manuals contain information about the use and configuration of Archivematica:&lt;br /&gt;
&amp;lt;br/&amp;gt;https://www.archivematica.org/wiki/Administrator_manual&lt;br /&gt;
&amp;lt;br/&amp;gt;https://www.archivematica.org/wiki/User_Manual&lt;br /&gt;
&lt;br /&gt;
=Update=&lt;br /&gt;
&lt;br /&gt;
To pull down the latest code commits from the repository, and reset your dev install, navigate to the directory where Archivematica has been cloned:&lt;br /&gt;
*Change Directory to the archivematica git directory.&lt;br /&gt;
&amp;lt;pre&amp;gt;cd ~/archivematica/&amp;lt;/pre&amp;gt;&lt;br /&gt;
*Check to see if you have any local changes that need to be stashed&lt;br /&gt;
&amp;lt;pre&amp;gt;git diff&amp;lt;/pre&amp;gt;&lt;br /&gt;
*If there are local changes please stash or commit them. (Or you won't be able to update).&lt;br /&gt;
&amp;lt;pre&amp;gt;git stash&amp;lt;/pre&amp;gt;&lt;br /&gt;
Update...&lt;br /&gt;
*&amp;lt;pre&amp;gt;./dev-helper&amp;lt;/pre&amp;gt;&lt;br /&gt;
*&amp;lt;pre&amp;gt;&amp;quot;Would you like to git pull?&amp;quot; (y/N) y&amp;lt;/pre&amp;gt;&lt;br /&gt;
*&amp;lt;pre&amp;gt;&amp;quot;Would you like to recreate the databases?&amp;quot; (y/N) y&amp;lt;/pre&amp;gt;&lt;br /&gt;
**Note: this command will remove any processing sips/transfers.&lt;br /&gt;
*&amp;lt;pre&amp;gt;&amp;quot;Would you like to Include mock FPR data?&amp;quot; (y/N) y &amp;lt;/pre&amp;gt;&lt;br /&gt;
*&amp;lt;pre&amp;gt;&amp;quot;Would you like to restart archivematica services?&amp;quot; (y/N) y&amp;lt;/pre&amp;gt;&lt;br /&gt;
*&amp;lt;pre&amp;gt;&amp;quot;Would you like to re-create gui-scripts editor file?&amp;quot; (y/N) y&amp;lt;/pre&amp;gt;&lt;br /&gt;
*&amp;lt;pre&amp;gt;&amp;quot;Would you like to update AtoM (branch 1.x) and restart its atom-sword service?&amp;quot; (y/N) y&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you stashed changes, re-apply them with&lt;br /&gt;
&amp;lt;pre&amp;gt;git stash pop&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Troubleshooting=&lt;br /&gt;
* If it stalls during update &amp;quot;Would you like to update/install package requirements?&amp;quot; (y/N)&lt;br /&gt;
** Stop the script with CTRL + C&lt;br /&gt;
** Try installing the item it failed on on the command line. Ie.&lt;br /&gt;
** &amp;lt;pre&amp;gt;sudo apt-get install postfix&amp;lt;/pre&amp;gt;&lt;br /&gt;
** Restart the dev-helper &amp;quot;Would you like to update/install package requirements?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* If you get this error error starting service:&lt;br /&gt;
** &amp;lt;pre&amp;gt;sudo start archivematica-mcp-server&amp;lt;/pre&amp;gt;&lt;br /&gt;
** &amp;lt;pre&amp;gt;start: Unknown job: archivematica-mcp-server&amp;lt;/pre&amp;gt;&lt;br /&gt;
** Then reboot the machine.&lt;br /&gt;
&lt;br /&gt;
*If a SIP processing fails, it will move it to the 'failed' directory which is located:&lt;br /&gt;
**&amp;lt;pre&amp;gt;/var/archivematica/sharedDirectory/watchedDirectories/failed&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*if ArchivematicaServer freezes &lt;br /&gt;
**&amp;lt;pre&amp;gt;sudo restart archivematica-mcp-server&amp;lt;/pre&amp;gt;&lt;br /&gt;
**&amp;lt;pre&amp;gt;sudo restart archivematica-mcp-client&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*if ArchivematicaClient freezes (in terminal kill command)&lt;br /&gt;
**&amp;lt;pre&amp;gt;sudo restart archivematica-mcp-client&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Updates to the Dashboard may require an Apache webserver restart:&lt;br /&gt;
**&amp;lt;pre&amp;gt;sudo /etc/init.d/apache2 restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*If you find a problem running the Dashboard and you want to get a detailed error log to report us, please switch it to debug mode following [http://archivematica.org/wiki/index.php?title=Dashboard#Debug_mode these instructions].&lt;br /&gt;
&lt;br /&gt;
*MCP is currently logging to the /tmp/directory&lt;br /&gt;
** /tmp/archivematicaMCPClient-HOST.log&lt;br /&gt;
** /tmp/archivematicaMCPServer-HOST-DATE.log&lt;br /&gt;
** /tmp/archivematicaMCPServerPID&lt;br /&gt;
&lt;br /&gt;
[[Category:Development documentation]]&lt;/div&gt;</summary>
		<author><name>Joseph</name></author>
	</entry>
	<entry>
		<id>https://wiki.archivematica.org/index.php?title=Development_environment&amp;diff=8371</id>
		<title>Development environment</title>
		<link rel="alternate" type="text/html" href="https://wiki.archivematica.org/index.php?title=Development_environment&amp;diff=8371"/>
		<updated>2013-05-29T20:58:43Z</updated>

		<summary type="html">&lt;p&gt;Joseph: /* Update */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Main Page]] &amp;gt; [[Development]] &amp;gt; Development Environment&lt;br /&gt;
&lt;br /&gt;
This page explains how you can configure and use a standard Linux system as an Archivematica development environment.&lt;br /&gt;
The Archivematica development environment is available for developers that want the ability to customize or enhance their own Archivematica installation and/or [[contribute code]] back to the Archivematica project.&lt;br /&gt;
&lt;br /&gt;
=Setup=&lt;br /&gt;
*Install ubuntu 12.04&lt;br /&gt;
*Use git to checkout Archivematica code&lt;br /&gt;
**If you have commit access, use the private repository&lt;br /&gt;
**If you have read-only access, use the public [https://github.com/artefactual/archivematica GitHub repository]&lt;br /&gt;
&amp;lt;pre&amp;gt;git clone https://github.com/artefactual/archivematica.git&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Run the install and helper scripts. &lt;br /&gt;
** &amp;lt;pre&amp;gt;cd archivematica&amp;lt;/pre&amp;gt;&lt;br /&gt;
** &amp;lt;pre&amp;gt;./dev-installer&amp;lt;/pre&amp;gt;&lt;br /&gt;
** Answer Y to all prompts.&lt;br /&gt;
** &amp;lt;pre&amp;gt;./dev-helper&amp;lt;/pre&amp;gt;&lt;br /&gt;
** Answer Y to all prompts.&lt;br /&gt;
** Restart the machine.&lt;br /&gt;
** &amp;lt;pre&amp;gt;cd archivematica&amp;lt;/pre&amp;gt;&lt;br /&gt;
** &amp;lt;pre&amp;gt;./dev-helper&amp;lt;/pre&amp;gt;&lt;br /&gt;
** Answer Y to all prompts.&lt;br /&gt;
** You may need to restart the services (see below for instructions)&lt;br /&gt;
** Complete AtoM setup&lt;br /&gt;
*** The database should already be created.&lt;br /&gt;
*** http://localhost/atom&lt;br /&gt;
*** https://www.qubit-toolkit.org/wiki/Installation#Open_Qubit.2C_ICA-AtoM.2C_or_DCB_in_your_web_browser&lt;br /&gt;
** Open the [dashboard http://localhost]&lt;br /&gt;
&lt;br /&gt;
=Configuring and Using Archivematica=&lt;br /&gt;
These manuals contain information about the use and configuration of Archivematica:&lt;br /&gt;
https://www.archivematica.org/wiki/Administrator_manual&lt;br /&gt;
https://www.archivematica.org/wiki/User_Manual&lt;br /&gt;
&lt;br /&gt;
=Update=&lt;br /&gt;
&lt;br /&gt;
To pull down the latest code commits from the repository, and reset your dev install, navigate to the directory where Archivematica has been cloned:&lt;br /&gt;
*Change Directory to the archivematica git directory.&lt;br /&gt;
&amp;lt;pre&amp;gt;cd ~/archivematica/&amp;lt;/pre&amp;gt;&lt;br /&gt;
*Check to see if you have any local changes that need to be stashed&lt;br /&gt;
&amp;lt;pre&amp;gt;git diff&amp;lt;/pre&amp;gt;&lt;br /&gt;
*If there are local changes please stash or commit them. (Or you won't be able to update).&lt;br /&gt;
&amp;lt;pre&amp;gt;git stash&amp;lt;/pre&amp;gt;&lt;br /&gt;
Update...&lt;br /&gt;
*&amp;lt;pre&amp;gt;./dev-helper&amp;lt;/pre&amp;gt;&lt;br /&gt;
*&amp;lt;pre&amp;gt;&amp;quot;Would you like to git pull?&amp;quot; (y/N) y&amp;lt;/pre&amp;gt;&lt;br /&gt;
*&amp;lt;pre&amp;gt;&amp;quot;Would you like to recreate the databases?&amp;quot; (y/N) y&amp;lt;/pre&amp;gt;&lt;br /&gt;
**Note: this command will remove any processing sips/transfers.&lt;br /&gt;
*&amp;lt;pre&amp;gt;&amp;quot;Would you like to Include mock FPR data?&amp;quot; (y/N) y &amp;lt;/pre&amp;gt;&lt;br /&gt;
*&amp;lt;pre&amp;gt;&amp;quot;Would you like to restart archivematica services?&amp;quot; (y/N) y&amp;lt;/pre&amp;gt;&lt;br /&gt;
*&amp;lt;pre&amp;gt;&amp;quot;Would you like to re-create gui-scripts editor file?&amp;quot; (y/N) y&amp;lt;/pre&amp;gt;&lt;br /&gt;
*&amp;lt;pre&amp;gt;&amp;quot;Would you like to update AtoM (branch 1.x) and restart its atom-sword service?&amp;quot; (y/N) y&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you stashed changes, re-apply them with&lt;br /&gt;
&amp;lt;pre&amp;gt;git stash pop&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Troubleshooting=&lt;br /&gt;
* If it stalls during update &amp;quot;Would you like to update/install package requirements?&amp;quot; (y/N)&lt;br /&gt;
** Stop the script with CTRL + C&lt;br /&gt;
** Try installing the item it failed on on the command line. Ie.&lt;br /&gt;
** &amp;lt;pre&amp;gt;sudo apt-get install postfix&amp;lt;/pre&amp;gt;&lt;br /&gt;
** Restart the dev-helper &amp;quot;Would you like to update/install package requirements?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* If you get this error error starting service:&lt;br /&gt;
** &amp;lt;pre&amp;gt;sudo start archivematica-mcp-server&amp;lt;/pre&amp;gt;&lt;br /&gt;
** &amp;lt;pre&amp;gt;start: Unknown job: archivematica-mcp-server&amp;lt;/pre&amp;gt;&lt;br /&gt;
** Then reboot the machine.&lt;br /&gt;
&lt;br /&gt;
*If a SIP processing fails, it will move it to the 'failed' directory which is located:&lt;br /&gt;
**&amp;lt;pre&amp;gt;/var/archivematica/sharedDirectory/watchedDirectories/failed&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*if ArchivematicaServer freezes &lt;br /&gt;
**&amp;lt;pre&amp;gt;sudo restart archivematica-mcp-server&amp;lt;/pre&amp;gt;&lt;br /&gt;
**&amp;lt;pre&amp;gt;sudo restart archivematica-mcp-client&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*if ArchivematicaClient freezes (in terminal kill command)&lt;br /&gt;
**&amp;lt;pre&amp;gt;sudo restart archivematica-mcp-client&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Updates to the Dashboard may require an Apache webserver restart:&lt;br /&gt;
**&amp;lt;pre&amp;gt;sudo /etc/init.d/apache2 restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*If you find a problem running the Dashboard and you want to get a detailed error log to report us, please switch it to debug mode following [http://archivematica.org/wiki/index.php?title=Dashboard#Debug_mode these instructions].&lt;br /&gt;
&lt;br /&gt;
*MCP is currently logging to the /tmp/directory&lt;br /&gt;
** /tmp/archivematicaMCPClient-HOST.log&lt;br /&gt;
** /tmp/archivematicaMCPServer-HOST-DATE.log&lt;br /&gt;
** /tmp/archivematicaMCPServerPID&lt;br /&gt;
&lt;br /&gt;
[[Category:Development documentation]]&lt;/div&gt;</summary>
		<author><name>Joseph</name></author>
	</entry>
	<entry>
		<id>https://wiki.archivematica.org/index.php?title=Development_environment&amp;diff=8370</id>
		<title>Development environment</title>
		<link rel="alternate" type="text/html" href="https://wiki.archivematica.org/index.php?title=Development_environment&amp;diff=8370"/>
		<updated>2013-05-29T20:57:52Z</updated>

		<summary type="html">&lt;p&gt;Joseph: /* Run */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Main Page]] &amp;gt; [[Development]] &amp;gt; Development Environment&lt;br /&gt;
&lt;br /&gt;
This page explains how you can configure and use a standard Linux system as an Archivematica development environment.&lt;br /&gt;
The Archivematica development environment is available for developers that want the ability to customize or enhance their own Archivematica installation and/or [[contribute code]] back to the Archivematica project.&lt;br /&gt;
&lt;br /&gt;
=Setup=&lt;br /&gt;
*Install ubuntu 12.04&lt;br /&gt;
*Use git to checkout Archivematica code&lt;br /&gt;
**If you have commit access, use the private repository&lt;br /&gt;
**If you have read-only access, use the public [https://github.com/artefactual/archivematica GitHub repository]&lt;br /&gt;
&amp;lt;pre&amp;gt;git clone https://github.com/artefactual/archivematica.git&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Run the install and helper scripts. &lt;br /&gt;
** &amp;lt;pre&amp;gt;cd archivematica&amp;lt;/pre&amp;gt;&lt;br /&gt;
** &amp;lt;pre&amp;gt;./dev-installer&amp;lt;/pre&amp;gt;&lt;br /&gt;
** Answer Y to all prompts.&lt;br /&gt;
** &amp;lt;pre&amp;gt;./dev-helper&amp;lt;/pre&amp;gt;&lt;br /&gt;
** Answer Y to all prompts.&lt;br /&gt;
** Restart the machine.&lt;br /&gt;
** &amp;lt;pre&amp;gt;cd archivematica&amp;lt;/pre&amp;gt;&lt;br /&gt;
** &amp;lt;pre&amp;gt;./dev-helper&amp;lt;/pre&amp;gt;&lt;br /&gt;
** Answer Y to all prompts.&lt;br /&gt;
** You may need to restart the services (see below for instructions)&lt;br /&gt;
** Complete AtoM setup&lt;br /&gt;
*** The database should already be created.&lt;br /&gt;
*** http://localhost/atom&lt;br /&gt;
*** https://www.qubit-toolkit.org/wiki/Installation#Open_Qubit.2C_ICA-AtoM.2C_or_DCB_in_your_web_browser&lt;br /&gt;
** Open the [dashboard http://localhost]&lt;br /&gt;
&lt;br /&gt;
=Configuring and Using Archivematica=&lt;br /&gt;
These manuals contain information about the use and configuration of Archivematica:&lt;br /&gt;
https://www.archivematica.org/wiki/Administrator_manual&lt;br /&gt;
https://www.archivematica.org/wiki/User_Manual&lt;br /&gt;
&lt;br /&gt;
=Update=&lt;br /&gt;
&lt;br /&gt;
To pull down the latest code commits from the repository, navigate to the directory where Archivematica has been cloned:&lt;br /&gt;
*Change Directory to the archivematica git directory.&lt;br /&gt;
&amp;lt;pre&amp;gt;cd ~/archivematica/&amp;lt;/pre&amp;gt;&lt;br /&gt;
*Check to see if you have any local changes that need to be stashed&lt;br /&gt;
&amp;lt;pre&amp;gt;git diff&amp;lt;/pre&amp;gt;&lt;br /&gt;
*If there are local changes please stash or commit them. (Or you won't be able to update).&lt;br /&gt;
&amp;lt;pre&amp;gt;git stash&amp;lt;/pre&amp;gt;&lt;br /&gt;
Update...&lt;br /&gt;
*&amp;lt;pre&amp;gt;./dev-helper&amp;lt;/pre&amp;gt;&lt;br /&gt;
*&amp;lt;pre&amp;gt;&amp;quot;Would you like to git pull?&amp;quot; (y/N) y&amp;lt;/pre&amp;gt;&lt;br /&gt;
*&amp;lt;pre&amp;gt;&amp;quot;Would you like to recreate the databases?&amp;quot; (y/N) y&amp;lt;/pre&amp;gt;&lt;br /&gt;
**Note: this command will remove any processing sips/transfers.&lt;br /&gt;
*&amp;lt;pre&amp;gt;&amp;quot;Would you like to Include mock FPR data?&amp;quot; (y/N) y &amp;lt;/pre&amp;gt;&lt;br /&gt;
*&amp;lt;pre&amp;gt;&amp;quot;Would you like to restart archivematica services?&amp;quot; (y/N) y&amp;lt;/pre&amp;gt;&lt;br /&gt;
*&amp;lt;pre&amp;gt;&amp;quot;Would you like to re-create gui-scripts editor file?&amp;quot; (y/N) y&amp;lt;/pre&amp;gt;&lt;br /&gt;
*&amp;lt;pre&amp;gt;&amp;quot;Would you like to update AtoM (branch 1.x) and restart its atom-sword service?&amp;quot; (y/N) y&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you stashed changes, re-apply them with&lt;br /&gt;
&amp;lt;pre&amp;gt;git stash pop&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Troubleshooting=&lt;br /&gt;
* If it stalls during update &amp;quot;Would you like to update/install package requirements?&amp;quot; (y/N)&lt;br /&gt;
** Stop the script with CTRL + C&lt;br /&gt;
** Try installing the item it failed on on the command line. Ie.&lt;br /&gt;
** &amp;lt;pre&amp;gt;sudo apt-get install postfix&amp;lt;/pre&amp;gt;&lt;br /&gt;
** Restart the dev-helper &amp;quot;Would you like to update/install package requirements?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* If you get this error error starting service:&lt;br /&gt;
** &amp;lt;pre&amp;gt;sudo start archivematica-mcp-server&amp;lt;/pre&amp;gt;&lt;br /&gt;
** &amp;lt;pre&amp;gt;start: Unknown job: archivematica-mcp-server&amp;lt;/pre&amp;gt;&lt;br /&gt;
** Then reboot the machine.&lt;br /&gt;
&lt;br /&gt;
*If a SIP processing fails, it will move it to the 'failed' directory which is located:&lt;br /&gt;
**&amp;lt;pre&amp;gt;/var/archivematica/sharedDirectory/watchedDirectories/failed&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*if ArchivematicaServer freezes &lt;br /&gt;
**&amp;lt;pre&amp;gt;sudo restart archivematica-mcp-server&amp;lt;/pre&amp;gt;&lt;br /&gt;
**&amp;lt;pre&amp;gt;sudo restart archivematica-mcp-client&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*if ArchivematicaClient freezes (in terminal kill command)&lt;br /&gt;
**&amp;lt;pre&amp;gt;sudo restart archivematica-mcp-client&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Updates to the Dashboard may require an Apache webserver restart:&lt;br /&gt;
**&amp;lt;pre&amp;gt;sudo /etc/init.d/apache2 restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*If you find a problem running the Dashboard and you want to get a detailed error log to report us, please switch it to debug mode following [http://archivematica.org/wiki/index.php?title=Dashboard#Debug_mode these instructions].&lt;br /&gt;
&lt;br /&gt;
*MCP is currently logging to the /tmp/directory&lt;br /&gt;
** /tmp/archivematicaMCPClient-HOST.log&lt;br /&gt;
** /tmp/archivematicaMCPServer-HOST-DATE.log&lt;br /&gt;
** /tmp/archivematicaMCPServerPID&lt;br /&gt;
&lt;br /&gt;
[[Category:Development documentation]]&lt;/div&gt;</summary>
		<author><name>Joseph</name></author>
	</entry>
	<entry>
		<id>https://wiki.archivematica.org/index.php?title=Adding_Format_Identification_Tools&amp;diff=8355</id>
		<title>Adding Format Identification Tools</title>
		<link rel="alternate" type="text/html" href="https://wiki.archivematica.org/index.php?title=Adding_Format_Identification_Tools&amp;diff=8355"/>
		<updated>2013-05-24T23:14:52Z</updated>

		<summary type="html">&lt;p&gt;Joseph: /* Set selection */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
These are developer facing instructions for adding a new tool to base normalization on.&lt;br /&gt;
=Add tool=&lt;br /&gt;
To include a new tool in the archivematica packages, it should be a dependancy package itself.&lt;br /&gt;
&lt;br /&gt;
=Add workflow=&lt;br /&gt;
The choices for file identification tool choices are made at link f4dea20e-f3fe-4a37-b20f-0e70a7bc960e.&lt;br /&gt;
&lt;br /&gt;
Additional choices can be added by adding entries.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT &lt;br /&gt;
    chainAvailable, startingLink, description &lt;br /&gt;
FROM &lt;br /&gt;
    MicroServiceChainChoice &lt;br /&gt;
    JOIN MicroServiceChains ON chainAvailable = MicroServiceChains.pk &lt;br /&gt;
WHERE &lt;br /&gt;
    choiceAvailableAtLink = 'f4dea20e-f3fe-4a37-b20f-0e70a7bc960e';&lt;br /&gt;
+--------------------------------------+--------------------------------------+---------------------+&lt;br /&gt;
| chainAvailable                       | startingLink                         | description         |&lt;br /&gt;
+--------------------------------------+--------------------------------------+---------------------+&lt;br /&gt;
| 229e34d9-3768-4b78-97b7-6cd4a2f07868 | b549130c-943b-4791-b1f6-93b837990138 | extension (default) |&lt;br /&gt;
| c44e0251-1c69-482d-a679-669b70d09fb1 | 56b42318-3eb3-466c-8a0d-7ac272136a96 | FITS - DROID        |&lt;br /&gt;
| 1d8836cf-ac02-437c-9283-4ddb7b018810 | 37f2e794-6485-4524-a384-37b3209916ed | FITS - ffident      |&lt;br /&gt;
| d607f083-7c86-49a2-bc36-06a03db28a80 | 766b23ad-65ed-46a3-aa2e-b9bdaf3386d0 | FITS - JHOVE        |&lt;br /&gt;
| 586006d1-f3af-4b5f-9f1a-c893244fa7a9 | d7a0e33d-aa3c-435f-a6ef-8e39f2e7e3a0 | FITS - summary      |&lt;br /&gt;
| 50f47870-3932-4a88-879d-d021a24758ad | f87f13d2-8aae-45c9-bc8a-e5c32a37654e | FITS - file utility |&lt;br /&gt;
| c76624a8-6f85-43cf-8ea7-0663502c712f | 982229bd-73b8-432e-a1d9-2d9d15d7287d | FIDO                |&lt;br /&gt;
+--------------------------------------+--------------------------------------+---------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
FIDO was added by:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
INSERT INTO MicroServiceChains (pk, startingLink, description)&lt;br /&gt;
    VALUES ('c76624a8-6f85-43cf-8ea7-0663502c712f', '982229bd-73b8-432e-a1d9-2d9d15d7287d', 'FIDO');&lt;br /&gt;
INSERT INTO MicroServiceChainChoice (pk, choiceAvailableAtLink, chainAvailable)&lt;br /&gt;
    VALUES ('e95b8f27-ea52-4247-bdf0-615273bc5fca', 'f4dea20e-f3fe-4a37-b20f-0e70a7bc960e', 'c76624a8-6f85-43cf-8ea7-0663502c712f');&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Set selection==&lt;br /&gt;
The first step in the workflow is to set the selection as the tool to use during normalization. This is done by making an insert into the unit's variables table for the variable normalizationFileIdentificationToolIdentifierTypes. The value set is a peice of a SQL query used in [https://github.com/artefactual/archivematica/blob/master/src/MCPServer/lib/linkTaskManagerSplitOnFileIdAndruleset.py linkTaskManagerSplitOnFileIdAndruleset.py] to restrict the fileIDs used to the desired type.&lt;br /&gt;
&lt;br /&gt;
For FIDO:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
INSERT INTO `MicroServiceChainLinks` (`pk`, `currentTask`, `defaultNextChainLink`, `defaultPlaySound`, `microserviceGroup`, `reloadFileList`, `defaultExitMessage`, `replaces`, `lastModified`) &lt;br /&gt;
    VALUES ('982229bd-73b8-432e-a1d9-2d9d15d7287d','1e516ea6-6814-4292-9ea9-552ebfaa0d23','4c4281a1-43cd-4c6e-b1dc-573bd1a23c43',NULL,'Normalize',1,'Failed',NULL,'2012-10-23 19:41:23');&lt;br /&gt;
INSERT INTO `TasksConfigs` (`pk`, `taskType`, `taskTypePKReference`, `description`, `replaces`, `lastModified`) &lt;br /&gt;
    VALUES ('1e516ea6-6814-4292-9ea9-552ebfaa0d23','6f0b612c-867f-4dfd-8e43-5b35b7f882d7','f130c16d-d419-4063-8c8b-2e4c3ad138bb','Set SIP to normalize with FIDO file identification.',NULL,'2012-10-23 19:41:23');&lt;br /&gt;
INSERT INTO `TasksConfigsSetUnitVariable` (`pk`, `variable`, `variableValue`, `microServiceChainLink`, `createdTime`, `updatedTime`) &lt;br /&gt;
    VALUES ('f130c16d-d419-4063-8c8b-2e4c3ad138bb','normalizationFileIdentificationToolIdentifierTypes','FileIDTypes.pk = \'afdbee13-eec5-4182-8c6c-f5638ee290f3\'',NULL,'2012-10-23 19:41:23','0000-00-00 00:00:00');&lt;br /&gt;
INSERT INTO `MicroServiceChainLinksExitCodes` (`pk`, `microServiceChainLink`, `exitCode`, `nextMicroServiceChainLink`, `playSound`, `exitMessage`, `replaces`, `lastModified`) &lt;br /&gt;
    VALUES ('82c97f8d-087d-4636-9dd9-59bbc04e6520','982229bd-73b8-432e-a1d9-2d9d15d7287d',0,'4c4281a1-43cd-4c6e-b1dc-573bd1a23c43',NULL,'Completed successfully',NULL,'2012-10-23 21:39:43');&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Run tool==&lt;br /&gt;
The next step is to run the tool on the objects. This requires both definition of the workflow, and a task to support it.&lt;br /&gt;
&lt;br /&gt;
===workflow===&lt;br /&gt;
FIDO workflow link:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SET @YLink = '83484326-7be7-4f9f-b252-94553cd42370';&lt;br /&gt;
&lt;br /&gt;
SET @TasksConfigPKReference = '46883944-8561-44d0-ac50-e1c3fd9aeb59';&lt;br /&gt;
SET @TasksConfig = '7f786b5c-c003-4ef1-97c2-c2269a04e89a';&lt;br /&gt;
SET @MicroServiceChainLink = '4c4281a1-43cd-4c6e-b1dc-573bd1a23c43';&lt;br /&gt;
SET @MicroServiceChainLinksExitCodes = 'd7653bbd-cd71-473d-b09e-fdd5b36a1d65';&lt;br /&gt;
SET @defaultNextChainLink = @YLink;&lt;br /&gt;
SET @NextMicroServiceChainLink = @YLink;&lt;br /&gt;
&lt;br /&gt;
INSERT INTO StandardTasksConfigs (pk, filterFileEnd, filterFileStart, filterSubDir, requiresOutputLock, standardOutputFile, standardErrorFile, execute, arguments)&lt;br /&gt;
    VALUES (@TasksConfigPKReference, NULL, NULL, 'objects/', FALSE, NULL, NULL, 'archivematicaFido_v0.0', '--fileUUID &amp;quot;%fileUUID%&amp;quot; --SIPUUID &amp;quot;%SIPUUID%&amp;quot; --filePath &amp;quot;%relativeLocation%&amp;quot; --eventIdentifierUUID &amp;quot;%taskUUID%&amp;quot; --date &amp;quot;%date%&amp;quot; --fileGrpUse &amp;quot;%fileGrpUse%&amp;quot;');&lt;br /&gt;
INSERT INTO TasksConfigs (pk, taskType, taskTypePKReference, description)&lt;br /&gt;
    VALUES&lt;br /&gt;
    (@TasksConfig, 'a6b1c323-7d36-428e-846a-e7e819423577', @TasksConfigPKReference, 'Identify file formats with FIDO');&lt;br /&gt;
INSERT INTO MicroServiceChainLinks (pk, microserviceGroup, currentTask, defaultNextChainLink)&lt;br /&gt;
    VALUES (@MicroServiceChainLink, @microserviceGroup, @TasksConfig, @defaultNextChainLink);&lt;br /&gt;
INSERT INTO MicroServiceChainLinksExitCodes (pk, microServiceChainLink, exitCode, nextMicroServiceChainLink)&lt;br /&gt;
    VALUES (@MicroServiceChainLinksExitCodes, @MicroServiceChainLink, 0, @NextMicroServiceChainLink);&lt;br /&gt;
SET @NextMicroServiceChainLink = @MicroServiceChainLink;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Identify files script===&lt;br /&gt;
The script must be created to identify the file and put an entry(s) in the FilesIdentifiedIDs table.&lt;br /&gt;
For Fido this script is [https://github.com/artefactual/archivematica/blob/642a3df29707e014f6c9ee5b7ea64785454c76cc/src/MCPClient/lib/clientScripts/archivematicaFido.py archivematicaFido.py]&lt;br /&gt;
&lt;br /&gt;
This script must be added to the client as a supported module.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
archivematicaFido_v0.0 = %clientScriptsDirectory%archivematicaFido.py  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[https://github.com/artefactual/archivematica/blob/642a3df29707e014f6c9ee5b7ea64785454c76cc/src/MCPClient/etc/archivematicaClientModules archivematicaClientModules]&lt;br /&gt;
&lt;br /&gt;
==Return==&lt;br /&gt;
The last link, to return to the processing workflow already exists, and must be defined as the next chain to process.&lt;br /&gt;
The link is 83484326-7be7-4f9f-b252-94553cd42370&lt;br /&gt;
&lt;br /&gt;
=Add FPR rules=&lt;br /&gt;
Populating the local FPR rules can be done by creating a temporary script, and using a set of sample files with extensions. Use the FileIDs for the extensions to populate values for already in preservation/access status, and related commands.&lt;br /&gt;
&lt;br /&gt;
Fido example: [https://github.com/artefactual/archivematica/commit/ea02f7d6ffc420d5675fcd3bf261c63870881a65]&lt;br /&gt;
==FileIDTypes==&lt;br /&gt;
Remember an entry for FileIDTypes is required.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
INSERT INTO `FileIDTypes` (`pk`, `description`, `replaces`, `lastModified`, `enabled`) VALUES ('afdbee13-eec5-4182-8c6c-f5638ee290f3','FileIDByFIDO',NULL,'2013-03-12 01:54:24',1);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Development documentation]]&lt;/div&gt;</summary>
		<author><name>Joseph</name></author>
	</entry>
	<entry>
		<id>https://wiki.archivematica.org/index.php?title=Adding_Format_Identification_Tools&amp;diff=8354</id>
		<title>Adding Format Identification Tools</title>
		<link rel="alternate" type="text/html" href="https://wiki.archivematica.org/index.php?title=Adding_Format_Identification_Tools&amp;diff=8354"/>
		<updated>2013-05-24T23:12:27Z</updated>

		<summary type="html">&lt;p&gt;Joseph: /* Add FPR rules */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
These are developer facing instructions for adding a new tool to base normalization on.&lt;br /&gt;
=Add tool=&lt;br /&gt;
To include a new tool in the archivematica packages, it should be a dependancy package itself.&lt;br /&gt;
&lt;br /&gt;
=Add workflow=&lt;br /&gt;
The choices for file identification tool choices are made at link f4dea20e-f3fe-4a37-b20f-0e70a7bc960e.&lt;br /&gt;
&lt;br /&gt;
Additional choices can be added by adding entries.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT &lt;br /&gt;
    chainAvailable, startingLink, description &lt;br /&gt;
FROM &lt;br /&gt;
    MicroServiceChainChoice &lt;br /&gt;
    JOIN MicroServiceChains ON chainAvailable = MicroServiceChains.pk &lt;br /&gt;
WHERE &lt;br /&gt;
    choiceAvailableAtLink = 'f4dea20e-f3fe-4a37-b20f-0e70a7bc960e';&lt;br /&gt;
+--------------------------------------+--------------------------------------+---------------------+&lt;br /&gt;
| chainAvailable                       | startingLink                         | description         |&lt;br /&gt;
+--------------------------------------+--------------------------------------+---------------------+&lt;br /&gt;
| 229e34d9-3768-4b78-97b7-6cd4a2f07868 | b549130c-943b-4791-b1f6-93b837990138 | extension (default) |&lt;br /&gt;
| c44e0251-1c69-482d-a679-669b70d09fb1 | 56b42318-3eb3-466c-8a0d-7ac272136a96 | FITS - DROID        |&lt;br /&gt;
| 1d8836cf-ac02-437c-9283-4ddb7b018810 | 37f2e794-6485-4524-a384-37b3209916ed | FITS - ffident      |&lt;br /&gt;
| d607f083-7c86-49a2-bc36-06a03db28a80 | 766b23ad-65ed-46a3-aa2e-b9bdaf3386d0 | FITS - JHOVE        |&lt;br /&gt;
| 586006d1-f3af-4b5f-9f1a-c893244fa7a9 | d7a0e33d-aa3c-435f-a6ef-8e39f2e7e3a0 | FITS - summary      |&lt;br /&gt;
| 50f47870-3932-4a88-879d-d021a24758ad | f87f13d2-8aae-45c9-bc8a-e5c32a37654e | FITS - file utility |&lt;br /&gt;
| c76624a8-6f85-43cf-8ea7-0663502c712f | 982229bd-73b8-432e-a1d9-2d9d15d7287d | FIDO                |&lt;br /&gt;
+--------------------------------------+--------------------------------------+---------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
FIDO was added by:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
INSERT INTO MicroServiceChains (pk, startingLink, description)&lt;br /&gt;
    VALUES ('c76624a8-6f85-43cf-8ea7-0663502c712f', '982229bd-73b8-432e-a1d9-2d9d15d7287d', 'FIDO');&lt;br /&gt;
INSERT INTO MicroServiceChainChoice (pk, choiceAvailableAtLink, chainAvailable)&lt;br /&gt;
    VALUES ('e95b8f27-ea52-4247-bdf0-615273bc5fca', 'f4dea20e-f3fe-4a37-b20f-0e70a7bc960e', 'c76624a8-6f85-43cf-8ea7-0663502c712f');&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Set selection==&lt;br /&gt;
The first step in the workflow is to set the selection as the tool to use during normalization. This is done by making an insert into the unit's variables table for the variable normalizationFileIdentificationToolIdentifierTypes. The value set is a peice of a SQL query used in [https://github.com/artefactual/archivematica/blob/master/src/MCPServer/lib/linkTaskManagerSplitOnFileIdAndruleset.py linkTaskManagerSplitOnFileIdAndruleset.py] to restrict the fileIDs used to the desired type.&lt;br /&gt;
&lt;br /&gt;
For FIDO:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
INSERT INTO `MicroServiceChainLinks` (`pk`, `currentTask`, `defaultNextChainLink`, `defaultPlaySound`, `microserviceGroup`, `reloadFileList`, `defaultExitMessage`, `replaces`, `lastModified`) VALUES ('982229bd-73b8-432e-a1d9-2d9d15d7287d','1e516ea6-6814-4292-9ea9-552ebfaa0d23','4c4281a1-43cd-4c6e-b1dc-573bd1a23c43',NULL,'Normalize',1,'Failed',NULL,'2012-10-23 19:41:23');&lt;br /&gt;
INSERT INTO `TasksConfigs` (`pk`, `taskType`, `taskTypePKReference`, `description`, `replaces`, `lastModified`) VALUES ('1e516ea6-6814-4292-9ea9-552ebfaa0d23','6f0b612c-867f-4dfd-8e43-5b35b7f882d7','f130c16d-d419-4063-8c8b-2e4c3ad138bb','Set SIP to normalize with FIDO file identification.',NULL,'2012-10-23 19:41:23');&lt;br /&gt;
INSERT INTO `TasksConfigsSetUnitVariable` (`pk`, `variable`, `variableValue`, `microServiceChainLink`, `createdTime`, `updatedTime`) VALUES ('f130c16d-d419-4063-8c8b-2e4c3ad138bb','normalizationFileIdentificationToolIdentifierTypes','FileIDTypes.pk = \'afdbee13-eec5-4182-8c6c-f5638ee290f3\'',NULL,'2012-10-23 19:41:23','0000-00-00 00:00:00');&lt;br /&gt;
INSERT INTO `MicroServiceChainLinksExitCodes` (`pk`, `microServiceChainLink`, `exitCode`, `nextMicroServiceChainLink`, `playSound`, `exitMessage`, `replaces`, `lastModified`) VALUES ('82c97f8d-087d-4636-9dd9-59bbc04e6520','982229bd-73b8-432e-a1d9-2d9d15d7287d',0,'4c4281a1-43cd-4c6e-b1dc-573bd1a23c43',NULL,'Completed successfully',NULL,'2012-10-23 21:39:43');&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Run tool==&lt;br /&gt;
The next step is to run the tool on the objects. This requires both definition of the workflow, and a task to support it.&lt;br /&gt;
&lt;br /&gt;
===workflow===&lt;br /&gt;
FIDO workflow link:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SET @YLink = '83484326-7be7-4f9f-b252-94553cd42370';&lt;br /&gt;
&lt;br /&gt;
SET @TasksConfigPKReference = '46883944-8561-44d0-ac50-e1c3fd9aeb59';&lt;br /&gt;
SET @TasksConfig = '7f786b5c-c003-4ef1-97c2-c2269a04e89a';&lt;br /&gt;
SET @MicroServiceChainLink = '4c4281a1-43cd-4c6e-b1dc-573bd1a23c43';&lt;br /&gt;
SET @MicroServiceChainLinksExitCodes = 'd7653bbd-cd71-473d-b09e-fdd5b36a1d65';&lt;br /&gt;
SET @defaultNextChainLink = @YLink;&lt;br /&gt;
SET @NextMicroServiceChainLink = @YLink;&lt;br /&gt;
&lt;br /&gt;
INSERT INTO StandardTasksConfigs (pk, filterFileEnd, filterFileStart, filterSubDir, requiresOutputLock, standardOutputFile, standardErrorFile, execute, arguments)&lt;br /&gt;
    VALUES (@TasksConfigPKReference, NULL, NULL, 'objects/', FALSE, NULL, NULL, 'archivematicaFido_v0.0', '--fileUUID &amp;quot;%fileUUID%&amp;quot; --SIPUUID &amp;quot;%SIPUUID%&amp;quot; --filePath &amp;quot;%relativeLocation%&amp;quot; --eventIdentifierUUID &amp;quot;%taskUUID%&amp;quot; --date &amp;quot;%date%&amp;quot; --fileGrpUse &amp;quot;%fileGrpUse%&amp;quot;');&lt;br /&gt;
INSERT INTO TasksConfigs (pk, taskType, taskTypePKReference, description)&lt;br /&gt;
    VALUES&lt;br /&gt;
    (@TasksConfig, 'a6b1c323-7d36-428e-846a-e7e819423577', @TasksConfigPKReference, 'Identify file formats with FIDO');&lt;br /&gt;
INSERT INTO MicroServiceChainLinks (pk, microserviceGroup, currentTask, defaultNextChainLink)&lt;br /&gt;
    VALUES (@MicroServiceChainLink, @microserviceGroup, @TasksConfig, @defaultNextChainLink);&lt;br /&gt;
INSERT INTO MicroServiceChainLinksExitCodes (pk, microServiceChainLink, exitCode, nextMicroServiceChainLink)&lt;br /&gt;
    VALUES (@MicroServiceChainLinksExitCodes, @MicroServiceChainLink, 0, @NextMicroServiceChainLink);&lt;br /&gt;
SET @NextMicroServiceChainLink = @MicroServiceChainLink;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Identify files script===&lt;br /&gt;
The script must be created to identify the file and put an entry(s) in the FilesIdentifiedIDs table.&lt;br /&gt;
For Fido this script is [https://github.com/artefactual/archivematica/blob/642a3df29707e014f6c9ee5b7ea64785454c76cc/src/MCPClient/lib/clientScripts/archivematicaFido.py archivematicaFido.py]&lt;br /&gt;
&lt;br /&gt;
This script must be added to the client as a supported module.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
archivematicaFido_v0.0 = %clientScriptsDirectory%archivematicaFido.py  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[https://github.com/artefactual/archivematica/blob/642a3df29707e014f6c9ee5b7ea64785454c76cc/src/MCPClient/etc/archivematicaClientModules archivematicaClientModules]&lt;br /&gt;
&lt;br /&gt;
==Return==&lt;br /&gt;
The last link, to return to the processing workflow already exists, and must be defined as the next chain to process.&lt;br /&gt;
The link is 83484326-7be7-4f9f-b252-94553cd42370&lt;br /&gt;
&lt;br /&gt;
=Add FPR rules=&lt;br /&gt;
Populating the local FPR rules can be done by creating a temporary script, and using a set of sample files with extensions. Use the FileIDs for the extensions to populate values for already in preservation/access status, and related commands.&lt;br /&gt;
&lt;br /&gt;
Fido example: [https://github.com/artefactual/archivematica/commit/ea02f7d6ffc420d5675fcd3bf261c63870881a65]&lt;br /&gt;
==FileIDTypes==&lt;br /&gt;
Remember an entry for FileIDTypes is required.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
INSERT INTO `FileIDTypes` (`pk`, `description`, `replaces`, `lastModified`, `enabled`) VALUES ('afdbee13-eec5-4182-8c6c-f5638ee290f3','FileIDByFIDO',NULL,'2013-03-12 01:54:24',1);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Development documentation]]&lt;/div&gt;</summary>
		<author><name>Joseph</name></author>
	</entry>
	<entry>
		<id>https://wiki.archivematica.org/index.php?title=Adding_Format_Identification_Tools&amp;diff=8353</id>
		<title>Adding Format Identification Tools</title>
		<link rel="alternate" type="text/html" href="https://wiki.archivematica.org/index.php?title=Adding_Format_Identification_Tools&amp;diff=8353"/>
		<updated>2013-05-24T20:52:29Z</updated>

		<summary type="html">&lt;p&gt;Joseph: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
These are developer facing instructions for adding a new tool to base normalization on.&lt;br /&gt;
=Add tool=&lt;br /&gt;
To include a new tool in the archivematica packages, it should be a dependancy package itself.&lt;br /&gt;
&lt;br /&gt;
=Add workflow=&lt;br /&gt;
The choices for file identification tool choices are made at link f4dea20e-f3fe-4a37-b20f-0e70a7bc960e.&lt;br /&gt;
&lt;br /&gt;
Additional choices can be added by adding entries.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT &lt;br /&gt;
    chainAvailable, startingLink, description &lt;br /&gt;
FROM &lt;br /&gt;
    MicroServiceChainChoice &lt;br /&gt;
    JOIN MicroServiceChains ON chainAvailable = MicroServiceChains.pk &lt;br /&gt;
WHERE &lt;br /&gt;
    choiceAvailableAtLink = 'f4dea20e-f3fe-4a37-b20f-0e70a7bc960e';&lt;br /&gt;
+--------------------------------------+--------------------------------------+---------------------+&lt;br /&gt;
| chainAvailable                       | startingLink                         | description         |&lt;br /&gt;
+--------------------------------------+--------------------------------------+---------------------+&lt;br /&gt;
| 229e34d9-3768-4b78-97b7-6cd4a2f07868 | b549130c-943b-4791-b1f6-93b837990138 | extension (default) |&lt;br /&gt;
| c44e0251-1c69-482d-a679-669b70d09fb1 | 56b42318-3eb3-466c-8a0d-7ac272136a96 | FITS - DROID        |&lt;br /&gt;
| 1d8836cf-ac02-437c-9283-4ddb7b018810 | 37f2e794-6485-4524-a384-37b3209916ed | FITS - ffident      |&lt;br /&gt;
| d607f083-7c86-49a2-bc36-06a03db28a80 | 766b23ad-65ed-46a3-aa2e-b9bdaf3386d0 | FITS - JHOVE        |&lt;br /&gt;
| 586006d1-f3af-4b5f-9f1a-c893244fa7a9 | d7a0e33d-aa3c-435f-a6ef-8e39f2e7e3a0 | FITS - summary      |&lt;br /&gt;
| 50f47870-3932-4a88-879d-d021a24758ad | f87f13d2-8aae-45c9-bc8a-e5c32a37654e | FITS - file utility |&lt;br /&gt;
| c76624a8-6f85-43cf-8ea7-0663502c712f | 982229bd-73b8-432e-a1d9-2d9d15d7287d | FIDO                |&lt;br /&gt;
+--------------------------------------+--------------------------------------+---------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
FIDO was added by:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
INSERT INTO MicroServiceChains (pk, startingLink, description)&lt;br /&gt;
    VALUES ('c76624a8-6f85-43cf-8ea7-0663502c712f', '982229bd-73b8-432e-a1d9-2d9d15d7287d', 'FIDO');&lt;br /&gt;
INSERT INTO MicroServiceChainChoice (pk, choiceAvailableAtLink, chainAvailable)&lt;br /&gt;
    VALUES ('e95b8f27-ea52-4247-bdf0-615273bc5fca', 'f4dea20e-f3fe-4a37-b20f-0e70a7bc960e', 'c76624a8-6f85-43cf-8ea7-0663502c712f');&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Set selection==&lt;br /&gt;
The first step in the workflow is to set the selection as the tool to use during normalization. This is done by making an insert into the unit's variables table for the variable normalizationFileIdentificationToolIdentifierTypes. The value set is a peice of a SQL query used in [https://github.com/artefactual/archivematica/blob/master/src/MCPServer/lib/linkTaskManagerSplitOnFileIdAndruleset.py linkTaskManagerSplitOnFileIdAndruleset.py] to restrict the fileIDs used to the desired type.&lt;br /&gt;
&lt;br /&gt;
For FIDO:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
INSERT INTO `MicroServiceChainLinks` (`pk`, `currentTask`, `defaultNextChainLink`, `defaultPlaySound`, `microserviceGroup`, `reloadFileList`, `defaultExitMessage`, `replaces`, `lastModified`) VALUES ('982229bd-73b8-432e-a1d9-2d9d15d7287d','1e516ea6-6814-4292-9ea9-552ebfaa0d23','4c4281a1-43cd-4c6e-b1dc-573bd1a23c43',NULL,'Normalize',1,'Failed',NULL,'2012-10-23 19:41:23');&lt;br /&gt;
INSERT INTO `TasksConfigs` (`pk`, `taskType`, `taskTypePKReference`, `description`, `replaces`, `lastModified`) VALUES ('1e516ea6-6814-4292-9ea9-552ebfaa0d23','6f0b612c-867f-4dfd-8e43-5b35b7f882d7','f130c16d-d419-4063-8c8b-2e4c3ad138bb','Set SIP to normalize with FIDO file identification.',NULL,'2012-10-23 19:41:23');&lt;br /&gt;
INSERT INTO `TasksConfigsSetUnitVariable` (`pk`, `variable`, `variableValue`, `microServiceChainLink`, `createdTime`, `updatedTime`) VALUES ('f130c16d-d419-4063-8c8b-2e4c3ad138bb','normalizationFileIdentificationToolIdentifierTypes','FileIDTypes.pk = \'afdbee13-eec5-4182-8c6c-f5638ee290f3\'',NULL,'2012-10-23 19:41:23','0000-00-00 00:00:00');&lt;br /&gt;
INSERT INTO `MicroServiceChainLinksExitCodes` (`pk`, `microServiceChainLink`, `exitCode`, `nextMicroServiceChainLink`, `playSound`, `exitMessage`, `replaces`, `lastModified`) VALUES ('82c97f8d-087d-4636-9dd9-59bbc04e6520','982229bd-73b8-432e-a1d9-2d9d15d7287d',0,'4c4281a1-43cd-4c6e-b1dc-573bd1a23c43',NULL,'Completed successfully',NULL,'2012-10-23 21:39:43');&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Run tool==&lt;br /&gt;
The next step is to run the tool on the objects. This requires both definition of the workflow, and a task to support it.&lt;br /&gt;
&lt;br /&gt;
===workflow===&lt;br /&gt;
FIDO workflow link:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SET @YLink = '83484326-7be7-4f9f-b252-94553cd42370';&lt;br /&gt;
&lt;br /&gt;
SET @TasksConfigPKReference = '46883944-8561-44d0-ac50-e1c3fd9aeb59';&lt;br /&gt;
SET @TasksConfig = '7f786b5c-c003-4ef1-97c2-c2269a04e89a';&lt;br /&gt;
SET @MicroServiceChainLink = '4c4281a1-43cd-4c6e-b1dc-573bd1a23c43';&lt;br /&gt;
SET @MicroServiceChainLinksExitCodes = 'd7653bbd-cd71-473d-b09e-fdd5b36a1d65';&lt;br /&gt;
SET @defaultNextChainLink = @YLink;&lt;br /&gt;
SET @NextMicroServiceChainLink = @YLink;&lt;br /&gt;
&lt;br /&gt;
INSERT INTO StandardTasksConfigs (pk, filterFileEnd, filterFileStart, filterSubDir, requiresOutputLock, standardOutputFile, standardErrorFile, execute, arguments)&lt;br /&gt;
    VALUES (@TasksConfigPKReference, NULL, NULL, 'objects/', FALSE, NULL, NULL, 'archivematicaFido_v0.0', '--fileUUID &amp;quot;%fileUUID%&amp;quot; --SIPUUID &amp;quot;%SIPUUID%&amp;quot; --filePath &amp;quot;%relativeLocation%&amp;quot; --eventIdentifierUUID &amp;quot;%taskUUID%&amp;quot; --date &amp;quot;%date%&amp;quot; --fileGrpUse &amp;quot;%fileGrpUse%&amp;quot;');&lt;br /&gt;
INSERT INTO TasksConfigs (pk, taskType, taskTypePKReference, description)&lt;br /&gt;
    VALUES&lt;br /&gt;
    (@TasksConfig, 'a6b1c323-7d36-428e-846a-e7e819423577', @TasksConfigPKReference, 'Identify file formats with FIDO');&lt;br /&gt;
INSERT INTO MicroServiceChainLinks (pk, microserviceGroup, currentTask, defaultNextChainLink)&lt;br /&gt;
    VALUES (@MicroServiceChainLink, @microserviceGroup, @TasksConfig, @defaultNextChainLink);&lt;br /&gt;
INSERT INTO MicroServiceChainLinksExitCodes (pk, microServiceChainLink, exitCode, nextMicroServiceChainLink)&lt;br /&gt;
    VALUES (@MicroServiceChainLinksExitCodes, @MicroServiceChainLink, 0, @NextMicroServiceChainLink);&lt;br /&gt;
SET @NextMicroServiceChainLink = @MicroServiceChainLink;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Identify files script===&lt;br /&gt;
The script must be created to identify the file and put an entry(s) in the FilesIdentifiedIDs table.&lt;br /&gt;
For Fido this script is [https://github.com/artefactual/archivematica/blob/642a3df29707e014f6c9ee5b7ea64785454c76cc/src/MCPClient/lib/clientScripts/archivematicaFido.py archivematicaFido.py]&lt;br /&gt;
&lt;br /&gt;
This script must be added to the client as a supported module.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
archivematicaFido_v0.0 = %clientScriptsDirectory%archivematicaFido.py  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[https://github.com/artefactual/archivematica/blob/642a3df29707e014f6c9ee5b7ea64785454c76cc/src/MCPClient/etc/archivematicaClientModules archivematicaClientModules]&lt;br /&gt;
&lt;br /&gt;
==Return==&lt;br /&gt;
The last link, to return to the processing workflow already exists, and must be defined as the next chain to process.&lt;br /&gt;
The link is 83484326-7be7-4f9f-b252-94553cd42370&lt;br /&gt;
&lt;br /&gt;
=Add FPR rules=&lt;br /&gt;
==FileIDTypes==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Development documentation]]&lt;/div&gt;</summary>
		<author><name>Joseph</name></author>
	</entry>
	<entry>
		<id>https://wiki.archivematica.org/index.php?title=Adding_Format_Identification_Tools&amp;diff=8352</id>
		<title>Adding Format Identification Tools</title>
		<link rel="alternate" type="text/html" href="https://wiki.archivematica.org/index.php?title=Adding_Format_Identification_Tools&amp;diff=8352"/>
		<updated>2013-05-24T20:42:46Z</updated>

		<summary type="html">&lt;p&gt;Joseph: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
These are developer facing instructions for adding a new tool to base normalization on.&lt;br /&gt;
=Add tool=&lt;br /&gt;
To include a new tool in the archivematica packages, it should be a dependancy package itself.&lt;br /&gt;
&lt;br /&gt;
=Add workflow=&lt;br /&gt;
The choices for file identification tool choices are made at link f4dea20e-f3fe-4a37-b20f-0e70a7bc960e.&lt;br /&gt;
&lt;br /&gt;
Additional choices can be added by adding entries.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT &lt;br /&gt;
    chainAvailable, startingLink, description &lt;br /&gt;
FROM &lt;br /&gt;
    MicroServiceChainChoice &lt;br /&gt;
    JOIN MicroServiceChains ON chainAvailable = MicroServiceChains.pk &lt;br /&gt;
WHERE &lt;br /&gt;
    choiceAvailableAtLink = 'f4dea20e-f3fe-4a37-b20f-0e70a7bc960e';&lt;br /&gt;
+--------------------------------------+--------------------------------------+---------------------+&lt;br /&gt;
| chainAvailable                       | startingLink                         | description         |&lt;br /&gt;
+--------------------------------------+--------------------------------------+---------------------+&lt;br /&gt;
| 229e34d9-3768-4b78-97b7-6cd4a2f07868 | b549130c-943b-4791-b1f6-93b837990138 | extension (default) |&lt;br /&gt;
| c44e0251-1c69-482d-a679-669b70d09fb1 | 56b42318-3eb3-466c-8a0d-7ac272136a96 | FITS - DROID        |&lt;br /&gt;
| 1d8836cf-ac02-437c-9283-4ddb7b018810 | 37f2e794-6485-4524-a384-37b3209916ed | FITS - ffident      |&lt;br /&gt;
| d607f083-7c86-49a2-bc36-06a03db28a80 | 766b23ad-65ed-46a3-aa2e-b9bdaf3386d0 | FITS - JHOVE        |&lt;br /&gt;
| 586006d1-f3af-4b5f-9f1a-c893244fa7a9 | d7a0e33d-aa3c-435f-a6ef-8e39f2e7e3a0 | FITS - summary      |&lt;br /&gt;
| 50f47870-3932-4a88-879d-d021a24758ad | f87f13d2-8aae-45c9-bc8a-e5c32a37654e | FITS - file utility |&lt;br /&gt;
| c76624a8-6f85-43cf-8ea7-0663502c712f | 982229bd-73b8-432e-a1d9-2d9d15d7287d | FIDO                |&lt;br /&gt;
+--------------------------------------+--------------------------------------+---------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
FIDO was added by:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
INSERT INTO MicroServiceChains (pk, startingLink, description)&lt;br /&gt;
    VALUES ('c76624a8-6f85-43cf-8ea7-0663502c712f', '982229bd-73b8-432e-a1d9-2d9d15d7287d', 'FIDO');&lt;br /&gt;
INSERT INTO MicroServiceChainChoice (pk, choiceAvailableAtLink, chainAvailable)&lt;br /&gt;
    VALUES ('e95b8f27-ea52-4247-bdf0-615273bc5fca', 'f4dea20e-f3fe-4a37-b20f-0e70a7bc960e', 'c76624a8-6f85-43cf-8ea7-0663502c712f');&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Set selection==&lt;br /&gt;
The first step in the workflow is to set the selection as the tool to use during normalization. This is done by making an insert into the unit's variables table for the variable normalizationFileIdentificationToolIdentifierTypes. The value set is a peice of a SQL query used in [https://github.com/artefactual/archivematica/blob/master/src/MCPServer/lib/linkTaskManagerSplitOnFileIdAndruleset.py linkTaskManagerSplitOnFileIdAndruleset.py] to restrict the fileIDs used to the desired type.&lt;br /&gt;
&lt;br /&gt;
For FIDO:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
INSERT INTO `MicroServiceChainLinks` (`pk`, `currentTask`, `defaultNextChainLink`, `defaultPlaySound`, `microserviceGroup`, `reloadFileList`, `defaultExitMessage`, `replaces`, `lastModified`) VALUES ('982229bd-73b8-432e-a1d9-2d9d15d7287d','1e516ea6-6814-4292-9ea9-552ebfaa0d23','4c4281a1-43cd-4c6e-b1dc-573bd1a23c43',NULL,'Normalize',1,'Failed',NULL,'2012-10-23 19:41:23');&lt;br /&gt;
INSERT INTO `TasksConfigs` (`pk`, `taskType`, `taskTypePKReference`, `description`, `replaces`, `lastModified`) VALUES ('1e516ea6-6814-4292-9ea9-552ebfaa0d23','6f0b612c-867f-4dfd-8e43-5b35b7f882d7','f130c16d-d419-4063-8c8b-2e4c3ad138bb','Set SIP to normalize with FIDO file identification.',NULL,'2012-10-23 19:41:23');&lt;br /&gt;
INSERT INTO `TasksConfigsSetUnitVariable` (`pk`, `variable`, `variableValue`, `microServiceChainLink`, `createdTime`, `updatedTime`) VALUES ('f130c16d-d419-4063-8c8b-2e4c3ad138bb','normalizationFileIdentificationToolIdentifierTypes','FileIDTypes.pk = \'afdbee13-eec5-4182-8c6c-f5638ee290f3\'',NULL,'2012-10-23 19:41:23','0000-00-00 00:00:00');&lt;br /&gt;
INSERT INTO `MicroServiceChainLinksExitCodes` (`pk`, `microServiceChainLink`, `exitCode`, `nextMicroServiceChainLink`, `playSound`, `exitMessage`, `replaces`, `lastModified`) VALUES ('82c97f8d-087d-4636-9dd9-59bbc04e6520','982229bd-73b8-432e-a1d9-2d9d15d7287d',0,'4c4281a1-43cd-4c6e-b1dc-573bd1a23c43',NULL,'Completed successfully',NULL,'2012-10-23 21:39:43');&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Run tool==&lt;br /&gt;
The next step is to run the tool on the objects.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SET @YLink = '83484326-7be7-4f9f-b252-94553cd42370';&lt;br /&gt;
&lt;br /&gt;
SET @TasksConfigPKReference = '46883944-8561-44d0-ac50-e1c3fd9aeb59';&lt;br /&gt;
SET @TasksConfig = '7f786b5c-c003-4ef1-97c2-c2269a04e89a';&lt;br /&gt;
SET @MicroServiceChainLink = '4c4281a1-43cd-4c6e-b1dc-573bd1a23c43';&lt;br /&gt;
SET @MicroServiceChainLinksExitCodes = 'd7653bbd-cd71-473d-b09e-fdd5b36a1d65';&lt;br /&gt;
SET @defaultNextChainLink = @YLink;&lt;br /&gt;
SET @NextMicroServiceChainLink = @YLink;&lt;br /&gt;
&lt;br /&gt;
INSERT INTO StandardTasksConfigs (pk, filterFileEnd, filterFileStart, filterSubDir, requiresOutputLock, standardOutputFile, standardErrorFile, execute, arguments)&lt;br /&gt;
    VALUES (@TasksConfigPKReference, NULL, NULL, 'objects/', FALSE, NULL, NULL, 'archivematicaFido_v0.0', '--fileUUID &amp;quot;%fileUUID%&amp;quot; --SIPUUID &amp;quot;%SIPUUID%&amp;quot; --filePath &amp;quot;%relativeLocation%&amp;quot; --eventIdentifierUUID &amp;quot;%taskUUID%&amp;quot; --date &amp;quot;%date%&amp;quot; --fileGrpUse &amp;quot;%fileGrpUse%&amp;quot;');&lt;br /&gt;
INSERT INTO TasksConfigs (pk, taskType, taskTypePKReference, description)&lt;br /&gt;
    VALUES&lt;br /&gt;
    (@TasksConfig, 'a6b1c323-7d36-428e-846a-e7e819423577', @TasksConfigPKReference, 'Identify file formats with FIDO');&lt;br /&gt;
INSERT INTO MicroServiceChainLinks (pk, microserviceGroup, currentTask, defaultNextChainLink)&lt;br /&gt;
    VALUES (@MicroServiceChainLink, @microserviceGroup, @TasksConfig, @defaultNextChainLink);&lt;br /&gt;
INSERT INTO MicroServiceChainLinksExitCodes (pk, microServiceChainLink, exitCode, nextMicroServiceChainLink)&lt;br /&gt;
    VALUES (@MicroServiceChainLinksExitCodes, @MicroServiceChainLink, 0, @NextMicroServiceChainLink);&lt;br /&gt;
SET @NextMicroServiceChainLink = @MicroServiceChainLink;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Return==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Add FPR rules=&lt;br /&gt;
==FileIDTypes==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Development documentation]]&lt;/div&gt;</summary>
		<author><name>Joseph</name></author>
	</entry>
	<entry>
		<id>https://wiki.archivematica.org/index.php?title=Adding_Format_Identification_Tools&amp;diff=8351</id>
		<title>Adding Format Identification Tools</title>
		<link rel="alternate" type="text/html" href="https://wiki.archivematica.org/index.php?title=Adding_Format_Identification_Tools&amp;diff=8351"/>
		<updated>2013-05-24T20:14:55Z</updated>

		<summary type="html">&lt;p&gt;Joseph: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
These are developer facing instructions for adding a new tool to base normalization on.&lt;br /&gt;
=Add tool=&lt;br /&gt;
To include a new tool in the archivematica packages, it should be a dependancy package itself.&lt;br /&gt;
&lt;br /&gt;
=Add workflow=&lt;br /&gt;
The choices for file identification tool choices are made at link f4dea20e-f3fe-4a37-b20f-0e70a7bc960e.&lt;br /&gt;
&lt;br /&gt;
Additional choices can be added by adding entries.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT &lt;br /&gt;
    chainAvailable, startingLink, description &lt;br /&gt;
FROM &lt;br /&gt;
    MicroServiceChainChoice &lt;br /&gt;
    JOIN MicroServiceChains ON chainAvailable = MicroServiceChains.pk &lt;br /&gt;
WHERE &lt;br /&gt;
    choiceAvailableAtLink = 'f4dea20e-f3fe-4a37-b20f-0e70a7bc960e';&lt;br /&gt;
+--------------------------------------+--------------------------------------+---------------------+&lt;br /&gt;
| chainAvailable                       | startingLink                         | description         |&lt;br /&gt;
+--------------------------------------+--------------------------------------+---------------------+&lt;br /&gt;
| 229e34d9-3768-4b78-97b7-6cd4a2f07868 | b549130c-943b-4791-b1f6-93b837990138 | extension (default) |&lt;br /&gt;
| c44e0251-1c69-482d-a679-669b70d09fb1 | 56b42318-3eb3-466c-8a0d-7ac272136a96 | FITS - DROID        |&lt;br /&gt;
| 1d8836cf-ac02-437c-9283-4ddb7b018810 | 37f2e794-6485-4524-a384-37b3209916ed | FITS - ffident      |&lt;br /&gt;
| d607f083-7c86-49a2-bc36-06a03db28a80 | 766b23ad-65ed-46a3-aa2e-b9bdaf3386d0 | FITS - JHOVE        |&lt;br /&gt;
| 586006d1-f3af-4b5f-9f1a-c893244fa7a9 | d7a0e33d-aa3c-435f-a6ef-8e39f2e7e3a0 | FITS - summary      |&lt;br /&gt;
| 50f47870-3932-4a88-879d-d021a24758ad | f87f13d2-8aae-45c9-bc8a-e5c32a37654e | FITS - file utility |&lt;br /&gt;
| c76624a8-6f85-43cf-8ea7-0663502c712f | 982229bd-73b8-432e-a1d9-2d9d15d7287d | FIDO                |&lt;br /&gt;
+--------------------------------------+--------------------------------------+---------------------+&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
FIDO was added by:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
INSERT INTO MicroServiceChains (pk, startingLink, description)&lt;br /&gt;
    VALUES ('c76624a8-6f85-43cf-8ea7-0663502c712f', '982229bd-73b8-432e-a1d9-2d9d15d7287d', 'FIDO');&lt;br /&gt;
INSERT INTO MicroServiceChainChoice (pk, choiceAvailableAtLink, chainAvailable)&lt;br /&gt;
    VALUES ('e95b8f27-ea52-4247-bdf0-615273bc5fca', 'f4dea20e-f3fe-4a37-b20f-0e70a7bc960e', 'c76624a8-6f85-43cf-8ea7-0663502c712f');&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Set selection==&lt;br /&gt;
fido 982229bd&lt;br /&gt;
==Run tool==&lt;br /&gt;
ID files 4c4281a1&lt;br /&gt;
&lt;br /&gt;
=Add FPR rules=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Development documentation]]&lt;/div&gt;</summary>
		<author><name>Joseph</name></author>
	</entry>
	<entry>
		<id>https://wiki.archivematica.org/index.php?title=Adding_Format_Identification_Tools&amp;diff=8350</id>
		<title>Adding Format Identification Tools</title>
		<link rel="alternate" type="text/html" href="https://wiki.archivematica.org/index.php?title=Adding_Format_Identification_Tools&amp;diff=8350"/>
		<updated>2013-05-24T19:02:55Z</updated>

		<summary type="html">&lt;p&gt;Joseph: Created page with &amp;quot;=Add tool=  =Add workflow= f4dea ==Set selection== fido 982229bd ==Run tool== ID files 4c4281a1  =Add FPR rules=    Category:Development documentation&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Add tool=&lt;br /&gt;
&lt;br /&gt;
=Add workflow=&lt;br /&gt;
f4dea&lt;br /&gt;
==Set selection==&lt;br /&gt;
fido 982229bd&lt;br /&gt;
==Run tool==&lt;br /&gt;
ID files 4c4281a1&lt;br /&gt;
&lt;br /&gt;
=Add FPR rules=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Development documentation]]&lt;/div&gt;</summary>
		<author><name>Joseph</name></author>
	</entry>
	<entry>
		<id>https://wiki.archivematica.org/index.php?title=Archivematica_0.10_Micro-services&amp;diff=8168</id>
		<title>Archivematica 0.10 Micro-services</title>
		<link rel="alternate" type="text/html" href="https://wiki.archivematica.org/index.php?title=Archivematica_0.10_Micro-services&amp;diff=8168"/>
		<updated>2013-05-01T21:35:52Z</updated>

		<summary type="html">&lt;p&gt;Joseph: /* Transfer */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Main Page]] &amp;gt; [[Documentation]] &amp;gt; [[Technical Architecture]] &amp;gt; [[Micro-services]] &amp;gt; Archivematica 0.10 Micro-services&lt;br /&gt;
&lt;br /&gt;
A micro-service may consist of a number of discrete tasks, or jobs. In the Archivematica 0.9 dashboard, micro-services are always shown, while jobs may be viewed by expanding the micro-service (i.e. by clicking on the grey background behind the micro-service name).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:NormPresAccess-10.png|600px|center|thumb|Arhivematica dashboard showing a micro-service and its jobs]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The table below shows micro-services and jobs in Archivematica 0.10. Note that this is is only a list of micro-services; detailed user instructions are available in the [[User manual 0.10|user manual]].&lt;br /&gt;
&amp;lt;/br&amp;gt;&lt;br /&gt;
=Transfer=&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; width=90%&lt;br /&gt;
|-&lt;br /&gt;
|- style=&amp;quot;background-color:#cccccc;&amp;quot;&lt;br /&gt;
!style=&amp;quot;width:30%&amp;quot;|'''Micro-service'''&lt;br /&gt;
!style=&amp;quot;width:70%&amp;quot;|'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|- &lt;br /&gt;
|  &amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;'''Approve Transfer'''&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
Set file permissions&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
| This is the approval step that moves the transfer into the Archivematica processing pipeline.&lt;br /&gt;
|- &lt;br /&gt;
|  &amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;'''Verify transfer compliance'''&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;Set file permissions&lt;br /&gt;
&amp;lt;br/&amp;gt;Move to processing directory&lt;br /&gt;
&amp;lt;br/&amp;gt;Set transfer type&lt;br /&gt;
&amp;lt;br/&amp;gt;Remove hidden files and directories&lt;br /&gt;
&amp;lt;br/&amp;gt;Attempt restructure for compliance&lt;br /&gt;
&amp;lt;br/&amp;gt;Verify transfer compliance&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
| Moves the transfer to a processing directory based on selected transfer type (standard, zipped bag, unzipped bag, DSPace export or maildir). Verifies that the transfer conforms to the folder structure required for processing in Archivematica and restructures if required. The structure is as follows: ''/logs/'', ''/metadata/'', ''/metadata/submissionDocumentation/'', ''/objects/''. &lt;br /&gt;
|- &lt;br /&gt;
|  &amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;'''Rename with transfer UUID'''&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;Rename with transfer UUID&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
| Directly associates the transfer with its metadata by appending the transfer UUID to the transfer directory name.&lt;br /&gt;
|- &lt;br /&gt;
|  &amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;'''Include default Transfer processingMCP.xml'''&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;Include default Transfer processingMCP.xml&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
| Adds a file named processingMCP.xml to the root of the transfer. This is a configurable xml file to pre-configure processing decisions. It can configure workflow options such as creating transfer backups, quarantining the transfer and selecting a SIP creation option.&lt;br /&gt;
|- &lt;br /&gt;
|  &amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;'''Assign file UUIDs and checksums'''&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;Assign file UUIDs to objects&lt;br /&gt;
&amp;lt;br/&amp;gt;Assign checksums and file sizes to objects&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
| Assigns a unique universal identifier and sha-256 checksum to each file in the ''/objects/'' directory.&lt;br /&gt;
|- &lt;br /&gt;
|  &amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;'''Verify transfer checksums'''&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;Verify metadata directory checksums&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
| Checks any checksum files that were placed in the ''/metadata/'' folder of the transfer prior to moving the transfer into Archivematica.&lt;br /&gt;
|- &lt;br /&gt;
|  &amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;'''Generate METS.xml document'''&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;Generate METS.xml document&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
| Generates a basic METS file with a fileSec and structMap to record the presence of all objects in the ''/objects/'' directory and their locations in any subdirectories. Designed to capture the original order of the transfer in the event the user chooses subsequently to delete, rename or move files or break the transfer into multiple SIPs. A copy of the METS file is automatically added to any SIP generated from the transfer.&lt;br /&gt;
|- &lt;br /&gt;
|  &amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;'''Extract packages'''&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;Extract packages&lt;br /&gt;
&amp;lt;br/&amp;gt;Extract attachments&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
| Extracts objects from any zipped files or other packages. Extracts attachments from maildir transfers.&lt;br /&gt;
|- &lt;br /&gt;
|  &amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;'''Scan for viruses'''&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;Scan for viruses&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
| Uses ClamAV to scan for viruses and other malware. If a virus is found, the transfer is automatically placed in ''/sharedDirectoryStructure/failed/'' and all processing on the transfer is stopped.&lt;br /&gt;
|- &lt;br /&gt;
|  &amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;'''Quarantine'''&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;Workflow decision - send transfer to quarantine&lt;br /&gt;
&amp;lt;br/&amp;gt;Move to quarantine&lt;br /&gt;
&amp;lt;br/&amp;gt;Remove from quarantine&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
| Quarantine's the transfer for a set duration, to allow virus definitions to update, before virus scan.&lt;br /&gt;
|- &lt;br /&gt;
|  &amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;'''Clean up names'''&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;Sanitize object's file and directory names&lt;br /&gt;
&amp;lt;br/&amp;gt;Sanitize Transfer name&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
| Some file systems do not support unicode or other special characters in filenames. This micro-service removes prohibited characters and replaces them with dashes. Original filenames are preserved in the PREMIS metadata.&lt;br /&gt;
|- &lt;br /&gt;
|  &amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;'''Characterize and extract metadata'''&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;Characterize and extract metadata&lt;br /&gt;
&amp;lt;br/&amp;gt;Identify Files ByExtension&lt;br /&gt;
&amp;lt;br/&amp;gt;Load labels from metadata/file_labels.csv&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
| Identifies and validates formats and extracts object metadata using the File Information Tool Set (FITS). Also identifies file extensions, which are used for selecting normalization paths.&lt;br /&gt;
|- &lt;br /&gt;
|  &amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;'''Complete transfer'''&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;Index transfer contents&lt;br /&gt;
&amp;lt;br/&amp;gt;Set file permissions&lt;br /&gt;
&amp;lt;br/&amp;gt;Move to completedTransfers directory&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
| Indexes transfer contents, then marks the transfer as complete.&lt;br /&gt;
|- &lt;br /&gt;
|  &amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;'''Create SIP from Transfer'''&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;Check transfer directory for objects&lt;br /&gt;
&amp;lt;br/&amp;gt;Create SIP(s)&lt;br /&gt;
&amp;lt;br/&amp;gt;Create SIP from transfer objects&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
| This is the approval step that moves the transfer to the SIP packaging micro-services (Ingest).&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Ingest=&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; width=90%&lt;br /&gt;
|-&lt;br /&gt;
|- style=&amp;quot;background-color:#cccccc;&amp;quot;&lt;br /&gt;
!style=&amp;quot;width:30%&amp;quot;|'''Micro-service'''&lt;br /&gt;
!style=&amp;quot;width:70%&amp;quot;|'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|- &lt;br /&gt;
|  &amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;'''Verify SIP compliance'''&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;Set file permissions&lt;br /&gt;
&amp;lt;br/&amp;gt;Move to processing directory&lt;br /&gt;
&amp;lt;br/&amp;gt;Verify SIP compliance&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
| Verifies that the SIP conforms to the folder structure required for processing in Archivematica. The structure is as follows: ''/logs/'', ''/metadata/'', ''/metadata/submissionDocumentation/'', ''/objects/''.&lt;br /&gt;
|- &lt;br /&gt;
|  &amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;'''Rename SIP directory with SIP UUID'''&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;Rename SIP directory with SIP UUID&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
| Directly associates the SIP with its metadata by appending the SIP UUID to the SIP directory name.&lt;br /&gt;
|- &lt;br /&gt;
|  &amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;'''Include default SIP processingMCP.xml'''&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;Include default SIP processingMCP.xml&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
| Copies the processing config file added to the transfer in '''Include default Transfer processingMCP.xml''', above, to the SIP.&lt;br /&gt;
|- &lt;br /&gt;
|  &amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;'''Remove cache files'''&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;Remove cache files&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
| Removes any Thumbs.db files.&lt;br /&gt;
|- &lt;br /&gt;
|  &amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;'''Normalize'''&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;Identify manually normalized files&lt;br /&gt;
&amp;lt;br/&amp;gt;Check for Service directory&lt;br /&gt;
&amp;lt;br/&amp;gt;Check for Access directory&lt;br /&gt;
&amp;lt;br/&amp;gt;Find options to normalize as&lt;br /&gt;
&amp;lt;br/&amp;gt;Create DIP directory&lt;br /&gt;
&amp;lt;br/&amp;gt;Normalize&lt;br /&gt;
&amp;lt;br/&amp;gt;Normalize access&lt;br /&gt;
&amp;lt;br/&amp;gt;Normalize preservation&lt;br /&gt;
&amp;lt;br/&amp;gt;Remove files without linking information (failed normalization artifacts etc.)&lt;br /&gt;
&amp;lt;br/&amp;gt;Create thumbnails directory&lt;br /&gt;
&amp;lt;br/&amp;gt;Normalize thumbnails&lt;br /&gt;
&amp;lt;br/&amp;gt;Verify checksums generated on ingest&lt;br /&gt;
&amp;lt;br/&amp;gt;Approve normalization&lt;br /&gt;
&amp;lt;br/&amp;gt;Check for manual normalized files&lt;br /&gt;
&amp;lt;br/&amp;gt;Move access files to DIP&lt;br /&gt;
&amp;lt;br/&amp;gt;Assign UUIDs to manually normalized preservation files&lt;br /&gt;
&amp;lt;br/&amp;gt;Assign checksums to manually normalized preservation files&lt;br /&gt;
&amp;lt;br/&amp;gt;Run FITS on manually normalized preservation files&lt;br /&gt;
&amp;lt;br/&amp;gt;Relate manually normalized preservation files to the original files&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
| Determines which normalization options are available for the SIP and presents them to the user as choices. Normalizes (i.e. generates preservation and/or access copies) based on selection. Thumbnail files are also generated during this micro-service.&lt;br /&gt;
|- &lt;br /&gt;
|  &amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;'''Process submission documentation'''&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;Check for submission documentation&lt;br /&gt;
&amp;lt;br/&amp;gt;Copy transfer submission documentation&lt;br /&gt;
&amp;lt;br/&amp;gt;Move to processing directory&lt;br /&gt;
&amp;lt;br/&amp;gt;Set file permissions&lt;br /&gt;
&amp;lt;br/&amp;gt;Assign file UUIDs to submission documentation&lt;br /&gt;
&amp;lt;br/&amp;gt;Assign checksums and file sizes to submissionDocumentation&lt;br /&gt;
&amp;lt;br/&amp;gt;Extract packages in submission documentation&lt;br /&gt;
&amp;lt;br/&amp;gt;Sanitize file and directory names in submission documentation&lt;br /&gt;
&amp;lt;br/&amp;gt;Scan for viruses in submission documentation&lt;br /&gt;
&amp;lt;br/&amp;gt;Characterize and extract metadata on submission documentation&lt;br /&gt;
&amp;lt;br/&amp;gt;Identify Files ByExtension&lt;br /&gt;
&amp;lt;br/&amp;gt;Normalize submission documentation to preservation format&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
| Processes any submission documentation included in the SIP and adds it to the ''/objects/'' directory.&lt;br /&gt;
|- &lt;br /&gt;
|  &amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;'''Prepare DIP'''&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;Copy thumbnails to DIP directory&lt;br /&gt;
&amp;lt;br/&amp;gt;Copy METS to DIP directory&lt;br /&gt;
&amp;lt;br/&amp;gt;Set file permissions&lt;br /&gt;
&amp;lt;br/&amp;gt;Generate DIP &lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
| Creates a DIP containing access copies of the objects, thumbnails and a copy of the METS file.&lt;br /&gt;
|- &lt;br /&gt;
|  &amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;'''Upload DIP'''&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;Upload DIP&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
| Allows the user to choose to upload the DIP to either ICA-AtoM or CONTENTdm.&lt;br /&gt;
|- &lt;br /&gt;
|  &amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;'''Upload DIP  to ICA-AtoM'''&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;Upload DIP   &lt;br /&gt;
&amp;lt;br/&amp;gt;Move to the uploadedDIPs directory&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
| The user uploads the DIP to a selected description in ICA-AtoM.&lt;br /&gt;
|- &lt;br /&gt;
|  &amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;'''Upload DIP  to CONTENTdm'''&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;Restructure DIP for CONTENTdm upload&lt;br /&gt;
&amp;lt;br/&amp;gt;Select upload type (Project Client or direct upload)&lt;br /&gt;
&amp;lt;br/&amp;gt;Select target CONTENTdm server&lt;br /&gt;
&amp;lt;br/&amp;gt;Get list of collections on server&lt;br /&gt;
&amp;lt;br/&amp;gt;Select destination collection&lt;br /&gt;
&amp;lt;br/&amp;gt;Upload DIP to contentDM&lt;br /&gt;
&amp;lt;br/&amp;gt;Move to the uploadedDIPs directory&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
| The user uploads the DIP to a selected description in CONTENTdm.&lt;br /&gt;
|- &lt;br /&gt;
|  &amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;'''Prepare AIP'''&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;Copy transfers metadata and logs&lt;br /&gt;
&amp;lt;br/&amp;gt;Remove files without linking information (failed normalization artifacts etc.)&lt;br /&gt;
&amp;lt;br/&amp;gt;Verify checksums generated on ingest&lt;br /&gt;
&amp;lt;br/&amp;gt;Generate METS.xml document&lt;br /&gt;
&amp;lt;br/&amp;gt;Index AIP contents&lt;br /&gt;
&amp;lt;br/&amp;gt;Prepare AIP  &lt;br /&gt;
&amp;lt;br/&amp;gt;Select compression algorithm&lt;br /&gt;
&amp;lt;br/&amp;gt;Select compression level&lt;br /&gt;
&amp;lt;br/&amp;gt;Compress AIP &lt;br /&gt;
&amp;lt;br/&amp;gt;Set bag file permissions&lt;br /&gt;
&amp;lt;br/&amp;gt;Removed bagged files&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
| Creates an AIP in Bagit format. Indexes the AIP, then losslessly compresses it.&lt;br /&gt;
|- &lt;br /&gt;
|  &amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;'''Store AIP'''&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;Move to the store AIP approval directory&lt;br /&gt;
&amp;lt;br/&amp;gt;Store AIP    &lt;br /&gt;
&amp;lt;br/&amp;gt;Store AIP location&lt;br /&gt;
&amp;lt;br/&amp;gt;Store the AIP&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
| Moves the AIP to ''/sharedDirectoryStructure/www/AIPsStore/'' or another specified directory. Once the AIP has been stored, a copy of it is extracted from storage to a local temp directory, where it is subjected to standard BagIt checks: verifyvalid, checkpayloadoxum, verifycomplete, verifypayloadmanifests, verifytagmanifests.&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Joseph</name></author>
	</entry>
	<entry>
		<id>https://wiki.archivematica.org/index.php?title=Archivematica_0.10_Micro-services&amp;diff=8161</id>
		<title>Archivematica 0.10 Micro-services</title>
		<link rel="alternate" type="text/html" href="https://wiki.archivematica.org/index.php?title=Archivematica_0.10_Micro-services&amp;diff=8161"/>
		<updated>2013-05-01T21:21:53Z</updated>

		<summary type="html">&lt;p&gt;Joseph: /* Ingest */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Main Page]] &amp;gt; [[Documentation]] &amp;gt; [[Technical Architecture]] &amp;gt; [[Micro-services]] &amp;gt; Archivematica 0.10 Micro-services&lt;br /&gt;
&lt;br /&gt;
A micro-service may consist of a number of discrete tasks, or jobs. In the Archivematica 0.9 dashboard, micro-services are always shown, while jobs may be viewed by expanding the micro-service (i.e. by clicking on the grey background behind the micro-service name).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:NormPresAccess-10.png|600px|center|thumb|Arhivematica dashboard showing a micro-service and its jobs]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The table below shows micro-services and jobs in Archivematica 0.10. Note that this is is only a list of micro-services; detailed user instructions are available in the [[User manual 0.10|user manual]].&lt;br /&gt;
&amp;lt;/br&amp;gt;&lt;br /&gt;
=Transfer=&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; width=90%&lt;br /&gt;
|-&lt;br /&gt;
|- style=&amp;quot;background-color:#cccccc;&amp;quot;&lt;br /&gt;
!style=&amp;quot;width:30%&amp;quot;|'''Micro-service'''&lt;br /&gt;
!style=&amp;quot;width:70%&amp;quot;|'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|- &lt;br /&gt;
|  &amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;'''Approve Transfer'''&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
Set file permissions&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
| This is the approval step that moves the transfer into the Archivematica processing pipeline.&lt;br /&gt;
|- &lt;br /&gt;
|  &amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;'''Verify transfer compliance'''&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;Set file permissions&lt;br /&gt;
&amp;lt;br/&amp;gt;Move to processing directory&lt;br /&gt;
&amp;lt;br/&amp;gt;Set transfer type&lt;br /&gt;
&amp;lt;br/&amp;gt;Remove hidden files and directories&lt;br /&gt;
&amp;lt;br/&amp;gt;Attempt restructure for compliance&lt;br /&gt;
&amp;lt;br/&amp;gt;Verify transfer compliance&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
| Moves the transfer to a processing directory based on selected transfer type (standard, zipped bag, unzipped bag, DSPace export or maildir). Verifies that the transfer conforms to the folder structure required for processing in Archivematica and restructures if required. The structure is as follows: ''/logs/'', ''/metadata/'', ''/metadata/submissionDocumentation/'', ''/objects/''. &lt;br /&gt;
|- &lt;br /&gt;
|  &amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;'''Rename with transfer UUID'''&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;Rename with transfer UUID&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
| Directly associates the transfer with its metadata by appending the transfer UUID to the transfer directory name.&lt;br /&gt;
|- &lt;br /&gt;
|  &amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;'''Include default Transfer processingMCP.xml'''&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;Include default Transfer processingMCP.xml&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
| Adds a file named processingMCP.xml to the root of the transfer. This is a configurable xml file to pre-configure processing decisions. It can configure workflow options such as creating transfer backups, quarantining the transfer and selecting a SIP creation option.&lt;br /&gt;
|- &lt;br /&gt;
|  &amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;'''Assign file UUIDs and checksums'''&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;Assign file UUIDs to objects&lt;br /&gt;
&amp;lt;br/&amp;gt;Assign checksums and file sizes to objects&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
| Assigns a unique universal identifier and sha-256 checksum to each file in the ''/objects/'' directory.&lt;br /&gt;
|- &lt;br /&gt;
|  &amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;'''Verify transfer checksums'''&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;Verify metadata directory checksums&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
| Checks any checksum files that were placed in the ''/metadata/'' folder of the transfer prior to moving the transfer into Archivematica.&lt;br /&gt;
|- &lt;br /&gt;
|  &amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;'''Generate METS.xml document'''&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;Generate METS.xml document&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
| Generates a basic METS file with a fileSec and structMap to record the presence of all objects in the ''/objects/'' directory and their locations in any subdirectories. Designed to capture the original order of the transfer in the event the user chooses subsequently to delete, rename or move files or break the transfer into multiple SIPs. A copy of the METS file is automatically added to any SIP generated from the transfer.&lt;br /&gt;
|- &lt;br /&gt;
|  &amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;'''Extract packages'''&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;Extract packages&lt;br /&gt;
&amp;lt;br/&amp;gt;Extract attachments&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
| Extracts objects from any zipped files or other packages. Extracts attachments from maildir transfers.&lt;br /&gt;
|- &lt;br /&gt;
|  &amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;'''Scan for viruses'''&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;Scan for viruses&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
| Uses ClamAV to scan for viruses and other malware. If a virus is found, the transfer is automatically placed in ''/sharedDirectoryStructure/failed/'' and all processing on the transfer is stopped.&lt;br /&gt;
|- &lt;br /&gt;
|  &amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;'''Clean up names'''&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;Sanitize object's file and directory names&lt;br /&gt;
&amp;lt;br/&amp;gt;Sanitize Transfer name&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
| Some file systems do not support unicode or other special characters in filenames. This micro-service removes prohibited characters and replaces them with dashes. Original filenames are preserved in the PREMIS metadata.&lt;br /&gt;
|- &lt;br /&gt;
|  &amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;'''Characterize and extract metadata'''&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;Characterize and extract metadata&lt;br /&gt;
&amp;lt;br/&amp;gt;Identify Files ByExtension&lt;br /&gt;
&amp;lt;br/&amp;gt;Load labels from metadata/file_labels.csv&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
| Identifies and validates formats and extracts object metadata using the File Information Tool Set (FITS). Also identifies file extensions, which are used for selecting normalization paths.&lt;br /&gt;
|- &lt;br /&gt;
|  &amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;'''Complete transfer'''&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;Index transfer contents&lt;br /&gt;
&amp;lt;br/&amp;gt;Set file permissions&lt;br /&gt;
&amp;lt;br/&amp;gt;Move to completedTransfers directory&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
| Indexes transfer contents, then marks the transfer as complete.&lt;br /&gt;
|- &lt;br /&gt;
|  &amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;'''Create SIP from Transfer'''&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;Check transfer directory for objects&lt;br /&gt;
&amp;lt;br/&amp;gt;Create SIP(s)&lt;br /&gt;
&amp;lt;br/&amp;gt;Create SIP from transfer objects&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
| This is the approval step that moves the transfer to the SIP packaging micro-services (Ingest).&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Ingest=&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;10&amp;quot; cellspacing=&amp;quot;0&amp;quot; width=90%&lt;br /&gt;
|-&lt;br /&gt;
|- style=&amp;quot;background-color:#cccccc;&amp;quot;&lt;br /&gt;
!style=&amp;quot;width:30%&amp;quot;|'''Micro-service'''&lt;br /&gt;
!style=&amp;quot;width:70%&amp;quot;|'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|- &lt;br /&gt;
|  &amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;'''Verify SIP compliance'''&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;Set file permissions&lt;br /&gt;
&amp;lt;br/&amp;gt;Move to processing directory&lt;br /&gt;
&amp;lt;br/&amp;gt;Verify SIP compliance&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
| Verifies that the SIP conforms to the folder structure required for processing in Archivematica. The structure is as follows: ''/logs/'', ''/metadata/'', ''/metadata/submissionDocumentation/'', ''/objects/''.&lt;br /&gt;
|- &lt;br /&gt;
|  &amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;'''Rename SIP directory with SIP UUID'''&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;Rename SIP directory with SIP UUID&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
| Directly associates the SIP with its metadata by appending the SIP UUID to the SIP directory name.&lt;br /&gt;
|- &lt;br /&gt;
|  &amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;'''Include default SIP processingMCP.xml'''&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;Include default SIP processingMCP.xml&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
| Copies the processing config file added to the transfer in '''Include default Transfer processingMCP.xml''', above, to the SIP.&lt;br /&gt;
|- &lt;br /&gt;
|  &amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;'''Remove cache files'''&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;Remove cache files&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
| Removes any Thumbs.db files.&lt;br /&gt;
|- &lt;br /&gt;
|  &amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;'''Normalize'''&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;Identify manually normalized files&lt;br /&gt;
&amp;lt;br/&amp;gt;Check for Service directory&lt;br /&gt;
&amp;lt;br/&amp;gt;Check for Access directory&lt;br /&gt;
&amp;lt;br/&amp;gt;Find options to normalize as&lt;br /&gt;
&amp;lt;br/&amp;gt;Create DIP directory&lt;br /&gt;
&amp;lt;br/&amp;gt;Normalize&lt;br /&gt;
&amp;lt;br/&amp;gt;Normalize access&lt;br /&gt;
&amp;lt;br/&amp;gt;Normalize preservation&lt;br /&gt;
&amp;lt;br/&amp;gt;Remove files without linking information (failed normalization artifacts etc.)&lt;br /&gt;
&amp;lt;br/&amp;gt;Create thumbnails directory&lt;br /&gt;
&amp;lt;br/&amp;gt;Normalize thumbnails&lt;br /&gt;
&amp;lt;br/&amp;gt;Verify checksums generated on ingest&lt;br /&gt;
&amp;lt;br/&amp;gt;Approve normalization&lt;br /&gt;
&amp;lt;br/&amp;gt;Check for manual normalized files&lt;br /&gt;
&amp;lt;br/&amp;gt;Move access files to DIP&lt;br /&gt;
&amp;lt;br/&amp;gt;Assign UUIDs to manually normalized preservation files&lt;br /&gt;
&amp;lt;br/&amp;gt;Assign checksums to manually normalized preservation files&lt;br /&gt;
&amp;lt;br/&amp;gt;Run FITS on manually normalized preservation files&lt;br /&gt;
&amp;lt;br/&amp;gt;Relate manually normalized preservation files to the original files&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
| Determines which normalization options are available for the SIP and presents them to the user as choices. Normalizes (i.e. generates preservation and/or access copies) based on selection. Thumbnail files are also generated during this micro-service.&lt;br /&gt;
|- &lt;br /&gt;
|  &amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;'''Process submission documentation'''&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;Check for submission documentation&lt;br /&gt;
&amp;lt;br/&amp;gt;Copy transfer submission documentation&lt;br /&gt;
&amp;lt;br/&amp;gt;Move to processing directory&lt;br /&gt;
&amp;lt;br/&amp;gt;Set file permissions&lt;br /&gt;
&amp;lt;br/&amp;gt;Assign file UUIDs to submission documentation&lt;br /&gt;
&amp;lt;br/&amp;gt;Assign checksums and file sizes to submissionDocumentation&lt;br /&gt;
&amp;lt;br/&amp;gt;Extract packages in submission documentation&lt;br /&gt;
&amp;lt;br/&amp;gt;Sanitize file and directory names in submission documentation&lt;br /&gt;
&amp;lt;br/&amp;gt;Scan for viruses in submission documentation&lt;br /&gt;
&amp;lt;br/&amp;gt;Characterize and extract metadata on submission documentation&lt;br /&gt;
&amp;lt;br/&amp;gt;Identify Files ByExtension&lt;br /&gt;
&amp;lt;br/&amp;gt;Normalize submission documentation to preservation format&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
| Processes any submission documentation included in the SIP and adds it to the ''/objects/'' directory.&lt;br /&gt;
|- &lt;br /&gt;
|  &amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;'''Prepare DIP'''&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;Copy thumbnails to DIP directory&lt;br /&gt;
&amp;lt;br/&amp;gt;Copy METS to DIP directory&lt;br /&gt;
&amp;lt;br/&amp;gt;Set file permissions&lt;br /&gt;
&amp;lt;br/&amp;gt;Generate DIP &lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
| Creates a DIP containing access copies of the objects, thumbnails and a copy of the METS file.&lt;br /&gt;
|- &lt;br /&gt;
|  &amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;'''Upload DIP'''&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;Upload DIP&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
| Allows the user to choose to upload the DIP to either ICA-AtoM or CONTENTdm.&lt;br /&gt;
|- &lt;br /&gt;
|  &amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;'''Upload DIP  to ICA-AtoM'''&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;Upload DIP   &lt;br /&gt;
&amp;lt;br/&amp;gt;Move to the uploadedDIPs directory&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
| The user uploads the DIP to a selected description in ICA-AtoM.&lt;br /&gt;
|- &lt;br /&gt;
|  &amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;'''Upload DIP  to CONTENTdm'''&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;Restructure DIP for CONTENTdm upload&lt;br /&gt;
&amp;lt;br/&amp;gt;Select upload type (Project Client or direct upload)&lt;br /&gt;
&amp;lt;br/&amp;gt;Select target CONTENTdm server&lt;br /&gt;
&amp;lt;br/&amp;gt;Get list of collections on server&lt;br /&gt;
&amp;lt;br/&amp;gt;Select destination collection&lt;br /&gt;
&amp;lt;br/&amp;gt;Upload DIP to contentDM&lt;br /&gt;
&amp;lt;br/&amp;gt;Move to the uploadedDIPs directory&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
| The user uploads the DIP to a selected description in CONTENTdm.&lt;br /&gt;
|- &lt;br /&gt;
|  &amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;'''Prepare AIP'''&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;Copy transfers metadata and logs&lt;br /&gt;
&amp;lt;br/&amp;gt;Remove files without linking information (failed normalization artifacts etc.)&lt;br /&gt;
&amp;lt;br/&amp;gt;Verify checksums generated on ingest&lt;br /&gt;
&amp;lt;br/&amp;gt;Generate METS.xml document&lt;br /&gt;
&amp;lt;br/&amp;gt;Index AIP contents&lt;br /&gt;
&amp;lt;br/&amp;gt;Prepare AIP  &lt;br /&gt;
&amp;lt;br/&amp;gt;Select compression algorithm&lt;br /&gt;
&amp;lt;br/&amp;gt;Select compression level&lt;br /&gt;
&amp;lt;br/&amp;gt;Compress AIP &lt;br /&gt;
&amp;lt;br/&amp;gt;Set bag file permissions&lt;br /&gt;
&amp;lt;br/&amp;gt;Removed bagged files&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
| Creates an AIP in Bagit format. Indexes the AIP, then losslessly compresses it.&lt;br /&gt;
|- &lt;br /&gt;
|  &amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;'''Store AIP'''&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;Move to the store AIP approval directory&lt;br /&gt;
&amp;lt;br/&amp;gt;Store AIP    &lt;br /&gt;
&amp;lt;br/&amp;gt;Store AIP location&lt;br /&gt;
&amp;lt;br/&amp;gt;Store the AIP&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
| Moves the AIP to ''/sharedDirectoryStructure/www/AIPsStore/'' or another specified directory. Once the AIP has been stored, a copy of it is extracted from storage to a local temp directory, where it is subjected to standard BagIt checks: verifyvalid, checkpayloadoxum, verifycomplete, verifypayloadmanifests, verifytagmanifests.&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Joseph</name></author>
	</entry>
	<entry>
		<id>https://wiki.archivematica.org/index.php?title=MCP_Basic_Configuration&amp;diff=8075</id>
		<title>MCP Basic Configuration</title>
		<link rel="alternate" type="text/html" href="https://wiki.archivematica.org/index.php?title=MCP_Basic_Configuration&amp;diff=8075"/>
		<updated>2013-04-30T22:09:28Z</updated>

		<summary type="html">&lt;p&gt;Joseph: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Main Page]] &amp;gt; [[Development]] &amp;gt; [[:Category:Development documentation|Development documentation]] &amp;gt; [[MCP]] &amp;gt; Editing MCP Basic Configuration&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;status&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
Design&lt;br /&gt;
&amp;lt;div class=&amp;quot;description&amp;quot;&amp;gt;&lt;br /&gt;
This page proposes a new feature and reviews design options&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;active&amp;quot;&amp;gt;&lt;br /&gt;
Development&lt;br /&gt;
&amp;lt;div class=&amp;quot;description&amp;quot;&amp;gt;&lt;br /&gt;
This page describes a feature that's in development&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div&amp;gt;&lt;br /&gt;
Documentation&lt;br /&gt;
&amp;lt;div class=&amp;quot;description&amp;quot;&amp;gt;&lt;br /&gt;
This page documents an implemented feature&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Server==&lt;br /&gt;
===Configurations===&lt;br /&gt;
====Server ConfigFile====&lt;br /&gt;
/etc/archivematica/MCPServer/ServerConfig.conf&lt;br /&gt;
&lt;br /&gt;
====Workflow Configurations====&lt;br /&gt;
Please see [[Creating_Custom_Workflows]]&lt;br /&gt;
&lt;br /&gt;
===MCP Server Section===&lt;br /&gt;
&lt;br /&gt;
====File Names====&lt;br /&gt;
These shouldn't be changed.&lt;br /&gt;
#File Names&lt;br /&gt;
checksumsNoExtention=&amp;quot;checksum&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Gearman Server====&lt;br /&gt;
MCPArchivematicaServer  =  localhost:4730&lt;br /&gt;
GearmanServerWorker = localhost:4730&lt;br /&gt;
&lt;br /&gt;
Note: to set the gearman process to listen on more interfaces than localhost, set it in '/etc/default/gearman-job-server'. I think you can set this to 1.1.1.1 for all interfaces.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Other====&lt;br /&gt;
watchDirectoryPath: Directory containing the directories watched by the MCP.&lt;br /&gt;
 watchDirectoryPath=&amp;quot;/var/archivematica/sharedDirectory/watchedDirectories/&amp;quot;&lt;br /&gt;
&lt;br /&gt;
sharedDirectory: directory shared on the network with MCP clients. Containing the processing directory.&lt;br /&gt;
 sharedDirectory=&amp;quot;/var/archivematica/sharedDirectory/&amp;quot;&lt;br /&gt;
&lt;br /&gt;
processingDirectory: Directory SIPs reside in while they are actively being processed.&lt;br /&gt;
 processingDirectory=&amp;quot;${sharedDirectory}.currentlyProcessing/&amp;quot;&lt;br /&gt;
&lt;br /&gt;
AIPsStore: Directory to store the AIPs when finished processing. This can be a mounted directory on an external storage device.&lt;br /&gt;
 AIPsStore=&amp;quot;${sharedDirectory}AIPsStore/&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The database access settings for the shared database:&lt;br /&gt;
 /etc/archivematica/archivematicaCommon/dbsettings&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[client]&lt;br /&gt;
user=demo&lt;br /&gt;
password=&amp;quot;demo&amp;quot;&lt;br /&gt;
host=localhost&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Client==&lt;br /&gt;
===Supported Modules===&lt;br /&gt;
/etc/archivematica/archivematicaClient/clientConfig.conf&lt;br /&gt;
&amp;lt;br&amp;gt;[http://code.google.com/p/archivematica/source/browse/trunk/src/MCPClient/etc/archivematicaClientModules Supported modules]&lt;br /&gt;
&amp;lt;br/&amp;gt;/etc/archivematica/MCPClient/archivematicaClientModules&lt;br /&gt;
&amp;lt;br/&amp;gt;It's highly recommended only the MCP server host machine client support the upload and store tasks.&lt;br /&gt;
&amp;lt;br/&amp;gt;Change the in theLoadSupportedCommandsSpecial in clientConfig.conf on other machines&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LoadSupportedCommandsSpecial = False&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Client ConfigFile===&lt;br /&gt;
/etc/archivematica/MCPClient/clientConfig.conf&lt;br /&gt;
Server to connect to. Specify hostname/IP and port.&lt;br /&gt;
 MCPArchivematicaServer = localhost:4730&lt;br /&gt;
Where the shared directory on the MCP Server is mounted:&lt;br /&gt;
 sharedDirectoryMounted=&amp;quot;/var/archivematica/sharedDirectory/&amp;quot;&lt;br /&gt;
The maximum number of tasks the MCP is allowed to run on this host.&lt;br /&gt;
* numberOfTasks is no longer used. The client will detect the number of cores on the machine, and use that number of threads. This can be overridden by changing the number to something other than 0. &lt;br /&gt;
&amp;lt;pre&amp;gt;numberOfTasks=0&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;The location of the client modules. These specify which modules this host supports.&lt;br /&gt;
 archivematicaClientModules=&amp;quot;/etc/archivematica/MCPClient/archivematicaClientModules&amp;quot;&lt;br /&gt;
The location of the client scripts.&lt;br /&gt;
 clientScriptsDirectory=&amp;quot;/usr/lib/archivematica/MCPClient/clientScripts/&amp;quot;&lt;br /&gt;
The database access settings for the shared database:&lt;br /&gt;
 /etc/archivematica/archivematicaCommon/dbsettings&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[client]&lt;br /&gt;
user=demo&lt;br /&gt;
password=&amp;quot;demo&amp;quot;&lt;br /&gt;
host=localhost&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The supportedCommandsSpecial listed in the archivematicaClientModules should only be run on one machine. This is a mechanism to limit/control processing to a single instance. This should be enabled on one, and only one client in a distributed processing system.&lt;br /&gt;
&amp;lt;pre&amp;gt;LoadSupportedCommandsSpecial = True&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Development documentation]]&lt;/div&gt;</summary>
		<author><name>Joseph</name></author>
	</entry>
	<entry>
		<id>https://wiki.archivematica.org/index.php?title=Administrator_manual_0.10&amp;diff=8042</id>
		<title>Administrator manual 0.10</title>
		<link rel="alternate" type="text/html" href="https://wiki.archivematica.org/index.php?title=Administrator_manual_0.10&amp;diff=8042"/>
		<updated>2013-04-30T20:15:27Z</updated>

		<summary type="html">&lt;p&gt;Joseph: /* Processing configuration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Main Page]] &amp;gt; [[Documentation]] &amp;gt; Administrator Manual&lt;br /&gt;
&lt;br /&gt;
This manual covers administrator-specific instructions for Archivematica. It will also provide help for using forms in the Administration tab of the Archivematica dashboard and the administrator capabilities in the Format Policy Registry (FPR), which you will find in the Preservation planning tab of the dashboard.&lt;br /&gt;
&lt;br /&gt;
For end-user instructions, please see the [[User_manual_0.10|user manual]].&lt;br /&gt;
&lt;br /&gt;
= Installation =&lt;br /&gt;
* [[Installation|Instructions for installing the latest build of Archivematica on your server]]&lt;br /&gt;
&lt;br /&gt;
= Upgrading =&lt;br /&gt;
* Currently, Archivematica does not support upgrading from one version to the next. A re-install is required.&lt;br /&gt;
&lt;br /&gt;
= Dashboard administration tab =&lt;br /&gt;
&lt;br /&gt;
The Archivematica administration pages, under the Administration tab of the dashboard, allows you to configure application components and manage users.&lt;br /&gt;
&lt;br /&gt;
== Transfer source directories ==&lt;br /&gt;
&lt;br /&gt;
Unlike previous versions, Archivematica v0.9 allows you to start transfers using the web interface rather than the operating system's file browser. Source files for transfers, however, can't be uploaded using the web interface: they must exist on volumes accessible to the Archivematica server.&lt;br /&gt;
&lt;br /&gt;
When starting a transfer you're required to select one or more directories of files to add to the transfer. To speed up the process of selecting directories, Archivematica allows you to specify &amp;quot;source directories&amp;quot;. A source directory is a directory in which files and directories likely to be added to a transfer are present.&lt;br /&gt;
&lt;br /&gt;
To add a source directory, while on the transfer source directories page of the Administration tab in the dashboard, simply click the folder icon to expand the starting directory and navigate the interface until you find a directory you'd like to select as a source directory. Once you've found a suitable source directory, click the &amp;quot;Add&amp;quot; button to the right of the directory and it will be added.&lt;br /&gt;
&lt;br /&gt;
To remove a source directory, simply click the &amp;quot;Remove&amp;quot; button to the right of it in the source directory path list.&lt;br /&gt;
&lt;br /&gt;
== AIP storage directories ==&lt;br /&gt;
&lt;br /&gt;
== AtoM DIP upload ==&lt;br /&gt;
&lt;br /&gt;
Archivematica can upload DIPs directly to an [https://www.ica-atom.org/ AtoM] website so the contents can be accessed online. The AtoM DIP upload configuration page is where you specify the details of the AtoM installation you'd like the DIPs uploaded to (and, if using Rsync to transfer the DIP files, Rsync transfer details).&lt;br /&gt;
&lt;br /&gt;
The parameters that you'll most likely want to set are &amp;lt;code&amp;gt;url&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;email&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;password&amp;lt;/code&amp;gt;. These parameters, respectively, specify the destination AtoM website's URL, the email address used to log in to the website, and the password used to log in to the website.&lt;br /&gt;
&lt;br /&gt;
AtoM DIP upload can also use [http://en.wikipedia.org/wiki/Rsync Rsync] as a transfer mechanism. Rsync is an open source utility for efficiently transferring files. The &amp;lt;code&amp;gt;rsync-target&amp;lt;/code&amp;gt; parameter is used to specify an Rsync-style target host/directory pairing, &amp;quot;foobar.com:~/dips/&amp;quot; for example. The &amp;lt;code&amp;gt;rsync-command&amp;lt;/code&amp;gt; parameter is used to specify rsync connection options, &amp;quot;ssh -p 22222 -l user&amp;quot; for example. If you are using the rsync option, please see AtoM server configuration below.&lt;br /&gt;
&lt;br /&gt;
To set any parameters for AtoM DIP upload change the values, preserving the existing format they're specified in, in the &amp;quot;Command arguments&amp;quot; field then click &amp;quot;Save&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Note that in AtoM, the sword plugin (Admin --&amp;gt; qtSwordPlugin) and job scheduling (Admin --&amp;gt; Settings --&amp;gt; Job scheduling) must both be enabled in order for AtoM to receive uploaded DIPs.&lt;br /&gt;
&lt;br /&gt;
=== AtoM server configuration ===&lt;br /&gt;
&lt;br /&gt;
This server configuration step is necessary to allow Archivematica to log in to the AtoM server without passwords, and only when the user is deploying the rsync option described above in the AtoM DIP upload section. &lt;br /&gt;
&lt;br /&gt;
To enable sending DIPs from Archivematica to the AtoM server:&lt;br /&gt;
&lt;br /&gt;
Generate SSH keys for the Archivematica user. Leave the passphrase field blank.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 $ sudo -i -u archivematica&lt;br /&gt;
 $ cd ~&lt;br /&gt;
 $ ssh-keygen&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy the contents of &amp;lt;code&amp;gt;/var/lib/archivematica/.ssh/id_rsa.pub&amp;lt;/code&amp;gt; somewhere handy, you will need it later.&lt;br /&gt;
&lt;br /&gt;
Now, it's time to configure the AtoM server so Archivematica can send the DIPs using SSH/rsync. For that purpose, you will create a user called &amp;lt;code&amp;gt;archivematica&amp;lt;/code&amp;gt; and we are going to assign that user a restricted shell with access only to rsync:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 $ sudo apt-get install rssh&lt;br /&gt;
 $ sudo useradd -d /home/archivematica -m -s /usr/bin/rssh archivematica&lt;br /&gt;
 $ sudo passswd -l archivematica&lt;br /&gt;
 $ sudo vim /etc/rssh.conf // Make sure that allowrsync is uncommented!&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add the SSH key that we generated before:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 $ sudo mkdir /home/archivematica/.ssh&lt;br /&gt;
 $ chmod 700 /home/archivematica/.ssh/&lt;br /&gt;
 $ sudo vim /home/archivematica/.ssh/authorized_keys // Paste here the contents of id_dsa.pub&lt;br /&gt;
 $ chown -R archivematica:archivematica /home/archivematica&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In Archivematica, make sure that you update the &amp;lt;code&amp;gt;--rsync-target&amp;lt;/code&amp;gt; accordingly.&amp;lt;br /&amp;gt;&lt;br /&gt;
These are the parameters that we are passing to the upload-qubit microservice.&amp;lt;br /&amp;gt;&lt;br /&gt;
Go to the Administration &amp;gt; Upload DIP page in the dashboard.&lt;br /&gt;
&lt;br /&gt;
Generic parameters:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--url=&amp;quot;http://atom-hostname/index.php&amp;quot; \&lt;br /&gt;
--email=&amp;quot;demo@example.com&amp;quot; \&lt;br /&gt;
--password=&amp;quot;demo&amp;quot; \&lt;br /&gt;
--uuid=&amp;quot;%SIPUUID%&amp;quot; \&lt;br /&gt;
--rsync-target=&amp;quot;archivematica@atom-hostname:/tmp&amp;quot; \&lt;br /&gt;
--debug&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CONTENTdm DIP upload ==&lt;br /&gt;
&lt;br /&gt;
Archivematica can also upload DIPs to [http://www.contentdm.org/ CONTENTdm] websites. Multiple CONTENTdm destinations may be configured.&lt;br /&gt;
For each possible CONTENTdm DIP upload destination, you'll specify a brief description and configuration parameters appropriate for the destination. Possible paramters include &amp;lt;code&amp;gt;%ContentdmServer%&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;%ContentdmUser%&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;%ContentdmGroup%&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
When changing parameters for a CONTENTdm DIP upload destination simply change the values, preserving the existing format they're specified in. To add an upload destination fill in the form at the bottom of the page with the appropriate values. When you've completed your changes click the &amp;quot;Save&amp;quot; button.&lt;br /&gt;
&lt;br /&gt;
== Processing configuration ==&lt;br /&gt;
&lt;br /&gt;
When processing a SIP or transfer, you may want to automate some of the workflow choices. Choices can be preconfigured by putting a 'processingMCP.xml' file into the root directory of a SIP/transfer. The processing configuration administration page allows you to configure the default 'processingMCP.xml' that's added to a SIP or Transfer if it doesn't alreay contain one. &lt;br /&gt;
&lt;br /&gt;
If a SIP or transfer is submitted with a 'processingMCP.xml' file, processing decisions will be made with the included file.&lt;br /&gt;
&lt;br /&gt;
The XML file format is:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;processingMCP&amp;gt;&lt;br /&gt;
  &amp;lt;preconfiguredChoices&amp;gt;&lt;br /&gt;
    &amp;lt;preconfiguredChoice&amp;gt;&lt;br /&gt;
      &amp;lt;appliesTo&amp;gt;Workflow decision - create transfer backup&amp;lt;/appliesTo&amp;gt;&lt;br /&gt;
      &amp;lt;goToChain&amp;gt;Do not backup transfer&amp;lt;/goToChain&amp;gt;&lt;br /&gt;
    &amp;lt;/preconfiguredChoice&amp;gt;&lt;br /&gt;
    &amp;lt;preconfiguredChoice&amp;gt;&lt;br /&gt;
      &amp;lt;appliesTo&amp;gt;Workflow decision - send transfer to quarantine&amp;lt;/appliesTo&amp;gt;&lt;br /&gt;
      &amp;lt;goToChain&amp;gt;Skip quarantine&amp;lt;/goToChain&amp;gt;&lt;br /&gt;
    &amp;lt;/preconfiguredChoice&amp;gt;&lt;br /&gt;
    &amp;lt;preconfiguredChoice&amp;gt;&lt;br /&gt;
      &amp;lt;appliesTo&amp;gt;Remove from quarantine&amp;lt;/appliesTo&amp;gt;&lt;br /&gt;
      &amp;lt;goToChain&amp;gt;Unquarantine&amp;lt;/goToChain&amp;gt;&lt;br /&gt;
      &amp;lt;delay unitCtime=&amp;quot;yes&amp;quot;&amp;gt;50&amp;lt;/delay&amp;gt;&lt;br /&gt;
    &amp;lt;/preconfiguredChoice&amp;gt;&lt;br /&gt;
  &amp;lt;/preconfiguredChoices&amp;gt;&lt;br /&gt;
&amp;lt;/processingMCP&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where appliesTo is the name of the job presented in the dashboard, and goToChain is the desired selection. Note: these are case sensitive.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The default processingMCP.xml file is located at '/var/archivematica/sharedDirectory/sharedMicroServiceTasksConfigs/processingMCPConfigs/defaultProcessingMCP.xml'&lt;br /&gt;
Again, it can be modified by making selections under the processing configuration section of the administration tab in the dashboard.&lt;br /&gt;
Information regarding the processing choices is available in the [[User_Manual | user manual]].&lt;br /&gt;
&lt;br /&gt;
== PREMIS agent ==&lt;br /&gt;
&lt;br /&gt;
The PREMIS agent name and code can be set via the administration interface.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Rest API ==&lt;br /&gt;
&lt;br /&gt;
In addition to automation using the processingMCP.xml file, Archivematica includes a REST API for automating transfer approval. Using this API, you can create a custom script that copies a transfer to the appropriate directory then uses the &amp;lt;code&amp;gt;curl&amp;lt;/code&amp;gt; command, or some other means, to let Archivematica know that the copy is complete.&lt;br /&gt;
&lt;br /&gt;
=== API keys ===&lt;br /&gt;
&lt;br /&gt;
Use of the REST API requires the use of API keys. An API key is associated with a specific user. To generate an API key for a user:&lt;br /&gt;
&lt;br /&gt;
# Browse to &amp;lt;code&amp;gt;/administration/accounts/list/&amp;lt;/code&amp;gt;&lt;br /&gt;
# Click the &amp;quot;Edit&amp;quot; button for the user you'd like to generate an API key for&lt;br /&gt;
# Click the &amp;quot;Regenerate API key&amp;quot; checkbox&lt;br /&gt;
# Click &amp;quot;Save&amp;quot;&lt;br /&gt;
&lt;br /&gt;
After generating an API key, you can click the &amp;quot;Edit&amp;quot; button for the user and you should see the API key.&lt;br /&gt;
&lt;br /&gt;
=== IP whitelist ===&lt;br /&gt;
&lt;br /&gt;
In addition to creating API keys, you'll need to add the IP of any computer making REST requests to the REST API whitelist. The IP whitelist can be edited in the administration interface at &amp;lt;code&amp;gt;/administration/api/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Approving a transfer ===&lt;br /&gt;
&lt;br /&gt;
The REST API can be used to approve a transfer. The transfer must first be copied into the appropriate watch directory. To determine the location of the appropriate watch directory, first figure out where the shared directory is from the &amp;lt;code&amp;gt;sharedDirectory&amp;lt;/code&amp;gt; value of &amp;lt;code&amp;gt;/etc/archivematica/MCPServer/serverConfig.conf&amp;lt;/code&amp;gt;. Within that directory is a subdirectory &amp;lt;code&amp;gt;activeTransfers&amp;lt;/code&amp;gt;. In this subdirectory are watch directories for the various transfer types.&lt;br /&gt;
&lt;br /&gt;
When using the REST API to approve a transfer, if a transfer type isn't specified, the transfer will be deemed a standard transfer.&lt;br /&gt;
&lt;br /&gt;
'''HTTP Method:''' POST&lt;br /&gt;
&lt;br /&gt;
'''URL:''' &amp;lt;code&amp;gt;/api/transfer/approve&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Parameters:'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;directory&amp;lt;/code&amp;gt;: directory name of the transfer&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt; (optional): transfer type [standard|dspace|unzipped bag|zipped bag]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;api_key&amp;lt;/code&amp;gt;: an API key&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;username&amp;lt;/code&amp;gt;: the username associated with the API key&lt;br /&gt;
&lt;br /&gt;
Example curl command:&lt;br /&gt;
&lt;br /&gt;
    curl --data &amp;quot;username=rick&amp;amp;api_key=f12d6b323872b3cef0b71be64eddd52f87b851a6&amp;amp;type=standard&amp;amp;directory=MyTransfer&amp;quot; http://127.0.0.1/api/transfer/approve&lt;br /&gt;
&lt;br /&gt;
Example result:&lt;br /&gt;
&lt;br /&gt;
    {&amp;quot;message&amp;quot;: &amp;quot;Approval successful.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
=== Listing unapproved transfers ===&lt;br /&gt;
&lt;br /&gt;
The REST API can be used to get a list of unapproved transfers. Each transfer's directory name and type is returned.&lt;br /&gt;
&lt;br /&gt;
'''Method:''' &amp;lt;code&amp;gt;GET&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''URL:''' &amp;lt;code&amp;gt;/api/transfer/unapproved&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Parameters:'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;api_key&amp;lt;/code&amp;gt;: an API key&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;username&amp;lt;/code&amp;gt;: the username associated with the API key&lt;br /&gt;
&lt;br /&gt;
Example curl command:&lt;br /&gt;
&lt;br /&gt;
    curl &amp;quot;http://127.0.0.1/api/transfer/unapproved?username=rick&amp;amp;api_key=f12d6b323872b3cef0b71be64eddd52f87b851a6&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Example result:&lt;br /&gt;
&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;message&amp;quot;: &amp;quot;Fetched unapproved transfers successfully.&amp;quot;,&lt;br /&gt;
        &amp;quot;results&amp;quot;: [{&lt;br /&gt;
                &amp;quot;directory&amp;quot;: &amp;quot;MyTransfer&amp;quot;,&lt;br /&gt;
               &amp;quot;type&amp;quot;: &amp;quot;standard&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    }&lt;br /&gt;
== Users ==&lt;br /&gt;
&lt;br /&gt;
The dashboard provides a simple cookie-based user authentication system using the [https://docs.djangoproject.com/en/1.4/topics/auth/ Django authentication framework]. Access to the dashboard is limited only to logged-in users and a login page will be shown when the user is not recognized. If the application can't find any user in the database, the user creation page will be shown instead, allowing the creation of an administrator account.&lt;br /&gt;
&lt;br /&gt;
Users can be also created, modified and deleted from the Administration tab. Here you can manage which users have access to Archivematica and what level of access they have. Standard users are able to access all sections of the interterface except for the administration section.&lt;br /&gt;
&lt;br /&gt;
You can add a new user to the system by clicking the &amp;quot;Add new&amp;quot; button on the user administration page. These users won't have administrator capability. By adding a user you provide a way to access Archivematica using a username/password combination. Should you need to change a user's username or password, you can do so by clicking the &amp;quot;Edit&amp;quot; button, corresponding to the user, on the administration page. Should you need to revoke a user's access, you can click the corresponding &amp;quot;Delete&amp;quot; button.&lt;br /&gt;
&lt;br /&gt;
=== CLI creation of administrative users ===&lt;br /&gt;
&lt;br /&gt;
If you need an additional administrator user one can be created via the command-line after navigating to the &amp;lt;code&amp;gt;src/dashboard/src&amp;lt;/code&amp;gt; directory in the source tree.&lt;br /&gt;
&lt;br /&gt;
    python manage.py createsuperuser --settings='settings.common'&lt;br /&gt;
&lt;br /&gt;
=== CLI password resetting ===&lt;br /&gt;
&lt;br /&gt;
If you've forgotten the password for your administrator user, or any other user, you can change it via the command-line.&lt;br /&gt;
&lt;br /&gt;
    python manage.py changepassword &amp;lt;username&amp;gt; --settings='settings.common'&lt;br /&gt;
&lt;br /&gt;
===Security===&lt;br /&gt;
&lt;br /&gt;
Archivematica uses [http://en.wikipedia.org/wiki/PBKDF2 PBKDF2] as the default algorithm to store passwords. This should be sufficient for most users: it's quite secure, requiring massive amounts of computing time to break. However, other algorithms could be used as the following document explains: [https://docs.djangoproject.com/en/1.4/topics/auth/#how-django-stores-passwords How Django stores passwords].&lt;br /&gt;
&lt;br /&gt;
Our plan is to extend this functionality in the future adding groups and granular permissions support: see issue 922 to read more about it.&lt;br /&gt;
&lt;br /&gt;
= Dashboard preservation planning tab =&lt;br /&gt;
&lt;br /&gt;
== Format Policy Registry (FPR) ==&lt;br /&gt;
&lt;br /&gt;
= Customization and automation =&lt;br /&gt;
* Workflow processing decisions can be made in the processingMCP.xml file. [https://www.archivematica.org/wiki/Administrator_manual_0.9#Processing_configuration See here.]&lt;br /&gt;
* Workflows are currently created at the development level. &lt;br /&gt;
*: Some resources avialable&lt;br /&gt;
*:* [[MCP_Basic_Configuration]]&lt;br /&gt;
*:* [[MCP]]&lt;br /&gt;
*:* [[Creating_Custom_Workflows]]&lt;br /&gt;
*:* [[Development]]&lt;br /&gt;
* Normalization commands can be viewed in the presveration planning tab.&lt;br /&gt;
* Normalization paths and commands are currently editedable under the preservation planning tab in the dashboard.&lt;br /&gt;
&lt;br /&gt;
= Elasticsearch =&lt;br /&gt;
&lt;br /&gt;
Archivematica has the capability of indexing data about files contained in AIPs and this data can be [[Elasticsearch Development|accessed programatically]] for various applications.&lt;br /&gt;
&lt;br /&gt;
If, for whatever reason, you need to delete an ElasticSearch index please see [[ElasticSearch Administration]].&lt;br /&gt;
&lt;br /&gt;
If, for whatever reason, you need to delete an Elasticsearch index programmatically, this can be done with pyes using the following code.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import sys&lt;br /&gt;
sys.path.append(&amp;quot;/home/demo/archivematica/src/archivematicaCommon/lib/externals&amp;quot;)&lt;br /&gt;
from pyes import *&lt;br /&gt;
conn = ES('127.0.0.1:9200')&lt;br /&gt;
&lt;br /&gt;
try:&lt;br /&gt;
    conn.delete_index('aips')&lt;br /&gt;
except:&lt;br /&gt;
    print &amp;quot;Error deleting index or index already deleted.&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= [[Data backup]] =&lt;br /&gt;
* How to protect your data from disaster.&lt;br /&gt;
&lt;br /&gt;
= Security =&lt;br /&gt;
* It is recommended to change the default passwords.&lt;br /&gt;
** The ICA-ATOM/ContentDM passwords can be set in the administration tab in the dashboard.&lt;br /&gt;
** The database connection credentials can be set in the /etc/archivematica/archivematicaCommon/dbsettings. These will need to a mysql user with permissions to the MCP database.&lt;br /&gt;
:* Database&lt;br /&gt;
::* The database user&lt;br /&gt;
::* /etc/archivematica/archivematicaCommon/dbsettings&lt;br /&gt;
::* The dashboard config file?&lt;br /&gt;
:* Content DM&lt;br /&gt;
:* ICA-AtoM&lt;br /&gt;
* Archivematica does not presently support secured sockets. See [https://projects.artefactual.com/issues/1645 1645], [https://projects.artefactual.com/issues/ 1345] Because of this, it's highly recommended to run Archivematica on a secure, isolated network.&lt;br /&gt;
&lt;br /&gt;
= Questions =&lt;br /&gt;
&lt;br /&gt;
== Frequently asked questions ==&lt;br /&gt;
* [[AM_FAQ|Solutions to common questions]]&lt;br /&gt;
&lt;br /&gt;
== Discussion group ==&lt;br /&gt;
* [[http://groups.google.com/group/archivematica?hl=en Discussion group] For questions not on the FAQ]&lt;/div&gt;</summary>
		<author><name>Joseph</name></author>
	</entry>
	<entry>
		<id>https://wiki.archivematica.org/index.php?title=Administrator_manual_0.10&amp;diff=8008</id>
		<title>Administrator manual 0.10</title>
		<link rel="alternate" type="text/html" href="https://wiki.archivematica.org/index.php?title=Administrator_manual_0.10&amp;diff=8008"/>
		<updated>2013-04-29T23:27:53Z</updated>

		<summary type="html">&lt;p&gt;Joseph: /* Processing configuration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Main Page]] &amp;gt; [[Documentation]] &amp;gt; Administrator Manual&lt;br /&gt;
&lt;br /&gt;
This manual covers administrator-specific instructions for Archivematica. It will also provide help for using forms in the Administration tab of the Archivematica dashboard and the administrator capabilities in the Format Policy Registry (FPR), which you will find in the Preservation planning tab of the dashboard.&lt;br /&gt;
&lt;br /&gt;
For end-user instructions, please see the [[User_manual_0.10|user manual]].&lt;br /&gt;
&lt;br /&gt;
= Installation =&lt;br /&gt;
* [[Installation|Instructions for installing the latest build of Archivematica on your server]]&lt;br /&gt;
&lt;br /&gt;
= Upgrading =&lt;br /&gt;
* Currently, Archivematica does not support upgrading from one version to the next. A re-install is required.&lt;br /&gt;
&lt;br /&gt;
= Dashboard administration tab =&lt;br /&gt;
&lt;br /&gt;
The Archivematica administration pages, under the Administration tab of the dashboard, allows you to configure application components and manage users.&lt;br /&gt;
&lt;br /&gt;
== Transfer source directories ==&lt;br /&gt;
&lt;br /&gt;
Unlike previous versions, Archivematica v0.9 allows you to start transfers using the web interface rather than the operating system's file browser. Source files for transfers, however, can't be uploaded using the web interface: they must exist on volumes accessible to the Archivematica server.&lt;br /&gt;
&lt;br /&gt;
When starting a transfer you're required to select one or more directories of files to add to the transfer. To speed up the process of selecting directories, Archivematica allows you to specify &amp;quot;source directories&amp;quot;. A source directory is a directory in which files and directories likely to be added to a transfer are present.&lt;br /&gt;
&lt;br /&gt;
To add a source directory, while on the transfer source directories page of the Administration tab in the dashboard, simply click the folder icon to expand the starting directory and navigate the interface until you find a directory you'd like to select as a source directory. Once you've found a suitable source directory, click the &amp;quot;Add&amp;quot; button to the right of the directory and it will be added.&lt;br /&gt;
&lt;br /&gt;
To remove a source directory, simply click the &amp;quot;Remove&amp;quot; button to the right of it in the source directory path list.&lt;br /&gt;
&lt;br /&gt;
== AIP storage directories ==&lt;br /&gt;
&lt;br /&gt;
== AtoM DIP upload ==&lt;br /&gt;
&lt;br /&gt;
Archivematica can upload DIPs directly to an [https://www.ica-atom.org/ AtoM] website so the contents can be accessed online. The AtoM DIP upload configuration page is where you specify the details of the AtoM installation you'd like the DIPs uploaded to (and, if using Rsync to transfer the DIP files, Rsync transfer details).&lt;br /&gt;
&lt;br /&gt;
The parameters that you'll most likely want to set are &amp;lt;code&amp;gt;url&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;email&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;password&amp;lt;/code&amp;gt;. These parameters, respectively, specify the destination AtoM website's URL, the email address used to log in to the website, and the password used to log in to the website.&lt;br /&gt;
&lt;br /&gt;
AtoM DIP upload can also use [http://en.wikipedia.org/wiki/Rsync Rsync] as a transfer mechanism. Rsync is an open source utility for efficiently transferring files. The &amp;lt;code&amp;gt;rsync-target&amp;lt;/code&amp;gt; parameter is used to specify an Rsync-style target host/directory pairing, &amp;quot;foobar.com:~/dips/&amp;quot; for example. The &amp;lt;code&amp;gt;rsync-command&amp;lt;/code&amp;gt; parameter is used to specify rsync connection options, &amp;quot;ssh -p 22222 -l user&amp;quot; for example. If you are using the rsync option, please see AtoM server configuration below.&lt;br /&gt;
&lt;br /&gt;
To set any parameters for AtoM DIP upload change the values, preserving the existing format they're specified in, in the &amp;quot;Command arguments&amp;quot; field then click &amp;quot;Save&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Note that in AtoM, the sword plugin (Admin --&amp;gt; qtSwordPlugin) and job scheduling (Admin --&amp;gt; Settings --&amp;gt; Job scheduling) must both be enabled in order for AtoM to receive uploaded DIPs.&lt;br /&gt;
&lt;br /&gt;
=== AtoM server configuration ===&lt;br /&gt;
&lt;br /&gt;
This server configuration step is necessary to allow Archivematica to log in to the AtoM server without passwords, and only when the user is deploying the rsync option described above in the AtoM DIP upload section. &lt;br /&gt;
&lt;br /&gt;
To enable sending DIPs from Archivematica to the AtoM server:&lt;br /&gt;
&lt;br /&gt;
Generate SSH keys for the Archivematica user. Leave the passphrase field blank.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 $ sudo -i -u archivematica&lt;br /&gt;
 $ cd ~&lt;br /&gt;
 $ ssh-keygen&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy the contents of &amp;lt;code&amp;gt;/var/lib/archivematica/.ssh/id_rsa.pub&amp;lt;/code&amp;gt; somewhere handy, you will need it later.&lt;br /&gt;
&lt;br /&gt;
Now, it's time to configure the AtoM server so Archivematica can send the DIPs using SSH/rsync. For that purpose, you will create a user called &amp;lt;code&amp;gt;archivematica&amp;lt;/code&amp;gt; and we are going to assign that user a restricted shell with access only to rsync:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 $ sudo apt-get install rssh&lt;br /&gt;
 $ sudo useradd -d /home/archivematica -m -s /usr/bin/rssh archivematica&lt;br /&gt;
 $ sudo passswd -l archivematica&lt;br /&gt;
 $ sudo vim /etc/rssh.conf // Make sure that allowrsync is uncommented!&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add the SSH key that we generated before:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 $ sudo mkdir /home/archivematica/.ssh&lt;br /&gt;
 $ chmod 700 /home/archivematica/.ssh/&lt;br /&gt;
 $ sudo vim /home/archivematica/.ssh/authorized_keys // Paste here the contents of id_dsa.pub&lt;br /&gt;
 $ chown -R archivematica:archivematica /home/archivematica&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In Archivematica, make sure that you update the &amp;lt;code&amp;gt;--rsync-target&amp;lt;/code&amp;gt; accordingly.&amp;lt;br /&amp;gt;&lt;br /&gt;
These are the parameters that we are passing to the upload-qubit microservice.&amp;lt;br /&amp;gt;&lt;br /&gt;
Go to the Administration &amp;gt; Upload DIP page in the dashboard.&lt;br /&gt;
&lt;br /&gt;
Generic parameters:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--url=&amp;quot;http://atom-hostname/index.php&amp;quot; \&lt;br /&gt;
--email=&amp;quot;demo@example.com&amp;quot; \&lt;br /&gt;
--password=&amp;quot;demo&amp;quot; \&lt;br /&gt;
--uuid=&amp;quot;%SIPUUID%&amp;quot; \&lt;br /&gt;
--rsync-target=&amp;quot;archivematica@atom-hostname:/tmp&amp;quot; \&lt;br /&gt;
--debug&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CONTENTdm DIP upload ==&lt;br /&gt;
&lt;br /&gt;
Archivematica can also upload DIPs to [http://www.contentdm.org/ CONTENTdm] websites. Multiple CONTENTdm destinations may be configured.&lt;br /&gt;
For each possible CONTENTdm DIP upload destination, you'll specify a brief description and configuration parameters appropriate for the destination. Possible paramters include &amp;lt;code&amp;gt;%ContentdmServer%&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;%ContentdmUser%&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;%ContentdmGroup%&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
When changing parameters for a CONTENTdm DIP upload destination simply change the values, preserving the existing format they're specified in. To add an upload destination fill in the form at the bottom of the page with the appropriate values. When you've completed your changes click the &amp;quot;Save&amp;quot; button.&lt;br /&gt;
&lt;br /&gt;
== Processing configuration ==&lt;br /&gt;
&lt;br /&gt;
When processing a SIP or transfer, you may want to automate some of the workflow choices. Choices can be preconfigured by putting a 'processingMCP.xml' file into the root directory of a SIP/transfer. The processing configuration administration page allows you to configure the default 'processingMCP.xml' that's added to a SIP or Transfer if it doesn't alreay contain one. &lt;br /&gt;
&lt;br /&gt;
If a SIP or transfer is submitted with a 'processingMCP.xml' file, processing decisions will be made with the included file.&lt;br /&gt;
&lt;br /&gt;
The XML file format is:&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;processingMCP&amp;gt;&lt;br /&gt;
  &amp;lt;preconfiguredChoices&amp;gt;&lt;br /&gt;
    &amp;lt;preconfiguredChoice&amp;gt;&lt;br /&gt;
      &amp;lt;appliesTo&amp;gt;Workflow decision - create transfer backup&amp;lt;/appliesTo&amp;gt;&lt;br /&gt;
      &amp;lt;goToChain&amp;gt;Do not backup transfer&amp;lt;/goToChain&amp;gt;&lt;br /&gt;
    &amp;lt;/preconfiguredChoice&amp;gt;&lt;br /&gt;
    &amp;lt;preconfiguredChoice&amp;gt;&lt;br /&gt;
      &amp;lt;appliesTo&amp;gt;Workflow decision - send transfer to quarantine&amp;lt;/appliesTo&amp;gt;&lt;br /&gt;
      &amp;lt;goToChain&amp;gt;Skip quarantine&amp;lt;/goToChain&amp;gt;&lt;br /&gt;
    &amp;lt;/preconfiguredChoice&amp;gt;&lt;br /&gt;
    &amp;lt;preconfiguredChoice&amp;gt;&lt;br /&gt;
      &amp;lt;appliesTo&amp;gt;Remove from quarantine&amp;lt;/appliesTo&amp;gt;&lt;br /&gt;
      &amp;lt;goToChain&amp;gt;Unquarantine&amp;lt;/goToChain&amp;gt;&lt;br /&gt;
      &amp;lt;delay unitCtime=&amp;quot;yes&amp;quot;&amp;gt;50&amp;lt;/delay&amp;gt;&lt;br /&gt;
    &amp;lt;/preconfiguredChoice&amp;gt;&lt;br /&gt;
  &amp;lt;/preconfiguredChoices&amp;gt;&lt;br /&gt;
&amp;lt;/processingMCP&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where appliesTo is the name of the job presented in the dashboard, and goToChain is the desired selection. Note: these are case sensitive.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The default processingMCP.xml file is located at '/var/archivematica/sharedDirectory/sharedMicroServiceTasksConfigs/processingMCPConfigs/defaultProcessingMCP.xml'&lt;br /&gt;
Again, it can be modified by making selections under the processing configuration section of the administration tab in the dashboard.&lt;br /&gt;
&lt;br /&gt;
== PREMIS agent ==&lt;br /&gt;
&lt;br /&gt;
The PREMIS agent name and code can be set via the administration interface.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Rest API ==&lt;br /&gt;
&lt;br /&gt;
In addition to automation using the processingMCP.xml file, Archivematica includes a REST API for automating transfer approval. Using this API, you can create a custom script that copies a transfer to the appropriate directory then uses the &amp;lt;code&amp;gt;curl&amp;lt;/code&amp;gt; command, or some other means, to let Archivematica know that the copy is complete.&lt;br /&gt;
&lt;br /&gt;
=== API keys ===&lt;br /&gt;
&lt;br /&gt;
Use of the REST API requires the use of API keys. An API key is associated with a specific user. To generate an API key for a user:&lt;br /&gt;
&lt;br /&gt;
# Browse to &amp;lt;code&amp;gt;/administration/accounts/list/&amp;lt;/code&amp;gt;&lt;br /&gt;
# Click the &amp;quot;Edit&amp;quot; button for the user you'd like to generate an API key for&lt;br /&gt;
# Click the &amp;quot;Regenerate API key&amp;quot; checkbox&lt;br /&gt;
# Click &amp;quot;Save&amp;quot;&lt;br /&gt;
&lt;br /&gt;
After generating an API key, you can click the &amp;quot;Edit&amp;quot; button for the user and you should see the API key.&lt;br /&gt;
&lt;br /&gt;
=== IP whitelist ===&lt;br /&gt;
&lt;br /&gt;
In addition to creating API keys, you'll need to add the IP of any computer making REST requests to the REST API whitelist. The IP whitelist can be edited in the administration interface at &amp;lt;code&amp;gt;/administration/api/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Approving a transfer ===&lt;br /&gt;
&lt;br /&gt;
The REST API can be used to approve a transfer. The transfer must first be copied into the appropriate watch directory. To determine the location of the appropriate watch directory, first figure out where the shared directory is from the &amp;lt;code&amp;gt;sharedDirectory&amp;lt;/code&amp;gt; value of &amp;lt;code&amp;gt;/etc/archivematica/MCPServer/serverConfig.conf&amp;lt;/code&amp;gt;. Within that directory is a subdirectory &amp;lt;code&amp;gt;activeTransfers&amp;lt;/code&amp;gt;. In this subdirectory are watch directories for the various transfer types.&lt;br /&gt;
&lt;br /&gt;
When using the REST API to approve a transfer, if a transfer type isn't specified, the transfer will be deemed a standard transfer.&lt;br /&gt;
&lt;br /&gt;
'''HTTP Method:''' POST&lt;br /&gt;
&lt;br /&gt;
'''URL:''' &amp;lt;code&amp;gt;/api/transfer/approve&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Parameters:'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;directory&amp;lt;/code&amp;gt;: directory name of the transfer&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt; (optional): transfer type [standard|dspace|unzipped bag|zipped bag]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;api_key&amp;lt;/code&amp;gt;: an API key&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;username&amp;lt;/code&amp;gt;: the username associated with the API key&lt;br /&gt;
&lt;br /&gt;
Example curl command:&lt;br /&gt;
&lt;br /&gt;
    curl --data &amp;quot;username=rick&amp;amp;api_key=f12d6b323872b3cef0b71be64eddd52f87b851a6&amp;amp;type=standard&amp;amp;directory=MyTransfer&amp;quot; http://127.0.0.1/api/transfer/approve&lt;br /&gt;
&lt;br /&gt;
Example result:&lt;br /&gt;
&lt;br /&gt;
    {&amp;quot;message&amp;quot;: &amp;quot;Approval successful.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
=== Listing unapproved transfers ===&lt;br /&gt;
&lt;br /&gt;
The REST API can be used to get a list of unapproved transfers. Each transfer's directory name and type is returned.&lt;br /&gt;
&lt;br /&gt;
'''Method:''' &amp;lt;code&amp;gt;GET&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''URL:''' &amp;lt;code&amp;gt;/api/transfer/unapproved&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Parameters:'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;api_key&amp;lt;/code&amp;gt;: an API key&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;username&amp;lt;/code&amp;gt;: the username associated with the API key&lt;br /&gt;
&lt;br /&gt;
Example curl command:&lt;br /&gt;
&lt;br /&gt;
    curl &amp;quot;http://127.0.0.1/api/transfer/unapproved?username=rick&amp;amp;api_key=f12d6b323872b3cef0b71be64eddd52f87b851a6&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Example result:&lt;br /&gt;
&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;message&amp;quot;: &amp;quot;Fetched unapproved transfers successfully.&amp;quot;,&lt;br /&gt;
        &amp;quot;results&amp;quot;: [{&lt;br /&gt;
                &amp;quot;directory&amp;quot;: &amp;quot;MyTransfer&amp;quot;,&lt;br /&gt;
               &amp;quot;type&amp;quot;: &amp;quot;standard&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    }&lt;br /&gt;
== Users ==&lt;br /&gt;
&lt;br /&gt;
The dashboard provides a simple cookie-based user authentication system using the [https://docs.djangoproject.com/en/1.4/topics/auth/ Django authentication framework]. Access to the dashboard is limited only to logged-in users and a login page will be shown when the user is not recognized. If the application can't find any user in the database, the user creation page will be shown instead, allowing the creation of an administrator account.&lt;br /&gt;
&lt;br /&gt;
Users can be also created, modified and deleted from the Administration tab. Here you can manage which users have access to Archivematica and what level of access they have. Standard users are able to access all sections of the interterface except for the administration section.&lt;br /&gt;
&lt;br /&gt;
You can add a new user to the system by clicking the &amp;quot;Add new&amp;quot; button on the user administration page. These users won't have administrator capability. By adding a user you provide a way to access Archivematica using a username/password combination. Should you need to change a user's username or password, you can do so by clicking the &amp;quot;Edit&amp;quot; button, corresponding to the user, on the administration page. Should you need to revoke a user's access, you can click the corresponding &amp;quot;Delete&amp;quot; button.&lt;br /&gt;
&lt;br /&gt;
=== CLI creation of administrative users ===&lt;br /&gt;
&lt;br /&gt;
If you need an additional administrator user one can be created via the command-line after navigating to the &amp;lt;code&amp;gt;src/dashboard/src&amp;lt;/code&amp;gt; directory in the source tree.&lt;br /&gt;
&lt;br /&gt;
    python manage.py createsuperuser --settings='settings.common'&lt;br /&gt;
&lt;br /&gt;
=== CLI password resetting ===&lt;br /&gt;
&lt;br /&gt;
If you've forgotten the password for your administrator user, or any other user, you can change it via the command-line.&lt;br /&gt;
&lt;br /&gt;
    python manage.py changepassword &amp;lt;username&amp;gt; --settings='settings.common'&lt;br /&gt;
&lt;br /&gt;
===Security===&lt;br /&gt;
&lt;br /&gt;
Archivematica uses [http://en.wikipedia.org/wiki/PBKDF2 PBKDF2] as the default algorithm to store passwords. This should be sufficient for most users: it's quite secure, requiring massive amounts of computing time to break. However, other algorithms could be used as the following document explains: [https://docs.djangoproject.com/en/1.4/topics/auth/#how-django-stores-passwords How Django stores passwords].&lt;br /&gt;
&lt;br /&gt;
Our plan is to extend this functionality in the future adding groups and granular permissions support: see issue 922 to read more about it.&lt;br /&gt;
&lt;br /&gt;
= Dashboard preservation planning tab =&lt;br /&gt;
&lt;br /&gt;
== Format Policy Registry (FPR) ==&lt;br /&gt;
&lt;br /&gt;
= Customization and automation =&lt;br /&gt;
* Workflow processing decisions can be made in the processingMCP.xml file. [https://www.archivematica.org/wiki/Administrator_manual_0.9#Processing_configuration See here.]&lt;br /&gt;
* Workflows are currently created at the development level. &lt;br /&gt;
*: Some resources avialable&lt;br /&gt;
*:* [[MCP_Basic_Configuration]]&lt;br /&gt;
*:* [[MCP]]&lt;br /&gt;
*:* [[Creating_Custom_Workflows]]&lt;br /&gt;
*:* [[Development]]&lt;br /&gt;
* Normalization commands can be viewed in the presveration planning tab.&lt;br /&gt;
* Normalization paths and commands are currently editedable under the preservation planning tab in the dashboard.&lt;br /&gt;
&lt;br /&gt;
= Elasticsearch =&lt;br /&gt;
&lt;br /&gt;
Archivematica has the capability of indexing data about files contained in AIPs and this data can be [[Elasticsearch Development|accessed programatically]] for various applications.&lt;br /&gt;
&lt;br /&gt;
If, for whatever reason, you need to delete an ElasticSearch index please see [[ElasticSearch Administration]].&lt;br /&gt;
&lt;br /&gt;
If, for whatever reason, you need to delete an Elasticsearch index programmatically, this can be done with pyes using the following code.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import sys&lt;br /&gt;
sys.path.append(&amp;quot;/home/demo/archivematica/src/archivematicaCommon/lib/externals&amp;quot;)&lt;br /&gt;
from pyes import *&lt;br /&gt;
conn = ES('127.0.0.1:9200')&lt;br /&gt;
&lt;br /&gt;
try:&lt;br /&gt;
    conn.delete_index('aips')&lt;br /&gt;
except:&lt;br /&gt;
    print &amp;quot;Error deleting index or index already deleted.&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= [[Data backup]] =&lt;br /&gt;
* How to protect your data from disaster.&lt;br /&gt;
&lt;br /&gt;
= Security =&lt;br /&gt;
* It is recommended to change the default passwords.&lt;br /&gt;
** The ICA-ATOM/ContentDM passwords can be set in the administration tab in the dashboard.&lt;br /&gt;
** The database connection credentials can be set in the /etc/archivematica/archivematicaCommon/dbsettings. These will need to a mysql user with permissions to the MCP database.&lt;br /&gt;
:* Database&lt;br /&gt;
::* The database user&lt;br /&gt;
::* /etc/archivematica/archivematicaCommon/dbsettings&lt;br /&gt;
::* The dashboard config file?&lt;br /&gt;
:* Content DM&lt;br /&gt;
:* ICA-AtoM&lt;br /&gt;
* Archivematica does not presently support secured sockets. See [https://projects.artefactual.com/issues/1645 1645], [https://projects.artefactual.com/issues/ 1345] Because of this, it's highly recommended to run Archivematica on a secure, isolated network.&lt;br /&gt;
&lt;br /&gt;
= Questions =&lt;br /&gt;
&lt;br /&gt;
== Frequently asked questions ==&lt;br /&gt;
* [[AM_FAQ|Solutions to common questions]]&lt;br /&gt;
&lt;br /&gt;
== Discussion group ==&lt;br /&gt;
* [[http://groups.google.com/group/archivematica?hl=en Discussion group] For questions not on the FAQ]&lt;/div&gt;</summary>
		<author><name>Joseph</name></author>
	</entry>
	<entry>
		<id>https://wiki.archivematica.org/index.php?title=Administrator_manual_0.10&amp;diff=7989</id>
		<title>Administrator manual 0.10</title>
		<link rel="alternate" type="text/html" href="https://wiki.archivematica.org/index.php?title=Administrator_manual_0.10&amp;diff=7989"/>
		<updated>2013-04-29T22:36:24Z</updated>

		<summary type="html">&lt;p&gt;Joseph: /* Security */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Main Page]] &amp;gt; [[Documentation]] &amp;gt; Administrator Manual&lt;br /&gt;
&lt;br /&gt;
This manual covers administrator-specific instructions for Archivematica. It will also provide help for using forms in the Administration tab of the Archivematica dashboard and the administrator capabilities in the Format Policy Registry (FPR), which you will find in the Preservation planning tab of the dashboard.&lt;br /&gt;
&lt;br /&gt;
For end-user instructions, please see the [[User_manual_0.10|user manual]].&lt;br /&gt;
&lt;br /&gt;
= Installation =&lt;br /&gt;
* [[Installation|Instructions for installing the latest build of Archivematica on your server]]&lt;br /&gt;
&lt;br /&gt;
= Upgrading =&lt;br /&gt;
* Currently, Archivematica does not support upgrading from one version to the next. A re-install is required.&lt;br /&gt;
&lt;br /&gt;
= Dashboard administration tab =&lt;br /&gt;
&lt;br /&gt;
The Archivematica administration pages, under the Administration tab of the dashboard, allows you to configure application components and manage users.&lt;br /&gt;
&lt;br /&gt;
== Transfer source directories ==&lt;br /&gt;
&lt;br /&gt;
Unlike previous versions, Archivematica v0.9 allows you to start transfers using the web interface rather than the operating system's file browser. Source files for transfers, however, can't be uploaded using the web interface: they must exist on volumes accessible to the Archivematica server.&lt;br /&gt;
&lt;br /&gt;
When starting a transfer you're required to select one or more directories of files to add to the transfer. To speed up the process of selecting directories, Archivematica allows you to specify &amp;quot;source directories&amp;quot;. A source directory is a directory in which files and directories likely to be added to a transfer are present.&lt;br /&gt;
&lt;br /&gt;
To add a source directory, while on the transfer source directories page of the Administration tab in the dashboard, simply click the folder icon to expand the starting directory and navigate the interface until you find a directory you'd like to select as a source directory. Once you've found a suitable source directory, click the &amp;quot;Add&amp;quot; button to the right of the directory and it will be added.&lt;br /&gt;
&lt;br /&gt;
To remove a source directory, simply click the &amp;quot;Remove&amp;quot; button to the right of it in the source directory path list.&lt;br /&gt;
&lt;br /&gt;
== AIP storage directories ==&lt;br /&gt;
&lt;br /&gt;
== AtoM DIP upload ==&lt;br /&gt;
&lt;br /&gt;
Archivematica can upload DIPs directly to an [https://www.ica-atom.org/ AtoM] website so the contents can be accessed online. The AtoM DIP upload configuration page is where you specify the details of the AtoM installation you'd like the DIPs uploaded to (and, if using Rsync to transfer the DIP files, Rsync transfer details).&lt;br /&gt;
&lt;br /&gt;
The parameters that you'll most likely want to set are &amp;lt;code&amp;gt;url&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;email&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;password&amp;lt;/code&amp;gt;. These parameters, respectively, specify the destination AtoM website's URL, the email address used to log in to the website, and the password used to log in to the website.&lt;br /&gt;
&lt;br /&gt;
AtoM DIP upload can also use [http://en.wikipedia.org/wiki/Rsync Rsync] as a transfer mechanism. Rsync is an open source utility for efficiently transferring files. The &amp;lt;code&amp;gt;rsync-target&amp;lt;/code&amp;gt; parameter is used to specify an Rsync-style target host/directory pairing, &amp;quot;foobar.com:~/dips/&amp;quot; for example. The &amp;lt;code&amp;gt;rsync-command&amp;lt;/code&amp;gt; parameter is used to specify rsync connection options, &amp;quot;ssh -p 22222 -l user&amp;quot; for example. If you are using the rsync option, please see AtoM server configuration below.&lt;br /&gt;
&lt;br /&gt;
To set any parameters for AtoM DIP upload change the values, preserving the existing format they're specified in, in the &amp;quot;Command arguments&amp;quot; field then click &amp;quot;Save&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Note that in AtoM, the sword plugin (Admin --&amp;gt; qtSwordPlugin) and job scheduling (Admin --&amp;gt; Settings --&amp;gt; Job scheduling) must both be enabled in order for AtoM to receive uploaded DIPs.&lt;br /&gt;
&lt;br /&gt;
=== AtoM server configuration ===&lt;br /&gt;
&lt;br /&gt;
This server configuration step is necessary to allow Archivematica to log in to the AtoM server without passwords, and only when the user is deploying the rsync option described above in the AtoM DIP upload section. &lt;br /&gt;
&lt;br /&gt;
To enable sending DIPs from Archivematica to the AtoM server:&lt;br /&gt;
&lt;br /&gt;
Generate SSH keys for the Archivematica user. Leave the passphrase field blank.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 $ sudo -i -u archivematica&lt;br /&gt;
 $ cd ~&lt;br /&gt;
 $ ssh-keygen&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy the contents of &amp;lt;code&amp;gt;/var/lib/archivematica/.ssh/id_rsa.pub&amp;lt;/code&amp;gt; somewhere handy, you will need it later.&lt;br /&gt;
&lt;br /&gt;
Now, it's time to configure the AtoM server so Archivematica can send the DIPs using SSH/rsync. For that purpose, you will create a user called &amp;lt;code&amp;gt;archivematica&amp;lt;/code&amp;gt; and we are going to assign that user a restricted shell with access only to rsync:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 $ sudo apt-get install rssh&lt;br /&gt;
 $ sudo useradd -d /home/archivematica -m -s /usr/bin/rssh archivematica&lt;br /&gt;
 $ sudo passswd -l archivematica&lt;br /&gt;
 $ sudo vim /etc/rssh.conf // Make sure that allowrsync is uncommented!&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add the SSH key that we generated before:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 $ sudo mkdir /home/archivematica/.ssh&lt;br /&gt;
 $ chmod 700 /home/archivematica/.ssh/&lt;br /&gt;
 $ sudo vim /home/archivematica/.ssh/authorized_keys // Paste here the contents of id_dsa.pub&lt;br /&gt;
 $ chown -R archivematica:archivematica /home/archivematica&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In Archivematica, make sure that you update the &amp;lt;code&amp;gt;--rsync-target&amp;lt;/code&amp;gt; accordingly.&amp;lt;br /&amp;gt;&lt;br /&gt;
These are the parameters that we are passing to the upload-qubit microservice.&amp;lt;br /&amp;gt;&lt;br /&gt;
Go to the Administration &amp;gt; Upload DIP page in the dashboard.&lt;br /&gt;
&lt;br /&gt;
Generic parameters:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--url=&amp;quot;http://atom-hostname/index.php&amp;quot; \&lt;br /&gt;
--email=&amp;quot;demo@example.com&amp;quot; \&lt;br /&gt;
--password=&amp;quot;demo&amp;quot; \&lt;br /&gt;
--uuid=&amp;quot;%SIPUUID%&amp;quot; \&lt;br /&gt;
--rsync-target=&amp;quot;archivematica@atom-hostname:/tmp&amp;quot; \&lt;br /&gt;
--debug&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CONTENTdm DIP upload ==&lt;br /&gt;
&lt;br /&gt;
Archivematica can also upload DIPs to [http://www.contentdm.org/ CONTENTdm] websites. Multiple CONTENTdm destinations may be configured.&lt;br /&gt;
For each possible CONTENTdm DIP upload destination, you'll specify a brief description and configuration parameters appropriate for the destination. Possible paramters include &amp;lt;code&amp;gt;%ContentdmServer%&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;%ContentdmUser%&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;%ContentdmGroup%&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
When changing parameters for a CONTENTdm DIP upload destination simply change the values, preserving the existing format they're specified in. To add an upload destination fill in the form at the bottom of the page with the appropriate values. When you've completed your changes click the &amp;quot;Save&amp;quot; button.&lt;br /&gt;
&lt;br /&gt;
== Processing configuration ==&lt;br /&gt;
&lt;br /&gt;
When processing a SIP or transfer, you may want to automate some of the workflow choices. Choices can be preconfigured by putting a 'processingMCP.xml' file into the root directory of a SIP/transfer. The processing configuration administration page allows you to configure the default 'processingMCP.xml' that's added to a SIP or Transfer if it doesn't alreay contain one. If a SIP or transfer is submitted with a 'processingMCP.xml' file, however, processing decisions will be made with the included file.&lt;br /&gt;
&lt;br /&gt;
Pre-configured choices made here are based off the choices that appear in the dashboard.&lt;br /&gt;
&lt;br /&gt;
The format is:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        &amp;lt;preconfiguredChoice&amp;gt;&lt;br /&gt;
            &amp;lt;appliesTo&amp;gt;Workflow decision - send transfer to quarantine&amp;lt;/appliesTo&amp;gt;&lt;br /&gt;
            &amp;lt;goToChain&amp;gt;Skip quarantine&amp;lt;/goToChain&amp;gt;&lt;br /&gt;
        &amp;lt;/preconfiguredChoice&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where appliesTo is the name of the job presented in the dashboard, and goToChain is the desired selection. Note: these are case sensitive.&lt;br /&gt;
&lt;br /&gt;
== PREMIS agent ==&lt;br /&gt;
&lt;br /&gt;
The PREMIS agent name and code can be set via the administration interface.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Rest API ==&lt;br /&gt;
&lt;br /&gt;
In addition to automation using the processingMCP.xml file, Archivematica includes a REST API for automating transfer approval. Using this API, you can create a custom script that copies a transfer to the appropriate directory then uses the &amp;lt;code&amp;gt;curl&amp;lt;/code&amp;gt; command, or some other means, to let Archivematica know that the copy is complete.&lt;br /&gt;
&lt;br /&gt;
=== API keys ===&lt;br /&gt;
&lt;br /&gt;
Use of the REST API requires the use of API keys. An API key is associated with a specific user. To generate an API key for a user:&lt;br /&gt;
&lt;br /&gt;
# Browse to &amp;lt;code&amp;gt;/administration/accounts/list/&amp;lt;/code&amp;gt;&lt;br /&gt;
# Click the &amp;quot;Edit&amp;quot; button for the user you'd like to generate an API key for&lt;br /&gt;
# Click the &amp;quot;Regenerate API key&amp;quot; checkbox&lt;br /&gt;
# Click &amp;quot;Save&amp;quot;&lt;br /&gt;
&lt;br /&gt;
After generating an API key, you can click the &amp;quot;Edit&amp;quot; button for the user and you should see the API key.&lt;br /&gt;
&lt;br /&gt;
=== IP whitelist ===&lt;br /&gt;
&lt;br /&gt;
In addition to creating API keys, you'll need to add the IP of any computer making REST requests to the REST API whitelist. The IP whitelist can be edited in the administration interface at &amp;lt;code&amp;gt;/administration/api/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Approving a transfer ===&lt;br /&gt;
&lt;br /&gt;
The REST API can be used to approve a transfer. The transfer must first be copied into the appropriate watch directory. To determine the location of the appropriate watch directory, first figure out where the shared directory is from the &amp;lt;code&amp;gt;sharedDirectory&amp;lt;/code&amp;gt; value of &amp;lt;code&amp;gt;/etc/archivematica/MCPServer/serverConfig.conf&amp;lt;/code&amp;gt;. Within that directory is a subdirectory &amp;lt;code&amp;gt;activeTransfers&amp;lt;/code&amp;gt;. In this subdirectory are watch directories for the various transfer types.&lt;br /&gt;
&lt;br /&gt;
When using the REST API to approve a transfer, if a transfer type isn't specified, the transfer will be deemed a standard transfer.&lt;br /&gt;
&lt;br /&gt;
'''HTTP Method:''' POST&lt;br /&gt;
&lt;br /&gt;
'''URL:''' &amp;lt;code&amp;gt;/api/transfer/approve&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Parameters:'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;directory&amp;lt;/code&amp;gt;: directory name of the transfer&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt; (optional): transfer type [standard|dspace|unzipped bag|zipped bag]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;api_key&amp;lt;/code&amp;gt;: an API key&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;username&amp;lt;/code&amp;gt;: the username associated with the API key&lt;br /&gt;
&lt;br /&gt;
Example curl command:&lt;br /&gt;
&lt;br /&gt;
    curl --data &amp;quot;username=rick&amp;amp;api_key=f12d6b323872b3cef0b71be64eddd52f87b851a6&amp;amp;type=standard&amp;amp;directory=MyTransfer&amp;quot; http://127.0.0.1/api/transfer/approve&lt;br /&gt;
&lt;br /&gt;
Example result:&lt;br /&gt;
&lt;br /&gt;
    {&amp;quot;message&amp;quot;: &amp;quot;Approval successful.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
=== Listing unapproved transfers ===&lt;br /&gt;
&lt;br /&gt;
The REST API can be used to get a list of unapproved transfers. Each transfer's directory name and type is returned.&lt;br /&gt;
&lt;br /&gt;
'''Method:''' &amp;lt;code&amp;gt;GET&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''URL:''' &amp;lt;code&amp;gt;/api/transfer/unapproved&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Parameters:'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;api_key&amp;lt;/code&amp;gt;: an API key&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;username&amp;lt;/code&amp;gt;: the username associated with the API key&lt;br /&gt;
&lt;br /&gt;
Example curl command:&lt;br /&gt;
&lt;br /&gt;
    curl &amp;quot;http://127.0.0.1/api/transfer/unapproved?username=rick&amp;amp;api_key=f12d6b323872b3cef0b71be64eddd52f87b851a6&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Example result:&lt;br /&gt;
&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;message&amp;quot;: &amp;quot;Fetched unapproved transfers successfully.&amp;quot;,&lt;br /&gt;
        &amp;quot;results&amp;quot;: [{&lt;br /&gt;
                &amp;quot;directory&amp;quot;: &amp;quot;MyTransfer&amp;quot;,&lt;br /&gt;
               &amp;quot;type&amp;quot;: &amp;quot;standard&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    }&lt;br /&gt;
== Users ==&lt;br /&gt;
&lt;br /&gt;
The dashboard provides a simple cookie-based user authentication system using the [https://docs.djangoproject.com/en/1.4/topics/auth/ Django authentication framework]. Access to the dashboard is limited only to logged-in users and a login page will be shown when the user is not recognized. If the application can't find any user in the database, the user creation page will be shown instead, allowing the creation of an administrator account.&lt;br /&gt;
&lt;br /&gt;
Users can be also created, modified and deleted from the Administration tab. Here you can manage which users have access to Archivematica and what level of access they have. Standard users are able to access all sections of the interterface except for the administration section.&lt;br /&gt;
&lt;br /&gt;
You can add a new user to the system by clicking the &amp;quot;Add new&amp;quot; button on the user administration page. These users won't have administrator capability. By adding a user you provide a way to access Archivematica using a username/password combination. Should you need to change a user's username or password, you can do so by clicking the &amp;quot;Edit&amp;quot; button, corresponding to the user, on the administration page. Should you need to revoke a user's access, you can click the corresponding &amp;quot;Delete&amp;quot; button.&lt;br /&gt;
&lt;br /&gt;
=== CLI creation of administrative users ===&lt;br /&gt;
&lt;br /&gt;
If you need an additional administrator user one can be created via the command-line after navigating to the &amp;lt;code&amp;gt;src/dashboard/src&amp;lt;/code&amp;gt; directory in the source tree.&lt;br /&gt;
&lt;br /&gt;
    python manage.py createsuperuser --settings='settings.common'&lt;br /&gt;
&lt;br /&gt;
=== CLI password resetting ===&lt;br /&gt;
&lt;br /&gt;
If you've forgotten the password for your administrator user, or any other user, you can change it via the command-line.&lt;br /&gt;
&lt;br /&gt;
    python manage.py changepassword &amp;lt;username&amp;gt; --settings='settings.common'&lt;br /&gt;
&lt;br /&gt;
===Security===&lt;br /&gt;
&lt;br /&gt;
Archivematica uses [http://en.wikipedia.org/wiki/PBKDF2 PBKDF2] as the default algorithm to store passwords. This should be sufficient for most users: it's quite secure, requiring massive amounts of computing time to break. However, other algorithms could be used as the following document explains: [https://docs.djangoproject.com/en/1.4/topics/auth/#how-django-stores-passwords How Django stores passwords].&lt;br /&gt;
&lt;br /&gt;
Our plan is to extend this functionality in the future adding groups and granular permissions support: see issue 922 to read more about it.&lt;br /&gt;
&lt;br /&gt;
= Dashboard preservation planning tab =&lt;br /&gt;
&lt;br /&gt;
== Format Policy Registry (FPR) ==&lt;br /&gt;
&lt;br /&gt;
= Customization and automation =&lt;br /&gt;
* Workflow processing decisions can be made in the processingMCP.xml file. [https://www.archivematica.org/wiki/Administrator_manual_0.9#Processing_configuration See here.]&lt;br /&gt;
* Workflows are currently created at the development level. &lt;br /&gt;
*: Some resources avialable&lt;br /&gt;
*:* [[MCP_Basic_Configuration]]&lt;br /&gt;
*:* [[MCP]]&lt;br /&gt;
*:* [[Creating_Custom_Workflows]]&lt;br /&gt;
*:* [[Development]]&lt;br /&gt;
* Normalization commands can be viewed in the presveration planning tab.&lt;br /&gt;
* Normalization paths and commands are currently editedable under the preservation planning tab in the dashboard.&lt;br /&gt;
&lt;br /&gt;
= Elasticsearch =&lt;br /&gt;
&lt;br /&gt;
Archivematica has the capability of indexing data about files contained in AIPs and this data can be [[Elasticsearch Development|accessed programatically]] for various applications.&lt;br /&gt;
&lt;br /&gt;
If, for whatever reason, you need to delete an ElasticSearch index please see [[ElasticSearch Administration]].&lt;br /&gt;
&lt;br /&gt;
If, for whatever reason, you need to delete an Elasticsearch index programmatically, this can be done with pyes using the following code.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import sys&lt;br /&gt;
sys.path.append(&amp;quot;/home/demo/archivematica/src/archivematicaCommon/lib/externals&amp;quot;)&lt;br /&gt;
from pyes import *&lt;br /&gt;
conn = ES('127.0.0.1:9200')&lt;br /&gt;
&lt;br /&gt;
try:&lt;br /&gt;
    conn.delete_index('aips')&lt;br /&gt;
except:&lt;br /&gt;
    print &amp;quot;Error deleting index or index already deleted.&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= [[Data backup]] =&lt;br /&gt;
* How to protect your data from disaster.&lt;br /&gt;
&lt;br /&gt;
= Security =&lt;br /&gt;
* It is recommended to change the default passwords.&lt;br /&gt;
** The ICA-ATOM/ContentDM passwords can be set in the administration tab in the dashboard.&lt;br /&gt;
** The database connection credentials can be set in the /etc/archivematica/archivematicaCommon/dbsettings. These will need to a mysql user with permissions to the MCP database.&lt;br /&gt;
:* Database&lt;br /&gt;
::* The database user&lt;br /&gt;
::* /etc/archivematica/archivematicaCommon/dbsettings&lt;br /&gt;
::* The dashboard config file?&lt;br /&gt;
:* Content DM&lt;br /&gt;
:* ICA-AtoM&lt;br /&gt;
* Archivematica does not presently support secured sockets. See [https://projects.artefactual.com/issues/1645 1645], [https://projects.artefactual.com/issues/ 1345] Because of this, it's highly recommended to run Archivematica on a secure, isolated network.&lt;br /&gt;
&lt;br /&gt;
= Questions =&lt;br /&gt;
&lt;br /&gt;
== Frequently asked questions ==&lt;br /&gt;
* [[AM_FAQ|Solutions to common questions]]&lt;br /&gt;
&lt;br /&gt;
== Discussion group ==&lt;br /&gt;
* [[http://groups.google.com/group/archivematica?hl=en Discussion group] For questions not on the FAQ]&lt;/div&gt;</summary>
		<author><name>Joseph</name></author>
	</entry>
	<entry>
		<id>https://wiki.archivematica.org/index.php?title=Administrator_manual_0.10&amp;diff=7985</id>
		<title>Administrator manual 0.10</title>
		<link rel="alternate" type="text/html" href="https://wiki.archivematica.org/index.php?title=Administrator_manual_0.10&amp;diff=7985"/>
		<updated>2013-04-29T22:32:08Z</updated>

		<summary type="html">&lt;p&gt;Joseph: /* Customization and automation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Main Page]] &amp;gt; [[Documentation]] &amp;gt; Administrator Manual&lt;br /&gt;
&lt;br /&gt;
This manual covers administrator-specific instructions for Archivematica. It will also provide help for using forms in the Administration tab of the Archivematica dashboard and the administrator capabilities in the Format Policy Registry (FPR), which you will find in the Preservation planning tab of the dashboard.&lt;br /&gt;
&lt;br /&gt;
For end-user instructions, please see the [[User_manual_0.10|user manual]].&lt;br /&gt;
&lt;br /&gt;
= Installation =&lt;br /&gt;
* [[Installation|Instructions for installing the latest build of Archivematica on your server]]&lt;br /&gt;
&lt;br /&gt;
= Upgrading =&lt;br /&gt;
* Currently, Archivematica does not support upgrading from one version to the next. A re-install is required.&lt;br /&gt;
&lt;br /&gt;
= Dashboard administration tab =&lt;br /&gt;
&lt;br /&gt;
The Archivematica administration pages, under the Administration tab of the dashboard, allows you to configure application components and manage users.&lt;br /&gt;
&lt;br /&gt;
== Transfer source directories ==&lt;br /&gt;
&lt;br /&gt;
Unlike previous versions, Archivematica v0.9 allows you to start transfers using the web interface rather than the operating system's file browser. Source files for transfers, however, can't be uploaded using the web interface: they must exist on volumes accessible to the Archivematica server.&lt;br /&gt;
&lt;br /&gt;
When starting a transfer you're required to select one or more directories of files to add to the transfer. To speed up the process of selecting directories, Archivematica allows you to specify &amp;quot;source directories&amp;quot;. A source directory is a directory in which files and directories likely to be added to a transfer are present.&lt;br /&gt;
&lt;br /&gt;
To add a source directory, while on the transfer source directories page of the Administration tab in the dashboard, simply click the folder icon to expand the starting directory and navigate the interface until you find a directory you'd like to select as a source directory. Once you've found a suitable source directory, click the &amp;quot;Add&amp;quot; button to the right of the directory and it will be added.&lt;br /&gt;
&lt;br /&gt;
To remove a source directory, simply click the &amp;quot;Remove&amp;quot; button to the right of it in the source directory path list.&lt;br /&gt;
&lt;br /&gt;
== AIP storage directories ==&lt;br /&gt;
&lt;br /&gt;
== AtoM DIP upload ==&lt;br /&gt;
&lt;br /&gt;
Archivematica can upload DIPs directly to an [https://www.ica-atom.org/ AtoM] website so the contents can be accessed online. The AtoM DIP upload configuration page is where you specify the details of the AtoM installation you'd like the DIPs uploaded to (and, if using Rsync to transfer the DIP files, Rsync transfer details).&lt;br /&gt;
&lt;br /&gt;
The parameters that you'll most likely want to set are &amp;lt;code&amp;gt;url&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;email&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;password&amp;lt;/code&amp;gt;. These parameters, respectively, specify the destination AtoM website's URL, the email address used to log in to the website, and the password used to log in to the website.&lt;br /&gt;
&lt;br /&gt;
AtoM DIP upload can also use [http://en.wikipedia.org/wiki/Rsync Rsync] as a transfer mechanism. Rsync is an open source utility for efficiently transferring files. The &amp;lt;code&amp;gt;rsync-target&amp;lt;/code&amp;gt; parameter is used to specify an Rsync-style target host/directory pairing, &amp;quot;foobar.com:~/dips/&amp;quot; for example. The &amp;lt;code&amp;gt;rsync-command&amp;lt;/code&amp;gt; parameter is used to specify rsync connection options, &amp;quot;ssh -p 22222 -l user&amp;quot; for example. If you are using the rsync option, please see AtoM server configuration below.&lt;br /&gt;
&lt;br /&gt;
To set any parameters for AtoM DIP upload change the values, preserving the existing format they're specified in, in the &amp;quot;Command arguments&amp;quot; field then click &amp;quot;Save&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Note that in AtoM, the sword plugin (Admin --&amp;gt; qtSwordPlugin) and job scheduling (Admin --&amp;gt; Settings --&amp;gt; Job scheduling) must both be enabled in order for AtoM to receive uploaded DIPs.&lt;br /&gt;
&lt;br /&gt;
=== AtoM server configuration ===&lt;br /&gt;
&lt;br /&gt;
This server configuration step is necessary to allow Archivematica to log in to the AtoM server without passwords, and only when the user is deploying the rsync option described above in the AtoM DIP upload section. &lt;br /&gt;
&lt;br /&gt;
To enable sending DIPs from Archivematica to the AtoM server:&lt;br /&gt;
&lt;br /&gt;
Generate SSH keys for the Archivematica user. Leave the passphrase field blank.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 $ sudo -i -u archivematica&lt;br /&gt;
 $ cd ~&lt;br /&gt;
 $ ssh-keygen&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy the contents of &amp;lt;code&amp;gt;/var/lib/archivematica/.ssh/id_rsa.pub&amp;lt;/code&amp;gt; somewhere handy, you will need it later.&lt;br /&gt;
&lt;br /&gt;
Now, it's time to configure the AtoM server so Archivematica can send the DIPs using SSH/rsync. For that purpose, you will create a user called &amp;lt;code&amp;gt;archivematica&amp;lt;/code&amp;gt; and we are going to assign that user a restricted shell with access only to rsync:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 $ sudo apt-get install rssh&lt;br /&gt;
 $ sudo useradd -d /home/archivematica -m -s /usr/bin/rssh archivematica&lt;br /&gt;
 $ sudo passswd -l archivematica&lt;br /&gt;
 $ sudo vim /etc/rssh.conf // Make sure that allowrsync is uncommented!&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add the SSH key that we generated before:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 $ sudo mkdir /home/archivematica/.ssh&lt;br /&gt;
 $ chmod 700 /home/archivematica/.ssh/&lt;br /&gt;
 $ sudo vim /home/archivematica/.ssh/authorized_keys // Paste here the contents of id_dsa.pub&lt;br /&gt;
 $ chown -R archivematica:archivematica /home/archivematica&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In Archivematica, make sure that you update the &amp;lt;code&amp;gt;--rsync-target&amp;lt;/code&amp;gt; accordingly.&amp;lt;br /&amp;gt;&lt;br /&gt;
These are the parameters that we are passing to the upload-qubit microservice.&amp;lt;br /&amp;gt;&lt;br /&gt;
Go to the Administration &amp;gt; Upload DIP page in the dashboard.&lt;br /&gt;
&lt;br /&gt;
Generic parameters:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--url=&amp;quot;http://atom-hostname/index.php&amp;quot; \&lt;br /&gt;
--email=&amp;quot;demo@example.com&amp;quot; \&lt;br /&gt;
--password=&amp;quot;demo&amp;quot; \&lt;br /&gt;
--uuid=&amp;quot;%SIPUUID%&amp;quot; \&lt;br /&gt;
--rsync-target=&amp;quot;archivematica@atom-hostname:/tmp&amp;quot; \&lt;br /&gt;
--debug&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CONTENTdm DIP upload ==&lt;br /&gt;
&lt;br /&gt;
Archivematica can also upload DIPs to [http://www.contentdm.org/ CONTENTdm] websites. Multiple CONTENTdm destinations may be configured.&lt;br /&gt;
For each possible CONTENTdm DIP upload destination, you'll specify a brief description and configuration parameters appropriate for the destination. Possible paramters include &amp;lt;code&amp;gt;%ContentdmServer%&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;%ContentdmUser%&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;%ContentdmGroup%&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
When changing parameters for a CONTENTdm DIP upload destination simply change the values, preserving the existing format they're specified in. To add an upload destination fill in the form at the bottom of the page with the appropriate values. When you've completed your changes click the &amp;quot;Save&amp;quot; button.&lt;br /&gt;
&lt;br /&gt;
== Processing configuration ==&lt;br /&gt;
&lt;br /&gt;
When processing a SIP or transfer, you may want to automate some of the workflow choices. Choices can be preconfigured by putting a 'processingMCP.xml' file into the root directory of a SIP/transfer. The processing configuration administration page allows you to configure the default 'processingMCP.xml' that's added to a SIP or Transfer if it doesn't alreay contain one. If a SIP or transfer is submitted with a 'processingMCP.xml' file, however, processing decisions will be made with the included file.&lt;br /&gt;
&lt;br /&gt;
Pre-configured choices made here are based off the choices that appear in the dashboard.&lt;br /&gt;
&lt;br /&gt;
The format is:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        &amp;lt;preconfiguredChoice&amp;gt;&lt;br /&gt;
            &amp;lt;appliesTo&amp;gt;Workflow decision - send transfer to quarantine&amp;lt;/appliesTo&amp;gt;&lt;br /&gt;
            &amp;lt;goToChain&amp;gt;Skip quarantine&amp;lt;/goToChain&amp;gt;&lt;br /&gt;
        &amp;lt;/preconfiguredChoice&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where appliesTo is the name of the job presented in the dashboard, and goToChain is the desired selection. Note: these are case sensitive.&lt;br /&gt;
&lt;br /&gt;
== PREMIS agent ==&lt;br /&gt;
&lt;br /&gt;
The PREMIS agent name and code can be set via the administration interface.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Rest API ==&lt;br /&gt;
&lt;br /&gt;
In addition to automation using the processingMCP.xml file, Archivematica includes a REST API for automating transfer approval. Using this API, you can create a custom script that copies a transfer to the appropriate directory then uses the &amp;lt;code&amp;gt;curl&amp;lt;/code&amp;gt; command, or some other means, to let Archivematica know that the copy is complete.&lt;br /&gt;
&lt;br /&gt;
=== API keys ===&lt;br /&gt;
&lt;br /&gt;
Use of the REST API requires the use of API keys. An API key is associated with a specific user. To generate an API key for a user:&lt;br /&gt;
&lt;br /&gt;
# Browse to &amp;lt;code&amp;gt;/administration/accounts/list/&amp;lt;/code&amp;gt;&lt;br /&gt;
# Click the &amp;quot;Edit&amp;quot; button for the user you'd like to generate an API key for&lt;br /&gt;
# Click the &amp;quot;Regenerate API key&amp;quot; checkbox&lt;br /&gt;
# Click &amp;quot;Save&amp;quot;&lt;br /&gt;
&lt;br /&gt;
After generating an API key, you can click the &amp;quot;Edit&amp;quot; button for the user and you should see the API key.&lt;br /&gt;
&lt;br /&gt;
=== IP whitelist ===&lt;br /&gt;
&lt;br /&gt;
In addition to creating API keys, you'll need to add the IP of any computer making REST requests to the REST API whitelist. The IP whitelist can be edited in the administration interface at &amp;lt;code&amp;gt;/administration/api/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Approving a transfer ===&lt;br /&gt;
&lt;br /&gt;
The REST API can be used to approve a transfer. The transfer must first be copied into the appropriate watch directory. To determine the location of the appropriate watch directory, first figure out where the shared directory is from the &amp;lt;code&amp;gt;sharedDirectory&amp;lt;/code&amp;gt; value of &amp;lt;code&amp;gt;/etc/archivematica/MCPServer/serverConfig.conf&amp;lt;/code&amp;gt;. Within that directory is a subdirectory &amp;lt;code&amp;gt;activeTransfers&amp;lt;/code&amp;gt;. In this subdirectory are watch directories for the various transfer types.&lt;br /&gt;
&lt;br /&gt;
When using the REST API to approve a transfer, if a transfer type isn't specified, the transfer will be deemed a standard transfer.&lt;br /&gt;
&lt;br /&gt;
'''HTTP Method:''' POST&lt;br /&gt;
&lt;br /&gt;
'''URL:''' &amp;lt;code&amp;gt;/api/transfer/approve&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Parameters:'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;directory&amp;lt;/code&amp;gt;: directory name of the transfer&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt; (optional): transfer type [standard|dspace|unzipped bag|zipped bag]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;api_key&amp;lt;/code&amp;gt;: an API key&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;username&amp;lt;/code&amp;gt;: the username associated with the API key&lt;br /&gt;
&lt;br /&gt;
Example curl command:&lt;br /&gt;
&lt;br /&gt;
    curl --data &amp;quot;username=rick&amp;amp;api_key=f12d6b323872b3cef0b71be64eddd52f87b851a6&amp;amp;type=standard&amp;amp;directory=MyTransfer&amp;quot; http://127.0.0.1/api/transfer/approve&lt;br /&gt;
&lt;br /&gt;
Example result:&lt;br /&gt;
&lt;br /&gt;
    {&amp;quot;message&amp;quot;: &amp;quot;Approval successful.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
=== Listing unapproved transfers ===&lt;br /&gt;
&lt;br /&gt;
The REST API can be used to get a list of unapproved transfers. Each transfer's directory name and type is returned.&lt;br /&gt;
&lt;br /&gt;
'''Method:''' &amp;lt;code&amp;gt;GET&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''URL:''' &amp;lt;code&amp;gt;/api/transfer/unapproved&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Parameters:'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;api_key&amp;lt;/code&amp;gt;: an API key&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;username&amp;lt;/code&amp;gt;: the username associated with the API key&lt;br /&gt;
&lt;br /&gt;
Example curl command:&lt;br /&gt;
&lt;br /&gt;
    curl &amp;quot;http://127.0.0.1/api/transfer/unapproved?username=rick&amp;amp;api_key=f12d6b323872b3cef0b71be64eddd52f87b851a6&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Example result:&lt;br /&gt;
&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;message&amp;quot;: &amp;quot;Fetched unapproved transfers successfully.&amp;quot;,&lt;br /&gt;
        &amp;quot;results&amp;quot;: [{&lt;br /&gt;
                &amp;quot;directory&amp;quot;: &amp;quot;MyTransfer&amp;quot;,&lt;br /&gt;
               &amp;quot;type&amp;quot;: &amp;quot;standard&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    }&lt;br /&gt;
== Users ==&lt;br /&gt;
&lt;br /&gt;
The dashboard provides a simple cookie-based user authentication system using the [https://docs.djangoproject.com/en/1.4/topics/auth/ Django authentication framework]. Access to the dashboard is limited only to logged-in users and a login page will be shown when the user is not recognized. If the application can't find any user in the database, the user creation page will be shown instead, allowing the creation of an administrator account.&lt;br /&gt;
&lt;br /&gt;
Users can be also created, modified and deleted from the Administration tab. Here you can manage which users have access to Archivematica and what level of access they have. Standard users are able to access all sections of the interterface except for the administration section.&lt;br /&gt;
&lt;br /&gt;
You can add a new user to the system by clicking the &amp;quot;Add new&amp;quot; button on the user administration page. These users won't have administrator capability. By adding a user you provide a way to access Archivematica using a username/password combination. Should you need to change a user's username or password, you can do so by clicking the &amp;quot;Edit&amp;quot; button, corresponding to the user, on the administration page. Should you need to revoke a user's access, you can click the corresponding &amp;quot;Delete&amp;quot; button.&lt;br /&gt;
&lt;br /&gt;
=== CLI creation of administrative users ===&lt;br /&gt;
&lt;br /&gt;
If you need an additional administrator user one can be created via the command-line after navigating to the &amp;lt;code&amp;gt;src/dashboard/src&amp;lt;/code&amp;gt; directory in the source tree.&lt;br /&gt;
&lt;br /&gt;
    python manage.py createsuperuser --settings='settings.common'&lt;br /&gt;
&lt;br /&gt;
=== CLI password resetting ===&lt;br /&gt;
&lt;br /&gt;
If you've forgotten the password for your administrator user, or any other user, you can change it via the command-line.&lt;br /&gt;
&lt;br /&gt;
    python manage.py changepassword &amp;lt;username&amp;gt; --settings='settings.common'&lt;br /&gt;
&lt;br /&gt;
===Security===&lt;br /&gt;
&lt;br /&gt;
Archivematica uses [http://en.wikipedia.org/wiki/PBKDF2 PBKDF2] as the default algorithm to store passwords. This should be sufficient for most users: it's quite secure, requiring massive amounts of computing time to break. However, other algorithms could be used as the following document explains: [https://docs.djangoproject.com/en/1.4/topics/auth/#how-django-stores-passwords How Django stores passwords].&lt;br /&gt;
&lt;br /&gt;
Our plan is to extend this functionality in the future adding groups and granular permissions support: see issue 922 to read more about it.&lt;br /&gt;
&lt;br /&gt;
= Dashboard preservation planning tab =&lt;br /&gt;
&lt;br /&gt;
== Format Policy Registry (FPR) ==&lt;br /&gt;
&lt;br /&gt;
= Customization and automation =&lt;br /&gt;
* Workflow processing decisions can be made in the processingMCP.xml file. [https://www.archivematica.org/wiki/Administrator_manual_0.9#Processing_configuration See here.]&lt;br /&gt;
* Workflows are currently created at the development level. &lt;br /&gt;
*: Some resources avialable&lt;br /&gt;
*:* [[MCP_Basic_Configuration]]&lt;br /&gt;
*:* [[MCP]]&lt;br /&gt;
*:* [[Creating_Custom_Workflows]]&lt;br /&gt;
*:* [[Development]]&lt;br /&gt;
* Normalization commands can be viewed in the presveration planning tab.&lt;br /&gt;
* Normalization paths and commands are currently editedable under the preservation planning tab in the dashboard.&lt;br /&gt;
&lt;br /&gt;
= Elasticsearch =&lt;br /&gt;
&lt;br /&gt;
Archivematica has the capability of indexing data about files contained in AIPs and this data can be [[Elasticsearch Development|accessed programatically]] for various applications.&lt;br /&gt;
&lt;br /&gt;
If, for whatever reason, you need to delete an ElasticSearch index please see [[ElasticSearch Administration]].&lt;br /&gt;
&lt;br /&gt;
If, for whatever reason, you need to delete an Elasticsearch index programmatically, this can be done with pyes using the following code.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import sys&lt;br /&gt;
sys.path.append(&amp;quot;/home/demo/archivematica/src/archivematicaCommon/lib/externals&amp;quot;)&lt;br /&gt;
from pyes import *&lt;br /&gt;
conn = ES('127.0.0.1:9200')&lt;br /&gt;
&lt;br /&gt;
try:&lt;br /&gt;
    conn.delete_index('aips')&lt;br /&gt;
except:&lt;br /&gt;
    print &amp;quot;Error deleting index or index already deleted.&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= [[Data backup]] =&lt;br /&gt;
* How to protect your data from disaster.&lt;br /&gt;
&lt;br /&gt;
= Security =&lt;br /&gt;
* It is recommended to change the default passwords.&lt;br /&gt;
** The ICA-ATOM/ContentDM passwords can be set in the administration tab in the dashboard.&lt;br /&gt;
** The database connection credentials can be set in the /etc/archivematica/archivematicaCommon/dbsettings. These will need to a mysql user with permissions to the MCP database.&lt;br /&gt;
:* Database&lt;br /&gt;
::* The database user&lt;br /&gt;
::* /etc/archivematica/archivematicaCommon/dbsettings&lt;br /&gt;
::* The dashboard config file?&lt;br /&gt;
:* Content DM&lt;br /&gt;
:* ICA-AtoM&lt;br /&gt;
* Archivematica does not presently support secured sockets. See Issue 990, Issue 690 Because of this, it's highly recommended to run Archivematica on a secure, isolated network.&lt;br /&gt;
&lt;br /&gt;
= Questions =&lt;br /&gt;
&lt;br /&gt;
== Frequently asked questions ==&lt;br /&gt;
* [[AM_FAQ|Solutions to common questions]]&lt;br /&gt;
&lt;br /&gt;
== Discussion group ==&lt;br /&gt;
* [[http://groups.google.com/group/archivematica?hl=en Discussion group] For questions not on the FAQ]&lt;/div&gt;</summary>
		<author><name>Joseph</name></author>
	</entry>
	<entry>
		<id>https://wiki.archivematica.org/index.php?title=Administrator_manual_0.10&amp;diff=7977</id>
		<title>Administrator manual 0.10</title>
		<link rel="alternate" type="text/html" href="https://wiki.archivematica.org/index.php?title=Administrator_manual_0.10&amp;diff=7977"/>
		<updated>2013-04-29T22:04:12Z</updated>

		<summary type="html">&lt;p&gt;Joseph: /* Dashboard administration tab */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Main Page]] &amp;gt; [[Documentation]] &amp;gt; Administrator Manual&lt;br /&gt;
&lt;br /&gt;
This manual covers administrator-specific instructions for Archivematica. It will also provide help for using forms in the Administration tab of the Archivematica dashboard and the administrator capabilities in the Format Policy Registry (FPR), which you will find in the Preservation planning tab of the dashboard.&lt;br /&gt;
&lt;br /&gt;
For end-user instructions, please see the [[User_manual_0.10|user manual]].&lt;br /&gt;
&lt;br /&gt;
= Installation =&lt;br /&gt;
* [[Installation|Instructions for installing the latest build of Archivematica on your server]]&lt;br /&gt;
&lt;br /&gt;
= Upgrading =&lt;br /&gt;
* Currently, Archivematica does not support upgrading from one version to the next. A re-install is required.&lt;br /&gt;
&lt;br /&gt;
= Dashboard administration tab =&lt;br /&gt;
&lt;br /&gt;
The Archivematica administration pages, under the Administration tab of the dashboard, allows you to configure application components and manage users.&lt;br /&gt;
&lt;br /&gt;
== Transfer source directories ==&lt;br /&gt;
&lt;br /&gt;
Unlike previous versions, Archivematica v0.9 allows you to start transfers using the web interface rather than the operating system's file browser. Source files for transfers, however, can't be uploaded using the web interface: they must exist on volumes accessible to the Archivematica server.&lt;br /&gt;
&lt;br /&gt;
When starting a transfer you're required to select one or more directories of files to add to the transfer. To speed up the process of selecting directories, Archivematica allows you to specify &amp;quot;source directories&amp;quot;. A source directory is a directory in which files and directories likely to be added to a transfer are present.&lt;br /&gt;
&lt;br /&gt;
To add a source directory, while on the transfer source directories page of the Administration tab in the dashboard, simply click the folder icon to expand the starting directory and navigate the interface until you find a directory you'd like to select as a source directory. Once you've found a suitable source directory, click the &amp;quot;Add&amp;quot; button to the right of the directory and it will be added.&lt;br /&gt;
&lt;br /&gt;
To remove a source directory, simply click the &amp;quot;Remove&amp;quot; button to the right of it in the source directory path list.&lt;br /&gt;
&lt;br /&gt;
== AIP storage directories ==&lt;br /&gt;
&lt;br /&gt;
== AtoM DIP upload ==&lt;br /&gt;
&lt;br /&gt;
Archivematica can upload DIPs directly to an [https://www.ica-atom.org/ AtoM] website so the contents can be accessed online. The AtoM DIP upload configuration page is where you specify the details of the AtoM installation you'd like the DIPs uploaded to (and, if using Rsync to transfer the DIP files, Rsync transfer details).&lt;br /&gt;
&lt;br /&gt;
The parameters that you'll most likely want to set are &amp;lt;code&amp;gt;url&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;email&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;password&amp;lt;/code&amp;gt;. These parameters, respectively, specify the destination AtoM website's URL, the email address used to log in to the website, and the password used to log in to the website.&lt;br /&gt;
&lt;br /&gt;
AtoM DIP upload can also use [http://en.wikipedia.org/wiki/Rsync Rsync] as a transfer mechanism. Rsync is an open source utility for efficiently transferring files. The &amp;lt;code&amp;gt;rsync-target&amp;lt;/code&amp;gt; parameter is used to specify an Rsync-style target host/directory pairing, &amp;quot;foobar.com:~/dips/&amp;quot; for example. The &amp;lt;code&amp;gt;rsync-command&amp;lt;/code&amp;gt; parameter is used to specify rsync connection options, &amp;quot;ssh -p 22222 -l user&amp;quot; for example. If you are using the rsync option, please see AtoM server configuration below.&lt;br /&gt;
&lt;br /&gt;
To set any parameters for AtoM DIP upload change the values, preserving the existing format they're specified in, in the &amp;quot;Command arguments&amp;quot; field then click &amp;quot;Save&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Note that in AtoM, the sword plugin (Admin --&amp;gt; qtSwordPlugin) and job scheduling (Admin --&amp;gt; Settings --&amp;gt; Job scheduling) must both be enabled in order for AtoM to receive uploaded DIPs.&lt;br /&gt;
&lt;br /&gt;
=== AtoM server configuration ===&lt;br /&gt;
&lt;br /&gt;
This server configuration step is necessary to allow Archivematica to log in to the AtoM server without passwords, and only when the user is deploying the rsync option described above in the AtoM DIP upload section. &lt;br /&gt;
&lt;br /&gt;
To enable sending DIPs from Archivematica to the AtoM server:&lt;br /&gt;
&lt;br /&gt;
Generate SSH keys for the Archivematica user. Leave the passphrase field blank.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 $ sudo -i -u archivematica&lt;br /&gt;
 $ cd ~&lt;br /&gt;
 $ ssh-keygen&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy the contents of &amp;lt;code&amp;gt;/var/lib/archivematica/.ssh/id_rsa.pub&amp;lt;/code&amp;gt; somewhere handy, you will need it later.&lt;br /&gt;
&lt;br /&gt;
Now, it's time to configure the AtoM server so Archivematica can send the DIPs using SSH/rsync. For that purpose, you will create a user called &amp;lt;code&amp;gt;archivematica&amp;lt;/code&amp;gt; and we are going to assign that user a restricted shell with access only to rsync:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 $ sudo apt-get install rssh&lt;br /&gt;
 $ sudo useradd -d /home/archivematica -m -s /usr/bin/rssh archivematica&lt;br /&gt;
 $ sudo passswd -l archivematica&lt;br /&gt;
 $ sudo vim /etc/rssh.conf // Make sure that allowrsync is uncommented!&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add the SSH key that we generated before:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 $ sudo mkdir /home/archivematica/.ssh&lt;br /&gt;
 $ chmod 700 /home/archivematica/.ssh/&lt;br /&gt;
 $ sudo vim /home/archivematica/.ssh/authorized_keys // Paste here the contents of id_dsa.pub&lt;br /&gt;
 $ chown -R archivematica:archivematica /home/archivematica&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In Archivematica, make sure that you update the &amp;lt;code&amp;gt;--rsync-target&amp;lt;/code&amp;gt; accordingly.&amp;lt;br /&amp;gt;&lt;br /&gt;
These are the parameters that we are passing to the upload-qubit microservice.&amp;lt;br /&amp;gt;&lt;br /&gt;
Go to the Administration &amp;gt; Upload DIP page in the dashboard.&lt;br /&gt;
&lt;br /&gt;
Generic parameters:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--url=&amp;quot;http://atom-hostname/index.php&amp;quot; \&lt;br /&gt;
--email=&amp;quot;demo@example.com&amp;quot; \&lt;br /&gt;
--password=&amp;quot;demo&amp;quot; \&lt;br /&gt;
--uuid=&amp;quot;%SIPUUID%&amp;quot; \&lt;br /&gt;
--rsync-target=&amp;quot;archivematica@atom-hostname:/tmp&amp;quot; \&lt;br /&gt;
--debug&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== CONTENTdm DIP upload ==&lt;br /&gt;
&lt;br /&gt;
Archivematica can also upload DIPs to [http://www.contentdm.org/ CONTENTdm] websites. Multiple CONTENTdm destinations may be configured.&lt;br /&gt;
For each possible CONTENTdm DIP upload destination, you'll specify a brief description and configuration parameters appropriate for the destination. Possible paramters include &amp;lt;code&amp;gt;%ContentdmServer%&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;%ContentdmUser%&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;%ContentdmGroup%&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
When changing parameters for a CONTENTdm DIP upload destination simply change the values, preserving the existing format they're specified in. To add an upload destination fill in the form at the bottom of the page with the appropriate values. When you've completed your changes click the &amp;quot;Save&amp;quot; button.&lt;br /&gt;
&lt;br /&gt;
== Processing configuration ==&lt;br /&gt;
&lt;br /&gt;
When processing a SIP or transfer, you may want to automate some of the workflow choices. Choices can be preconfigured by putting a 'processingMCP.xml' file into the root directory of a SIP/transfer. The processing configuration administration page allows you to configure the default 'processingMCP.xml' that's added to a SIP or Transfer if it doesn't alreay contain one. If a SIP or transfer is submitted with a 'processingMCP.xml' file, however, processing decisions will be made with the included file.&lt;br /&gt;
&lt;br /&gt;
Pre-configured choices made here are based off the choices that appear in the dashboard.&lt;br /&gt;
&lt;br /&gt;
The format is:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
        &amp;lt;preconfiguredChoice&amp;gt;&lt;br /&gt;
            &amp;lt;appliesTo&amp;gt;Workflow decision - send transfer to quarantine&amp;lt;/appliesTo&amp;gt;&lt;br /&gt;
            &amp;lt;goToChain&amp;gt;Skip quarantine&amp;lt;/goToChain&amp;gt;&lt;br /&gt;
        &amp;lt;/preconfiguredChoice&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where appliesTo is the name of the job presented in the dashboard, and goToChain is the desired selection. Note: these are case sensitive.&lt;br /&gt;
&lt;br /&gt;
== PREMIS agent ==&lt;br /&gt;
&lt;br /&gt;
The PREMIS agent name and code can be set via the administration interface.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Rest API ==&lt;br /&gt;
&lt;br /&gt;
In addition to automation using the processingMCP.xml file, Archivematica includes a REST API for automating transfer approval. Using this API, you can create a custom script that copies a transfer to the appropriate directory then uses the &amp;lt;code&amp;gt;curl&amp;lt;/code&amp;gt; command, or some other means, to let Archivematica know that the copy is complete.&lt;br /&gt;
&lt;br /&gt;
=== API keys ===&lt;br /&gt;
&lt;br /&gt;
Use of the REST API requires the use of API keys. An API key is associated with a specific user. To generate an API key for a user:&lt;br /&gt;
&lt;br /&gt;
# Browse to &amp;lt;code&amp;gt;/administration/accounts/list/&amp;lt;/code&amp;gt;&lt;br /&gt;
# Click the &amp;quot;Edit&amp;quot; button for the user you'd like to generate an API key for&lt;br /&gt;
# Click the &amp;quot;Regenerate API key&amp;quot; checkbox&lt;br /&gt;
# Click &amp;quot;Save&amp;quot;&lt;br /&gt;
&lt;br /&gt;
After generating an API key, you can click the &amp;quot;Edit&amp;quot; button for the user and you should see the API key.&lt;br /&gt;
&lt;br /&gt;
=== IP whitelist ===&lt;br /&gt;
&lt;br /&gt;
In addition to creating API keys, you'll need to add the IP of any computer making REST requests to the REST API whitelist. The IP whitelist can be edited in the administration interface at &amp;lt;code&amp;gt;/administration/api/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Approving a transfer ===&lt;br /&gt;
&lt;br /&gt;
The REST API can be used to approve a transfer. The transfer must first be copied into the appropriate watch directory. To determine the location of the appropriate watch directory, first figure out where the shared directory is from the &amp;lt;code&amp;gt;sharedDirectory&amp;lt;/code&amp;gt; value of &amp;lt;code&amp;gt;/etc/archivematica/MCPServer/serverConfig.conf&amp;lt;/code&amp;gt;. Within that directory is a subdirectory &amp;lt;code&amp;gt;activeTransfers&amp;lt;/code&amp;gt;. In this subdirectory are watch directories for the various transfer types.&lt;br /&gt;
&lt;br /&gt;
When using the REST API to approve a transfer, if a transfer type isn't specified, the transfer will be deemed a standard transfer.&lt;br /&gt;
&lt;br /&gt;
'''HTTP Method:''' POST&lt;br /&gt;
&lt;br /&gt;
'''URL:''' &amp;lt;code&amp;gt;/api/transfer/approve&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Parameters:'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;directory&amp;lt;/code&amp;gt;: directory name of the transfer&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt; (optional): transfer type [standard|dspace|unzipped bag|zipped bag]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;api_key&amp;lt;/code&amp;gt;: an API key&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;username&amp;lt;/code&amp;gt;: the username associated with the API key&lt;br /&gt;
&lt;br /&gt;
Example curl command:&lt;br /&gt;
&lt;br /&gt;
    curl --data &amp;quot;username=rick&amp;amp;api_key=f12d6b323872b3cef0b71be64eddd52f87b851a6&amp;amp;type=standard&amp;amp;directory=MyTransfer&amp;quot; http://127.0.0.1/api/transfer/approve&lt;br /&gt;
&lt;br /&gt;
Example result:&lt;br /&gt;
&lt;br /&gt;
    {&amp;quot;message&amp;quot;: &amp;quot;Approval successful.&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
=== Listing unapproved transfers ===&lt;br /&gt;
&lt;br /&gt;
The REST API can be used to get a list of unapproved transfers. Each transfer's directory name and type is returned.&lt;br /&gt;
&lt;br /&gt;
'''Method:''' &amp;lt;code&amp;gt;GET&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''URL:''' &amp;lt;code&amp;gt;/api/transfer/unapproved&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Parameters:'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;api_key&amp;lt;/code&amp;gt;: an API key&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;username&amp;lt;/code&amp;gt;: the username associated with the API key&lt;br /&gt;
&lt;br /&gt;
Example curl command:&lt;br /&gt;
&lt;br /&gt;
    curl &amp;quot;http://127.0.0.1/api/transfer/unapproved?username=rick&amp;amp;api_key=f12d6b323872b3cef0b71be64eddd52f87b851a6&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Example result:&lt;br /&gt;
&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;message&amp;quot;: &amp;quot;Fetched unapproved transfers successfully.&amp;quot;,&lt;br /&gt;
        &amp;quot;results&amp;quot;: [{&lt;br /&gt;
                &amp;quot;directory&amp;quot;: &amp;quot;MyTransfer&amp;quot;,&lt;br /&gt;
               &amp;quot;type&amp;quot;: &amp;quot;standard&amp;quot;&lt;br /&gt;
            }&lt;br /&gt;
        ]&lt;br /&gt;
    }&lt;br /&gt;
== Users ==&lt;br /&gt;
&lt;br /&gt;
The dashboard provides a simple cookie-based user authentication system using the [https://docs.djangoproject.com/en/1.4/topics/auth/ Django authentication framework]. Access to the dashboard is limited only to logged-in users and a login page will be shown when the user is not recognized. If the application can't find any user in the database, the user creation page will be shown instead, allowing the creation of an administrator account.&lt;br /&gt;
&lt;br /&gt;
Users can be also created, modified and deleted from the Administration tab. Here you can manage which users have access to Archivematica and what level of access they have. Standard users are able to access all sections of the interterface except for the administration section.&lt;br /&gt;
&lt;br /&gt;
You can add a new user to the system by clicking the &amp;quot;Add new&amp;quot; button on the user administration page. These users won't have administrator capability. By adding a user you provide a way to access Archivematica using a username/password combination. Should you need to change a user's username or password, you can do so by clicking the &amp;quot;Edit&amp;quot; button, corresponding to the user, on the administration page. Should you need to revoke a user's access, you can click the corresponding &amp;quot;Delete&amp;quot; button.&lt;br /&gt;
&lt;br /&gt;
=== CLI creation of administrative users ===&lt;br /&gt;
&lt;br /&gt;
If you need an additional administrator user one can be created via the command-line after navigating to the &amp;lt;code&amp;gt;src/dashboard/src&amp;lt;/code&amp;gt; directory in the source tree.&lt;br /&gt;
&lt;br /&gt;
    python manage.py createsuperuser --settings='settings.common'&lt;br /&gt;
&lt;br /&gt;
=== CLI password resetting ===&lt;br /&gt;
&lt;br /&gt;
If you've forgotten the password for your administrator user, or any other user, you can change it via the command-line.&lt;br /&gt;
&lt;br /&gt;
    python manage.py changepassword &amp;lt;username&amp;gt; --settings='settings.common'&lt;br /&gt;
&lt;br /&gt;
===Security===&lt;br /&gt;
&lt;br /&gt;
Archivematica uses [http://en.wikipedia.org/wiki/PBKDF2 PBKDF2] as the default algorithm to store passwords. This should be sufficient for most users: it's quite secure, requiring massive amounts of computing time to break. However, other algorithms could be used as the following document explains: [https://docs.djangoproject.com/en/1.4/topics/auth/#how-django-stores-passwords How Django stores passwords].&lt;br /&gt;
&lt;br /&gt;
Our plan is to extend this functionality in the future adding groups and granular permissions support: see issue 922 to read more about it.&lt;br /&gt;
&lt;br /&gt;
= Dashboard preservation planning tab =&lt;br /&gt;
&lt;br /&gt;
== Format Policy Registry (FPR) ==&lt;br /&gt;
&lt;br /&gt;
= Customization and automation =&lt;br /&gt;
* Workflow processing decisions can be made in the processingMCP.xml file. [https://www.archivematica.org/wiki/Administrator_manual_0.9#Processing_configuration See here.]&lt;br /&gt;
* Workflows are currently created at the development level. &lt;br /&gt;
*: Some resources avialable&lt;br /&gt;
*:* [[MCP_Basic_Configuration]]&lt;br /&gt;
*:* [[MCP]]&lt;br /&gt;
*:* [[Creating_Custom_Workflows]]&lt;br /&gt;
*:* [[Development]]&lt;br /&gt;
* Normalization commands can be viewed in the presveration planning tab.&lt;br /&gt;
* Normalization paths and commands are currently edited/created at the development level. [[Transcoder|See transcoder for more details.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Elasticsearch =&lt;br /&gt;
&lt;br /&gt;
Archivematica has the capability of indexing data about files contained in AIPs and this data can be [[Elasticsearch Development|accessed programatically]] for various applications.&lt;br /&gt;
&lt;br /&gt;
If, for whatever reason, you need to delete an ElasticSearch index please see [[ElasticSearch Administration]].&lt;br /&gt;
&lt;br /&gt;
If, for whatever reason, you need to delete an Elasticsearch index programmatically, this can be done with pyes using the following code.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
import sys&lt;br /&gt;
sys.path.append(&amp;quot;/home/demo/archivematica/src/archivematicaCommon/lib/externals&amp;quot;)&lt;br /&gt;
from pyes import *&lt;br /&gt;
conn = ES('127.0.0.1:9200')&lt;br /&gt;
&lt;br /&gt;
try:&lt;br /&gt;
    conn.delete_index('aips')&lt;br /&gt;
except:&lt;br /&gt;
    print &amp;quot;Error deleting index or index already deleted.&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= [[Data backup]] =&lt;br /&gt;
* How to protect your data from disaster.&lt;br /&gt;
&lt;br /&gt;
= Security =&lt;br /&gt;
* It is recommended to change the default passwords.&lt;br /&gt;
** The ICA-ATOM/ContentDM passwords can be set in the administration tab in the dashboard.&lt;br /&gt;
** The database connection credentials can be set in the /etc/archivematica/archivematicaCommon/dbsettings. These will need to a mysql user with permissions to the MCP database.&lt;br /&gt;
:* Database&lt;br /&gt;
::* The database user&lt;br /&gt;
::* /etc/archivematica/archivematicaCommon/dbsettings&lt;br /&gt;
::* The dashboard config file?&lt;br /&gt;
:* Content DM&lt;br /&gt;
:* ICA-AtoM&lt;br /&gt;
* Archivematica does not presently support secured sockets. See Issue 990, Issue 690 Because of this, it's highly recommended to run Archivematica on a secure, isolated network.&lt;br /&gt;
&lt;br /&gt;
= Questions =&lt;br /&gt;
&lt;br /&gt;
== Frequently asked questions ==&lt;br /&gt;
* [[AM_FAQ|Solutions to common questions]]&lt;br /&gt;
&lt;br /&gt;
== Discussion group ==&lt;br /&gt;
* [[http://groups.google.com/group/archivematica?hl=en Discussion group] For questions not on the FAQ]&lt;/div&gt;</summary>
		<author><name>Joseph</name></author>
	</entry>
	<entry>
		<id>https://wiki.archivematica.org/index.php?title=File:Archivematica_generated_workflow_diagram.svg&amp;diff=7958</id>
		<title>File:Archivematica generated workflow diagram.svg</title>
		<link rel="alternate" type="text/html" href="https://wiki.archivematica.org/index.php?title=File:Archivematica_generated_workflow_diagram.svg&amp;diff=7958"/>
		<updated>2013-04-29T21:08:07Z</updated>

		<summary type="html">&lt;p&gt;Joseph: Joseph uploaded a new version of &amp;amp;quot;File:Archivematica generated workflow diagram.svg&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This file was generated during 1.0 development using script:&lt;br /&gt;
https://github.com/artefactual/archivematica/blob/joseph/src/MCPgraphing/lib/graphLinks.py&lt;/div&gt;</summary>
		<author><name>Joseph</name></author>
	</entry>
	<entry>
		<id>https://wiki.archivematica.org/index.php?title=Development&amp;diff=7858</id>
		<title>Development</title>
		<link rel="alternate" type="text/html" href="https://wiki.archivematica.org/index.php?title=Development&amp;diff=7858"/>
		<updated>2013-04-24T20:56:01Z</updated>

		<summary type="html">&lt;p&gt;Joseph: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Main Page]] &amp;gt; Development&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This page lists the resources available for project contributors:&lt;br /&gt;
&lt;br /&gt;
==Project Communication==&lt;br /&gt;
* [http://groups.google.ca/group/archivematica Discussion list]&lt;br /&gt;
*[http://code.google.com/p/archivematica/issues/list Issues list] ([http://groups.google.com/group/archivematica-issues auto-updates])&lt;br /&gt;
* [[Chat room]]&lt;br /&gt;
* [[:Category:meetings|Weekly project meeting]]&lt;br /&gt;
* Archivematica.org wiki: [[Special:UserLogin|create an account]] to correct and add content on this wiki&lt;br /&gt;
&lt;br /&gt;
==Developer Resources==&lt;br /&gt;
* [https://github.com/artefactual/archivematica Code repository]&lt;br /&gt;
* [[Development environment]]&lt;br /&gt;
* [[Contribute code]]&lt;br /&gt;
**[[Patches]]&lt;br /&gt;
**[[Contributor Agreement]]&lt;br /&gt;
**[[License]]&lt;br /&gt;
**[[Trademark]]&lt;br /&gt;
* [[:Category:Development documentation|Development documentation]]&lt;br /&gt;
* [[Development_roadmap:_Archivematica_1.0|Development Roadmap]]&lt;br /&gt;
* [[Creating Custom Workflows]]&lt;br /&gt;
* [[Development_Glossary]]&lt;br /&gt;
&lt;br /&gt;
==Project Management==&lt;br /&gt;
Archivematica software development, release management, and community support is managed by [http://artefactual.com Artefactual Systems] in collaboration with its contract clients and a growing network of Archivematica users and service partners.&lt;br /&gt;
&lt;br /&gt;
[[Category:Development documentation]]&lt;/div&gt;</summary>
		<author><name>Joseph</name></author>
	</entry>
	<entry>
		<id>https://wiki.archivematica.org/index.php?title=MCPServer/TaskTypes&amp;diff=7833</id>
		<title>MCPServer/TaskTypes</title>
		<link rel="alternate" type="text/html" href="https://wiki.archivematica.org/index.php?title=MCPServer/TaskTypes&amp;diff=7833"/>
		<updated>2013-04-24T20:28:50Z</updated>

		<summary type="html">&lt;p&gt;Joseph: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
* [[MCP/TaskTypes/one_instance]]&lt;br /&gt;
* [[MCP/TaskTypes/for_each_file]]&lt;br /&gt;
* [[MCP/TaskTypes/magic_links]]&lt;br /&gt;
* [[MCP/TaskTypes/unit_variables]]&lt;br /&gt;
* [[MCP/TaskTypes/processing_choices]]&lt;br /&gt;
* [[MCP/TaskTypes/Normalization]]&lt;/div&gt;</summary>
		<author><name>Joseph</name></author>
	</entry>
	<entry>
		<id>https://wiki.archivematica.org/index.php?title=MCPServer/TaskTypes&amp;diff=7807</id>
		<title>MCPServer/TaskTypes</title>
		<link rel="alternate" type="text/html" href="https://wiki.archivematica.org/index.php?title=MCPServer/TaskTypes&amp;diff=7807"/>
		<updated>2013-04-23T21:43:10Z</updated>

		<summary type="html">&lt;p&gt;Joseph: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
* [[MCP/TaskTypes/one_instance]]&lt;br /&gt;
* [[MCP/TaskTypes/for_each_file]]&lt;br /&gt;
* [[MCP/TaskTypes/magic_links]]&lt;br /&gt;
* [[MCP/TaskTypes/unit_variables]]&lt;br /&gt;
* [[MCP/TaskTypes/processing_choices]]&lt;br /&gt;
&lt;br /&gt;
* [[MCP/TaskTypes/Split_creating_Jobs_for_each_file]]&lt;br /&gt;
* [[MCP/TaskTypes/Split_Job_into_many_links_based_on_file_ID]]&lt;br /&gt;
* [[MCP/TaskTypes/Transcoder_task_type]]&lt;/div&gt;</summary>
		<author><name>Joseph</name></author>
	</entry>
	<entry>
		<id>https://wiki.archivematica.org/index.php?title=MCPServer/TaskTypes&amp;diff=7806</id>
		<title>MCPServer/TaskTypes</title>
		<link rel="alternate" type="text/html" href="https://wiki.archivematica.org/index.php?title=MCPServer/TaskTypes&amp;diff=7806"/>
		<updated>2013-04-23T21:39:10Z</updated>

		<summary type="html">&lt;p&gt;Joseph: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
* [[MCP/TaskTypes/one_instance]]&lt;br /&gt;
* [[MCP/TaskTypes/for_each_file]]&lt;br /&gt;
* [[MCP/TaskTypes/magic_links]]&lt;br /&gt;
&lt;br /&gt;
* [[MCP/TaskTypes/unit_variables]]&lt;br /&gt;
&lt;br /&gt;
* [[MCP/TaskTypes/get_user_choice_to_proceed_with]]&lt;br /&gt;
* [[MCP/TaskTypes/get_replacement_dic_from_user_choice]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [[MCP/TaskTypes/Get_microservice_generated_list_in_stdOut]]&lt;br /&gt;
* [[MCP/TaskTypes/Get_user_choice_from_microservice_generated_list]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [[MCP/TaskTypes/Split_creating_Jobs_for_each_file]]&lt;br /&gt;
* [[MCP/TaskTypes/Split_Job_into_many_links_based_on_file_ID]]&lt;br /&gt;
* [[MCP/TaskTypes/Transcoder_task_type]]&lt;/div&gt;</summary>
		<author><name>Joseph</name></author>
	</entry>
	<entry>
		<id>https://wiki.archivematica.org/index.php?title=MCPServer/TaskTypes&amp;diff=7804</id>
		<title>MCPServer/TaskTypes</title>
		<link rel="alternate" type="text/html" href="https://wiki.archivematica.org/index.php?title=MCPServer/TaskTypes&amp;diff=7804"/>
		<updated>2013-04-23T21:33:57Z</updated>

		<summary type="html">&lt;p&gt;Joseph: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
* [[MCP/TaskTypes/one_instance]]&lt;br /&gt;
* [[MCP/TaskTypes/for_each_file]]&lt;br /&gt;
* [[MCP/TaskTypes/magic_links]]&lt;br /&gt;
&lt;br /&gt;
* [[MCP/TaskTypes/linkTaskManagerUnitVariableLinkPull]]&lt;br /&gt;
* [[MCP/TaskTypes/linkTaskManagerSetUnitVariable]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [[MCP/TaskTypes/get_user_choice_to_proceed_with]]&lt;br /&gt;
* [[MCP/TaskTypes/get_replacement_dic_from_user_choice]]&lt;br /&gt;
&lt;br /&gt;
* [[MCP/TaskTypes/Get_microservice_generated_list_in_stdOut]]&lt;br /&gt;
* [[MCP/TaskTypes/Get_user_choice_from_microservice_generated_list]]&lt;br /&gt;
&lt;br /&gt;
* [[MCP/TaskTypes/Split_creating_Jobs_for_each_file]]&lt;br /&gt;
* [[MCP/TaskTypes/Split_Job_into_many_links_based_on_file_ID]]&lt;br /&gt;
* [[MCP/TaskTypes/Transcoder_task_type]]&lt;/div&gt;</summary>
		<author><name>Joseph</name></author>
	</entry>
	<entry>
		<id>https://wiki.archivematica.org/index.php?title=MCPServer/TaskTypes&amp;diff=7803</id>
		<title>MCPServer/TaskTypes</title>
		<link rel="alternate" type="text/html" href="https://wiki.archivematica.org/index.php?title=MCPServer/TaskTypes&amp;diff=7803"/>
		<updated>2013-04-23T21:24:24Z</updated>

		<summary type="html">&lt;p&gt;Joseph: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Archivematica MCP task types are as follows:&lt;br /&gt;
* [[MCP/TaskTypes/Get_user_choice_from_microservice_generated_list]]&lt;br /&gt;
* [[MCP/TaskTypes/one_instance]]&lt;br /&gt;
* [[MCP/TaskTypes/Split_Job_into_many_links_based_on_file_ID]]&lt;br /&gt;
* [[MCP/TaskTypes/Transcoder_task_type]]&lt;br /&gt;
* [[MCP/TaskTypes/get_user_choice_to_proceed_with]]&lt;br /&gt;
* [[MCP/TaskTypes/linkTaskManagerSetUnitVariable]]&lt;br /&gt;
* [[MCP/TaskTypes/magic_links]]&lt;br /&gt;
* [[MCP/TaskTypes/Split_creating_Jobs_for_each_file]]&lt;br /&gt;
* [[MCP/TaskTypes/get_replacement_dic_from_user_choice]]&lt;br /&gt;
* [[MCP/TaskTypes/Get_microservice_generated_list_in_stdOut]]&lt;br /&gt;
* [[MCP/TaskTypes/for_each_file]]&lt;br /&gt;
* [[MCP/TaskTypes/linkTaskManagerUnitVariableLinkPull]]&lt;/div&gt;</summary>
		<author><name>Joseph</name></author>
	</entry>
	<entry>
		<id>https://wiki.archivematica.org/index.php?title=MCPServer/TaskTypes&amp;diff=7799</id>
		<title>MCPServer/TaskTypes</title>
		<link rel="alternate" type="text/html" href="https://wiki.archivematica.org/index.php?title=MCPServer/TaskTypes&amp;diff=7799"/>
		<updated>2013-04-23T20:57:20Z</updated>

		<summary type="html">&lt;p&gt;Joseph: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Archivematica MCP task types are as follows:&lt;br /&gt;
* [[MCP/TaskTypes/Get_user_choice_from_microservice_generated_list]]&lt;br /&gt;
* [[MCP/TaskTypes/assign_magic_link]]&lt;br /&gt;
* [[MCP/TaskTypes/one_instance]]&lt;br /&gt;
* [[MCP/TaskTypes/Split_Job_into_many_links_based_on_file_ID]]&lt;br /&gt;
* [[MCP/TaskTypes/Transcoder_task_type]]&lt;br /&gt;
* [[MCP/TaskTypes/get_user_choice_to_proceed_with]]&lt;br /&gt;
* [[MCP/TaskTypes/linkTaskManagerSetUnitVariable]]&lt;br /&gt;
* [[MCP/TaskTypes/goto_magic_link]]&lt;br /&gt;
* [[MCP/TaskTypes/Split_creating_Jobs_for_each_file]]&lt;br /&gt;
* [[MCP/TaskTypes/get_replacement_dic_from_user_choice]]&lt;br /&gt;
* [[MCP/TaskTypes/Get_microservice_generated_list_in_stdOut]]&lt;br /&gt;
* [[MCP/TaskTypes/for_each_file]]&lt;br /&gt;
* [[MCP/TaskTypes/linkTaskManagerUnitVariableLinkPull]]&lt;/div&gt;</summary>
		<author><name>Joseph</name></author>
	</entry>
	<entry>
		<id>https://wiki.archivematica.org/index.php?title=MCPServer/TaskTypes&amp;diff=7798</id>
		<title>MCPServer/TaskTypes</title>
		<link rel="alternate" type="text/html" href="https://wiki.archivematica.org/index.php?title=MCPServer/TaskTypes&amp;diff=7798"/>
		<updated>2013-04-23T20:55:55Z</updated>

		<summary type="html">&lt;p&gt;Joseph: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* [[MCP/TaskTypes/Get_user_choice_from_microservice_generated_list]]&lt;br /&gt;
* [[MCP/TaskTypes/assign_magic_link]]&lt;br /&gt;
* [[MCP/TaskTypes/one_instance]]&lt;br /&gt;
* [[MCP/TaskTypes/Split_Job_into_many_links_based_on_file_ID]]&lt;br /&gt;
* [[MCP/TaskTypes/Transcoder_task_type]]&lt;br /&gt;
* [[MCP/TaskTypes/get_user_choice_to_proceed_with]]&lt;br /&gt;
* [[MCP/TaskTypes/linkTaskManagerSetUnitVariable]]&lt;br /&gt;
* [[MCP/TaskTypes/goto_magic_link]]&lt;br /&gt;
* [[MCP/TaskTypes/Split_creating_Jobs_for_each_file]]&lt;br /&gt;
* [[MCP/TaskTypes/get_replacement_dic_from_user_choice]]&lt;br /&gt;
* [[MCP/TaskTypes/Get_microservice_generated_list_in_stdOut]]&lt;br /&gt;
* [[MCP/TaskTypes/for_each_file]]&lt;br /&gt;
* [[MCP/TaskTypes/linkTaskManagerUnitVariableLinkPull]]&lt;/div&gt;</summary>
		<author><name>Joseph</name></author>
	</entry>
	<entry>
		<id>https://wiki.archivematica.org/index.php?title=MCPServer/TaskTypes&amp;diff=7797</id>
		<title>MCPServer/TaskTypes</title>
		<link rel="alternate" type="text/html" href="https://wiki.archivematica.org/index.php?title=MCPServer/TaskTypes&amp;diff=7797"/>
		<updated>2013-04-23T20:55:30Z</updated>

		<summary type="html">&lt;p&gt;Joseph: Created page with &amp;quot;{{Special:PrefixIndex/MCP/TaskTypes}}  * MCP/TaskTypes/Get_user_choice_from_microservice_generated_list * MCP/TaskTypes/assign_magic_link * [[MCP/TaskTypes/one_instanc...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Special:PrefixIndex/MCP/TaskTypes}}&lt;br /&gt;
&lt;br /&gt;
* [[MCP/TaskTypes/Get_user_choice_from_microservice_generated_list]]&lt;br /&gt;
* [[MCP/TaskTypes/assign_magic_link]]&lt;br /&gt;
* [[MCP/TaskTypes/one_instance]]&lt;br /&gt;
* [[MCP/TaskTypes/Split_Job_into_many_links_based_on_file_ID]]&lt;br /&gt;
* [[MCP/TaskTypes/Transcoder_task_type]]&lt;br /&gt;
* [[MCP/TaskTypes/get_user_choice_to_proceed_with]]&lt;br /&gt;
* [[MCP/TaskTypes/linkTaskManagerSetUnitVariable]]&lt;br /&gt;
* [[MCP/TaskTypes/goto_magic_link]]&lt;br /&gt;
* [[MCP/TaskTypes/Split_creating_Jobs_for_each_file]]&lt;br /&gt;
* [[MCP/TaskTypes/get_replacement_dic_from_user_choice]]&lt;br /&gt;
* [[MCP/TaskTypes/Get_microservice_generated_list_in_stdOut]]&lt;br /&gt;
* [[MCP/TaskTypes/for_each_file]]&lt;br /&gt;
* [[MCP/TaskTypes/linkTaskManagerUnitVariableLinkPull]]&lt;/div&gt;</summary>
		<author><name>Joseph</name></author>
	</entry>
	<entry>
		<id>https://wiki.archivematica.org/index.php?title=MCPServer&amp;diff=7796</id>
		<title>MCPServer</title>
		<link rel="alternate" type="text/html" href="https://wiki.archivematica.org/index.php?title=MCPServer&amp;diff=7796"/>
		<updated>2013-04-23T20:49:57Z</updated>

		<summary type="html">&lt;p&gt;Joseph: /* Tasks */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Main Page]] &amp;gt; [[Development]] &amp;gt; [[:Category:Development documentation|Development documentation]] &amp;gt; MCP&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;status&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
Design&lt;br /&gt;
&amp;lt;div class=&amp;quot;description&amp;quot;&amp;gt;&lt;br /&gt;
This page proposes a new feature and reviews design options&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;active&amp;quot;&amp;gt;&lt;br /&gt;
Development&lt;br /&gt;
&amp;lt;div class=&amp;quot;description&amp;quot;&amp;gt;&lt;br /&gt;
This page describes a feature that's in development&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div&amp;gt;&lt;br /&gt;
Documentation&lt;br /&gt;
&amp;lt;div class=&amp;quot;description&amp;quot;&amp;gt;&lt;br /&gt;
This page documents an implemented feature&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
The MCP is the core of the Archivematica system. It controls the various [[micro-services]] in the Archivematica system.  Configuration and processing information are held in the database. The user monitors and controls the MCP via the [[ dashboard ]]. The MCP maintains a log of all completed work.&lt;br /&gt;
&lt;br /&gt;
The MCP uses the [http://gearman.org gearman]. The MCP Clients are relatively &amp;quot;dumb&amp;quot;. They are gearman worker implementations, that inform the gearman server what tasks they can perform, and wait for the server to assign them a task.&lt;br /&gt;
&lt;br /&gt;
The Archivematica system relies on client and server having access to the same directory, to process the commands. On a distributed system, this is done through the shared directory.&lt;br /&gt;
&lt;br /&gt;
Basic configuration can be seen here [[MCP Basic Configuration]] &amp;lt;-- deprecated&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Server And Database==&lt;br /&gt;
The MCP has watched directories, which are linked to Job Chains. Each Job Chain is designed to carry out a function. The function is broken down into managable peices, which are called Job Chain Links. Each of these links performs a task. Like previous versions of the MCP, these tasks may be configured to run once, or once for each file in a directory. &lt;br /&gt;
&lt;br /&gt;
One major fundamental change is that the MCP is no longer as linear as it once was. Decision points allow the user to select the next Microservice chain to process, based on what is available at that point. This allows for the creation of alternative, yet similar workflows to co-exist in the Archivematica-MCP system.&lt;br /&gt;
&lt;br /&gt;
===Job Chains===&lt;br /&gt;
&lt;br /&gt;
===Job Chain Links===&lt;br /&gt;
====Decision Point====&lt;br /&gt;
====Regular Job====&lt;br /&gt;
&lt;br /&gt;
===Task Types===&lt;br /&gt;
[[MCP/TaskTypes]]&lt;br /&gt;
&lt;br /&gt;
===mcp Modules===&lt;br /&gt;
The mcp Modules are configured in the database, with the following schema.&lt;br /&gt;
&lt;br /&gt;
This may be a little out of date. Note, was generated using mysql workbench (sudo apt-get install mysql-workbench).&lt;br /&gt;
&lt;br /&gt;
[[File:MCP_configuration_database_schema.png]]&lt;br /&gt;
&lt;br /&gt;
==Client==&lt;br /&gt;
Clients connect to the specified gearman server and provides a list of modules they support. When the MCP informs the gearman server of a Task that the client supports and the gearman server assigns the job to the client, the client will process the Job, and return the results to the gearman server, which in turn will return them to the MCP.&lt;br /&gt;
&lt;br /&gt;
===Client on Windows===&lt;br /&gt;
There has been some consideration of getting an MCP client to run in the Microsoft Windows environment. This would be advantageous for [[normalizing in a windows environment]]. Some testing has been done to this end. See issue 372.&lt;br /&gt;
&lt;br /&gt;
==Debugging==&lt;br /&gt;
Debugging the MCP can be a difficult task.&lt;br /&gt;
Logs can be large, and are placed in the /tmp/ directory, so they are automatically removed upon reboot.&lt;br /&gt;
&lt;br /&gt;
===Parsing Logs===&lt;br /&gt;
Here are some commands to help parse logs:&lt;br /&gt;
&amp;lt;pre&amp;gt;grep &amp;quot;DEBUG type=\&amp;quot;archivematicaMCP\&amp;quot;&amp;quot; -v /tmp/archivematicaMCPServer* -h &amp;gt; /tmp/archivematicaOutput.txt &amp;lt;/pre&amp;gt;&lt;br /&gt;
Removes the periodic debug message prints.&lt;br /&gt;
&amp;lt;pre&amp;gt;grep &amp;quot;Traceback (most recent call last):&amp;quot; /tmp/archivematicaOutput.txt  -n&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;grep -i EXCEPTION /tmp/archivematicaMCPServer-* -n&amp;lt;/pre&amp;gt;&lt;br /&gt;
-n will prepend the line number&lt;br /&gt;
&amp;lt;pre&amp;gt;sed -n '302092,+50'p /tmp/archivematicaMCPServer-*&amp;lt;/pre&amp;gt;&lt;br /&gt;
prints 50 lines from the file, including line number 302092. This is useful to look at sections of the log that have exceptions, which can be found with the command above.&lt;br /&gt;
&lt;br /&gt;
===debugging tools===&lt;br /&gt;
In extreme cases, you can setup your dev enviroment, so you log in as the archivematica user, and use eclipse with pyDev in debug mode, to run the MCP.&lt;br /&gt;
&lt;br /&gt;
===what clients are connected===&lt;br /&gt;
&amp;lt;pre&amp;gt;python -c '&lt;br /&gt;
import gearman&lt;br /&gt;
admin = gearman.admin_client.GearmanAdminClient(host_list=[&amp;quot;127.0.0.1&amp;quot;])&lt;br /&gt;
for client in admin. get_workers():&lt;br /&gt;
    if client[&amp;quot;client_id&amp;quot;] != &amp;quot;-&amp;quot;: #exclude server task connections&lt;br /&gt;
        print client[&amp;quot;client_id&amp;quot;], client[&amp;quot;ip&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
for stat in admin.get_status():&lt;br /&gt;
    if stat[&amp;quot;running&amp;quot;] != 0 or stat[&amp;quot;queued&amp;quot;] != 0:&lt;br /&gt;
        print stat&lt;br /&gt;
' &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Waching activity===&lt;br /&gt;
&amp;lt;pre&amp;gt;tail /tmp/archivematicaMCP* -f&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;watch mysql -u root MCP --execute &amp;quot;\&amp;quot;SELECT * FROM Tasks WHERE endTime = 0;\&amp;quot;&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Turning on printing all sql queries===&lt;br /&gt;
sudo nano /usr/lib/archivematica/archivematicaCommon/databaseInterface.py&lt;br /&gt;
:http://code.google.com/p/archivematica/source/browse/tags/release-0.8-alpha/src/archivematicaCommon/lib/databaseInterface.py&lt;br /&gt;
:edit lines 34 and 73&lt;br /&gt;
:&amp;quot;printSQL = False&amp;quot;  -&amp;gt; printSQL = True&lt;br /&gt;
:&amp;quot;        print printSQL&amp;quot; -&amp;gt; &amp;quot;        print sql&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This will cause archivematica to print ALL of it's queries issues to the database.&lt;br /&gt;
&lt;br /&gt;
=Change Log=&lt;br /&gt;
==0.8==&lt;br /&gt;
* Switched to database configuration.&lt;br /&gt;
* Allows for alternative workflows (ie. don't create DIP)&lt;br /&gt;
* Start, MCP server will try to match any existing directories in the watched directories, to a processing directory/SIP.&lt;br /&gt;
&lt;br /&gt;
==0.7.1==&lt;br /&gt;
* Work was done on microservices to make the system more stable. &lt;br /&gt;
* A config to set the underlying protocol max length was added.&lt;br /&gt;
&lt;br /&gt;
==0.7==&lt;br /&gt;
* Work was done on microservices to make the system more stable. &lt;br /&gt;
&lt;br /&gt;
==0.6.2==&lt;br /&gt;
* MCP was released.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Development documentation]]&lt;/div&gt;</summary>
		<author><name>Joseph</name></author>
	</entry>
	<entry>
		<id>https://wiki.archivematica.org/index.php?title=MCP_Basic_Configuration&amp;diff=7795</id>
		<title>MCP Basic Configuration</title>
		<link rel="alternate" type="text/html" href="https://wiki.archivematica.org/index.php?title=MCP_Basic_Configuration&amp;diff=7795"/>
		<updated>2013-04-22T21:50:53Z</updated>

		<summary type="html">&lt;p&gt;Joseph: /* Workflow Configurations */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;status&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
Design&lt;br /&gt;
&amp;lt;div class=&amp;quot;description&amp;quot;&amp;gt;&lt;br /&gt;
This page proposes a new feature and reviews design options&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;active&amp;quot;&amp;gt;&lt;br /&gt;
Development&lt;br /&gt;
&amp;lt;div class=&amp;quot;description&amp;quot;&amp;gt;&lt;br /&gt;
This page describes a feature that's in development&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div&amp;gt;&lt;br /&gt;
Documentation&lt;br /&gt;
&amp;lt;div class=&amp;quot;description&amp;quot;&amp;gt;&lt;br /&gt;
This page documents an implemented feature&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Server==&lt;br /&gt;
===Configurations===&lt;br /&gt;
====Server ConfigFile====&lt;br /&gt;
/etc/archivematica/MCPServer/ServerConfig.conf&lt;br /&gt;
&lt;br /&gt;
====Workflow Configurations====&lt;br /&gt;
Please see [[Creating_Custom_Workflows]]&lt;br /&gt;
&lt;br /&gt;
===MCP Server Section===&lt;br /&gt;
&lt;br /&gt;
====File Names====&lt;br /&gt;
These shouldn't be changed.&lt;br /&gt;
#File Names&lt;br /&gt;
checksumsNoExtention=&amp;quot;checksum&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Gearman Server====&lt;br /&gt;
MCPArchivematicaServer  =  localhost:4730&lt;br /&gt;
GearmanServerWorker = localhost:4730&lt;br /&gt;
&lt;br /&gt;
Note: to set the gearman process to listen on more interfaces than localhost, set it in '/etc/default/gearman-job-server'. I think you can set this to 1.1.1.1 for all interfaces.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Other====&lt;br /&gt;
watchDirectoryPath: Directory containing the directories watched by the MCP.&lt;br /&gt;
 watchDirectoryPath=&amp;quot;/var/archivematica/sharedDirectory/watchedDirectories/&amp;quot;&lt;br /&gt;
&lt;br /&gt;
sharedDirectory: directory shared on the network with MCP clients. Containing the processing directory.&lt;br /&gt;
 sharedDirectory=&amp;quot;/var/archivematica/sharedDirectory/&amp;quot;&lt;br /&gt;
&lt;br /&gt;
processingDirectory: Directory SIPs reside in while they are actively being processed.&lt;br /&gt;
 processingDirectory=&amp;quot;${sharedDirectory}.currentlyProcessing/&amp;quot;&lt;br /&gt;
&lt;br /&gt;
AIPsStore: Directory to store the AIPs when finished processing. This can be a mounted directory on an external storage device.&lt;br /&gt;
 AIPsStore=&amp;quot;${sharedDirectory}AIPsStore/&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The database access settings for the shared database:&lt;br /&gt;
 /etc/archivematica/archivematicaCommon/dbsettings&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[client]&lt;br /&gt;
user=demo&lt;br /&gt;
password=&amp;quot;demo&amp;quot;&lt;br /&gt;
host=localhost&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Client==&lt;br /&gt;
===Supported Modules===&lt;br /&gt;
/etc/archivematica/archivematicaClient/clientConfig.conf&lt;br /&gt;
&amp;lt;br&amp;gt;[http://code.google.com/p/archivematica/source/browse/trunk/src/MCPClient/etc/archivematicaClientModules Supported modules]&lt;br /&gt;
&amp;lt;br/&amp;gt;/etc/archivematica/MCPClient/archivematicaClientModules&lt;br /&gt;
&amp;lt;br/&amp;gt;It's highly recommended only the MCP server host machine client support the upload and store tasks.&lt;br /&gt;
&amp;lt;br/&amp;gt;Change the in theLoadSupportedCommandsSpecial in clientConfig.conf on other machines&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LoadSupportedCommandsSpecial = False&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Client ConfigFile===&lt;br /&gt;
/etc/archivematica/MCPClient/clientConfig.conf&lt;br /&gt;
Server to connect to. Specify hostname/IP and port.&lt;br /&gt;
 MCPArchivematicaServer = localhost:4730&lt;br /&gt;
Where the shared directory on the MCP Server is mounted:&lt;br /&gt;
 sharedDirectoryMounted=&amp;quot;/var/archivematica/sharedDirectory/&amp;quot;&lt;br /&gt;
The maximum number of tasks the MCP is allowed to run on this host.&lt;br /&gt;
* numberOfTasks is no longer used. The client will detect the number of cores on the machine, and use that number of threads. This can be overridden by changing the number to something other than 0. &lt;br /&gt;
&amp;lt;pre&amp;gt;numberOfTasks=0&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;The location of the client modules. These specify which modules this host supports.&lt;br /&gt;
 archivematicaClientModules=&amp;quot;/etc/archivematica/MCPClient/archivematicaClientModules&amp;quot;&lt;br /&gt;
The location of the client scripts.&lt;br /&gt;
 clientScriptsDirectory=&amp;quot;/usr/lib/archivematica/MCPClient/clientScripts/&amp;quot;&lt;br /&gt;
The database access settings for the shared database:&lt;br /&gt;
 /etc/archivematica/archivematicaCommon/dbsettings&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[client]&lt;br /&gt;
user=demo&lt;br /&gt;
password=&amp;quot;demo&amp;quot;&lt;br /&gt;
host=localhost&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The supportedCommandsSpecial listed in the archivematicaClientModules should only be run on one machine. This is a mechanism to limit/control processing to a single instance. This should be enabled on one, and only one client in a distributed processing system.&lt;br /&gt;
&amp;lt;pre&amp;gt;LoadSupportedCommandsSpecial = True&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Development documentation]]&lt;/div&gt;</summary>
		<author><name>Joseph</name></author>
	</entry>
	<entry>
		<id>https://wiki.archivematica.org/index.php?title=Transfer_backlog_requirements&amp;diff=7781</id>
		<title>Transfer backlog requirements</title>
		<link rel="alternate" type="text/html" href="https://wiki.archivematica.org/index.php?title=Transfer_backlog_requirements&amp;diff=7781"/>
		<updated>2013-04-04T19:41:25Z</updated>

		<summary type="html">&lt;p&gt;Joseph: /* Accession metadata */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Main Page]] &amp;gt; [[Development]] &amp;gt; [[:Category:Development documentation|Development documentation]] &amp;gt; Transfer backlog requirements&lt;br /&gt;
&lt;br /&gt;
Release 1.0&lt;br /&gt;
&lt;br /&gt;
== Transfer Backlog Management ==&lt;br /&gt;
* Related issues: Issue 951, Issue 1220, Issue 1141, Issue 1225, Issue 1257&lt;br /&gt;
&lt;br /&gt;
= Requirements for transfer backlog search =&lt;br /&gt;
&lt;br /&gt;
* Add ability to search transfer backlog and send one or more transfers to Ingest&lt;br /&gt;
* Add ability to download and/or view files/transfers (via right click)&lt;br /&gt;
* Search the following fields: Any field, transfer name, file name, accession number, PUID, Mimetype, Date - Ingest&lt;br /&gt;
&lt;br /&gt;
= Mockup of transfer backlog search =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:1.0_TransferBacklogSearch.png|680px|thumb|center|]]&lt;br /&gt;
&lt;br /&gt;
[[File:1.0_TransBacklogSearchResults.png|680px|thumb|center|]]&lt;br /&gt;
&lt;br /&gt;
= Transfer Workflow = &lt;br /&gt;
&lt;br /&gt;
* Administration - allow MCP access to media or storage where transfer is located&lt;br /&gt;
* Assign accession number to transfer&lt;br /&gt;
* Remove transfer backup from workflow - no long processing configuration option&lt;br /&gt;
* Add Send transfer to backlog microservice&lt;br /&gt;
* Add Search transfer backlog tab from Ingest in Dashboard&lt;br /&gt;
* Add ability to download and/or view transfers and files from Search tab&lt;br /&gt;
* Add ability to send transfers from backlog search to Ingest/Create SIP (checkboxes, send button)&lt;br /&gt;
* see workflow diagrams below &lt;br /&gt;
&lt;br /&gt;
'''0.9 Transfer workflow'''&lt;br /&gt;
&lt;br /&gt;
* grey steps are automated, white are manual&lt;br /&gt;
&lt;br /&gt;
[[File:transferWorkflow0.9.png|680px|thumb|center|]]&lt;br /&gt;
[[File:transferWorkflow0.9pt2.png|680px|thumb|center|]]&lt;br /&gt;
&lt;br /&gt;
[[Media:transferWorkflow0.9.pdf|transferWorkflow0.9.pdf]]&lt;br /&gt;
&lt;br /&gt;
= Administration Tab in Dashboard = &lt;br /&gt;
&lt;br /&gt;
* Assign permission and access to the MCPServer to copy from transfer media (hard drives, optical media, USB, etc.) or network location. &lt;br /&gt;
* Assign transfer backlog locations (configuration is done outside of AM)&lt;br /&gt;
* Assign source directories&lt;br /&gt;
* Define transfer types&lt;br /&gt;
* Assign report locations (post-1.0)&lt;br /&gt;
* Set AIP storage location&lt;br /&gt;
* Set DIP upload location&lt;br /&gt;
&lt;br /&gt;
= Accession metadata =&lt;br /&gt;
&lt;br /&gt;
* PREMIS Event = Assign accession number&lt;br /&gt;
         &amp;lt;event&amp;gt;&lt;br /&gt;
            &amp;lt;eventIdentifier&amp;gt;&lt;br /&gt;
              &amp;lt;eventIdentifierType&amp;gt;UUID&amp;lt;/eventIdentifierType&amp;gt;&lt;br /&gt;
              &amp;lt;eventIdentifierValue&amp;gt;35cbe00d-d661-4174-b11a-e203f5608008&amp;lt;/eventIdentifierValue&amp;gt;&lt;br /&gt;
            &amp;lt;/eventIdentifier&amp;gt;&lt;br /&gt;
            &amp;lt;eventType&amp;gt;registration&amp;lt;/eventType&amp;gt;&lt;br /&gt;
            &amp;lt;eventDateTime&amp;gt;2012-03-14&amp;lt;/eventDateTime&amp;gt;&lt;br /&gt;
            &amp;lt;eventDetail&amp;gt;accession#2012-029&amp;lt;/eventDetail&amp;gt;&lt;br /&gt;
            &amp;lt;eventOutcomeInformation&amp;gt;&lt;br /&gt;
              &amp;lt;eventOutcome&amp;gt;&amp;lt;/eventOutcome&amp;gt;&lt;br /&gt;
              &amp;lt;eventOutcomeDetail&amp;gt;&lt;br /&gt;
                &amp;lt;eventOutcomeDetailNote&amp;gt;&amp;lt;/eventOutcomeDetailNote&amp;gt;&lt;br /&gt;
              &amp;lt;/eventOutcomeDetail&amp;gt;&lt;br /&gt;
            &amp;lt;/eventOutcomeInformation&amp;gt;&lt;br /&gt;
            &amp;lt;linkingAgentIdentifier&amp;gt;&lt;br /&gt;
              &amp;lt;linkingAgentIdentifierType&amp;gt;archivist&amp;lt;/linkingAgentIdentifierType&amp;gt;&lt;br /&gt;
              &amp;lt;linkingAgentIdentifierValue&amp;gt;Courtney Mumma&amp;lt;/linkingAgentIdentifierValue&amp;gt;&lt;br /&gt;
            &amp;lt;/linkingAgentIdentifier&amp;gt;&lt;br /&gt;
          &amp;lt;/event&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Manually input metadata in template on dashboard (See [[File_Browser_Requirements]]) : accession number&lt;br /&gt;
* Agent is the archivist logged in at the time doing the accession (post-1.0, for 1.0 this will still be repository)&lt;br /&gt;
* Event name is &amp;quot;Assign accession number&amp;quot; (to be added to PREMIS events master list should we decide to implement)&lt;br /&gt;
* UUID&lt;br /&gt;
&lt;br /&gt;
* Also see Issue 787 on the Archivematica issues list&lt;br /&gt;
&lt;br /&gt;
= Microservices Completed Before Move to Backlog =&lt;br /&gt;
&lt;br /&gt;
* All transfer microservices&lt;br /&gt;
* Indexing: See [[Transfer_and_SIP_creation#Transfer_indexing_requirements_0.9_and_beyond]]&lt;br /&gt;
&lt;br /&gt;
= Handling of Submission Documentation =&lt;br /&gt;
&lt;br /&gt;
* [http://sites.tufts.edu/dca/about-us/research-initiatives/taper-tufts-accessioning-program-for-electronic-records/| TAPER]?&lt;br /&gt;
* Normalized with objects in AIP (0.8)&lt;br /&gt;
* Upload submission documentation with transfer in transfer tab - Issue 1255&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Development documentation]]&lt;/div&gt;</summary>
		<author><name>Joseph</name></author>
	</entry>
	<entry>
		<id>https://wiki.archivematica.org/index.php?title=Database_Data_Management&amp;diff=7718</id>
		<title>Database Data Management</title>
		<link rel="alternate" type="text/html" href="https://wiki.archivematica.org/index.php?title=Database_Data_Management&amp;diff=7718"/>
		<updated>2013-03-14T00:17:09Z</updated>

		<summary type="html">&lt;p&gt;Joseph: updated release names 1.0 -&amp;gt; 0.10 and 1.1 -&amp;gt; 1.0&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Main Page]] &amp;gt; [[Development]] &amp;gt; [[:Category:Development documentation|Development documentation]] &amp;gt; Database Data Management&lt;br /&gt;
[[Category:Development documentation]]&lt;br /&gt;
&lt;br /&gt;
=For the 0.10 Release=&lt;br /&gt;
The data for the transcoder will need to be maintained by the FPR. The table structure will be maintained by the package.&lt;br /&gt;
&lt;br /&gt;
All pk INT's will be replaced will UUIDs. Issue 1223.&lt;br /&gt;
This will allow for local customizations to be distinguished from the original data provided in archivematica.&lt;br /&gt;
&lt;br /&gt;
All tables will have a replaces UUID column added. Issue 1224 .&lt;br /&gt;
This column will be populated when a provided rule is replaced with an updated/custom one. &lt;br /&gt;
As part of the update, the system will need to identify items that have been replaced, and update the foreign keys pointing at it to the updated rule. Warning: not all foreign keys are explicit in the database. Some are a &amp;quot;combined foriegn key&amp;quot;, like Tasks Configs: Task type will inform the code what table to look at, and taskTypePKReference will specify the fk. &lt;br /&gt;
&lt;br /&gt;
==Development==&lt;br /&gt;
To separate data for the transcoder, we'll be using a series of mysql dumps. Issue 1225. Once the FPR data is seperate, the developer can work on a means of populating that into their database, with the columns they require, and getting them into the database through an API. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Deployed Data management==&lt;br /&gt;
Every change to the DB for workflow/FPR should be assigned a new UUID, so that it is not confused or overwritten on update. For tracking purposes the replaces column should be populated accordingly.&lt;br /&gt;
&lt;br /&gt;
==Release==&lt;br /&gt;
A custom script for updating from the 0.9 to .10 will be developed to track existing SIPs/Tranfers/Files in the system, and not lose any data associated with them. This should be a msyql script to be run by the tool Austin has found for managing DB's across releases. Issue 1226.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=For the 1.0 Release=&lt;br /&gt;
Development changes for the db will occur through a sql script, applied against the previous release. Issue 1227.&lt;br /&gt;
&lt;br /&gt;
==Development==&lt;br /&gt;
The .10 schema will remain in the code. Rebuilding the database will consist of the following steps:&lt;br /&gt;
# Build the database from the .10 schema&lt;br /&gt;
# Apply update patch sql script file&lt;br /&gt;
# Run update script, that will replace the updated rows where specified.&lt;br /&gt;
&lt;br /&gt;
The .10 schema will remain untouched from the .10 release. &lt;br /&gt;
&amp;lt;br/&amp;gt;The apply patch will be edited to make changes for the 1.0 release.&lt;br /&gt;
&amp;lt;br/&amp;gt;The update script will be developed for this release. &lt;br /&gt;
&lt;br /&gt;
All dev changes to the db will occur in the patch or from the FPR.&lt;br /&gt;
&lt;br /&gt;
==Release==&lt;br /&gt;
Updating from .10 to 1.0 can run the patch. This requires no data loss.&lt;br /&gt;
&lt;br /&gt;
New installs will run a script generated as part of the release process. It will be a dump of the .10 with the 1.0 patch applied. Future releases will use this as the base for development in the next release.&lt;br /&gt;
&lt;br /&gt;
==Deployed Data management==&lt;br /&gt;
Same as .10&lt;br /&gt;
&lt;br /&gt;
==How this works with local customizations==&lt;br /&gt;
The local customization made in .10 will not be overwritten by the ones made in the update, because all the fk's will already have been updated, so there would be nothing to replace, and point at the new rule.&lt;br /&gt;
&lt;br /&gt;
=For the future Releases=&lt;br /&gt;
Each release keeps the base sql dump from the previous release. &lt;br /&gt;
A patch file is generated against this dump for the release.&lt;br /&gt;
We could look at generating the patch using http://dev.mysql.com/doc/refman/5.0/en/binary-log.html&lt;/div&gt;</summary>
		<author><name>Joseph</name></author>
	</entry>
	<entry>
		<id>https://wiki.archivematica.org/index.php?title=Development_environment&amp;diff=7716</id>
		<title>Development environment</title>
		<link rel="alternate" type="text/html" href="https://wiki.archivematica.org/index.php?title=Development_environment&amp;diff=7716"/>
		<updated>2013-03-08T21:34:29Z</updated>

		<summary type="html">&lt;p&gt;Joseph: /* Troubleshooting */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Main Page]] &amp;gt; [[Development]] &amp;gt; Development Environment&lt;br /&gt;
&lt;br /&gt;
This page explains how you can configure and use a standard Linux system as an Archivematica development environment.&lt;br /&gt;
The Archivematica development environment is available for developers that want the ability to customize or enhance their own Archivematica installation and/or [[contribute code]] back to the Archivematica project.&lt;br /&gt;
&lt;br /&gt;
=Setup=&lt;br /&gt;
*Install ubuntu 12.04&lt;br /&gt;
*Use git to checkout Archivematica code&lt;br /&gt;
**If you have commit access, use the private repository&lt;br /&gt;
**If you have read-only access, use the public [https://github.com/artefactual/archivematica GitHub repository]&lt;br /&gt;
&amp;lt;pre&amp;gt;git clone https://github.com/artefactual/archivematica.git&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Run the install and helper scripts. &lt;br /&gt;
** &amp;lt;pre&amp;gt;cd archivematica&amp;lt;/pre&amp;gt;&lt;br /&gt;
** &amp;lt;pre&amp;gt;./dev-installer&amp;lt;/pre&amp;gt;&lt;br /&gt;
** Answer Y to all prompts.&lt;br /&gt;
** &amp;lt;pre&amp;gt;./dev-helper&amp;lt;/pre&amp;gt;&lt;br /&gt;
** Answer Y to all prompts.&lt;br /&gt;
** Restart the machine.&lt;br /&gt;
** &amp;lt;pre&amp;gt;cd archivematica&amp;lt;/pre&amp;gt;&lt;br /&gt;
** &amp;lt;pre&amp;gt;./dev-helper&amp;lt;/pre&amp;gt;&lt;br /&gt;
** Answer Y to all prompts.&lt;br /&gt;
** You may need to restart the services (see below for instructions)&lt;br /&gt;
** Complete ATOM setup&lt;br /&gt;
*** The database should already be created.&lt;br /&gt;
*** http://localhost/ica-atom http://localhost/atom&lt;br /&gt;
*** https://www.qubit-toolkit.org/wiki/Installation#Open_Qubit.2C_ICA-AtoM.2C_or_DCB_in_your_web_browser&lt;br /&gt;
** Open the [dashboard http://localhost]&lt;br /&gt;
&lt;br /&gt;
=Run=&lt;br /&gt;
*Start Archivematica MCP Server &amp;amp; Client&lt;br /&gt;
**Open a terminal and type in the following commands:&lt;br /&gt;
***&amp;lt;pre&amp;gt;sudo stop openoffice-service; sudo start openoffice-service&amp;lt;/pre&amp;gt;&lt;br /&gt;
***&amp;lt;pre&amp;gt;sudo stop archivematica-mcp-server; sudo start archivematica-mcp-server&amp;lt;/pre&amp;gt;&lt;br /&gt;
***&amp;lt;pre&amp;gt;sudo stop archivematica-mcp-client; sudo start archivematica-mcp-client&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*To start processing a SIP:&lt;br /&gt;
**Open Thunar file manager&lt;br /&gt;
**if using sample SIPs, 'export' the SIP directory&lt;br /&gt;
***&amp;lt;pre&amp;gt;svn export sampledata ~/sampledata&amp;lt;/pre&amp;gt;&lt;br /&gt;
***OR run the dev-helper script, and hit yes on the option to export the sample data.&lt;br /&gt;
**'cut' the SIP directory and paste into the receiveSIP directory&lt;br /&gt;
**Open the Firefox browser and type 'localhost' as the address to view SIP processing progress via the Dashboard&lt;br /&gt;
&lt;br /&gt;
=Update=&lt;br /&gt;
&lt;br /&gt;
To pull down the latest code commits from the repository, navigate to the directory where Archivematica has been cloned:&lt;br /&gt;
*Change Directory to the archivematica git directory.&lt;br /&gt;
&amp;lt;pre&amp;gt;cd ~/archivematica/&amp;lt;/pre&amp;gt;&lt;br /&gt;
*Check to see if you have any local changes that need to be stashed&lt;br /&gt;
&amp;lt;pre&amp;gt;git diff&amp;lt;/pre&amp;gt;&lt;br /&gt;
*If there are local changes please stash or commit them. (Or you won't be able to update).&lt;br /&gt;
&amp;lt;pre&amp;gt;git stash&amp;lt;/pre&amp;gt;&lt;br /&gt;
Update...&lt;br /&gt;
*&amp;lt;pre&amp;gt;./dev-helper&amp;lt;/pre&amp;gt;&lt;br /&gt;
*&amp;lt;pre&amp;gt;&amp;quot;Would you like to git pull?&amp;quot; (y/N) y&amp;lt;/pre&amp;gt;&lt;br /&gt;
*&amp;lt;pre&amp;gt;&amp;quot;Would you like to recreate the databases?&amp;quot; (y/N) y&amp;lt;/pre&amp;gt;&lt;br /&gt;
**Note: this command will remove any processing sips/transfers.&lt;br /&gt;
*&amp;lt;pre&amp;gt;&amp;quot;Would you like to Include mock FPR data?&amp;quot; (y/N) y &amp;lt;/pre&amp;gt;&lt;br /&gt;
*&amp;lt;pre&amp;gt;&amp;quot;Would you like to restart archivematica services?&amp;quot; (y/N) y&amp;lt;/pre&amp;gt;&lt;br /&gt;
*&amp;lt;pre&amp;gt;&amp;quot;Would you like to re-create gui-scripts editor file?&amp;quot; (y/N) y&amp;lt;/pre&amp;gt;&lt;br /&gt;
*&amp;lt;pre&amp;gt;&amp;quot;Would you like to update Qubit (trunk) and restart its qubit-sword service?&amp;quot; (y/N) y&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you stashed changes, re-apply them with&lt;br /&gt;
&amp;lt;pre&amp;gt;git stash pop&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Troubleshooting=&lt;br /&gt;
* If it stalls during update &amp;quot;Would you like to update/install package requirements?&amp;quot; (y/N)&lt;br /&gt;
** Stop the script with CTRL + C&lt;br /&gt;
** Try installing the item it failed on on the command line. Ie.&lt;br /&gt;
** &amp;lt;pre&amp;gt;sudo apt-get install postfix&amp;lt;/pre&amp;gt;&lt;br /&gt;
** Restart the dev-helper &amp;quot;Would you like to update/install package requirements?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* If you get this error error starting service:&lt;br /&gt;
** &amp;lt;pre&amp;gt;sudo start archivematica-mcp-server&amp;lt;/pre&amp;gt;&lt;br /&gt;
** &amp;lt;pre&amp;gt;start: Unknown job: archivematica-mcp-server&amp;lt;/pre&amp;gt;&lt;br /&gt;
** Then reboot the machine.&lt;br /&gt;
&lt;br /&gt;
*If a SIP processing fails, it will move it to the 'failed' directory which is located:&lt;br /&gt;
**&amp;lt;pre&amp;gt;/var/archivematica/sharedDirectory/watchedDirectories/failed&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*if ArchivematicaServer freezes &lt;br /&gt;
**&amp;lt;pre&amp;gt;sudo restart archivematica-mcp-server&amp;lt;/pre&amp;gt;&lt;br /&gt;
**&amp;lt;pre&amp;gt;sudo restart archivematica-mcp-client&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*if ArchivematicaClient freezes (in terminal kill command)&lt;br /&gt;
**&amp;lt;pre&amp;gt;sudo restart archivematica-mcp-client&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Updates to the Dashboard may require an Apache webserver restart:&lt;br /&gt;
**&amp;lt;pre&amp;gt;sudo /etc/init.d/apache2 restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*If you find a problem running the Dashboard and you want to get a detailed error log to report us, please switch it to debug mode following [http://archivematica.org/wiki/index.php?title=Dashboard#Debug_mode these instructions].&lt;br /&gt;
&lt;br /&gt;
*MCP is currently logging to the /tmp/directory&lt;br /&gt;
** /tmp/archivematicaMCPClient-HOST.log&lt;br /&gt;
** /tmp/archivematicaMCPServer-HOST-DATE.log&lt;br /&gt;
** /tmp/archivematicaMCPServerPID&lt;br /&gt;
&lt;br /&gt;
[[Category:Development documentation]]&lt;/div&gt;</summary>
		<author><name>Joseph</name></author>
	</entry>
	<entry>
		<id>https://wiki.archivematica.org/index.php?title=Development_environment&amp;diff=7715</id>
		<title>Development environment</title>
		<link rel="alternate" type="text/html" href="https://wiki.archivematica.org/index.php?title=Development_environment&amp;diff=7715"/>
		<updated>2013-03-08T21:33:35Z</updated>

		<summary type="html">&lt;p&gt;Joseph: /* Troubleshooting */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Main Page]] &amp;gt; [[Development]] &amp;gt; Development Environment&lt;br /&gt;
&lt;br /&gt;
This page explains how you can configure and use a standard Linux system as an Archivematica development environment.&lt;br /&gt;
The Archivematica development environment is available for developers that want the ability to customize or enhance their own Archivematica installation and/or [[contribute code]] back to the Archivematica project.&lt;br /&gt;
&lt;br /&gt;
=Setup=&lt;br /&gt;
*Install ubuntu 12.04&lt;br /&gt;
*Use git to checkout Archivematica code&lt;br /&gt;
**If you have commit access, use the private repository&lt;br /&gt;
**If you have read-only access, use the public [https://github.com/artefactual/archivematica GitHub repository]&lt;br /&gt;
&amp;lt;pre&amp;gt;git clone https://github.com/artefactual/archivematica.git&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Run the install and helper scripts. &lt;br /&gt;
** &amp;lt;pre&amp;gt;cd archivematica&amp;lt;/pre&amp;gt;&lt;br /&gt;
** &amp;lt;pre&amp;gt;./dev-installer&amp;lt;/pre&amp;gt;&lt;br /&gt;
** Answer Y to all prompts.&lt;br /&gt;
** &amp;lt;pre&amp;gt;./dev-helper&amp;lt;/pre&amp;gt;&lt;br /&gt;
** Answer Y to all prompts.&lt;br /&gt;
** Restart the machine.&lt;br /&gt;
** &amp;lt;pre&amp;gt;cd archivematica&amp;lt;/pre&amp;gt;&lt;br /&gt;
** &amp;lt;pre&amp;gt;./dev-helper&amp;lt;/pre&amp;gt;&lt;br /&gt;
** Answer Y to all prompts.&lt;br /&gt;
** You may need to restart the services (see below for instructions)&lt;br /&gt;
** Complete ATOM setup&lt;br /&gt;
*** The database should already be created.&lt;br /&gt;
*** http://localhost/ica-atom http://localhost/atom&lt;br /&gt;
*** https://www.qubit-toolkit.org/wiki/Installation#Open_Qubit.2C_ICA-AtoM.2C_or_DCB_in_your_web_browser&lt;br /&gt;
** Open the [dashboard http://localhost]&lt;br /&gt;
&lt;br /&gt;
=Run=&lt;br /&gt;
*Start Archivematica MCP Server &amp;amp; Client&lt;br /&gt;
**Open a terminal and type in the following commands:&lt;br /&gt;
***&amp;lt;pre&amp;gt;sudo stop openoffice-service; sudo start openoffice-service&amp;lt;/pre&amp;gt;&lt;br /&gt;
***&amp;lt;pre&amp;gt;sudo stop archivematica-mcp-server; sudo start archivematica-mcp-server&amp;lt;/pre&amp;gt;&lt;br /&gt;
***&amp;lt;pre&amp;gt;sudo stop archivematica-mcp-client; sudo start archivematica-mcp-client&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*To start processing a SIP:&lt;br /&gt;
**Open Thunar file manager&lt;br /&gt;
**if using sample SIPs, 'export' the SIP directory&lt;br /&gt;
***&amp;lt;pre&amp;gt;svn export sampledata ~/sampledata&amp;lt;/pre&amp;gt;&lt;br /&gt;
***OR run the dev-helper script, and hit yes on the option to export the sample data.&lt;br /&gt;
**'cut' the SIP directory and paste into the receiveSIP directory&lt;br /&gt;
**Open the Firefox browser and type 'localhost' as the address to view SIP processing progress via the Dashboard&lt;br /&gt;
&lt;br /&gt;
=Update=&lt;br /&gt;
&lt;br /&gt;
To pull down the latest code commits from the repository, navigate to the directory where Archivematica has been cloned:&lt;br /&gt;
*Change Directory to the archivematica git directory.&lt;br /&gt;
&amp;lt;pre&amp;gt;cd ~/archivematica/&amp;lt;/pre&amp;gt;&lt;br /&gt;
*Check to see if you have any local changes that need to be stashed&lt;br /&gt;
&amp;lt;pre&amp;gt;git diff&amp;lt;/pre&amp;gt;&lt;br /&gt;
*If there are local changes please stash or commit them. (Or you won't be able to update).&lt;br /&gt;
&amp;lt;pre&amp;gt;git stash&amp;lt;/pre&amp;gt;&lt;br /&gt;
Update...&lt;br /&gt;
*&amp;lt;pre&amp;gt;./dev-helper&amp;lt;/pre&amp;gt;&lt;br /&gt;
*&amp;lt;pre&amp;gt;&amp;quot;Would you like to git pull?&amp;quot; (y/N) y&amp;lt;/pre&amp;gt;&lt;br /&gt;
*&amp;lt;pre&amp;gt;&amp;quot;Would you like to recreate the databases?&amp;quot; (y/N) y&amp;lt;/pre&amp;gt;&lt;br /&gt;
**Note: this command will remove any processing sips/transfers.&lt;br /&gt;
*&amp;lt;pre&amp;gt;&amp;quot;Would you like to Include mock FPR data?&amp;quot; (y/N) y &amp;lt;/pre&amp;gt;&lt;br /&gt;
*&amp;lt;pre&amp;gt;&amp;quot;Would you like to restart archivematica services?&amp;quot; (y/N) y&amp;lt;/pre&amp;gt;&lt;br /&gt;
*&amp;lt;pre&amp;gt;&amp;quot;Would you like to re-create gui-scripts editor file?&amp;quot; (y/N) y&amp;lt;/pre&amp;gt;&lt;br /&gt;
*&amp;lt;pre&amp;gt;&amp;quot;Would you like to update Qubit (trunk) and restart its qubit-sword service?&amp;quot; (y/N) y&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you stashed changes, re-apply them with&lt;br /&gt;
&amp;lt;pre&amp;gt;git stash pop&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Troubleshooting=&lt;br /&gt;
* If it stalls during update &amp;quot;Would you like to update/install package requirements?&amp;quot; (y/N)&lt;br /&gt;
** Stop the script with CTRL + C&lt;br /&gt;
** Try installing the item it failed on on the command line. Ie.&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install postfix&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Restart the dev-helper &amp;quot;Would you like to update/install package requirements?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* If you get this error error starting service:&lt;br /&gt;
** &amp;lt;pre&amp;gt;sudo start archivematica-mcp-server&amp;lt;/pre&amp;gt;&lt;br /&gt;
** &amp;lt;pre&amp;gt;start: Unknown job: archivematica-mcp-server&amp;lt;/pre&amp;gt;&lt;br /&gt;
** Then reboot the machine.&lt;br /&gt;
&lt;br /&gt;
*If a SIP processing fails, it will move it to the 'failed' directory which is located:&lt;br /&gt;
**&amp;lt;pre&amp;gt;/var/archivematica/sharedDirectory/watchedDirectories/failed&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*if ArchivematicaServer freezes &lt;br /&gt;
**&amp;lt;pre&amp;gt;sudo restart archivematica-mcp-server&amp;lt;/pre&amp;gt;&lt;br /&gt;
**&amp;lt;pre&amp;gt;sudo restart archivematica-mcp-client&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*if ArchivematicaClient freezes (in terminal kill command)&lt;br /&gt;
**&amp;lt;pre&amp;gt;sudo restart archivematica-mcp-client&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Updates to the Dashboard may require an Apache webserver restart:&lt;br /&gt;
**&amp;lt;pre&amp;gt;sudo /etc/init.d/apache2 restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*If you find a problem running the Dashboard and you want to get a detailed error log to report us, please switch it to debug mode following [http://archivematica.org/wiki/index.php?title=Dashboard#Debug_mode these instructions].&lt;br /&gt;
&lt;br /&gt;
*MCP is currently logging to the /tmp/directory&lt;br /&gt;
** /tmp/archivematicaMCPClient-HOST.log&lt;br /&gt;
** /tmp/archivematicaMCPServer-HOST-DATE.log&lt;br /&gt;
** /tmp/archivematicaMCPServerPID&lt;br /&gt;
&lt;br /&gt;
[[Category:Development documentation]]&lt;/div&gt;</summary>
		<author><name>Joseph</name></author>
	</entry>
	<entry>
		<id>https://wiki.archivematica.org/index.php?title=Development_environment&amp;diff=7714</id>
		<title>Development environment</title>
		<link rel="alternate" type="text/html" href="https://wiki.archivematica.org/index.php?title=Development_environment&amp;diff=7714"/>
		<updated>2013-03-08T21:28:33Z</updated>

		<summary type="html">&lt;p&gt;Joseph: /* Troubleshooting */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Main Page]] &amp;gt; [[Development]] &amp;gt; Development Environment&lt;br /&gt;
&lt;br /&gt;
This page explains how you can configure and use a standard Linux system as an Archivematica development environment.&lt;br /&gt;
The Archivematica development environment is available for developers that want the ability to customize or enhance their own Archivematica installation and/or [[contribute code]] back to the Archivematica project.&lt;br /&gt;
&lt;br /&gt;
=Setup=&lt;br /&gt;
*Install ubuntu 12.04&lt;br /&gt;
*Use git to checkout Archivematica code&lt;br /&gt;
**If you have commit access, use the private repository&lt;br /&gt;
**If you have read-only access, use the public [https://github.com/artefactual/archivematica GitHub repository]&lt;br /&gt;
&amp;lt;pre&amp;gt;git clone https://github.com/artefactual/archivematica.git&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Run the install and helper scripts. &lt;br /&gt;
** &amp;lt;pre&amp;gt;cd archivematica&amp;lt;/pre&amp;gt;&lt;br /&gt;
** &amp;lt;pre&amp;gt;./dev-installer&amp;lt;/pre&amp;gt;&lt;br /&gt;
** Answer Y to all prompts.&lt;br /&gt;
** &amp;lt;pre&amp;gt;./dev-helper&amp;lt;/pre&amp;gt;&lt;br /&gt;
** Answer Y to all prompts.&lt;br /&gt;
** Restart the machine.&lt;br /&gt;
** &amp;lt;pre&amp;gt;cd archivematica&amp;lt;/pre&amp;gt;&lt;br /&gt;
** &amp;lt;pre&amp;gt;./dev-helper&amp;lt;/pre&amp;gt;&lt;br /&gt;
** Answer Y to all prompts.&lt;br /&gt;
** You may need to restart the services (see below for instructions)&lt;br /&gt;
** Complete ATOM setup&lt;br /&gt;
*** The database should already be created.&lt;br /&gt;
*** http://localhost/ica-atom http://localhost/atom&lt;br /&gt;
*** https://www.qubit-toolkit.org/wiki/Installation#Open_Qubit.2C_ICA-AtoM.2C_or_DCB_in_your_web_browser&lt;br /&gt;
** Open the [dashboard http://localhost]&lt;br /&gt;
&lt;br /&gt;
=Run=&lt;br /&gt;
*Start Archivematica MCP Server &amp;amp; Client&lt;br /&gt;
**Open a terminal and type in the following commands:&lt;br /&gt;
***&amp;lt;pre&amp;gt;sudo stop openoffice-service; sudo start openoffice-service&amp;lt;/pre&amp;gt;&lt;br /&gt;
***&amp;lt;pre&amp;gt;sudo stop archivematica-mcp-server; sudo start archivematica-mcp-server&amp;lt;/pre&amp;gt;&lt;br /&gt;
***&amp;lt;pre&amp;gt;sudo stop archivematica-mcp-client; sudo start archivematica-mcp-client&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*To start processing a SIP:&lt;br /&gt;
**Open Thunar file manager&lt;br /&gt;
**if using sample SIPs, 'export' the SIP directory&lt;br /&gt;
***&amp;lt;pre&amp;gt;svn export sampledata ~/sampledata&amp;lt;/pre&amp;gt;&lt;br /&gt;
***OR run the dev-helper script, and hit yes on the option to export the sample data.&lt;br /&gt;
**'cut' the SIP directory and paste into the receiveSIP directory&lt;br /&gt;
**Open the Firefox browser and type 'localhost' as the address to view SIP processing progress via the Dashboard&lt;br /&gt;
&lt;br /&gt;
=Update=&lt;br /&gt;
&lt;br /&gt;
To pull down the latest code commits from the repository, navigate to the directory where Archivematica has been cloned:&lt;br /&gt;
*Change Directory to the archivematica git directory.&lt;br /&gt;
&amp;lt;pre&amp;gt;cd ~/archivematica/&amp;lt;/pre&amp;gt;&lt;br /&gt;
*Check to see if you have any local changes that need to be stashed&lt;br /&gt;
&amp;lt;pre&amp;gt;git diff&amp;lt;/pre&amp;gt;&lt;br /&gt;
*If there are local changes please stash or commit them. (Or you won't be able to update).&lt;br /&gt;
&amp;lt;pre&amp;gt;git stash&amp;lt;/pre&amp;gt;&lt;br /&gt;
Update...&lt;br /&gt;
*&amp;lt;pre&amp;gt;./dev-helper&amp;lt;/pre&amp;gt;&lt;br /&gt;
*&amp;lt;pre&amp;gt;&amp;quot;Would you like to git pull?&amp;quot; (y/N) y&amp;lt;/pre&amp;gt;&lt;br /&gt;
*&amp;lt;pre&amp;gt;&amp;quot;Would you like to recreate the databases?&amp;quot; (y/N) y&amp;lt;/pre&amp;gt;&lt;br /&gt;
**Note: this command will remove any processing sips/transfers.&lt;br /&gt;
*&amp;lt;pre&amp;gt;&amp;quot;Would you like to Include mock FPR data?&amp;quot; (y/N) y &amp;lt;/pre&amp;gt;&lt;br /&gt;
*&amp;lt;pre&amp;gt;&amp;quot;Would you like to restart archivematica services?&amp;quot; (y/N) y&amp;lt;/pre&amp;gt;&lt;br /&gt;
*&amp;lt;pre&amp;gt;&amp;quot;Would you like to re-create gui-scripts editor file?&amp;quot; (y/N) y&amp;lt;/pre&amp;gt;&lt;br /&gt;
*&amp;lt;pre&amp;gt;&amp;quot;Would you like to update Qubit (trunk) and restart its qubit-sword service?&amp;quot; (y/N) y&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you stashed changes, re-apply them with&lt;br /&gt;
&amp;lt;pre&amp;gt;git stash pop&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Troubleshooting=&lt;br /&gt;
* If it stalls during update &amp;quot;Would you like to update/install package requirements?&amp;quot; (y/N)&lt;br /&gt;
** Stop the script with CTRL + C&lt;br /&gt;
** Try installing the item it failed on on the command line. Ie.&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install postfix&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* If you get this error error starting service:&lt;br /&gt;
** &amp;lt;pre&amp;gt;sudo start archivematica-mcp-server&amp;lt;/pre&amp;gt;&lt;br /&gt;
** &amp;lt;pre&amp;gt;start: Unknown job: archivematica-mcp-server&amp;lt;/pre&amp;gt;&lt;br /&gt;
** Then reboot the machine.&lt;br /&gt;
&lt;br /&gt;
*If a SIP processing fails, it will move it to the 'failed' directory which is located:&lt;br /&gt;
**&amp;lt;pre&amp;gt;/var/archivematica/sharedDirectory/watchedDirectories/failed&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*if ArchivematicaServer freezes &lt;br /&gt;
**&amp;lt;pre&amp;gt;sudo restart archivematica-mcp-server&amp;lt;/pre&amp;gt;&lt;br /&gt;
**&amp;lt;pre&amp;gt;sudo restart archivematica-mcp-client&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*if ArchivematicaClient freezes (in terminal kill command)&lt;br /&gt;
**&amp;lt;pre&amp;gt;sudo restart archivematica-mcp-client&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Updates to the Dashboard may require an Apache webserver restart:&lt;br /&gt;
**&amp;lt;pre&amp;gt;sudo /etc/init.d/apache2 restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*If you find a problem running the Dashboard and you want to get a detailed error log to report us, please switch it to debug mode following [http://archivematica.org/wiki/index.php?title=Dashboard#Debug_mode these instructions].&lt;br /&gt;
&lt;br /&gt;
*MCP is currently logging to the /tmp/directory&lt;br /&gt;
** /tmp/archivematicaMCPClient-HOST.log&lt;br /&gt;
** /tmp/archivematicaMCPServer-HOST-DATE.log&lt;br /&gt;
** /tmp/archivematicaMCPServerPID&lt;br /&gt;
&lt;br /&gt;
[[Category:Development documentation]]&lt;/div&gt;</summary>
		<author><name>Joseph</name></author>
	</entry>
	<entry>
		<id>https://wiki.archivematica.org/index.php?title=Development_environment&amp;diff=7713</id>
		<title>Development environment</title>
		<link rel="alternate" type="text/html" href="https://wiki.archivematica.org/index.php?title=Development_environment&amp;diff=7713"/>
		<updated>2013-03-08T20:40:40Z</updated>

		<summary type="html">&lt;p&gt;Joseph: /* Update */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Main Page]] &amp;gt; [[Development]] &amp;gt; Development Environment&lt;br /&gt;
&lt;br /&gt;
This page explains how you can configure and use a standard Linux system as an Archivematica development environment.&lt;br /&gt;
The Archivematica development environment is available for developers that want the ability to customize or enhance their own Archivematica installation and/or [[contribute code]] back to the Archivematica project.&lt;br /&gt;
&lt;br /&gt;
=Setup=&lt;br /&gt;
*Install ubuntu 12.04&lt;br /&gt;
*Use git to checkout Archivematica code&lt;br /&gt;
**If you have commit access, use the private repository&lt;br /&gt;
**If you have read-only access, use the public [https://github.com/artefactual/archivematica GitHub repository]&lt;br /&gt;
&amp;lt;pre&amp;gt;git clone https://github.com/artefactual/archivematica.git&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Run the install and helper scripts. &lt;br /&gt;
** &amp;lt;pre&amp;gt;cd archivematica&amp;lt;/pre&amp;gt;&lt;br /&gt;
** &amp;lt;pre&amp;gt;./dev-installer&amp;lt;/pre&amp;gt;&lt;br /&gt;
** Answer Y to all prompts.&lt;br /&gt;
** &amp;lt;pre&amp;gt;./dev-helper&amp;lt;/pre&amp;gt;&lt;br /&gt;
** Answer Y to all prompts.&lt;br /&gt;
** Restart the machine.&lt;br /&gt;
** &amp;lt;pre&amp;gt;cd archivematica&amp;lt;/pre&amp;gt;&lt;br /&gt;
** &amp;lt;pre&amp;gt;./dev-helper&amp;lt;/pre&amp;gt;&lt;br /&gt;
** Answer Y to all prompts.&lt;br /&gt;
** You may need to restart the services (see below for instructions)&lt;br /&gt;
** Complete ATOM setup&lt;br /&gt;
*** The database should already be created.&lt;br /&gt;
*** http://localhost/ica-atom http://localhost/atom&lt;br /&gt;
*** https://www.qubit-toolkit.org/wiki/Installation#Open_Qubit.2C_ICA-AtoM.2C_or_DCB_in_your_web_browser&lt;br /&gt;
** Open the [dashboard http://localhost]&lt;br /&gt;
&lt;br /&gt;
=Run=&lt;br /&gt;
*Start Archivematica MCP Server &amp;amp; Client&lt;br /&gt;
**Open a terminal and type in the following commands:&lt;br /&gt;
***&amp;lt;pre&amp;gt;sudo stop openoffice-service; sudo start openoffice-service&amp;lt;/pre&amp;gt;&lt;br /&gt;
***&amp;lt;pre&amp;gt;sudo stop archivematica-mcp-server; sudo start archivematica-mcp-server&amp;lt;/pre&amp;gt;&lt;br /&gt;
***&amp;lt;pre&amp;gt;sudo stop archivematica-mcp-client; sudo start archivematica-mcp-client&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*To start processing a SIP:&lt;br /&gt;
**Open Thunar file manager&lt;br /&gt;
**if using sample SIPs, 'export' the SIP directory&lt;br /&gt;
***&amp;lt;pre&amp;gt;svn export sampledata ~/sampledata&amp;lt;/pre&amp;gt;&lt;br /&gt;
***OR run the dev-helper script, and hit yes on the option to export the sample data.&lt;br /&gt;
**'cut' the SIP directory and paste into the receiveSIP directory&lt;br /&gt;
**Open the Firefox browser and type 'localhost' as the address to view SIP processing progress via the Dashboard&lt;br /&gt;
&lt;br /&gt;
=Update=&lt;br /&gt;
&lt;br /&gt;
To pull down the latest code commits from the repository, navigate to the directory where Archivematica has been cloned:&lt;br /&gt;
*Change Directory to the archivematica git directory.&lt;br /&gt;
&amp;lt;pre&amp;gt;cd ~/archivematica/&amp;lt;/pre&amp;gt;&lt;br /&gt;
*Check to see if you have any local changes that need to be stashed&lt;br /&gt;
&amp;lt;pre&amp;gt;git diff&amp;lt;/pre&amp;gt;&lt;br /&gt;
*If there are local changes please stash or commit them. (Or you won't be able to update).&lt;br /&gt;
&amp;lt;pre&amp;gt;git stash&amp;lt;/pre&amp;gt;&lt;br /&gt;
Update...&lt;br /&gt;
*&amp;lt;pre&amp;gt;./dev-helper&amp;lt;/pre&amp;gt;&lt;br /&gt;
*&amp;lt;pre&amp;gt;&amp;quot;Would you like to git pull?&amp;quot; (y/N) y&amp;lt;/pre&amp;gt;&lt;br /&gt;
*&amp;lt;pre&amp;gt;&amp;quot;Would you like to recreate the databases?&amp;quot; (y/N) y&amp;lt;/pre&amp;gt;&lt;br /&gt;
**Note: this command will remove any processing sips/transfers.&lt;br /&gt;
*&amp;lt;pre&amp;gt;&amp;quot;Would you like to Include mock FPR data?&amp;quot; (y/N) y &amp;lt;/pre&amp;gt;&lt;br /&gt;
*&amp;lt;pre&amp;gt;&amp;quot;Would you like to restart archivematica services?&amp;quot; (y/N) y&amp;lt;/pre&amp;gt;&lt;br /&gt;
*&amp;lt;pre&amp;gt;&amp;quot;Would you like to re-create gui-scripts editor file?&amp;quot; (y/N) y&amp;lt;/pre&amp;gt;&lt;br /&gt;
*&amp;lt;pre&amp;gt;&amp;quot;Would you like to update Qubit (trunk) and restart its qubit-sword service?&amp;quot; (y/N) y&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you stashed changes, re-apply them with&lt;br /&gt;
&amp;lt;pre&amp;gt;git stash pop&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Troubleshooting=&lt;br /&gt;
* If you get this error error starting service:&lt;br /&gt;
** &amp;lt;pre&amp;gt;sudo start archivematica-mcp-server&amp;lt;/pre&amp;gt;&lt;br /&gt;
** &amp;lt;pre&amp;gt;start: Unknown job: archivematica-mcp-server&amp;lt;/pre&amp;gt;&lt;br /&gt;
** Then reboot the machine.&lt;br /&gt;
&lt;br /&gt;
*If a SIP processing fails, it will move it to the 'failed' directory which is located:&lt;br /&gt;
**&amp;lt;pre&amp;gt;/var/archivematica/sharedDirectory/watchedDirectories/failed&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*if ArchivematicaServer freezes &lt;br /&gt;
**&amp;lt;pre&amp;gt;sudo restart archivematica-mcp-server&amp;lt;/pre&amp;gt;&lt;br /&gt;
**&amp;lt;pre&amp;gt;sudo restart archivematica-mcp-client&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*if ArchivematicaClient freezes (in terminal kill command)&lt;br /&gt;
**&amp;lt;pre&amp;gt;sudo restart archivematica-mcp-client&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Updates to the Dashboard may require an Apache webserver restart:&lt;br /&gt;
**&amp;lt;pre&amp;gt;sudo /etc/init.d/apache2 restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*If you find a problem running the Dashboard and you want to get a detailed error log to report us, please switch it to debug mode following [http://archivematica.org/wiki/index.php?title=Dashboard#Debug_mode these instructions].&lt;br /&gt;
&lt;br /&gt;
*MCP is currently logging to the /tmp/directory&lt;br /&gt;
** /tmp/archivematicaMCPClient-HOST.log&lt;br /&gt;
** /tmp/archivematicaMCPServer-HOST-DATE.log&lt;br /&gt;
** /tmp/archivematicaMCPServerPID&lt;br /&gt;
&lt;br /&gt;
[[Category:Development documentation]]&lt;/div&gt;</summary>
		<author><name>Joseph</name></author>
	</entry>
	<entry>
		<id>https://wiki.archivematica.org/index.php?title=Development_environment&amp;diff=7712</id>
		<title>Development environment</title>
		<link rel="alternate" type="text/html" href="https://wiki.archivematica.org/index.php?title=Development_environment&amp;diff=7712"/>
		<updated>2013-03-08T20:36:53Z</updated>

		<summary type="html">&lt;p&gt;Joseph: /* Update */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Main Page]] &amp;gt; [[Development]] &amp;gt; Development Environment&lt;br /&gt;
&lt;br /&gt;
This page explains how you can configure and use a standard Linux system as an Archivematica development environment.&lt;br /&gt;
The Archivematica development environment is available for developers that want the ability to customize or enhance their own Archivematica installation and/or [[contribute code]] back to the Archivematica project.&lt;br /&gt;
&lt;br /&gt;
=Setup=&lt;br /&gt;
*Install ubuntu 12.04&lt;br /&gt;
*Use git to checkout Archivematica code&lt;br /&gt;
**If you have commit access, use the private repository&lt;br /&gt;
**If you have read-only access, use the public [https://github.com/artefactual/archivematica GitHub repository]&lt;br /&gt;
&amp;lt;pre&amp;gt;git clone https://github.com/artefactual/archivematica.git&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Run the install and helper scripts. &lt;br /&gt;
** &amp;lt;pre&amp;gt;cd archivematica&amp;lt;/pre&amp;gt;&lt;br /&gt;
** &amp;lt;pre&amp;gt;./dev-installer&amp;lt;/pre&amp;gt;&lt;br /&gt;
** Answer Y to all prompts.&lt;br /&gt;
** &amp;lt;pre&amp;gt;./dev-helper&amp;lt;/pre&amp;gt;&lt;br /&gt;
** Answer Y to all prompts.&lt;br /&gt;
** Restart the machine.&lt;br /&gt;
** &amp;lt;pre&amp;gt;cd archivematica&amp;lt;/pre&amp;gt;&lt;br /&gt;
** &amp;lt;pre&amp;gt;./dev-helper&amp;lt;/pre&amp;gt;&lt;br /&gt;
** Answer Y to all prompts.&lt;br /&gt;
** You may need to restart the services (see below for instructions)&lt;br /&gt;
** Complete ATOM setup&lt;br /&gt;
*** The database should already be created.&lt;br /&gt;
*** http://localhost/ica-atom http://localhost/atom&lt;br /&gt;
*** https://www.qubit-toolkit.org/wiki/Installation#Open_Qubit.2C_ICA-AtoM.2C_or_DCB_in_your_web_browser&lt;br /&gt;
** Open the [dashboard http://localhost]&lt;br /&gt;
&lt;br /&gt;
=Run=&lt;br /&gt;
*Start Archivematica MCP Server &amp;amp; Client&lt;br /&gt;
**Open a terminal and type in the following commands:&lt;br /&gt;
***&amp;lt;pre&amp;gt;sudo stop openoffice-service; sudo start openoffice-service&amp;lt;/pre&amp;gt;&lt;br /&gt;
***&amp;lt;pre&amp;gt;sudo stop archivematica-mcp-server; sudo start archivematica-mcp-server&amp;lt;/pre&amp;gt;&lt;br /&gt;
***&amp;lt;pre&amp;gt;sudo stop archivematica-mcp-client; sudo start archivematica-mcp-client&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*To start processing a SIP:&lt;br /&gt;
**Open Thunar file manager&lt;br /&gt;
**if using sample SIPs, 'export' the SIP directory&lt;br /&gt;
***&amp;lt;pre&amp;gt;svn export sampledata ~/sampledata&amp;lt;/pre&amp;gt;&lt;br /&gt;
***OR run the dev-helper script, and hit yes on the option to export the sample data.&lt;br /&gt;
**'cut' the SIP directory and paste into the receiveSIP directory&lt;br /&gt;
**Open the Firefox browser and type 'localhost' as the address to view SIP processing progress via the Dashboard&lt;br /&gt;
&lt;br /&gt;
=Update=&lt;br /&gt;
To pull down the latest code commits from the repository, navigate to the directory where Archivematica has been cloned:&lt;br /&gt;
*Change Directory to the archivematica git directory.&lt;br /&gt;
&amp;lt;pre&amp;gt;cd ~/archivematica/&amp;lt;/pre&amp;gt;&lt;br /&gt;
*&amp;lt;pre&amp;gt;./dev-helper&amp;lt;/pre&amp;gt;&lt;br /&gt;
*&amp;lt;pre&amp;gt;&amp;quot;Would you like to git pull?&amp;quot; (y/N) y&amp;lt;/pre&amp;gt;&lt;br /&gt;
*&amp;lt;pre&amp;gt;&amp;quot;Would you like to recreate the databases?&amp;quot; (y/N) y&amp;lt;/pre&amp;gt;&lt;br /&gt;
**Note: this command will remove any processing sips/transfers.&lt;br /&gt;
*&amp;lt;pre&amp;gt;&amp;quot;Would you like to Include mock FPR data?&amp;quot; (y/N) y &amp;lt;/pre&amp;gt;&lt;br /&gt;
*&amp;lt;pre&amp;gt;&amp;quot;Would you like to restart archivematica services?&amp;quot; (y/N) y&amp;lt;/pre&amp;gt;&lt;br /&gt;
*&amp;lt;pre&amp;gt;&amp;quot;Would you like to re-create gui-scripts editor file?&amp;quot; (y/N) y&amp;lt;/pre&amp;gt;&lt;br /&gt;
*&amp;lt;pre&amp;gt;&amp;quot;Would you like to update Qubit (trunk) and restart its qubit-sword service?&amp;quot; (y/N) y&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Troubleshooting=&lt;br /&gt;
* If you get this error error starting service:&lt;br /&gt;
** &amp;lt;pre&amp;gt;sudo start archivematica-mcp-server&amp;lt;/pre&amp;gt;&lt;br /&gt;
** &amp;lt;pre&amp;gt;start: Unknown job: archivematica-mcp-server&amp;lt;/pre&amp;gt;&lt;br /&gt;
** Then reboot the machine.&lt;br /&gt;
&lt;br /&gt;
*If a SIP processing fails, it will move it to the 'failed' directory which is located:&lt;br /&gt;
**&amp;lt;pre&amp;gt;/var/archivematica/sharedDirectory/watchedDirectories/failed&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*if ArchivematicaServer freezes &lt;br /&gt;
**&amp;lt;pre&amp;gt;sudo restart archivematica-mcp-server&amp;lt;/pre&amp;gt;&lt;br /&gt;
**&amp;lt;pre&amp;gt;sudo restart archivematica-mcp-client&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*if ArchivematicaClient freezes (in terminal kill command)&lt;br /&gt;
**&amp;lt;pre&amp;gt;sudo restart archivematica-mcp-client&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Updates to the Dashboard may require an Apache webserver restart:&lt;br /&gt;
**&amp;lt;pre&amp;gt;sudo /etc/init.d/apache2 restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*If you find a problem running the Dashboard and you want to get a detailed error log to report us, please switch it to debug mode following [http://archivematica.org/wiki/index.php?title=Dashboard#Debug_mode these instructions].&lt;br /&gt;
&lt;br /&gt;
*MCP is currently logging to the /tmp/directory&lt;br /&gt;
** /tmp/archivematicaMCPClient-HOST.log&lt;br /&gt;
** /tmp/archivematicaMCPServer-HOST-DATE.log&lt;br /&gt;
** /tmp/archivematicaMCPServerPID&lt;br /&gt;
&lt;br /&gt;
[[Category:Development documentation]]&lt;/div&gt;</summary>
		<author><name>Joseph</name></author>
	</entry>
	<entry>
		<id>https://wiki.archivematica.org/index.php?title=Meeting_201300206&amp;diff=7516</id>
		<title>Meeting 201300206</title>
		<link rel="alternate" type="text/html" href="https://wiki.archivematica.org/index.php?title=Meeting_201300206&amp;diff=7516"/>
		<updated>2013-02-06T19:39:35Z</updated>

		<summary type="html">&lt;p&gt;Joseph: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Archivematica meeting February 06, 2013&lt;br /&gt;
&lt;br /&gt;
==dev==&lt;br /&gt;
* peterVG release numbering change  1.0 -&amp;gt; 0.10-beta; 1.1 -&amp;gt; 1.0&lt;br /&gt;
* courtneyM went through roadmap and evaluated related issue status, sent email to archivematica group&lt;br /&gt;
* berwin22 added gitproperties to help with versioning. It can replace $Id: $ with the sha5 of the commit.&lt;br /&gt;
* Evelyn changed https://projects.artefactual.com/issues/1576 to &amp;quot;won't fix&amp;quot; as it's not longer required by the institution.&lt;br /&gt;
* mcantelon: Mike C spent time looking into browser memory use monitoring and has been working on an implementation of dashboard grip paging that won't gobble memory.&lt;br /&gt;
* epmclellan added new issue, hoping to get it into .10: https://projects.artefactual.com/issues/4605&lt;br /&gt;
* epmclellan create data entry template to allow user to editprocessing config settings&lt;br /&gt;
* berwin22 archivematica file identification now also includes tool version for most tools, including droid.&lt;br /&gt;
* mcantelon to have meeting to discuss his .10 schedule.&lt;br /&gt;
&lt;br /&gt;
==docs==&lt;br /&gt;
* David to schedule a meeting about handling client data.&lt;br /&gt;
* Courtney to ALL: please include breadcrumbs when creating a new wiki page.&lt;br /&gt;
&lt;br /&gt;
== deployment ==&lt;br /&gt;
* berwin22 to get an estimate on our release schedule.&lt;br /&gt;
* Austin UBC ran into some issues with linking and is waiting to hear from IT.&lt;br /&gt;
&lt;br /&gt;
== Testing ==&lt;br /&gt;
* Austin doing maildir testing - scalability testing&lt;br /&gt;
* Justin using collectd (http://collectd.org/) on ARTi's scalability testing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category: Meetings]]&lt;/div&gt;</summary>
		<author><name>Joseph</name></author>
	</entry>
	<entry>
		<id>https://wiki.archivematica.org/index.php?title=Meeting_201300206&amp;diff=7515</id>
		<title>Meeting 201300206</title>
		<link rel="alternate" type="text/html" href="https://wiki.archivematica.org/index.php?title=Meeting_201300206&amp;diff=7515"/>
		<updated>2013-02-06T19:38:06Z</updated>

		<summary type="html">&lt;p&gt;Joseph: Created page with &amp;quot;==dev== * peterVG release numbering change  1.0 -&amp;gt; 0.10-beta; 1.1 -&amp;gt; 1.0 * courtneyM went through roadmap and evaluated related issue status, sent email to archivematica group...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==dev==&lt;br /&gt;
* peterVG release numbering change  1.0 -&amp;gt; 0.10-beta; 1.1 -&amp;gt; 1.0&lt;br /&gt;
* courtneyM went through roadmap and evaluated related issue status, sent email to archivematica group&lt;br /&gt;
* berwin22 added gitproperties to help with versioning. It can replace $Id: $ with the sha5 of the commit.&lt;br /&gt;
* Evelyn changed https://projects.artefactual.com/issues/1576 to &amp;quot;won't fix&amp;quot; as it's not longer required by the institution.&lt;br /&gt;
* mcantelon: Mike C spent time looking into browser memory use monitoring and has been working on an implementation of dashboard grip paging that won't gobble memory.&lt;br /&gt;
* epmclellan added new issue, hoping to get it into .10: https://projects.artefactual.com/issues/4605&lt;br /&gt;
* epmclellan create data entry template to allow user to editprocessing config settings&lt;br /&gt;
* berwin22 archivematica file identification now also includes tool version for most tools, including droid.&lt;br /&gt;
* mcantelon to have meeting to discuss his .10 schedule.&lt;br /&gt;
&lt;br /&gt;
==docs==&lt;br /&gt;
* David to schedule a meeting about handling client data.&lt;br /&gt;
* Courtney to ALL: please include breadcrumbs when creating a new wiki page.&lt;br /&gt;
&lt;br /&gt;
== deployment ==&lt;br /&gt;
* berwin22 to get an estimate on our release schedule.&lt;br /&gt;
* Austin UBC ran into some issues with linking and is waiting to hear from IT.&lt;br /&gt;
&lt;br /&gt;
== Testing ==&lt;br /&gt;
* Austin doing maildir testing - scalability testing&lt;br /&gt;
* Justin using collectd (http://collectd.org/) on ARTi's scalability testing.&lt;/div&gt;</summary>
		<author><name>Joseph</name></author>
	</entry>
	<entry>
		<id>https://wiki.archivematica.org/index.php?title=MCPServer&amp;diff=7240</id>
		<title>MCPServer</title>
		<link rel="alternate" type="text/html" href="https://wiki.archivematica.org/index.php?title=MCPServer&amp;diff=7240"/>
		<updated>2012-11-30T23:15:56Z</updated>

		<summary type="html">&lt;p&gt;Joseph: /* what clients are connected */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Main Page]] &amp;gt; [[Development]] &amp;gt; [[:Category:Development documentation|Development documentation]] &amp;gt; MCP&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;status&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
Design&lt;br /&gt;
&amp;lt;div class=&amp;quot;description&amp;quot;&amp;gt;&lt;br /&gt;
This page proposes a new feature and reviews design options&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;active&amp;quot;&amp;gt;&lt;br /&gt;
Development&lt;br /&gt;
&amp;lt;div class=&amp;quot;description&amp;quot;&amp;gt;&lt;br /&gt;
This page describes a feature that's in development&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div&amp;gt;&lt;br /&gt;
Documentation&lt;br /&gt;
&amp;lt;div class=&amp;quot;description&amp;quot;&amp;gt;&lt;br /&gt;
This page documents an implemented feature&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
The MCP is the core of the Archivematica system. It controls the various [[micro-services]] in the Archivematica system.  Configuration and processing information are held in the database. The user monitors and controls the MCP via the [[ dashboard ]]. The MCP maintains a log of all completed work.&lt;br /&gt;
&lt;br /&gt;
The MCP uses the [http://gearman.org gearman]. The MCP Clients are relatively &amp;quot;dumb&amp;quot;. They are gearman worker implementations, that inform the gearman server what tasks they can perform, and wait for the server to assign them a task.&lt;br /&gt;
&lt;br /&gt;
The Archivematica system relies on client and server having access to the same directory, to process the commands. On a distributed system, this is done through the shared directory.&lt;br /&gt;
&lt;br /&gt;
Basic configuration can be seen here [[MCP Basic Configuration]] &amp;lt;-- deprecated&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Server And Database==&lt;br /&gt;
The MCP has watched directories, which are linked to Job Chains. Each Job Chain is designed to carry out a function. The function is broken down into managable peices, which are called Job Chain Links. Each of these links performs a task. Like previous versions of the MCP, these tasks may be configured to run once, or once for each file in a directory. &lt;br /&gt;
&lt;br /&gt;
One major fundamental change is that the MCP is no longer as linear as it once was. Decision points allow the user to select the next Microservice chain to process, based on what is available at that point. This allows for the creation of alternative, yet similar workflows to co-exist in the Archivematica-MCP system.&lt;br /&gt;
&lt;br /&gt;
===Job Chains===&lt;br /&gt;
&lt;br /&gt;
===Job Chain Links===&lt;br /&gt;
====Decision Point====&lt;br /&gt;
====Regular Job====&lt;br /&gt;
&lt;br /&gt;
===Tasks===&lt;br /&gt;
&lt;br /&gt;
===mcp Modules===&lt;br /&gt;
The mcp Modules are configured in the database, with the following schema.&lt;br /&gt;
&lt;br /&gt;
This may be a little out of date. Note, was generated using mysql workbench (sudo apt-get install mysql-workbench).&lt;br /&gt;
&lt;br /&gt;
[[File:MCP_configuration_database_schema.png]]&lt;br /&gt;
&lt;br /&gt;
==Client==&lt;br /&gt;
Clients connect to the specified gearman server and provides a list of modules they support. When the MCP informs the gearman server of a Task that the client supports and the gearman server assigns the job to the client, the client will process the Job, and return the results to the gearman server, which in turn will return them to the MCP.&lt;br /&gt;
&lt;br /&gt;
===Client on Windows===&lt;br /&gt;
There has been some consideration of getting an MCP client to run in the Microsoft Windows environment. This would be advantageous for [[normalizing in a windows environment]]. Some testing has been done to this end. See issue 372.&lt;br /&gt;
&lt;br /&gt;
==Debugging==&lt;br /&gt;
Debugging the MCP can be a difficult task.&lt;br /&gt;
Logs can be large, and are placed in the /tmp/ directory, so they are automatically removed upon reboot.&lt;br /&gt;
&lt;br /&gt;
===Parsing Logs===&lt;br /&gt;
Here are some commands to help parse logs:&lt;br /&gt;
&amp;lt;pre&amp;gt;grep &amp;quot;DEBUG type=\&amp;quot;archivematicaMCP\&amp;quot;&amp;quot; -v /tmp/archivematicaMCPServer* -h &amp;gt; /tmp/archivematicaOutput.txt &amp;lt;/pre&amp;gt;&lt;br /&gt;
Removes the periodic debug message prints.&lt;br /&gt;
&amp;lt;pre&amp;gt;grep &amp;quot;Traceback (most recent call last):&amp;quot; /tmp/archivematicaOutput.txt  -n&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;grep -i EXCEPTION /tmp/archivematicaMCPServer-* -n&amp;lt;/pre&amp;gt;&lt;br /&gt;
-n will prepend the line number&lt;br /&gt;
&amp;lt;pre&amp;gt;sed -n '302092,+50'p /tmp/archivematicaMCPServer-*&amp;lt;/pre&amp;gt;&lt;br /&gt;
prints 50 lines from the file, including line number 302092. This is useful to look at sections of the log that have exceptions, which can be found with the command above.&lt;br /&gt;
&lt;br /&gt;
===debugging tools===&lt;br /&gt;
In extreme cases, you can setup your dev enviroment, so you log in as the archivematica user, and use eclipse with pyDev in debug mode, to run the MCP.&lt;br /&gt;
&lt;br /&gt;
===what clients are connected===&lt;br /&gt;
&amp;lt;pre&amp;gt;python -c '&lt;br /&gt;
import gearman&lt;br /&gt;
admin = gearman.admin_client.GearmanAdminClient(host_list=[&amp;quot;127.0.0.1&amp;quot;])&lt;br /&gt;
for client in admin. get_workers():&lt;br /&gt;
    if client[&amp;quot;client_id&amp;quot;] != &amp;quot;-&amp;quot;: #exclude server task connections&lt;br /&gt;
        print client[&amp;quot;client_id&amp;quot;], client[&amp;quot;ip&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
for stat in admin.get_status():&lt;br /&gt;
    if stat[&amp;quot;running&amp;quot;] != 0 or stat[&amp;quot;queued&amp;quot;] != 0:&lt;br /&gt;
        print stat&lt;br /&gt;
' &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Waching activity===&lt;br /&gt;
&amp;lt;pre&amp;gt;tail /tmp/archivematicaMCP* -f&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;watch mysql -u root MCP --execute &amp;quot;\&amp;quot;SELECT * FROM Tasks WHERE endTime = 0;\&amp;quot;&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Turning on printing all sql queries===&lt;br /&gt;
sudo nano /usr/lib/archivematica/archivematicaCommon/databaseInterface.py&lt;br /&gt;
:http://code.google.com/p/archivematica/source/browse/tags/release-0.8-alpha/src/archivematicaCommon/lib/databaseInterface.py&lt;br /&gt;
:edit lines 34 and 73&lt;br /&gt;
:&amp;quot;printSQL = False&amp;quot;  -&amp;gt; printSQL = True&lt;br /&gt;
:&amp;quot;        print printSQL&amp;quot; -&amp;gt; &amp;quot;        print sql&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This will cause archivematica to print ALL of it's queries issues to the database.&lt;br /&gt;
&lt;br /&gt;
=Change Log=&lt;br /&gt;
==0.8==&lt;br /&gt;
* Switched to database configuration.&lt;br /&gt;
* Allows for alternative workflows (ie. don't create DIP)&lt;br /&gt;
* Start, MCP server will try to match any existing directories in the watched directories, to a processing directory/SIP.&lt;br /&gt;
&lt;br /&gt;
==0.7.1==&lt;br /&gt;
* Work was done on microservices to make the system more stable. &lt;br /&gt;
* A config to set the underlying protocol max length was added.&lt;br /&gt;
&lt;br /&gt;
==0.7==&lt;br /&gt;
* Work was done on microservices to make the system more stable. &lt;br /&gt;
&lt;br /&gt;
==0.6.2==&lt;br /&gt;
* MCP was released.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Development documentation]]&lt;/div&gt;</summary>
		<author><name>Joseph</name></author>
	</entry>
	<entry>
		<id>https://wiki.archivematica.org/index.php?title=MCPServer&amp;diff=7239</id>
		<title>MCPServer</title>
		<link rel="alternate" type="text/html" href="https://wiki.archivematica.org/index.php?title=MCPServer&amp;diff=7239"/>
		<updated>2012-11-30T23:13:05Z</updated>

		<summary type="html">&lt;p&gt;Joseph: /* Debugging */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Main Page]] &amp;gt; [[Development]] &amp;gt; [[:Category:Development documentation|Development documentation]] &amp;gt; MCP&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;status&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
Design&lt;br /&gt;
&amp;lt;div class=&amp;quot;description&amp;quot;&amp;gt;&lt;br /&gt;
This page proposes a new feature and reviews design options&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;active&amp;quot;&amp;gt;&lt;br /&gt;
Development&lt;br /&gt;
&amp;lt;div class=&amp;quot;description&amp;quot;&amp;gt;&lt;br /&gt;
This page describes a feature that's in development&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;div&amp;gt;&lt;br /&gt;
Documentation&lt;br /&gt;
&amp;lt;div class=&amp;quot;description&amp;quot;&amp;gt;&lt;br /&gt;
This page documents an implemented feature&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
The MCP is the core of the Archivematica system. It controls the various [[micro-services]] in the Archivematica system.  Configuration and processing information are held in the database. The user monitors and controls the MCP via the [[ dashboard ]]. The MCP maintains a log of all completed work.&lt;br /&gt;
&lt;br /&gt;
The MCP uses the [http://gearman.org gearman]. The MCP Clients are relatively &amp;quot;dumb&amp;quot;. They are gearman worker implementations, that inform the gearman server what tasks they can perform, and wait for the server to assign them a task.&lt;br /&gt;
&lt;br /&gt;
The Archivematica system relies on client and server having access to the same directory, to process the commands. On a distributed system, this is done through the shared directory.&lt;br /&gt;
&lt;br /&gt;
Basic configuration can be seen here [[MCP Basic Configuration]] &amp;lt;-- deprecated&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Server And Database==&lt;br /&gt;
The MCP has watched directories, which are linked to Job Chains. Each Job Chain is designed to carry out a function. The function is broken down into managable peices, which are called Job Chain Links. Each of these links performs a task. Like previous versions of the MCP, these tasks may be configured to run once, or once for each file in a directory. &lt;br /&gt;
&lt;br /&gt;
One major fundamental change is that the MCP is no longer as linear as it once was. Decision points allow the user to select the next Microservice chain to process, based on what is available at that point. This allows for the creation of alternative, yet similar workflows to co-exist in the Archivematica-MCP system.&lt;br /&gt;
&lt;br /&gt;
===Job Chains===&lt;br /&gt;
&lt;br /&gt;
===Job Chain Links===&lt;br /&gt;
====Decision Point====&lt;br /&gt;
====Regular Job====&lt;br /&gt;
&lt;br /&gt;
===Tasks===&lt;br /&gt;
&lt;br /&gt;
===mcp Modules===&lt;br /&gt;
The mcp Modules are configured in the database, with the following schema.&lt;br /&gt;
&lt;br /&gt;
This may be a little out of date. Note, was generated using mysql workbench (sudo apt-get install mysql-workbench).&lt;br /&gt;
&lt;br /&gt;
[[File:MCP_configuration_database_schema.png]]&lt;br /&gt;
&lt;br /&gt;
==Client==&lt;br /&gt;
Clients connect to the specified gearman server and provides a list of modules they support. When the MCP informs the gearman server of a Task that the client supports and the gearman server assigns the job to the client, the client will process the Job, and return the results to the gearman server, which in turn will return them to the MCP.&lt;br /&gt;
&lt;br /&gt;
===Client on Windows===&lt;br /&gt;
There has been some consideration of getting an MCP client to run in the Microsoft Windows environment. This would be advantageous for [[normalizing in a windows environment]]. Some testing has been done to this end. See issue 372.&lt;br /&gt;
&lt;br /&gt;
==Debugging==&lt;br /&gt;
Debugging the MCP can be a difficult task.&lt;br /&gt;
Logs can be large, and are placed in the /tmp/ directory, so they are automatically removed upon reboot.&lt;br /&gt;
&lt;br /&gt;
===Parsing Logs===&lt;br /&gt;
Here are some commands to help parse logs:&lt;br /&gt;
&amp;lt;pre&amp;gt;grep &amp;quot;DEBUG type=\&amp;quot;archivematicaMCP\&amp;quot;&amp;quot; -v /tmp/archivematicaMCPServer* -h &amp;gt; /tmp/archivematicaOutput.txt &amp;lt;/pre&amp;gt;&lt;br /&gt;
Removes the periodic debug message prints.&lt;br /&gt;
&amp;lt;pre&amp;gt;grep &amp;quot;Traceback (most recent call last):&amp;quot; /tmp/archivematicaOutput.txt  -n&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;grep -i EXCEPTION /tmp/archivematicaMCPServer-* -n&amp;lt;/pre&amp;gt;&lt;br /&gt;
-n will prepend the line number&lt;br /&gt;
&amp;lt;pre&amp;gt;sed -n '302092,+50'p /tmp/archivematicaMCPServer-*&amp;lt;/pre&amp;gt;&lt;br /&gt;
prints 50 lines from the file, including line number 302092. This is useful to look at sections of the log that have exceptions, which can be found with the command above.&lt;br /&gt;
&lt;br /&gt;
===debugging tools===&lt;br /&gt;
In extreme cases, you can setup your dev enviroment, so you log in as the archivematica user, and use eclipse with pyDev in debug mode, to run the MCP.&lt;br /&gt;
&lt;br /&gt;
===what clients are connected===&lt;br /&gt;
&amp;lt;pre&amp;gt;python -c '&lt;br /&gt;
import gearman&lt;br /&gt;
admin = gearman.admin_client.GearmanAdminClient(host_list=[&amp;quot;127.0.0.1&amp;quot;])&lt;br /&gt;
for client in admin. get_workers():&lt;br /&gt;
    if client[&amp;quot;client_id&amp;quot;] != &amp;quot;-&amp;quot;: #exclude server task connections&lt;br /&gt;
        print client[&amp;quot;client_id&amp;quot;], client[&amp;quot;ip&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
for stat in admin.get_status():&lt;br /&gt;
&lt;br /&gt;
===Waching activity===&lt;br /&gt;
&amp;lt;pre&amp;gt;tail /tmp/archivematicaMCP* -f&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;watch mysql -u root MCP --execute &amp;quot;\&amp;quot;SELECT * FROM Tasks WHERE endTime = 0;\&amp;quot;&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
    if stat[&amp;quot;running&amp;quot;] != 0 or stat[&amp;quot;queued&amp;quot;] != 0:&lt;br /&gt;
        print stat&lt;br /&gt;
&lt;br /&gt;
' &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Turning on printing all sql queries===&lt;br /&gt;
sudo nano /usr/lib/archivematica/archivematicaCommon/databaseInterface.py&lt;br /&gt;
:http://code.google.com/p/archivematica/source/browse/tags/release-0.8-alpha/src/archivematicaCommon/lib/databaseInterface.py&lt;br /&gt;
:edit lines 34 and 73&lt;br /&gt;
:&amp;quot;printSQL = False&amp;quot;  -&amp;gt; printSQL = True&lt;br /&gt;
:&amp;quot;        print printSQL&amp;quot; -&amp;gt; &amp;quot;        print sql&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This will cause archivematica to print ALL of it's queries issues to the database.&lt;br /&gt;
&lt;br /&gt;
=Change Log=&lt;br /&gt;
==0.8==&lt;br /&gt;
* Switched to database configuration.&lt;br /&gt;
* Allows for alternative workflows (ie. don't create DIP)&lt;br /&gt;
* Start, MCP server will try to match any existing directories in the watched directories, to a processing directory/SIP.&lt;br /&gt;
&lt;br /&gt;
==0.7.1==&lt;br /&gt;
* Work was done on microservices to make the system more stable. &lt;br /&gt;
* A config to set the underlying protocol max length was added.&lt;br /&gt;
&lt;br /&gt;
==0.7==&lt;br /&gt;
* Work was done on microservices to make the system more stable. &lt;br /&gt;
&lt;br /&gt;
==0.6.2==&lt;br /&gt;
* MCP was released.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Development documentation]]&lt;/div&gt;</summary>
		<author><name>Joseph</name></author>
	</entry>
	<entry>
		<id>https://wiki.archivematica.org/index.php?title=Install-0.9-beta&amp;diff=7219</id>
		<title>Install-0.9-beta</title>
		<link rel="alternate" type="text/html" href="https://wiki.archivematica.org/index.php?title=Install-0.9-beta&amp;diff=7219"/>
		<updated>2012-11-28T19:37:21Z</updated>

		<summary type="html">&lt;p&gt;Joseph: /* Advanced */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Main Page]] &amp;gt; [[Software]] &amp;gt; [[Install]] &amp;gt; Release 0.9-beta&lt;br /&gt;
&lt;br /&gt;
There are multiple ways to install and use Archivematica 0.9-beta. Once it is installed, consult the [[User_Manual]] for user instructions.&lt;br /&gt;
&lt;br /&gt;
= Virtual appliance =&lt;br /&gt;
&lt;br /&gt;
1. What is a [[wikipedia:Virtual appliance|virtual appliance]]?&lt;br /&gt;
&lt;br /&gt;
2. Download your preferred virtual appliance format:&lt;br /&gt;
&lt;br /&gt;
* VirtualBox, VMware: [http://archivematica.org/downloads/archivematica-0.9-beta.vmdk.tbz archivematica-0.9-beta.vmdk.tbz] (1.8G)&lt;br /&gt;
** European mirror: [http://europe.artefactual.com/archivematica/archivematica-0.9-beta.vmdk.tbz archivematica-0.9-beta.vmdk.tbz] (1.8G)&lt;br /&gt;
** [http://www.archivematica.org/download/archivematica-0.9-beta.vmdk.torrent Torrent file]&lt;br /&gt;
&lt;br /&gt;
To run a checksum on the .tbz file, select one of the following: ([http://archivematica.org/downloads/sha256.list sha256], [http://archivematica.org/downloads/md5sum.list md5sum]).&lt;br /&gt;
&lt;br /&gt;
3. If you don't already have a virtual machine player, we recommend VirtualBox. See these [[Virtual appliance instructions]] on how to load your Archivematica virtual appliance using VirtualBox.&lt;br /&gt;
&lt;br /&gt;
= Advanced =&lt;br /&gt;
&lt;br /&gt;
This options requires experience in linux&lt;br /&gt;
* Install from Packages on ubuntu&lt;br /&gt;
** Packages allow a user to quickly deploy a multinode environment,  [http://archivematica.org/wiki/index.php?title=Multi_Node_Install How to install packages]&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;/div&gt;</summary>
		<author><name>Joseph</name></author>
	</entry>
	<entry>
		<id>https://wiki.archivematica.org/index.php?title=Contribute_code&amp;diff=7205</id>
		<title>Contribute code</title>
		<link rel="alternate" type="text/html" href="https://wiki.archivematica.org/index.php?title=Contribute_code&amp;diff=7205"/>
		<updated>2012-11-27T00:58:14Z</updated>

		<summary type="html">&lt;p&gt;Joseph: /* Patches */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Main Page]] &amp;gt; [[Development]] &amp;gt; Contribute code&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Patches==&lt;br /&gt;
If you find a bug in this project or would like to make an enhancement, please be encouraged to contribute a patch by following [[Pull requests|these instructions]].&lt;br /&gt;
&lt;br /&gt;
==Commit access==&lt;br /&gt;
Anyone can contribute code patches to this project. Project collaborators and regular patch contributors will be given access to commit directly to the git code repository.&lt;br /&gt;
&lt;br /&gt;
==Contributor's Agreement==&lt;br /&gt;
In order to accept any patches or code commits, contributors must first sign the [[Contributor Agreement|Archivematica Contributor's Agreement]].&lt;br /&gt;
&lt;br /&gt;
==Standards==&lt;br /&gt;
&lt;br /&gt;
=== Code Style Guide For Archivematica ===&lt;br /&gt;
This coding convention is adopted from:&lt;br /&gt;
&amp;lt;br/&amp;gt;http://www.python.org/dev/peps/pep-0008/&lt;br /&gt;
&amp;lt;br/&amp;gt;authors: Guido van Rossum &amp;lt;guido at python.org&amp;gt;, Barry Warsaw &amp;lt;barry at python.org&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Tabs are forbidden.&lt;br /&gt;
*4 spaces per indent.&lt;br /&gt;
*cammelCase all variables, starting with lower case.&lt;br /&gt;
*Max 79 characters per line.&lt;br /&gt;
*Each import is on it's own line (no comma separated imports)&lt;br /&gt;
*No spaces next to parenthesis '('&lt;br /&gt;
*No space before comma, space after comma.&lt;br /&gt;
*Assignments and comparators are given a single space separator 'x = 1'&lt;br /&gt;
&lt;br /&gt;
=== File Structure ===&lt;br /&gt;
The file structure in Archivematica will comply with the Filesystem Hierarchy Standard (FHS).  &lt;br /&gt;
&amp;lt;br/&amp;gt;More information on this standard is available at:  &lt;br /&gt;
&amp;lt;br/&amp;gt;http://www.pathname.com/fhs/&lt;/div&gt;</summary>
		<author><name>Joseph</name></author>
	</entry>
	<entry>
		<id>https://wiki.archivematica.org/index.php?title=File:Archivematica_generated_workflow_diagram.svg&amp;diff=7192</id>
		<title>File:Archivematica generated workflow diagram.svg</title>
		<link rel="alternate" type="text/html" href="https://wiki.archivematica.org/index.php?title=File:Archivematica_generated_workflow_diagram.svg&amp;diff=7192"/>
		<updated>2012-11-22T01:34:18Z</updated>

		<summary type="html">&lt;p&gt;Joseph: This file was generated during 1.0 development using script:
https://github.com/artefactual/archivematica/blob/joseph/src/MCPgraphing/lib/graphLinks.py&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This file was generated during 1.0 development using script:&lt;br /&gt;
https://github.com/artefactual/archivematica/blob/joseph/src/MCPgraphing/lib/graphLinks.py&lt;/div&gt;</summary>
		<author><name>Joseph</name></author>
	</entry>
	<entry>
		<id>https://wiki.archivematica.org/index.php?title=Database_Data_Management&amp;diff=6946</id>
		<title>Database Data Management</title>
		<link rel="alternate" type="text/html" href="https://wiki.archivematica.org/index.php?title=Database_Data_Management&amp;diff=6946"/>
		<updated>2012-10-10T20:41:45Z</updated>

		<summary type="html">&lt;p&gt;Joseph: /* For the future Releases */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Main Page]] &amp;gt; [[Development]] &amp;gt; [[:Category:Development documentation|Development documentation]] &amp;gt; Database Data Management&lt;br /&gt;
[[Category:Development documentation]]&lt;br /&gt;
&lt;br /&gt;
=For the 1.0 Release=&lt;br /&gt;
The data for the transcoder will need to be maintained by the FPR. The table structure will be maintained by the package.&lt;br /&gt;
&lt;br /&gt;
All pk INT's will be replaced will UUIDs. Issue 1223.&lt;br /&gt;
This will allow for local customizations to be distinguished from the original data provided in archivematica.&lt;br /&gt;
&lt;br /&gt;
All tables will have a replaces UUID column added. Issue 1224 .&lt;br /&gt;
This column will be populated when a provided rule is replaced with an updated/custom one. &lt;br /&gt;
As part of the update, the system will need to identify items that have been replaced, and update the foreign keys pointing at it to the updated rule. Warning: not all foreign keys are explicit in the database. Some are a &amp;quot;combined foriegn key&amp;quot;, like Tasks Configs: Task type will inform the code what table to look at, and taskTypePKReference will specify the fk. &lt;br /&gt;
&lt;br /&gt;
==Development==&lt;br /&gt;
To separate data for the transcoder, we'll be using a series of mysql dumps. Issue 1225. Once the FPR data is seperate, the developer can work on a means of populating that into their database, with the columns they require, and getting them into the database through an API. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Deployed Data management==&lt;br /&gt;
Every change to the DB for workflow/FPR should be assigned a new UUID, so that it is not confused or overwritten on update. For tracking purposes the replaces column should be populated accordingly.&lt;br /&gt;
&lt;br /&gt;
==Release==&lt;br /&gt;
A custom script for updating from the 0.9 to 1.0 will be developed to track existing SIPs/Tranfers/Files in the system, and not lose any data associated with them. This should be a msyql script to be run by the tool Austin has found for managing DB's across releases. Issue 1226.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=For the 1.1 Release=&lt;br /&gt;
Development changes for the db will occur through a sql script, applied against the previous release. Issue 1227.&lt;br /&gt;
&lt;br /&gt;
==Development==&lt;br /&gt;
The 1.0 schema will remain in the code. Rebuilding the database will consist of the following steps:&lt;br /&gt;
# Build the database from the 1.0 schema&lt;br /&gt;
# Apply update patch sql script file&lt;br /&gt;
# Run update script, that will replace the updated rows where specified.&lt;br /&gt;
&lt;br /&gt;
The 1.0 schema will remain untouched from the 1.0 release. &lt;br /&gt;
&amp;lt;br/&amp;gt;The apply patch will be edited to make changes for the 1.1 release.&lt;br /&gt;
&amp;lt;br/&amp;gt;The update script will be developed for this release. &lt;br /&gt;
&lt;br /&gt;
All dev changes to the db will occur in the patch or from the FPR.&lt;br /&gt;
&lt;br /&gt;
==Release==&lt;br /&gt;
Updating from 1.0 to 1.1 can run the patch. This requires no data loss.&lt;br /&gt;
&lt;br /&gt;
New installs will run a script generated as part of the release process. It will be a dump of the 1.0 with the 1.1 patch applied. Future releases will use this as the base for development in the next release.&lt;br /&gt;
&lt;br /&gt;
==Deployed Data management==&lt;br /&gt;
Same as 1.0&lt;br /&gt;
&lt;br /&gt;
==How this works with local customizations==&lt;br /&gt;
The local customization made in 1.0 will not be overwritten by the ones made in the update, because all the fk's will already have been updated, so there would be nothing to replace, and point at the new rule.&lt;br /&gt;
&lt;br /&gt;
=For the future Releases=&lt;br /&gt;
Each release keeps the base sql dump from the previous release. &lt;br /&gt;
A patch file is generated against this dump for the release.&lt;br /&gt;
We could look at generating the patch using http://dev.mysql.com/doc/refman/5.0/en/binary-log.html&lt;/div&gt;</summary>
		<author><name>Joseph</name></author>
	</entry>
	<entry>
		<id>https://wiki.archivematica.org/index.php?title=Screencasts&amp;diff=6928</id>
		<title>Screencasts</title>
		<link rel="alternate" type="text/html" href="https://wiki.archivematica.org/index.php?title=Screencasts&amp;diff=6928"/>
		<updated>2012-10-10T18:35:46Z</updated>

		<summary type="html">&lt;p&gt;Joseph: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Main Page]] &amp;gt; [[Documentation]] &amp;gt; Screencasts&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://youtu.be/GWmNfuO1ofw Archivematica 0.9-beta demonstration] (Aug 29, 2012)&lt;br /&gt;
* [http://youtu.be/KqOFZeGmdK0 Archivematica 0.9-beta Bagit] (Oct 10, 2012)&lt;br /&gt;
* [http://youtu.be/BSfQ4bVGiDY Archivematica 0.9-beta Premis] (Oct 10, 2012)&lt;br /&gt;
* [http://www.youtube.com/watch?v=w7ZS9I1NLtU Archivematica 0.8-alpha demotration]&lt;br /&gt;
* [http://http://youtu.be/dFPtDA4nAPY Archivematica 0.7.1-alpha demonstration] (Jun 23, 2011)&lt;br /&gt;
* [http://www.youtube.com/watch?v=Py-LtfxWQhY Archivematica 0.7-alpha demonstration] (Feb 18, 2011)&lt;/div&gt;</summary>
		<author><name>Joseph</name></author>
	</entry>
	<entry>
		<id>https://wiki.archivematica.org/index.php?title=Screencasts&amp;diff=6927</id>
		<title>Screencasts</title>
		<link rel="alternate" type="text/html" href="https://wiki.archivematica.org/index.php?title=Screencasts&amp;diff=6927"/>
		<updated>2012-10-10T18:34:15Z</updated>

		<summary type="html">&lt;p&gt;Joseph: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Main Page]] &amp;gt; [[Documentation]] &amp;gt; Screencasts&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [http://youtu.be/GWmNfuO1ofw Archivematica 0.9-beta demonstration] (Aug 29, 2012)&lt;br /&gt;
* [http://youtu.be/KqOFZeGmdK0 Archivematica 0.9-Bagit] (Oct 10, 2012)&lt;br /&gt;
* [http://youtu.be/BSfQ4bVGiDY Archivematica 0.9-Premis] (Oct 10, 2012)&lt;br /&gt;
* [http://http://youtu.be/dFPtDA4nAPY Archivematica 0.7.1-alpha demonstration] (Jun 23, 2011)&lt;br /&gt;
* [http://www.youtube.com/watch?v=Py-LtfxWQhY Archivematica 0.7-alpha demonstration] (Feb 18, 2011)&lt;/div&gt;</summary>
		<author><name>Joseph</name></author>
	</entry>
	<entry>
		<id>https://wiki.archivematica.org/index.php?title=Meeting_20121010&amp;diff=6919</id>
		<title>Meeting 20121010</title>
		<link rel="alternate" type="text/html" href="https://wiki.archivematica.org/index.php?title=Meeting_20121010&amp;diff=6919"/>
		<updated>2012-10-10T17:56:08Z</updated>

		<summary type="html">&lt;p&gt;Joseph: /* chat log */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Artefactual Systems, Internal Archivematica Dev Mtg, 2012-10-03&lt;br /&gt;
&lt;br /&gt;
= Development =&lt;br /&gt;
&lt;br /&gt;
* Joseph worked on Issue 1232:	Parse csv metadata in transfer to directories or files within the transfer.&lt;br /&gt;
* Joseph starting to work on parsing FITS for file identification insert values into database.&lt;br /&gt;
* Courtney mocking up the UI for normalization via FITS today&lt;br /&gt;
* Mike C fixed issues with non-standard characters breaking the transfer component picker (thanks berwin22 for help!)&lt;br /&gt;
* Mike C added the ability to change user passwords with the dashboard&lt;br /&gt;
&lt;br /&gt;
= Deployment =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Testing =&lt;br /&gt;
* Joseph updated Evelyn's efir to git&lt;br /&gt;
* Courtney needed to create key for authentication&lt;br /&gt;
&lt;br /&gt;
= Documentation =&lt;br /&gt;
* Courtney created screencasts for bags and premis&lt;br /&gt;
* Courtney added a brief UM page for Bags https://www.archivematica.org/wiki/UM_Bags&lt;br /&gt;
* Evelyn has been analyzing and documenting ingest requirements for TRIM exports https://www.archivematica.org/wiki/TRIM_exports&lt;br /&gt;
&lt;br /&gt;
=chat log=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(10:32:56 AM) djjuhasz: Archivematica!&lt;br /&gt;
(10:33:10 AM) epmclellan: hello!&lt;br /&gt;
(10:33:15 AM) courtney: yo&lt;br /&gt;
(10:33:32 AM) berwin22: I can take notes&lt;br /&gt;
(10:33:41 AM) epmclellan: thanks berwin22&lt;br /&gt;
(10:33:49 AM) berwin22: dev&lt;br /&gt;
(10:33:51 AM) berwin22: I've worked on Issue 1232:	Parse csv metadata in transfer to directories or files within the transfer&lt;br /&gt;
(10:33:51 AM) berwin22: starting to work on parsing FITS for file identification insert values into database.&lt;br /&gt;
(10:34:08 AM) courtney: i'm mocking up that UI today&lt;br /&gt;
(10:34:20 AM) artii [~yaaic@out-bc-221.wireless.telus.com] entered the room.&lt;br /&gt;
(10:34:27 AM) epmclellan: I've been working closely with Mark Jordan on CONTENTdm DIP upload requirements&lt;br /&gt;
(10:34:36 AM) epmclellan: with bulk metadata import&lt;br /&gt;
(10:34:45 AM) epmclellan: he has everything he needs now&lt;br /&gt;
(10:34:54 AM) JessicaB: great!&lt;br /&gt;
(10:35:08 AM) courtney: will this be a ubc patch?&lt;br /&gt;
(10:35:53 AM) epmclellan: probably part of the repo, and we'll install a dev version of Archivematica there for testing&lt;br /&gt;
(10:35:56 AM) epmclellan: er...right?&lt;br /&gt;
(10:36:08 AM) epmclellan: berwin22: ^&lt;br /&gt;
(10:36:29 AM) berwin22: I don't think I've seen any git commits from mark... I recall sevein setting him up?&lt;br /&gt;
(10:36:40 AM) epmclellan: he's got access, he just hasn't done the dev yet&lt;br /&gt;
(10:36:53 AM) djjuhasz: Show me the dev!&lt;br /&gt;
(10:36:57 AM) djjuhasz: :P&lt;br /&gt;
(10:36:59 AM) mcantelon: Haha&lt;br /&gt;
(10:37:04 AM) courtney: ok&lt;br /&gt;
(10:37:13 AM) mcantelon: Mike C worked on reorganizing dashboard views/URLs/templates into separate modules&lt;br /&gt;
(10:37:21 AM) berwin22: it probably makes the most sense to make ubc a dev install... I wonder if we should make them a git branch?&lt;br /&gt;
(10:37:40 AM) epmclellan: it depends on how busted Archivematica is by then&lt;br /&gt;
(10:38:14 AM) mcantelon: Mike C fixed issues with non-standard characters breaking the transfer component picker (thanks berwin22 for help!)&lt;br /&gt;
(10:38:25 AM) mcantelon: Mike C added the ability to change user passwords with the dashboard&lt;br /&gt;
(10:39:15 AM) epmclellan: finished dev?&lt;br /&gt;
(10:39:17 AM) fiver: Question: i remember hearing at one of the demos that 1.0 may have plans for incorporating Chain of Preservation model...  is this work begun/still a plan for 1.0, or later, or not? &lt;br /&gt;
(10:39:43 AM) courtney: fiver: we've already done a gap analysis against COP&lt;br /&gt;
(10:39:44 AM) epmclellan: fiver: we'll be doing an analysis of our metadata bs chain of preservation model&lt;br /&gt;
(10:39:49 AM) epmclellan: but that won't involve actual dev&lt;br /&gt;
(10:39:57 AM) courtney: fiver: that's how we have all the stopping points for appraisal/arrangement&lt;br /&gt;
(10:40:01 AM) epmclellan: courtney: I think he's talking about our work with Joe Tennis&lt;br /&gt;
(10:40:27 AM) courtney: still, fiver, you can read the Archivaria article if you're interested in the work we did with COP so far&lt;br /&gt;
(10:40:31 AM) berwin22: np mcantelon: what do you think of python + non ascii?&lt;br /&gt;
(10:40:58 AM) ***mcantelon stares into the darkness and weeps&lt;br /&gt;
(10:41:06 AM) fiver: Wheres the article?  would love to learn more about how these kind of models get turned into a functional workflow through AM, so if you need any further help lemme know&lt;br /&gt;
(10:41:20 AM) fiver: oh, hahah, sorry, archivaria&lt;br /&gt;
(10:41:26 AM) fiver: read archivematica&lt;br /&gt;
(10:42:03 AM) epmclellan: deployment?&lt;br /&gt;
(10:42:19 AM) courtney: fiver: i'll send link&lt;br /&gt;
(10:42:37 AM) djjuhasz: That's okay fiver, Courtney was working for the mysterious &amp;quot;Artactual&amp;quot; yesterday &lt;br /&gt;
(10:42:37 AM) fiver: courtney: sure! i can also find it...&lt;br /&gt;
(10:42:45 AM) berwin22: anything for deployment?&lt;br /&gt;
(10:42:51 AM) fiver: hahaha&lt;br /&gt;
(10:42:58 AM) fiver: competitors&lt;br /&gt;
(10:43:02 AM) berwin22: testing?&lt;br /&gt;
(10:43:14 AM) courtney: i can't test until i can update&lt;br /&gt;
(10:43:20 AM) epmclellan: berwin22 installed Archivematica directly on my desktop&lt;br /&gt;
(10:43:29 AM) epmclellan: after upgrading it to Ubuntu 12.04&lt;br /&gt;
(10:43:30 AM) courtney: i have ssh key (public), but no idea what to do &lt;br /&gt;
(10:43:35 AM) epmclellan: so I'm able to test now&lt;br /&gt;
(10:43:51 AM) courtney: djjuhasz: what? when was i working for Artactual?&lt;br /&gt;
(10:44:10 AM) epmclellan: courtney: for about 20 minutes yesterday, until peter fixed a typo&lt;br /&gt;
(10:44:21 AM) courtney: oh... missed that&lt;br /&gt;
(10:44:21 AM) fiver: re: testing, not sure if i am set up to assist with  this yet. have only used AM through the VirtualBox so far...&lt;br /&gt;
(10:44:24 AM) berwin22: courtney: sevein will need to add the key to the git server, then we can set you up&lt;br /&gt;
(10:44:28 AM) JessicaB: i think you get paid for that time.&lt;br /&gt;
(10:44:55 AM) courtney: i emailed sevein, but i think he's off the grid until the 14th or so&lt;br /&gt;
(10:45:02 AM) JessicaB: yep&lt;br /&gt;
(10:45:04 AM) fiver: good for him!&lt;br /&gt;
(10:45:09 AM) epmclellan: berwin22's an expert, he can set you up&lt;br /&gt;
(10:45:23 AM) epmclellan: oh, once you get the key, I mean&lt;br /&gt;
(10:46:05 AM) epmclellan: docs?&lt;br /&gt;
(10:46:17 AM) berwin22: we'll set you up read only for the time being then, then switch you over later&lt;br /&gt;
(10:46:28 AM) mcantelon: artii: Seems like Elasticsearch isn't starting consistently... wonder if having something like Monit watch over it would be worth doing?&lt;br /&gt;
(10:46:28 AM) djjuhasz: courtney: I think I can set you up on the git server&lt;br /&gt;
(10:46:46 AM) djjuhasz: courtney: can you please send your public key via PM or email?&lt;br /&gt;
(10:47:13 AM) ARTi [~austin@24-207-101-202.eastlink.ca] entered the room.&lt;br /&gt;
(10:47:14 AM) courtney: it is on the internal wiki, dj&lt;br /&gt;
(10:47:29 AM) mcantelon: ARTi: ^&lt;br /&gt;
(10:47:47 AM) courtney: docs - two new screencasts today: bags and premis&lt;br /&gt;
(10:48:01 AM) courtney: added a brief UM page for Bags&lt;br /&gt;
(10:48:07 AM) epmclellan: I've been analyzing and documenting ingest requirements for TRIM exports&lt;br /&gt;
(10:48:07 AM) ARTi: mcantelon: Ill look at monit&lt;br /&gt;
(10:48:09 AM) epmclellan: https://www.archivematica.org/wiki/TRIM_exports&lt;br /&gt;
(10:48:20 AM) courtney: berwin22: we can include a link to the screencast there: https://www.archivematica.org/wiki/UM_Bags&lt;br /&gt;
(10:48:34 AM) mcantelon: ARTi: Sweet... the ES server seems a bit fragile or something.&lt;br /&gt;
(10:49:03 AM) courtney: ES is  a delicate flower&lt;br /&gt;
(10:49:03 AM) ARTi: yeah.. seems very fragile.&lt;br /&gt;
(10:49:36 AM) ARTi: I guess its our only option?  too bad its java :]&lt;br /&gt;
(10:49:38 AM) berwin22: k&lt;br /&gt;
(10:50:07 AM) courtney: docs... i also added a bit more about searching the AIP store on the Archival Storage page of the UM&lt;br /&gt;
(10:50:10 AM) ARTi: think its the way that its packaged thats causing issues?&lt;br /&gt;
(10:50:14 AM) ARTi: mcantelon: ^&lt;br /&gt;
(10:50:17 AM) courtney: https://www.archivematica.org/wiki/UM_archival_storage&lt;br /&gt;
(10:51:28 AM) mcantelon: ARTi: Unfortunately I'm not sure if it's crashing or if it doesn't start up, occasionally, in the first place.&lt;br /&gt;
(10:51:56 AM) courtney: great twitter feedback from Derangement and Description's Rebecca Goldman about the quality of our documentation&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
[[Category:meetings]]&lt;/div&gt;</summary>
		<author><name>Joseph</name></author>
	</entry>
</feed>