Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -97,3 +97,4 @@ venv/

# elementary outputs
edr_target/
dbt_packages/
2 changes: 1 addition & 1 deletion docs/cloud/integrations/bi/hex.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ Make sure you create a Hex Workspace token with read access for all categories a

### Connecting Hex to Elementary

Navigate to the **Account settings > Environments** and choose the environment to which you would like to connect Elementary.
Navigate to the **Account settings > Environments** and choose the environment to which you would like to connect Hex.
Choose the Hex connection and provide the following details to validate and complete the integration.

- **Base URL**: Your Hex workspace URL. For example: `https://app.hex.tech/my-workspace/`
Expand Down
2 changes: 1 addition & 1 deletion docs/cloud/integrations/bi/power-bi.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ Those features will allow Elementary to get all required info for computing the

### Connecting Power BI to Elementary

Navigate to the **Account settings > Environments** and choose the environment to which you would like to connect Elementary.
Navigate to the **Account settings > Environments** and choose the environment to which you would like to connect Power BI.
Choose the Power BI connection and provide the following details to validate and complete the integration.

- **Tenant:** Your Microsoft tenant which is usaully your company's domain. e.g. `my-company.com`
Expand Down
2 changes: 1 addition & 1 deletion docs/cloud/integrations/bi/sigma.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ Make sure you enable 'REST API' privileges for that client.

### Connecting Sigma to Elementary

Navigate to the **Account settings > Environments** and choose the environment to which you would like to connect Elementary.
Navigate to the **Account settings > Environments** and choose the environment to which you would like to connect Sigma.
Choose the Sigma connection and provide the following details to validate and complete the integration.

- **Cloud Provider:** To determine your Sigma cloud provider, Navigate to **Account -> General Settings** under Sigma's **Administration** menu and look for **'Cloud: ...'**. <br/> Should be one of the following:
Expand Down
4 changes: 2 additions & 2 deletions docs/cloud/integrations/bi/thoughtspot.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ After you connect Thoughtspot, Elementary will automatically and continuously ex
This will provide you end-to-end data lineage to understand your downstream dependencies, called exposures.


### Enable Trusted Authentication on a priviliged user
### Enable Trusted Authentication on a privileged user

For Elementary to access your Thoughtspot instance's API on your behalf of your user, your user should have Trusted Authentication enabled. <br/>
To enable Trusted Authentication on a user, please follow the [official Thoughtspot documentation](https://developers.thoughtspot.com/docs/trusted-auth-secret-key).<br/>
Expand All @@ -19,7 +19,7 @@ It is also possible though to integrate with a regular user, just make sure it c

### Connecting Thoughtspot to Elementary

Navigate to the **Account settings > Environments** and choose the environment to which you would like to connect Elementary.
Navigate to the **Account settings > Environments** and choose the environment to which you would like to connect ThoughtSpot.
Choose the Thoughtspot connection and provide the following details to validate and complete the integration.

- **User Name:** The username of the user you want to use to connect to Thoughtspot.
Expand Down
6 changes: 6 additions & 0 deletions docs/cloud/integrations/dwh/dremio.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -68,5 +68,11 @@ Provide the following fields:
- **User:** The email address of the Elementary user.
- **Token:** The token you generated for the Elementary user.

### Connect your metadata store (optional)

If your Dremio sources contains Iceberg tables, you can connect your metadata store (Iceberg catalog) to your environment. This will allow automatically monitoring volume
and freshness of your Iceberg tables (even if they are ingested outside of Dremio).

Currently only [AWS Glue](/cloud/integrations/metadata-layer/glue) is supported, though more metadata integrations are planned.

<OnboardingHelp />
107 changes: 107 additions & 0 deletions docs/cloud/integrations/metadata-layer/glue.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@
---
title: "Glue"
---

The AWS Glue integration in Elementary will allow you to automatically monitor volume & freshness anomalies in your Iceberg tables in Glue, by continouously syncing metadata about Iceberg snapshots.

<Note>
If you connected Amazon Athena as your DWH integration - there's no need to add a Glue integration, as the Athena integration already
contains all the required access for Glue.
</Note>

## AWS Setup

### 1. Create Required IAM Policy

First, you'll need to create an IAM policy with the following permissions:
- **GluePermissions**: Enables reading metadata about tables in your Glue catalog.
- **S3IcebergMetadataReadAccess**: Grants access metadata-only access to files of your Iceberg tables. These metadata files contain statistics about Iceberg snapshots,
such as update cadence and row count changes.

Here is an example of a JSON policy:
```json
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "GluePermissions",
"Effect": "Allow",
"Action": [
"glue:GetTable",
"glue:GetTables"
],
"Resource": "*"
},
{
"Sid": "S3IcebergMetadataReadAccess",
"Effect": "Allow",
"Action": [
"s3:GetObject"
],
"Resource": [
"arn:aws:s3:::your-iceberg-tables-bucket/*metadata.json"
]
}
]
}
```

### 2. Choose Authentication Method

Elementary supports two authentication methods for connecting to Glue:

#### Option 1: AWS Role Authentication (Recommended)

This is the recommended approach as it provides better security and follows AWS best practices. [Learn more about AWS IAM roles](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html).

1. **Create an IAM Role**:
- Go to AWS IAM Console
- Create a new role
- Select "Another AWS account" as the trusted entity
- Enter Elementary's AWS account ID: `743289191656`
- (Optional but recommended) Enable "Require external ID" and set a value
- Attach the policy created in step 1

2. **Note down the following information**:
- Role ARN
- External ID (if you enabled it) [Learn more about external IDs](https://aws.amazon.com/blogs/security/how-to-use-external-id-when-granting-access-to-your-aws-resources/).

#### Option 2: Access Key Authentication

This method is less secure as it requires permanent credentials. We recommend using AWS Role authentication instead.

1. **Create an IAM User**:
- Go to AWS IAM Console
- Create a new user, that will be used by elementary to connect to Glue
- Enable programmatic access
- Attach the policy created in step 1

2. **Note down the following information**:
- AWS Access Key ID of the new elementary glue user
- AWS Secret Access Key of the new elementary glue user

## Elementary Configuration

Navigate to the **Account settings > Environments** and choose the environment to which you would like to connect AWS Glue.
Under the "Metadata Layer" section, please choose Glue.

### Connection Settings

Regardless of the authentication method you choose, you'll need to provide:

- **Connection Name**: A descriptive name for your connection (e.g. "Datalake"). Needs to be unique if you're adding more than one metadata integration.
- **Region**: The AWS region where your Glue catalog is located

### Authentication Details

Based on your chosen authentication method:

#### If using AWS Role Authentication:
- Select "AWS Role" as the authentication method
- Enter your role ARN
- Enter your external ID (if you enabled it)

#### If using Access Key Authentication:
- Select "Access Key" as the authentication method
- Enter your AWS Access Key ID
- Enter your AWS Secret Access Key
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,6 @@ In order to set up a PrivateLink connection with Snowflake, please follow the st
* 10.0.2.x
* 10.0.3.x

## Github Enterprise Server
### Github Enterprise Server

Coming soon!
10 changes: 8 additions & 2 deletions docs/docs.json
Original file line number Diff line number Diff line change
Expand Up @@ -247,9 +247,15 @@
]
},
{
"group": "Data Catalog",
"group": "Governance",
"pages": [
"cloud/integrations/catalog/atlan"
"cloud/integrations/governance/atlan"
]
},
{
"group": "Metadata Layer",
"pages": [
"cloud/integrations/metadata-layer/glue"
]
},
{
Expand Down
15 changes: 14 additions & 1 deletion docs/snippets/cloud/integrations/athena.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,9 @@ First, you'll need to create an IAM policy with the following permissions:
- **GluePermissions**: Enables reading metadata about databases and tables
- **S3AccessForStagingBuckets**: Provides full access to store Athena query results
- **S3AccessForElementarySchema**: Grants read-only access to your elementary schema
- **S3IcebergMetadataReadAccess**: Grants metadata-only access to your Iceberg tables in S3. This allows Elementary to
provide automated volume and freshness updates on your Iceberg tables (even if ingested outside of Athena). If you are not using Iceberg today, you may
skip this permission.

Here is an example of a JSON policy:
```json
Expand Down Expand Up @@ -69,7 +72,17 @@ Here is an example of a JSON policy:
"arn:aws:s3:::your-elementary-schema-bucket",
"arn:aws:s3:::your-elementary-schema-bucket/*"
]
}
},
{
"Sid": "S3IcebergMetadataReadAccess",
"Effect": "Allow",
"Action": [
"s3:GetObject"
],
"Resource": [
"arn:aws:s3:::your-iceberg-tables-bucket/*metadata.json"
]
}
]
}
```
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@
</Card>
<Card
title="Ask us"
href="https://t2taztilhde.typeform.com/to/mdJoO9lA"
href="https://form.typeform.com/to/mdJoO9lA"
icon="plus"
iconType="solid"
color="#F2386C"
Expand Down
2 changes: 1 addition & 1 deletion docs/snippets/cloud/integrations/cards-groups/bi-cards.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -162,7 +162,7 @@
</Card>
<Card
title="Ask us"
href="https://t2taztilhde.typeform.com/to/mdJoO9lA"
href="https://form.typeform.com/to/mdJoO9lA"
icon="plus"
iconType="solid"
color="#F2386C"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ import BiCards from '/snippets/cloud/integrations/cards-groups/bi-cards.mdx';
import ReverseEtlCards from '/snippets/cloud/integrations/cards-groups/reverse-etl-cards.mdx';
import CodeRepoCards from '/snippets/cloud/integrations/cards-groups/code-repo-cards.mdx';
import AlertsDestinationCards from '/snippets/cloud/integrations/cards-groups/alerts-destination-cards.mdx';
import GovernanceCards from '/snippets/cloud/integrations/cards-groups/governance-cards.mdx';
import MetadataLayerCards from '/snippets/cloud/integrations/cards-groups/metadata-layer-cards.mdx';

### Data warehouses

Expand All @@ -27,4 +29,12 @@ import AlertsDestinationCards from '/snippets/cloud/integrations/cards-groups/al

### Alerts & incidents

<AlertsDestinationCards />
<AlertsDestinationCards />

### Governance

<GovernanceCards />

### Metadata Layer

<MetadataLayerCards />
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,7 @@
></Card>
<Card
title="Ask us"
href="https://t2taztilhde.typeform.com/to/mdJoO9lA"
href="https://form.typeform.com/to/mdJoO9lA"
icon="plus"
iconType="solid"
color="#F2386C"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -321,7 +321,7 @@
></Card>
<Card
title="Ask us"
href="https://t2taztilhde.typeform.com/to/mdJoO9lA"
href="https://form.typeform.com/to/mdJoO9lA"
icon="plus"
iconType="solid"
color="#F2386C"
Expand Down
60 changes: 60 additions & 0 deletions docs/snippets/cloud/integrations/cards-groups/governance-cards.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
<CardGroup cols={4}>
<Card
title="Atlan"
href="/cloud/integrations/governance/atlan"
icon={
<svg
xmlns="http://www.w3.org/2000/svg"
width={32}
height={29}
viewBox="0 0 31 29"
>
<path
d="M0 0h31v29H0V0Zm0 0"
style={{
stroke: "none",
fillRule: "nonzero",
fill: "#fefefe",
fillOpacity: 1,
}}
/>
<path
d="M18.473 6.656c.3.254.562.512.836.797.043-.492.086-.984.132-1.492h4.727v16.941h-4.727V21.41l-.238.215c-1.863 1.617-3.574 1.844-5.937 1.684-1.196-.164-2.192-.766-3.153-1.493a7.372 7.372 0 0 0-.258-.187c-1.476-1.192-2.488-3.238-2.843-5.117-.282-2.867-.074-5.723 1.75-8.04 2.394-2.85 6.527-4.179 9.71-1.816Zm0 0"
style={{
stroke: "none",
fillRule: "nonzero",
fill: "#1f25d1",
fillOpacity: 1,
}}
/>
<path
d="M17.438 10.652c.972.621 1.683 1.532 1.945 2.688.23 1.433-.028 2.77-.852 3.969-.71.808-1.617 1.199-2.664 1.296-1.234.051-2.105-.128-3.031-1-.89-.976-1.223-1.824-1.211-3.148 0-.113 0-.227.004-.344.031-1.21.36-2.008 1.21-2.847 1.348-1.094 3-1.383 4.598-.614Zm0 0"
style={{
stroke: "none",
fillRule: "nonzero",
fill: "#fbfcfe",
fillOpacity: 1,
}}
/>
<path
d="M16.156 12.332c.653.348 1.117.809 1.446 1.492.074.63.058 1.094-.223 1.668-.5.602-.832.918-1.61 1.031-.593.04-.957-.03-1.453-.398-.586-.55-.78-1.004-.82-1.824.066-.692.399-1.168.902-1.614.598-.406 1.07-.445 1.758-.355Zm0 0"
style={{
stroke: "none",
fillRule: "nonzero",
fill: "#63e1fc",
fillOpacity: 1,
}}
/>
</svg>
}
>
Click for details
</Card>
<Card
title="Ask us"
href="https://form.typeform.com/to/mdJoO9lA"
icon="plus"
iconType="solid"
color="#F2386C"
></Card>
</CardGroup>
Loading
Loading