> For the complete documentation index, see [llms.txt](https://docs.euno.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.euno.ai/developer-reference/technical-concepts/users-as-a-resource.md).

# Users as a Resource

Euno recognizes users as native resources within the data model, treating them as first-class citizens alongside tables, dashboards, dbt models, and other data assets. This enables comprehensive tracking of user relationships, and dependencies across your entire data stack.

By modeling users as resources, you can:

* Query relationships between users and data assets
* Perform impact analysis involving users
* Understand who depends on what data and who produces it

### Resource Types <a href="#resource-types" id="resource-types"></a>

#### User Account (`user`) <a href="#user-account-user" id="user-account-user"></a>

Represents an individual user in your organization.

**URI Format:**

```
user_account.<EMAIL_ADDRESS>
```

The email address is normalized by replacing `@` with `_at_` and converting to lowercase.

**Examples:**

* `user_account.john_at_example.com`
* `user_account.data.engineer_at_company.com`

#### User Group (`user_group`) <a href="#user-group-user_group" id="user-group-user_group"></a>

Represents a group of users, typically synchronized from identity providers like Microsoft Entra ID or Google Workspace.

**URI Format:**

```
user_group.<GROUP_ID>
```

The group ID is typically a unique identifier from the identity provider (e.g., Microsoft Entra ID group ID).

**Examples:**

* `user_group.cf9fa9ef-3315-459c-893f-a44ec0e26ac1`
* `user_group.4f5024be-9361-4dd9-8996-14c1f06a5dc3`

### Properties <a href="#properties" id="properties"></a>

#### User Account Properties <a href="#user-account-properties" id="user-account-properties"></a>

| Property        | Description                                                                                   |
| --------------- | --------------------------------------------------------------------------------------------- |
| `name`          | Primary identifier of the user (typically the email, or a login when the source has no email) |
| `email_address` | Email address of the user (or the login when the source has no email)                         |
| `label`         | Display label for the user                                                                    |

#### User Group Properties <a href="#user-group-properties" id="user-group-properties"></a>

| Property     | Description                                            |
| ------------ | ------------------------------------------------------ |
| `name`       | Display name of the group                              |
| `subtype`    | Source of the group (e.g., `google_workspace`, `okta`) |
| `native_id`  | Native identifier from the source system               |
| `created_at` | Timestamp when the group was created                   |

### Relationships <a href="#relationships" id="relationships"></a>

Users participate in the same relationship model as other resources in Euno. For a complete reference on relationship types, see [Relationships](/developer-reference/technical-concepts/relationships.md).

#### Membership Relationships <a href="#membership-relationships" id="membership-relationships"></a>

Users and groups can belong to supported BI items, and groups can contain users or nested groups.

```
user ──[has group]──> user_group
user_group ──[has member]──> user
user_group ──[has member]──> user_group (nested groups, when the source observes them)
user ──[has group]──> Power BI report, dashboard, semantic model, app-backed report row, or dataflow
user_group ──[has group]──> Power BI report, dashboard, semantic model, app-backed report row, or dataflow
```

#### Usage Relationships <a href="#usage-relationships" id="usage-relationships"></a>

Track which resources users access and consume.

```
user ──[is user of]──> dashboard, report, table
```

### Querying Users with EQL <a href="#querying-users-with-eql" id="querying-users-with-eql"></a>

#### Find All Users <a href="#find-all-users" id="find-all-users"></a>

```eql
type = "user"
```

#### Find All User Groups <a href="#find-all-user-groups" id="find-all-user-groups"></a>

```eql
type = "user_group"
```

#### Find Users by Email Domain <a href="#find-users-by-email-domain" id="find-users-by-email-domain"></a>

```eql
type = "user" AND email_address ~ "@company.com"
```

#### Find Groups a User Belongs To <a href="#find-groups-a-user-belongs-to" id="find-groups-a-user-belongs-to"></a>

```eql
type = "user_group" AND has member(uri = "user_account.john_at_example.com")
```

#### Find All Members of a Group <a href="#find-all-members-of-a-group" id="find-all-members-of-a-group"></a>

```eql
type = "user" AND has group(name = "Data Engineering Team")
```

#### Find Dashboards Used by a User <a href="#find-dashboards-used-by-a-user" id="find-dashboards-used-by-a-user"></a>

```eql
type = "looker_dashboard" AND is used by(uri = "user_account.john_at_example.com")
```

#### Find Tables Consumed by Users in a Specific Group <a href="#find-tables-consumed-by-users-in-a-specific-group" id="find-tables-consumed-by-users-in-a-specific-group"></a>

```eql
type = "table" AND is used by(type = "user" AND has group(name = "Analytics Team"))
```

### Use Cases <a href="#use-cases" id="use-cases"></a>

#### Impact Analysis <a href="#impact-analysis" id="impact-analysis"></a>

Determine which users will be affected by changes to a specific resource:

```eql
type = "user" AND is user of(uri = "snowflake.db.schema.critical_table")
```

#### Access Pattern Analysis <a href="#access-pattern-analysis" id="access-pattern-analysis"></a>

Understand how users interact with data assets by querying user-resource relationships.

#### Team Dependencies <a href="#team-dependencies" id="team-dependencies"></a>

Analyze which data assets a team depends on:

```eql
is used by(has group(name = "Finance Team"))
```

### Enabling User Observation <a href="#enabling-user-observation" id="enabling-user-observation"></a>

User observation is enabled through supported integrations. The table below lists integrations that observe `user` resources; it is not exhaustive.

| Integration                                                                            | User Types Discovered | Setup                                                               |
| -------------------------------------------------------------------------------------- | --------------------- | ------------------------------------------------------------------- |
| [Looker](/sources/business-intelligence/looker-integration.md)                         | `user`, `user_group`  | Enable "Observe users" and/or "Observe groups" in advanced settings |
| [Power BI](/sources/business-intelligence/powerbi-integration.md)                      | `user`, `user_group`  | Enable "Observe users" and/or "Observe groups" in advanced settings |
| [Tableau](/sources/business-intelligence/tableau-integration.md)                       | `user`                | Automatic with standard integration                                 |
| [Omni](/sources/business-intelligence/omni-integration.md)                             | `user`, `user_group`  | Enable "Observe users" and/or "Observe groups" in advanced settings |
| [Salesforce](/sources/business-intelligence/salesforce-integration.md)                 | `user`, `user_group`  | Enable "Observe users & groups"                                     |
| [Sigma](/sources/business-intelligence/sigma-integration.md)                           | `user`                | Automatic with the Sigma source                                     |
| [Sigma Impressions](/sources/business-intelligence/sigma-impressions-integration.md)   | `user`                | Automatic from impression export events                             |
| [Hex](/sources/analytics-notebooks/hex-technologies.md)                                | `user`                | Automatic with the Hex source                                       |
| [Okta](/sources/identity-and-organization/okta-integration.md)                         | `user`, `user_group`  | Automatic with the Okta source                                      |
| [Google Workspace](/sources/identity-and-organization/google-workspace-integration.md) | `user`, `user_group`  | Automatic with the Google Workspace source                          |

### Related Topics <a href="#related-topics" id="related-topics"></a>

* [Relationships](/developer-reference/technical-concepts/relationships.md) - Complete relationship reference
* [Universal Resource Identifier (URI)](/developer-reference/technical-concepts/universal-resource-identifier-uri.md) - URI format reference
* [EQL Query Language](/using-euno/euno-query-language-eql.md) - Query language documentation


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

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

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.euno.ai/developer-reference/technical-concepts/users-as-a-resource.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
