> ## Documentation Index
> Fetch the complete documentation index at: https://docs.venice.is/llms.txt
> Use this file to discover all available pages before exploring further.

# Data Models

> Speaking the same language

Venice tries to be as clear and consistent as possible with the nomenclature
used throughout the documentation and code base.

To that end, here's a list of what our primitives are and examples of how you
can think of them in use.

![Visualized using Prisma model](https://mintlify.s3-us-west-1.amazonaws.com/venice/images/models.svg)

| Term                              | Description                                                                                                                                                                                                                                                                                                                                                                                                         | Example                                                                                                                       | Created by               |
| :-------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------- | ------------------------ |
| <strong>Organization</strong>     | An isolated Venice workspace with its own `Connector Config`s, `End User`'s and `User`s                                                                                                                                                                                                                                                                                                                             | <ul><li>`Your Company Dev`</li><li>`Your Company Prod`</li></ul>                                                              | Developer (You)          |
| <strong>User</strong>             | A developer using Venice to deliver great experiences! May belong to multiple `Organization`s.                                                                                                                                                                                                                                                                                                                      | <ul><li>`dev@yourcompany.com`</li></ul>                                                                                       | Developer (You)          |
| <strong>End User</strong>         | A customer of yours gives you access to their `Resource` as part of using your product.                                                                                                                                                                                                                                                                                                                             | <ul><li>`james@gmail.com`</li><li>`sama@openai.com`</li></ul>                                                                 | Developer (You)          |
| <strong>Provider</strong>         | A product or service that your customers use (e.g. **Chase**, **Quickbooks**). This is a concept we may reference in docs / user interface but does not yet exist as an actual entity in the Venice API / Database.                                                                                                                                                                                                 | <ul><li>`Chase`</li><li>`Quickbooks`</li><li>`Notion`</li></ul>                                                               | N/A                      |
| <strong>Connector</strong>        | Source code adhering to the <string>Venice Protocol</string>, can be a direct connector (e.g. **Quickbooks**) which provides a single `Integration` or an aggregator connector (e.g. **Plaid**) that provides many `Integration`'s                                                                                                                                                                                  | <ul><li>`Plaid`</li><li>`Merge`</li><li>`Notion`</li></ul>                                                                    | Venice Repo              |
| <strong>Integration</strong>      | An integration represents a `Provider` supported by a `Connector`. There can be multiple integrations for a single provider if multiple connectors support the same provider (e.g. Merge and Railz both gives you the ability to connect to Quickbooks, in addition we have a direct Quickbooks connector for a total of 3 Quickbooks Integrations).                                                                | <ul><li>`Plaid`'s integration with `Chase`</li><li>Venice Direct integration with `Notion`</li></ul>                          | Venice Connector         |
| <strong>Connector Config</strong> | A specific configuration of a <strong>Connector</strong>. Contains developer account credentials (e.g. `client_id`, `client_secret`), and misc configs (`sandbox` vs. `production`). Some connectors does not require configuration (e.g. **Postgres**). In the future can also contain sync settings (e.g. Automatically sync all Plaid items using this config to our main postgres Resource).                    | <ul><li>`Plaid` sandbox credentials</li><li>`Quickbooks` clientId and secret</li></ul>                                        | Developer (You)          |
| <strong>Resource</strong>         | Associated with a specific `Connector Config`. Contains customer credentials (e.g. `access_token`) and gives you the ability to call `Provider` APIs. Typically created by an `End User` but could also created by you in the dashboard (which then belongs to your organization). Resource can also be used as either a <strong>Source</strong> or <strong>Destination</strong> within a <strong>Pipeline</strong> | <ul><li>`Plaid Item`</li><li>`Quickbooks Company`</li></ul>                                                                   | End User (Your customer) |
| <strong>Pipeline</strong>         | Pipeline moves data from a <strong>Source</strong> to a <strong>Destination</strong> and contains persistent state used for incremental syncs.                                                                                                                                                                                                                                                                      | <ul><li>Customer `Plaid` Item -> Developer `Postgres`</li><li>Customer `Quickbooks` Company -> Developer `BigQuery`</li></ul> | Developer (You)          |

When we say "connect" in the user interface, we mean invoking a connector to create a resource.

Used in a sentence:
A <strong>Pipeline</strong> simply connects a data <strong>Resource</strong> to/from Venice which transmits data across the <strong>Venice</strong> protocol.

{/* Maybe we should support wikilinks if we want to really define nomenclature well */}

### Need clarity?

<Card title="Join our community" icon="discord" href="https://discord.gg/gTMch6Gn2u">
  Join our community of founders & developers building the future of finance
  together
</Card>

<Card title="Improve the documentation" icon="github" href="https://github.com/usevenice/venice">
  Help us keep the documentation as clear as possible. We welcome pull requests!
</Card>
