# Looker

Euno's Looker integration supports auto-discovery of the following Looker resources and sub-resources:

* Modeling layer resources:
  * [LookML Explores](https://cloud.google.com/looker/docs/lookml-terms-and-concepts#explore), [LookML Views](https://cloud.google.com/looker/docs/lookml-terms-and-concepts#view), [LookML Dimensions](https://cloud.google.com/looker/docs/reference/param-field-dimension), and [LookML Measures](https://cloud.google.com/looker/docs/reference/param-field-measure)
* Application layer resources:
  * [Looker Tiles](https://cloud.google.com/looker/docs/viewing-dashboards#dashboard_tiles), [Looker Looks](https://cloud.google.com/looker/docs/viewing-looks) and [Looker Dashboards](https://cloud.google.com/looker/docs/viewing-dashboards)

Setting up Euno's Looker integration consists of three steps:

1. Creating a [Looker API key](https://cloud.google.com/looker/docs/admin-panel-users-users?hl=en#api_keys) to be used by Euno to access Looker's API
2. Configuring Euno's Looker integration
3. Providing Euno Access to your LookML Git Repo

## Setting up Euno's Looker Integration

### Step 1: Creating a Looker API key to be used by Euno to access Looker's API

Euno uses Looker API keys to access Looker's API and auto-discover Looker resources.

We recommend creating a dedicated API Key for Euno's Looker integration.\
To ensure that the API Key has the required permissions , create the API Key for a user with the [Admin ](https://cloud.google.com/looker/docs/admin-panel-users-roles?hl=en#default_roles)role.\
For more granular control over the permissions provided to the API Key, Follow the steps in [Using a custom Looker Role](/sources/business-intelligence/looker-integration/using-a-custom-looker-role.md), and come back here once a dedicated Euno user is created.

1. Log in to Looker with a user with "Admin" role
2. Go to "admin" found in the left sidebar
3. Scroll down to find "Users" in the left sidebar
4. Click on a user to create the API key for. Make sure this user has the "Admin" role
5. Find "API Keys" and click the button "Edit Keys" located next to it
6. Click "New API Key". You should now see the new key's Client ID and Client Secret. Make note of the two values (or leave the browser tab open). You'll need both values to configure Euno's Looker integration in the next stage.

### Step 2: Configuring New Looker Source in Euno

#### Step 1: Access the Sources Page

1. Go to the **Sources** page.
2. Click on **Add New Source** and select Looker from the list of supported platforms.

#### Step 2: General Configuration

Asterik (\*) means a mandatory field.

<table><thead><tr><th width="221">Configuration</th><th>Description</th></tr></thead><tbody><tr><td>Name*</td><td>Enter a name for your Looker source (e.g., "Looker - Sales Data")</td></tr><tr><td>Host*</td><td>Enter the Looker host URL (e.g., <code>https://&#x3C;your-looker-domain>.cloud.looker.com</code>).</td></tr><tr><td>Client ID*</td><td>Provide the Client ID from your Looker API credentials.</td></tr><tr><td>Client Secret*</td><td>Enter the Client Secret from your Looker API credentials.</td></tr></tbody></table>

#### Step 3: Scheduling Updates

1. Enable the Schedule toggle.
2. Choose from the following:
   1. **Weekly**: Specify the days and times for updates.
   2. **Hourly**: Enter an interval in hours (e.g., every 6 hours).

#### Step 4: Resource Cleanup

To keep your data relevant and free of outdated resources, Euno provides automatic **resource cleanup** options. These settings determine when a resource should be removed if it is no longer detected by a source integration. For a detailed explanation on Euno's cleanup strategies, see: [Resource Sponsorship in Euno](/developer-reference/technical-concepts/resource-sponsorship-and-cleanup-in-euno.md).

* **Immediate Cleanup**: Remove resources not detected in the most recent successful source integration run.
* **No Cleanup**: Keep all resources indefinitely, even if they are no longer detected.

#### Step 5: Advanced Settings (Optional)

Click on the '**Advanced**' section to display these additional configurations.

<table><thead><tr><th width="209">Configuration</th><th>Description</th></tr></thead><tbody><tr><td>LookML Project Includes</td><td>Specify LookML projects to include. This is a wildcard match, so, for example, if the pattern is <code>mart*</code>, then all projects starting with <code>mart</code>will be processed. Leave blank or set to <code>*</code>to process all LookML projects</td></tr><tr><td>LookML Model Includes</td><td>Specify LookML models to include. This is a wildcard match, so, for example, if the pattern is <code>sales*</code>, then all models starting with <code>sales</code> be processed. Leave blank or set to <code>*</code>to process all LookML models.</td></tr><tr><td>Crawl LookML Only</td><td>Enable this if you want to crawl LookML only.</td></tr><tr><td>Mapping</td><td>Euno will ingest looker resources using the connections defined in the application unless a mapping is added. In that case, the resource will be ingested using the mapped value of the target.</td></tr></tbody></table>

#### Mapping

Euno will ingest looker resources using the connections defined in the application unless a mapping is added. Each connection can be mapped to a target data source. This can be useful, for example, when Looker is connected to a copy of production database, and we want to trace lineage to the original instead of the copy. If mapping is configured, the resource will be ingested using the mapped value of the target.

<table><thead><tr><th width="209">Configuration</th><th>Description</th></tr></thead><tbody><tr><td>connection_name</td><td>The name of the connection as it appears in your Looker instance. This should match exactly what you see in Looker's connection settings, for example: <code>snowflake_prod</code>, <code>bigquery_analytics</code>, <code>postgres_main</code></td></tr><tr><td>host</td><td><p>The target database server hostname to map to.</p><p>Examples:</p><ul><li>Snowflake: <code>mycompany.snowflakecomputing.com</code></li><li>BigQuery: <code>bigquery.googleapis.com</code></li><li>PostgreSQL: <code>db.example.com</code></li><li>Redshift: <code>redshift-cluster.amazonaws.com</code></li></ul></td></tr><tr><td>port (optional)</td><td><p>The target database port number. Defaults to 0 if not specified.</p><p>Examples:</p><ul><li>PostgreSQL: <code>5432</code></li><li>MySQL: <code>3306</code></li><li>SQL Server: <code>1433</code></li><li>Snowflake: <code>443</code></li></ul></td></tr><tr><td>database</td><td><p>The specific database name that contains your tables.</p><p>Examples:</p><ul><li>Snowflake: <code>ANALYTICS_DB</code>, <code>PROD_DW</code></li><li>BigQuery: <code>my-project-id</code> (the Google Cloud project ID)</li><li>PostgreSQL: <code>production</code>, <code>analytics</code></li></ul></td></tr><tr><td>dialect</td><td>The database type, i.e. Snowflake, BigQuery etc.</td></tr><tr><td>db_schema (optional)</td><td>The default schema within the database. Leave empty if not applicable.</td></tr><tr><td>aws_account (optional)</td><td>AWS account ID, required only for Athena connections.</td></tr></tbody></table>

#### Step 6: Save Configuration

Click the **Save** button to complete the setup.

{% hint style="warning" %}
If the integration is not successful, refer to [Looker Integration Troubleshooting Guide](/sources/business-intelligence/looker-integration/troubleshooting-looker-integration.md)
{% endhint %}

### 3. Providing Euno Access your LookML Git Repo

To finish configuring Looker in Euno, we need access to the Git repository that stores your LookML project.

Please link your Git hosting account:

* [Github](/setup-configuration/linked-accounts/github-integration.md)​
* [GitLab](/setup-configuration/linked-accounts/gitlab-integration.md)​

During the setup, make sure the linked account has permission to read the repositories that contain your LookML code (your LookML repos).

{% hint style="info" %}
If Euno is not provided access to your LookML Git repository, only visualization-layer assets (such as Looks, Tiles, and Dashboards) will be discovered. In this case, Euno will not be able to establish lineage or relationships to the underlying data layer.
{% endhint %}

### 4. Observing Users & Groups

To observe users, you must **Enable "Observe users"** in the Advanced Settings.\
To observe groups, you must **Enable "Observe groups"** in the Advanced Settings.

For additional information regarding Users & Groups see [Users as a Resource](/developer-reference/technical-concepts/users-as-a-resource.md)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.euno.ai/sources/business-intelligence/looker-integration.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
