Install and set up

This page describes how to connect the installed Snowflake Native App to Experian Data Quality APIs.

The app also includes a Getting started page with the same SQL commands in convenient, copyable code blocks. The examples below assume the app is installed as EDQ.

Grant user access

Grant the application's role to the Snowflake role that will use the app:

GRANT APPLICATION ROLE EDQ.APP_PUBLIC TO ROLE DATA_ENGINEER;

Users assigned to this role can then access the Streamlit app and call procedures such as EDQ.VALIDATION.Email.

Create OAuth and network objects

Run this SQL using a role with permission to create security integrations, secrets, network rules, and external access integrations.

Replace <your-client-id> and <your-client-secret> with your Experian OAuth client credentials.

USE ROLE ACCOUNTADMIN;

CREATE DATABASE IF NOT EXISTS EDQ_APP_CONFIG;
CREATE SCHEMA IF NOT EXISTS EDQ_APP_CONFIG.AUTH;

CREATE OR REPLACE NETWORK RULE EDQ_APP_CONFIG.AUTH.experian_api_network_rule
  MODE = EGRESS
  TYPE = HOST_PORT
  VALUE_LIST = ('api.experianaperture.io');

CREATE OR REPLACE SECURITY INTEGRATION experian_oauth_integration
  TYPE = API_AUTHENTICATION
  AUTH_TYPE = OAUTH2
  OAUTH_CLIENT_ID = '<your-client-id>'
  OAUTH_CLIENT_SECRET = '<your-client-secret>'
  OAUTH_TOKEN_ENDPOINT = 'https://sso.experianaperture.io/oauth2/aust0wkxjeKyT3HRO4x7/v1/token'
  OAUTH_CLIENT_AUTH_METHOD = CLIENT_SECRET_POST
  OAUTH_GRANT = 'CLIENT_CREDENTIALS'
  OAUTH_ALLOWED_SCOPES = ('clientid')
  OAUTH_ACCESS_TOKEN_VALIDITY = 3600
  ENABLED = TRUE;

CREATE OR REPLACE SECRET EDQ_APP_CONFIG.AUTH.experian_oauth_secret
  TYPE = OAUTH2
  API_AUTHENTICATION = experian_oauth_integration
  OAUTH_SCOPES = ('clientid');

CREATE OR REPLACE EXTERNAL ACCESS INTEGRATION experian_api_integration
  ALLOWED_NETWORK_RULES = (EDQ_APP_CONFIG.AUTH.experian_api_network_rule)
  ALLOWED_AUTHENTICATION_SECRETS = (EDQ_APP_CONFIG.AUTH.experian_oauth_secret)
  ENABLED = TRUE;

Bind objects to the app

Bind the OAuth secret and external access integration to the installed app.

CALL EDQ.CONFIG.register_reference(
  'experian_oauth_secret',
  'ADD',
  SYSTEM$REFERENCE(
    'SECRET',
    'EDQ_APP_CONFIG.AUTH.experian_oauth_secret',
    'PERSISTENT',
    'READ'
  )
);

CALL EDQ.CONFIG.register_reference(
  'api',
  'ADD',
  SYSTEM$REFERENCE(
    'EXTERNAL_ACCESS_INTEGRATION',
    'experian_api_integration',
    'PERSISTENT',
    'USAGE'
  )
);

When both references are bound, the app creates the network-enabled validation functions and resumes the orchestration task used for bulk jobs.

Grant source table access

For bulk validation, grant the installed application SELECT access to the source table or view.

GRANT SELECT ON TABLE SOURCE_DB.SCHEMA.CONTACTS_TABLE TO APPLICATION EDQ;

Repeat this grant for every source table or view you plan to validate.

Verify connectivity

After setup, open the app and go to Configure Address Validation. If the app can connect to Experian and your OAuth client is entitled to use Address Validation, it will retrieve the list of licensed countries and datasets.

You can also run a small validation call from a worksheet after configuring the relevant product:

SELECT PARSE_JSON(EDQ.VALIDATION.Email('support@example.com')) AS validation_result;