5.5 KiB
		
	
	
	
	
	
	
	
			
		
		
	
	Mode
For context on getting started with ingestion, check out our metadata ingestion guide.
Setup
To install this plugin, run pip install 'acryl-datahub[mode]'.
See documentation for Mode's API at https://mode.com/developer/api-reference/introduction/
Capabilities
This plugin extracts Charts, Reports, and associated metadata from a given Mode workspace. This plugin is in beta and has only been tested on PostgreSQL database.
| Capability | Status | Details | 
|---|---|---|
| Platform Instance | ✔️ | link | 
Report
/api/{account}/reports/{report} endpoint is used to retrieve the following report information.
- Title and description
- Last edited by
- Owner
- Link to the Report in Mode for exploration
- Associated charts within the report
Chart
/api/{workspace}/reports/{report}/queries/{query}/charts' endpoint is used to retrieve the following information.
- Title and description
- Last edited by
- Owner
- Link to the chart in Metabase
- Datasource and lineage information from Report queries.
The following properties for a chart are ingested in DataHub.
Chart Information
| Name | Description | 
|---|---|
| Filters | Filters applied to the chart | 
| Metrics | Fields or columns used for aggregation | 
| X | Fields used in X-axis | 
| X2 | Fields used in second X-axis | 
| Y | Fields used in Y-axis | 
| Y2 | Fields used in second Y-axis | 
Table Information
| Name | Description | 
|---|---|
| Columns | Column names in a table | 
| Filters | Filters applied to the table | 
Pivot Table Information
| Name | Description | 
|---|---|
| Columns | Column names in a table | 
| Filters | Filters applied to the table | 
| Metrics | Fields or columns used for aggregation | 
| Rows | Row names in a table | 
Quickstart recipe
Check out the following recipe to get started with ingestion! See below for full configuration options.
For general pointers on writing and running a recipe, see our main recipe guide.
source:
  type: mode
  config:
    # Coordinates
    connect_uri: http://app.mode.com
    # Credentials
    token: token
    password: pass
    
    # Options
    workspace: "datahub"
    default_schema: "public"
    owner_username_instead_of_email: False
    api_options:
      retry_backoff_multiplier: 2
      max_retry_interval: 10
      max_attempts: 5
sink:
  # sink configs
Config details
| Field | Required | Default | Description | 
|---|---|---|---|
| connect_uri | ✅ | "https://app.mode.com" | Mode host URL. | 
| token | ✅ | Mode user token. | |
| password | ✅ | Mode password for authentication. | |
| default_schema | public | Default schema to use when schema is not provided in an SQL query | |
| env | "PROD" | Environment to use in namespace when constructing URNs. | |
| platform_instance_map | Platform instance mapping to use when constructing URNs to data sources through lineage. e.g. platform_instance_map: { "hive": "warehouse" } | ||
| owner_username_instead_of_email | True | Use username for owner URN instead of Email | |
| api_options | Retry/Wait settings for Mode API to avoid "Too many Requests" error. See Mode API Options below | 
See Mode's Authentication documentation on how to generate token and password.
Mode API Options
| Field | Required | Default | Description | 
|---|---|---|---|
| retry_backoff_multiplier | 1 | Multiplier for exponential backoff when waiting to retry | |
| max_retry_interval | 10 | Maximum interval to wait when retrying | |
| max_attempts | 5 | Maximum number of attempts to retry before failing | 
Compatibility
N/A
Questions
If you've got any questions on configuring this source, feel free to ping us on our Slack!
