
## Source owner manager

URL: https://docs.atlan.com/product/capabilities/governance/stewardship/references/source-owner-manager

> Automatically populate asset owners in Atlan using source-system metadata like Snowflake last_ddl_by and Tableau source_owner. Reference for workflow configuration and owner-mapping rules.

<!--vale off-->

# Source owner manager 

<!--vale on-->

Automatically populates asset owners in Atlan using source-system metadata such as Snowflake’s `last_ddl_by` and Tableau’s `source_owner`. This reference documents app configuration, supported source systems, owner-mapping rules, and how to handle owner lookups and fallback strategies.

## Access 

The **Source Owner Manager** app isn't enabled by default. To use this app, contact [Atlan support](https://docs.atlan.com/support/submit-request) and request it be added to your tenant. Once enabled, this app can be set up and run by admins or users with workflow permissions. 

## Workflow name

Specifies a unique and descriptive name to identify the Source Owner Manager workflow in the Atlan interface and logs. This name appears in run cards and the workflow list, helping you distinguish it from other ownership-automation runs across environments and connections.

*Example:*

```
owner-sync-snowflake-sf-prod-tables-views
```

## Select connector type

Select the source system that provides the source-owner metadata for your assets; each workflow targets a single connector.

- **Snowflake:** Choose when you want to use `last_ddl_by` to set owners; requires a Snowflake connection recently crawled with `last_ddl_by` captured.
- **Tableau:** Choose when ownership lives in Tableau (`source_owner`); requires an active Tableau connection with crawler extracting it.
- **Generic:** Choose for other connectors that expose a `source_owner` attribute; requires that the crawler populates it.

### Snowflake 

For Snowflake, start by selecting an active, recently crawled **Snowflake connection**. Make sure it's up to date so the `last_ddl_by` attribute is available. Then choose the **asset types** (for example, tables or views) you want to update. 

The app builds an email-to-username map across the tenant and uses it to assign owners: 

- It reads the `last_ddl_by` value from each asset and matches it to an Atlan user. 
- If a match is found, the user is added as an **Owner** using the method you select (**Append**, **Replace**, or **Ignore**). 
- If no `last_ddl_by` is found, or the email can't be matched to an Atlan user, that asset is skipped. 
- Assets with no current owners are always populated when a match exists. 

#### Snowflake connection 

Choose the **Snowflake connection** to use (for example, `sf-prod`). The connection must be active and recently crawled so that the `last_ddl_by` attribute is available. 

You also need the right permissions to run workflows and update owners on this connection. If you manage multiple environments (such as dev, test, and prod), run the workflow separately for each connection. Always test in a non-production connection before updating production. 

#### Snowflake asset type 

Choose the **asset types** in Snowflake to update for ownership. Supported types are **Database**, **Schema**, **Table**, **View**, and **MaterialisedView**. 

The workflow only scans the asset types you select. Assets are eligible only if they have a valid `last_ddl_by` value from the crawl. 

**Options explained:** 
- **Database**: a top-level Snowflake database. 
- **Schema**: a namespace inside a database. 
- **Table**: a physical table containing data. 
- **View**: a logical view created from a query. 
- **MaterialisedView**: a view stored on disk for faster queries. 

### Tableau 

To update owners in Tableau, start by selecting an active **Tableau connection**. The connection must have correct credentials and permissions as described in the [Tableau setup guide](https://docs.atlan.com/llms/connectors/tableau/set-up-tableau/llms.txt), and it must be recently crawled so that the `source_owner` attribute is available. 

The workflow compares ownership between Tableau and Atlan: 
- It retrieves the Tableau user directory (username, full name, email) from the Tableau API. 
- It retrieves the Atlan user directory. 
- It reads each asset’s `source_owner` value, matches it to a Tableau user, and then resolves the user to Atlan by email. 
- If a match exists, the user is updated as an **Owner** according to your selected method (**Append**, **Replace**, or **Ignore**). 
- Assets without a `source_owner`, without a matching Atlan user, or where the user is already listed as an Owner are skipped. 

Always run the workflow in **Preview** mode first to check the proposed owner assignments (`atlan-owner-changes` in the Argo workflow logs). Once validated, run **Update** to apply the changes. 

#### Tableau connection 

Choose the Tableau connection to use (for example, `tbl-prod`). The connection must be active, correctly configured with permissions, and recently crawled so that the `source_owner` attribute is present. The workflow environment also needs network access to Tableau Server or Tableau Online to retrieve the user directory. 

Run one connection per workflow. Start with **Preview** to validate mappings before applying changes in production. 

#### Tableau asset types 

Choose the Tableau asset types to include. Supported types are: 
- **TableauDatasource**: Published data sources. 
- **TableauFlow**: Tableau Prep flows. 
- **TableauProject**: Project containers. 
- **TableauWorkbook**: Workbooks and dashboards. 

Only assets with a populated `source_owner` and a matching Atlan user are updated. The workflow only processes the types you select; it doesn't automatically include related types. 

### Generic 

For any connector other than Snowflake or Tableau, select the **connection** where the crawler captures the `source_owner` attribute. The connection must be active and recently crawled so that the `source_owner` values are available. 

The workflow updates owners by: 
- Reading the `source_owner` value on each asset. 
- Matching the email to an Atlan user. 
- Updating **Owners** based on the method you choose (**Append**, **Replace**, or **Ignore**). 

Assets without a `source_owner`, or where the email doesn't match an Atlan user, are skipped. Assets with no current owners are populated if a match exists. 

Always run the workflow in **Preview** mode first to download the `atlan-owner-changes` file from the Argo workflow logs. Once validated, run **Update** to apply changes. 

#### Generic connection 

Select the connection to update (any supported connector other than Snowflake or Tableau). The workflow applies to all eligible assets under this connection where `source_owner` is present. 

Refer to the connector-specific crawling documentation to confirm that `source_owner` is captured (for example, Power BI: Datasets, Dataflows, Reports). Run one connection per workflow and prefer starting with **Preview** before applying updates in production. 

## Owner output option

Choose how results are produced for this run.

- **Update**: Applies owner changes in Atlan for the selected assets and connection. Changes are applied according to your **Owner Update Method** (Append, Replace, or Ignore). Updates run only when a source-owner value is present and maps to an existing Atlan user; assets without a value or match are skipped. All actions are recorded in the workflow logs.

- **Preview**: Doesn't modify Atlan. Generates an atlan-owner-changes file that lists the proposed updates (asset, current owners, proposed owners, and the action based on your update method). Download the file from the Argo workflow logs.

## Owner update method

Choose how owner updates are applied when an asset already has owners.

- **Append**: Adds the mapped user (from the source-owner attribute) to the existing Owners list (no duplicates).
- **Replace**: Replaces all existing Owners with the mapped user from the source-owner attribute.
- **Ignore**: Leaves existing Owners unchanged; only assets with no owners are updated.

Owner updates run only when the asset has a source-owner value that resolves to an existing Atlan user, otherwise, the asset is skipped. If an asset has no current owners, the matched user is always added regardless of the method. 

## See also

* [Create governance workflows](https://docs.atlan.com/llms/governance/stewardship/create-governance-workflows/llms.txt) - Learn how to set up automated workflows for data governance tasks
* [Manage governance workflows](https://docs.atlan.com/llms/governance/stewardship/manage-governance-workflows/llms.txt) - Discover how to edit, monitor, and maintain your existing governance workflows

---
