User Community Service Desk Downloads

Data Quality Gates Prerequisites

This guide covers the common setup steps shared across DQ Gates deployment options: local Python and Snowflake UDFs.

System requirements

  • Local environment capable of running Python 3.10-3.13 (any platform: Windows, macOS, Linux) or a virtual machine that follows the same requirements.

    Python 3.13 support is available from DQ Gates version 1.1.1. Earlier versions support Python 3.9-3.12.
  • Network connectivity to your Ataccama ONE instance.

  • Ability to install Python packages and run Python scripts or Jupyter notebooks.

Prepare Ataccama ONE

You need an active Ataccama ONE account with access to the DQ firewalls that you want to use.

Authentication setup

DQ Gates authenticates to Ataccama ONE using OpenID Connect (OIDC).

To set up authentication:

  1. Create an API client by following the instructions in Create an API client.

  2. Copy and securely store the generated Client ID and Client Secret. These credentials are used in the next step, Configure Ataccama ONE connection in the .env file.

Configure Ataccama ONE connection in the .env file

Create an .env file in your project directory using the following template. This file stores the environment variables needed to connect to Ataccama ONE during deployment.

The .env file example with Ataccama ONE connection settings
ATACCAMA_INSTANCE_URL="https://myenv.ataccama.one/"
ATACCAMA_PLATFORM_VERSION="saas"
ATACCAMA_CLIENT_ID="myclient"
ATACCAMA_CLIENT_SECRET="secret"
ATACCAMA_KEYCLOAK_HOST="myenv.ataccama.one"
ATACCAMA_KEYCLOAK_REALM="myrealm"

Set the following variables:

Next steps

After you complete the prerequisites, continue with the installation guide for your environment:

Post-installation configuration

Firewall filtering

Available from DQ Gates version 1.1.0.

This section applies to firewall-based runtimes such as local Python and Snowflake UDFs deployment.

Filter which firewalls to retrieve using AQL filters or Python predicates.

  • Using AQL filters. Filter firewalls when fetching them from Ataccama ONE.

    AQL filter example
    # Retrieve all firewalls (default)
    firewalls = list(client.get_firewall_definitions())
    
    # Retrieve only enabled firewalls
    firewalls = list(client.get_firewall_definitions(filter="enabled=true"))
    
    # Fetch firewalls whose name contains 'GATES' (case insensitive)
    firewalls = list(client.get_firewall_definitions(filter="name LIKE 'GATES'"))
    
    # Fetch firewalls with specific names (case sensitive)
    firewalls = list(client.get_firewall_definitions(filter="name in ('CUSTOMERS', 'EMAILS')"))
    
    # Combine predicates (enabled + deployment timestamp)
    firewalls = list(
        client.get_firewall_definitions(
            filter="enabled=true and deploymentInfo.timestamp > '2025-09-01'",
        )
    )
    
    # Fetch by service IDs
    firewalls = list(client.get_firewall_definitions(filter=["C10nSBQA78", "UID1Wy4ivg"]))
  • Using Python predicates. Filter the in-memory list after fetching.

    Python predicates example
    # Firewalls whose name starts with 'GATES'
    firewalls_to_deploy = [fw for fw in firewalls if fw.name.startswith("GATES")]
    
    # Firewalls that contain 'finance' in the description
    firewalls_to_deploy = [
        fw for fw in firewalls
        if fw.description and 'finance' in fw.description.lower()
    ]
    
    # Limit to specific firewall IDs
    selected_ids = ["C10nSBQA78", "UID1Wy4ivg"]
    firewalls_to_deploy = [fw for fw in firewalls if fw.firewall_id in selected_ids]

Was this page useful?