Understanding the Manifest File

The manifest file is the central artifact of every AppProfileSafe export. It is an XML file that describes which applications were backed up, what data was captured, and where the exported files are stored. During import, AppProfileSafe reads the manifest to determine what to restore.


Location and Naming

The manifest file is created at the target path chosen during export. Its name is defined by the user (default: APS_Export_yyyyMMddHHmmss.xml). A data folder with the same name (without the .xml extension) is created alongside it.

Item Example
Manifest file C:\Backup\APS_Export_20260213143022.xml
Data folder C:\Backup\APS_Export_20260213143022\

Both the manifest file and the data folder must remain in the same directory. Moving or renaming one without the other will break the import.


XML Structure

Below is a complete example of a manifest file:

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<Manifest xmlns="urn:appprofilesafe:manifest:v1"
          CreatedUtc="2026-02-13T14:30:22Z"
          SchemaVersion="1.0.0">

  <Metadata>
    <ProductName>AppProfileSafe</ProductName>
    <DataFolderName>APS_Export_20260213143022</DataFolderName>
  </Metadata>

  <Entry EntryName="Firefox">
    <Registry Available="true" />
    <Files>
      <FileOrFolder ItemType="Folder">
        <OriginPath>%APPDATA%\Mozilla\Firefox\Profiles</OriginPath>
        <SafePath>Firefox\Files\a1b2c3d4\Profiles</SafePath>
      </FileOrFolder>
      <FileOrFolder ItemType="File">
        <OriginPath>%APPDATA%\Mozilla\Firefox\profiles.ini</OriginPath>
        <SafePath>Firefox\Files\a1b2c3d4\profiles.ini</SafePath>
        <Sddl>O:BAG:DUD:(A;OICI;FA;;;BA)</Sddl>
      </FileOrFolder>
    </Files>
  </Entry>

  <Entry EntryName="Chrome">
    <Registry Available="false" />
    <Files>
      <!-- ... -->
    </Files>
  </Entry>

</Manifest>


Root Element: Manifest

Attribute Required Description
CreatedUtc Yes UTC timestamp when the export was created (ISO 8601 format, e.g. 2026-02-13T14:30:22Z)
SchemaVersion Yes Schema version of the manifest format (currently 1.0.0)

XML namespace: urn:appprofilesafe:manifest:v1


Metadata Element

The <Metadata> element is a required child of <Manifest>:

Child Element Required Description
<ProductName> No Always set to AppProfileSafe
<DataFolderName> No Name of the data folder relative to the manifest location (e.g. APS_Export_20260213143022). If missing, the default APS is assumed.


Entry Elements

<Entry> elements are direct children of <Manifest> (there is no wrapper element). Each entry represents one exported application.

Attribute / Element Required Description
@EntryName Yes Application name (matches the definition file name without .xml)
<Registry Available="true|false"> Yes true if registry data was exported for this application; false if no registry items were captured
<Files> Yes Container for <FileOrFolder> items (may be empty if no files were exported)


FileOrFolder Elements

Each <FileOrFolder> element represents a single exported file or folder:

Attribute / Element Required Description
@ItemType Yes File or Folder
<OriginPath> Yes Original source path on the export machine. May contain environment variables (e.g. %APPDATA%\...). This path is used during import to determine where to restore the item.
<SafePath> Yes Relative path within the data folder where the exported copy is stored. Uses a hashed directory structure to avoid path conflicts.
<Sddl> No NTFS security descriptor in SDDL format. If present, the original ACL can be restored during import. See What Exactly Gets Exported.


Validation

The manifest file is validated against the XSD schema at two points:

  • After export: AppProfileSafe validates the newly created manifest against AppProfileSafe.Manifest-v1.0.0.xsd immediately after writing it. If validation fails, the export is reported as failed.
  • During import: The import process validates the manifest before proceeding. If the manifest is invalid, the import is aborted with an error.

The validator checks the current schema first and falls back to the legacy schema name (AppProfileSafe.Manifest.xsd) if the versioned file is not found.


Relationship to the Data Folder

The data folder contains the actual exported data, organized by application:

APS_Export_20260213143022\
  ├── Firefox\
  │   ├── Registry\
  │   │   └── Firefox.xml          ← Registry export (XML)
  │   └── Files\
  │       └── a1b2c3d4\            ← Hashed subdirectory
  │           ├── Profiles\         ← Exported folders
  │           └── profiles.ini      ← Exported files
  └── Chrome\
      ├── Registry\
      └── Files\

The <SafePath> in each <FileOrFolder> element is relative to the data folder root. During import, AppProfileSafe combines the data folder path with the <SafePath> to locate the source copy, and uses the <OriginPath> to determine the restore target.


Common Issues

Issue Cause Solution
Manifest not found File was moved or deleted Ensure the .xml file exists at the expected path
Data folder not found Folder was moved, renamed, or deleted Ensure the data folder is in the same directory as the manifest and matches the <DataFolderName>
Schema validation failure Manifest was manually edited or created by a different tool Verify the XML namespace, required attributes, and element structure
Entry data missing Files were deleted from the data folder after export Re-run the export to create a fresh backup


See Also