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.xsdimmediately 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
- What Exactly Gets Exported — Details on exported registry data, files, and ACLs
- Import Overview — How the manifest drives the import process
- XML Schema Reference — Full XSD schema documentation