# Providers, Data Sources, Names and Types

### Custom providers and data sources

Before uploading entity metadata for an OAA integration, you must create a custom *provider* and at least one *data source* under that *provider*. The provider represents the type of application (such as "Jira Server") and determines the template used for all *data sources* (e.g."dev", "prod")created under that provider.

The OAA payload is pushed to a specific *data source* and updates the existing data.

A display icon can be set for the *provider*, shown throughout the Veza UI to identify the integration and its entities.

Naming the *provider* and *data source* is an important step in integration creation. In general,

* The *provider* name should be unique to the integration. Avoid common terms such as "application". Separating providers for systems with several instances such as "production" and "development" can be a good idea.
* The *provider* or *data source* value should be unique to the integration and incorporate an identifier such as hostname or other instance ID. This ensures that multiple instances of the integration can be separated if necessary.
* Do not user random or date values in *provider* or *data source* names. Each run of the connector should result in the same *provider* and *data source* name, based on discovered values or a configuration parameter.

### Custom application names and types

Each OAA Template supports a concept of *name* and *type*. The *type* enables search for all instances of a specific entity. For example, the *Application Type* identifies application entities such as users, groups, roles, and resources. It will enable search for all entities in an application. Setting the application type to `Widget` will allow for search `Widget Users`, `Widget Groups`, and other entity types:

![App Type Search](/files/iEgEFutLbGn0Hh2gioyF)

The app `name` appears when searching for individual entities, and, to differentiate more than one instances of the same system. For example two instances of an application "Widget - Production" and "Widget - Stagging".


---

# 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 dynamically by asking a question.

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

```
GET https://docs.veza.com/4yItIzMvkpAvMVFAamTf/developers/api/oaa/best-practices/providers-apps-datasources.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.
