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

# Projects

export const m_runner = "Maia runner";

export const Projects = () => <>the <strong>Projects</strong> icon <span style={{
  whiteSpace: "nowrap"
}}><img src="/images/global-nav/projects.png" width="20" height="20" style={{
  verticalAlign: "text-bottom",
  display: "inline",
  margin: "0 1px"
}} /></span></>;

export const maia = "Maia";

export const designer = "Designer";

A project is a group of resources that {designer} uses when running your orchestration and transformation pipelines. From the **Your projects** menu, select a project, and then navigate between resource tabs to manage resources including:

* [Branches](/docs/guides/branches): used for collaborative working and version control using Git. Your default branch is `main`.
* [Environments](/docs/guides/environments): for configuring your connection to your data warehouse, and setting environment permissions for users.
* [Streaming](/docs/streaming/streaming-pipelines/): build streaming pipelines to capture the continuous data flow from supported sources in near real time and send it to your preferred cloud destination. To create and manage your streaming pipelines, read [Create streaming pipeline](/docs/streaming/streaming-pipelines/#create-streaming-pipeline) and [Manage streaming pipelines](/docs/streaming/streaming-pipelines/#manage-streaming-pipelines), respectively. You can also click **View Features** to access a dialog outlining the key capabilities of streaming pipelines in {maia}. Additionally, you can reach out for support by filling out the **Talk to an Expert** form to contact sales.
* [Artifacts](/docs/guides/artifacts): view published versions of pipelines called 'artifacts' in each environment, and deploy artifacts to different environments.
* [Schedules](/docs/guides/schedules): schedule your orchestration and transformation pipelines. All dates and times in the table use Greenwich Mean time (GMT) as its timezone. If you have set the time using a different timezone, view the individual schedule's details for the selected timezone's details.
* [Access](/docs/administration/project-roles): grant users access to your project.
* [Secrets and secret definitions](/docs/guides/secrets-and-secret-definitions): define secrets stored within your secret manager tool so you can reuse them across projects. Supports AWS Secrets Manager and Azure Key Vault.
* [Cloud credentials](/docs/guides/cloud-credentials): set up cloud provider credentials to authenticate with your chosen cloud provider.
* [OAuth](/docs/guides/oauth): create an OAuth entry to connect to your chosen third-party service.
* [Jobs Compute](/docs/guides/databricks-jobs-compute): Run and schedule transformation pipelines on a Databricks Jobs Compute cluster.

***

## Add a new project

<Note>
  Creating a project for Google BigQuery? Read [Google BigQuery projects](/docs/guides/bigquery-projects).
</Note>

By default, users are assigned the **Owner** role for any projects they create. For more information, read [Project roles](/docs/administration/project-roles).

To add a new project:

1. Log in to [{maia}](https://app.matillion.com/hub/login) or [register for an account](/docs/administration/registration).

2. Select your account.

3. In the left navigation, click <Projects />.

4. Click **Add project** and complete the following parameters.

   | Parameter     | Description                                                                                                                                                                    |
   | ------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
   | Project name  | A unique name for the project. Max 255 characters. You can edit this after creation by clicking the edit button (pencil icon) within the project page.                         |
   | Description   | An optional, referential description for the project. Max 1000 characters. You can edit this after creation by clicking the edit button (pencil icon) within the project page. |
   | Data platform | The cloud data platform to connect to. Select Snowflake, Databricks, Amazon Redshift, or Google BigQuery.                                                                      |

   <Note>
     Some components may not be available, or may have limited functionality, on some data platforms. These limitations are noted in the relevant component documentation.
   </Note>

5. Click **Continue**.

6. Choose how you would like your project to be configured.

   * **{maia} managed:** A full software-as-a-service (SaaS) deployment model where Matillion handles the infrastructure, maintenance, and upgrades. You can access {maia} through a web browser and focus on building data transformation and orchestration workflows without worrying about the underlying infrastructure. This deployment model is the default option for Enterprise and non-enterprise customers.
   * **Advanced settings:** A Hybrid SaaS deployment model that lets you manually deploy and manage {m_runner}s, connect to third-party repositories (currently only GitHub is supported), and store your secrets within your own cloud infrastructure, whilst building data transformation and orchestration workflows within {maia}. It combines the flexibility of cloud deployment with the control and security of managing {m_runner}s, repositories, and secrets within your environment. This option is suitable if you have specific requirements or constraints related to data residency, security, or network connectivity.

   <Note>
     Choosing **Advanced settings** is considered a "custom" configuration option.

     You can choose to connect to a third-party repository but use a Matillion-hosted {m_runner}, and conversely choose the Hybrid SaaS deployment model of using the {m_runner} in your organization's cloud infrastructure while using a Matillion hosted Git repository.
   </Note>

   <Warning>
     Some components may have limitations if using a **Full SaaS** project. These limitations are noted in the relevant component documentation.
   </Warning>

7. Click **Continue**.

<Warning>
  Once you connect a project to a Git repository (GitHub, GitLab, Azure DevOps, or Bitbucket), **you cannot disconnect or change the Git repository connection**.

  You must create a new project from scratch if you need to:

  * Disconnect from your current Git repository.
  * Connect to a different Git repository.
  * Switch between different repo host platforms (e.g., from GitHub to GitLab).

  Reusing an existing Matillion ETL Git repository isn't supported and can cause issues with your pipelines.
</Warning>

### Select your Git provider

The following instructions only apply if you selected **Advanced settings**.

1. Select your Git provider.
   1. **Matillion-hosted Git:** Matillion will create and host the repository for your project.

   2. **GitHub:** Connect to one of your organization's GitHub repositories. Read the following docs to get started:

      1. [Prerequisites for connecting a GitHub repository to {maia}](/docs/guides/connect-github-repository-prerequisites)
      2. [Installing the {maia} app in GitHub](/docs/guides/installing-matillion-app-github-marketplace)

      <Note>
        If you log in to GitHub using SSO, you are required to click **Authorize** and not **Continue** to authenticate to **matillion-apps**. Clicking **Continue** won't complete the authorization properly, and you won't be able to perform remote actions. To reauthorize, follow the steps documented in [Permission denied to access GitHub repository](/docs/guides/troubleshooting-github-repository-connection#permission-denied-to-access-github-repository).
      </Note>

   3. **Azure DevOps:** Connect to one of your organization's Azure DevOps repositories. Read the following docs to get started:
      1. [Prerequisites for connecting an Azure DevOps repository to {maia}](/docs/guides/connect-azure-devops-repository-prerequisites)
      2. [Installing the {maia} app in Azure](/docs/guides/installing-matillion-app-azure-devops)

   4. **GitLab:** Connect to one of your organization's GitLab repositories. Read the following guide to get started:
      1. [Prerequisites for connecting a GitLab repository to {maia}](/docs/guides/connect-gitlab-repository-prerequisites)

   5. **Bitbucket:** Connect to one of your organization's Bitbucket repositories. Read the following guide to get started:
      1. [Prerequisites for connecting a Bitbucket repository to {maia}](/docs/guides/connect-bitbucket-repository-prerequisites)

2. Click **Continue** to trigger the authorization flow, if not already authorized. A new browser tab will open.

3. Click **Authorize {maia}**. The browser tab will close and return you to the project flow.

   <Note>
     For GitHub only. On successful authorizaton, you will see a modal with a list of your authorized accounts. Click **Continue**.
   </Note>

4. Once you've authorized with your Git provider, you'll be taken to the **Select repository** page, where you'll find the list of repositories you have granted access to {maia}. You can connect either an existing repository with multiple branches and a large history, or a brand new repository.

   <Note>
     You can only choose a repository that already exists in your organization or project. {maia} *does not* create a new repository in your account.
   </Note>

5. Select one of the repositories from the list. You can use the search bar to refine your search—for example, if the list contains many repositories.

6. Click **Continue**.

### Select Maia runner deployment

The following instructions only apply if you selected **Advanced settings**.

Select how you want to manage your {m_runner} and secrets for this project:

* **Full SaaS:** Use a Matillion-hosted {m_runner}.
* **Hybrid SaaS:** Host a {m_runner} in your organization's cloud infrastructure. If you choose this option, read [Create a {m_runner} in your infrastructure](/docs/guides/create-a-runner).

### Add an environment

At this step of adding a new project, you are required to add an environment to this project. To do this, follow the instructions in [Environments](/docs/guides/environments#add-an-environment).

After adding an environment, you will be redirected to your new project's menu. From here, you can view your:

* [Branches](/docs/guides/branches)
* [Environments](/docs/guides/environments)
* [Artifacts](/docs/guides/artifacts)
* [Schedules](/docs/guides/schedules)
* [User access](/docs/administration/project-roles)
* [Secret definitions](/docs/guides/secrets-and-secret-definitions)
* [Cloud credentials](/docs/guides/cloud-credentials)
* [OAuths](/docs/guides/oauth)
* [Networks](/docs/guides/networks)

You can edit the project name and description at any time by clicking the pencil buttons next to those items at the top of the screen.

***

## Delete a project

Prior to deleting a project, make sure any active [schedules](/docs/guides/schedules) are disabled. If you have any active schedules when you try to delete a project, you'll receive an error message.

To delete a project, follow these steps:

1. In the **Your projects** page, click the three dots **...** next to the intended project.
2. Click **Delete project**.
3. The **Delete project** dialog will be displayed. Type the name of the project you want to delete in the **Enter project name** field.
4. To confirm, click **Delete Project**.

<Note>
  If you create another project with the same name as a deleted project, make sure the new project's [environment](/docs/guides/environments) name is a different name to the name of the deleted project's environment.
</Note>

***

## Project-level sampling

If necessary, you can enable and disable sampling at the project level. This is useful if your data contains personal information that cannot be viewed outside your region. Only users with project admin permissions can change this setting.

To enable or disable sampling for a project:

1. In the **Your projects** page, click the three dots **...** next to the intended project.
2. Click **Enable sampling** or **Disable sampling** as required.
