> ## 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.

# Setup guide - Hybrid SaaS Snowflake on Google Cloud

export const PlatformGuideMetadata = ({deploymentType, cloudPlatform, warehouse}) => {
  const pill = label => <span style={{
    background: '#dcfce7',
    color: '#15803d',
    border: '1px solid #bbf7d0',
    borderRadius: '9999px',
    padding: '3px 12px',
    fontSize: '0.85rem',
    fontWeight: '500',
    whiteSpace: 'nowrap'
  }}>
      {label}
    </span>;
  const rows = [{
    label: 'Deployment type',
    value: deploymentType
  }, {
    label: 'Cloud platform',
    value: cloudPlatform
  }, {
    label: 'Cloud data warehouse',
    value: warehouse
  }];
  return <div data-search-exclude style={{
    background: 'var(--colors-background-light, #f9fafb)',
    border: '1px solid var(--colors-border-default, #e5e7eb)',
    borderRadius: '12px',
    padding: '20px 28px',
    marginBottom: '28px',
    boxShadow: '0 1px 4px rgba(0,0,0,0.10)'
  }}>
      <table style={{
    width: '100%',
    borderCollapse: 'collapse'
  }}>
        <tbody>
          {rows.map(({label, value}, i) => <tr key={i}>
              <td style={{
    fontWeight: '600',
    paddingRight: '32px',
    ...i < rows.length - 1 && ({
      paddingBottom: '14px'
    }),
    whiteSpace: 'nowrap',
    verticalAlign: 'middle',
    width: '180px'
  }}>{label}</td>
              <td style={{
    ...i < rows.length - 1 && ({
      paddingBottom: '14px'
    }),
    verticalAlign: 'middle'
  }}>{pill(value)}</td>
            </tr>)}
        </tbody>
      </table>
    </div>;
};

export const m_runner = "Maia runner";

export const maia = "Maia";

This document describes the necessary steps to follow to set up your first working project in {maia} for the following configuration options:

<PlatformGuideMetadata deploymentType="Hybrid SaaS" cloudPlatform="Google Cloud" warehouse="Snowflake" />

***

## Prerequisites

### Google Cloud requirements

* A [Google Cloud](https://cloud.google.com/) account with privileges to deploy and run a {m_runner} on Google Kubernetes Engine (GKE). For the full set of required APIs, IAM roles, and infrastructure prerequisites, read [Google Cloud IAM permissions for runner deployment](/docs/guides/gcp-iam-permissions-for-runner) and the [GKE deployment guide](/docs/guides/gke-deployment-guide).

### Snowflake requirements

* A [Snowflake](https://www.snowflake.com/en/) account with the following information:
  * Your Snowflake account name and region (found in the URL you use to log in to Snowflake).
  * Your Snowflake login credentials ([Snowflake private key](https://docs.snowflake.com/en/user-guide/key-pair-auth#configuring-key-pair-authentication)).
  * A Snowflake role, warehouse, database, and schema.

### Connectivity requirements

* Access enabled for the IP addresses listed under the **Hybrid SaaS** section of [Network access and IP Allowlist requirements](/docs/security/network-access-and-ip-allowlist-requirements/#hybrid-saas-agents-and-git-repositories).

### Git requirements

If you choose to use [your own Git provider](/docs/guides/installing-git-provider-overview) instead of the Matillion-hosted Git option, you need the following:

* The Matillion Git app installed in your organization's account with one of the supported Git providers:
  * [GitHub](/docs/guides/installing-matillion-app-github-marketplace).
  * [Azure DevOps](/docs/guides/installing-matillion-app-azure-devops).
  * [GitLab](/docs/guides/connect-gitlab-repository-prerequisites).
  * [Bitbucket](/docs/guides/connect-bitbucket-repository-prerequisites).

***

## Setup steps

1. Register for a [{maia} account](/docs/administration/registration).
2. [Create accounts](/docs/administration/manage-other-users) for users and admins who will be active in {maia}.
3. [Create a {m_runner}](/docs/guides/create-a-runner) in {maia}.
4. [Deploy a {m_runner} on GKE](/docs/guides/gke-deployment-guide) in your Google Cloud project.
5. Create a [project](/docs/guides/projects#add-a-new-project), making the following choices:
   * Select **Advanced settings**.
   * Select the {m_runner} you created and deployed previously.
   * Select the Git provider you wish to use.
6. Create an [environment](/docs/guides/environments) using your Snowflake credentials.
7. Set up [secret definitions](/docs/guides/secrets-and-secret-definitions#add-a-secret-definition-hybrid-saas) for passwords, API keys, and tokens.
8. Create a Git [branch](/docs/guides/branches) in which to begin pipeline work.
9. Create your first [pipeline](/docs/guides/pipelines).
