# Update App Object Owners

The Update App Object Owners step is responsible for reassigning ownership of private app content in Qlik Cloud following the import of applications. During the Import Applications step, all content is brought in under the identity of the API key (service account), including personal sheets and stories. This step corrects ownership based on metadata gathered during earlier phases of the migration.

This step requires app metadata generated during the Export Applications step.

The Export Scope must be set appropriately to include private and community content as needed, ensuring that exported content reflects the desired ownership mapping for successful reassignment.

Private app content includes:

* Personal sheets (private sheets)
* Personal bookmarks (private bookmarks)
* Personal stories (private stories)
* Community sheets
* Community bookmarks
* Community stories

## How ownership mapping works

Ownership reassignment is based on app object metadata stored in the `AppObjectAppDescriptions.json` file generated during the Export Applications step. This file includes key details such as the source app object's owner and target app ID.

The migration tool uses one of two approaches to determine how users from the client-managed environment map to users in Qlik Cloud:

### Approach 1: With a User mapping file

1. Run the Export Users step prior to this step.
2. This generates a `userMappings.json` file containing:
   * Source (client-managed) `UserId`
   * Target Qlik Cloud user information (`email`, `subject`)
3. During Update App Object Owners, the tool matches app object owners in the exported data to users in Qlik Cloud using the mapping file.

### Approach 2: Without a user mapping file

If the Export Users step is not run, the tool attempts to match users using the following fallback logic:

1. Compare source `UserDirectory\UserId` to Qlik Cloud `subject`
2. Compare source `UserId` to Qlik Cloud `subject`
3. Compare source `UserId` to Qlik Cloud `email`

If no match is found using these methods, reassignment for that specific app object will fail, and a log entry will be created.

## Best practices

* Always include the Export Applications and Export Users steps in your migration workflow when ownership reassignment is needed.
* Review the `AppObjectAppDescriptions.json` and `userMappings.json` files for completeness and accuracy prior to running this step.
* Validate that intended users exist in Qlik Cloud before running this step to ensure proper reassignment.

## Related pages

* [Export Applications](https://help.qlik.com/en-US/migration/Content/AnalyticsMigrationTool/Managing-Migration-Steps/Applications/Export-Applications.htm)
* [Import Applications](https://help.qlik.com/en-US/migration/Content/AnalyticsMigrationTool/Managing-Migration-Steps/Applications/Import-Applications.htm)
* [Export Users](https://help.qlik.com/en-US/migration/Content/AnalyticsMigrationTool/Managing-Migration-Steps/Users/Export-Users.htm)