This page describes how to connect the installed Snowflake Native App to Experian Data Quality APIs. The app's Streamlit pages also include a Set up your app page with the same SQL commands in convenient, copyable code blocks. The examples below assume the app is installed as EXPERIAN_DATA_VALIDATION.
Grant the application's role to the Snowflake role that will use the app:
GRANT APPLICATION ROLE EXPERIAN_DATA_VALIDATION.APP_PUBLIC TO ROLE DATA_ENGINEER;
Users assigned to this role can then access the Streamlit app and call procedures such as EXPERIAN_DATA_VALIDATION.CONTACT.Email.
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 EXPERIAN_DATA_VALIDATION_CONFIG;
CREATE SCHEMA IF NOT EXISTS EXPERIAN_DATA_VALIDATION_CONFIG.AUTH;
CREATE OR REPLACE NETWORK RULE EXPERIAN_DATA_VALIDATION_CONFIG.AUTH.experian_api_network_rule
MODE = EGRESS
TYPE = HOST_PORT
VALUE_LIST = ('api.experianaperture.io');
CREATE OR REPLACE SECURITY INTEGRATION experian_data_validation_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 EXPERIAN_DATA_VALIDATION_CONFIG.AUTH.experian_oauth_secret
TYPE = OAUTH2
API_AUTHENTICATION = experian_data_validation_oauth_integration
OAUTH_SCOPES = ('clientid');
CREATE OR REPLACE EXTERNAL ACCESS INTEGRATION experian_data_validation_api_integration
ALLOWED_NETWORK_RULES = (EXPERIAN_DATA_VALIDATION_CONFIG.AUTH.experian_api_network_rule)
ALLOWED_AUTHENTICATION_SECRETS = (EXPERIAN_DATA_VALIDATION_CONFIG.AUTH.experian_oauth_secret)
ENABLED = TRUE;
Bind the OAuth secret and external access integration to the installed app.
CALL EXPERIAN_DATA_VALIDATION.CONFIG.register_reference(
'experian_oauth_secret',
'ADD',
SYSTEM$REFERENCE(
'SECRET',
'EXPERIAN_DATA_VALIDATION_CONFIG.AUTH.experian_oauth_secret',
'PERSISTENT',
'READ'
)
);
CALL EXPERIAN_DATA_VALIDATION.CONFIG.register_reference(
'api',
'ADD',
SYSTEM$REFERENCE(
'EXTERNAL_ACCESS_INTEGRATION',
'experian_data_validation_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.
For bulk validation, grant the installed application access to the source database, schema, table, or view.
GRANT USAGE ON DATABASE SOURCE_DB TO APPLICATION EXPERIAN_DATA_VALIDATION;
GRANT USAGE ON SCHEMA SOURCE_DB.SCHEMA TO APPLICATION EXPERIAN_DATA_VALIDATION;
GRANT SELECT ON TABLE SOURCE_DB.SCHEMA.CONTACTS_TABLE TO APPLICATION EXPERIAN_DATA_VALIDATION;
Repeat these grants for every source table or view you plan to validate.
After setup, open the app and go to Address Validation configuration. 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:
CALL EXPERIAN_DATA_VALIDATION.CONTACT.Email('support@example.com');
Replace the application name if needed