Skip to content

Exact DWH Azure Deployment

Basic steps:

Authentication / Refresh Token

  • Complete the Exact authentication flow (see authentication)
  • Ensure a valid refresh token is available
  • Store the refresh token securely in Azure Key Vault (see below)

Azure SQL Database

  • Create an Azure SQL Server if necessary
  • Create an Azure SQL Database (DTU model) if necessary
  • Create required database users and roles
  • Keep the password of the db-reader user for later use
  • Initialize the database by running the Exact DWH update script
    (see corresponding code/sql/update sql dwh.sql)
  • Configure client-specific settings by updating entries in config.exact_Tables

After this step, you should have:
- schema config
- schema exact
- table config.exact_Tables

Azure Key Vault

  • Create an Azure Key Vault if necessary (see key-vault-installation)
  • Store Exact secrets as Key Vault secrets:
  • exact-client-id
  • exact-client-secret
  • exact-access-token
  • exact-refresh-token

The access token and refresh token must always be treated as a single pair and updated together. The ExactConnector reads secrets from Key Vault at runtime and updates the stored tokens whenever a refresh occurs

If Postman is used alongside the ExactConnector, each must have its own Exact App and its own Key Vault secrets.
Token chains must never be shared.

Azure Function (Exact Connector)

Create an Azure Function App with:

  • Service plan: Y1
  • Runtime: Python 3.10 (Python 3.11 does not include the SQL Server driver)
  • Name: xxx-pwrp-exact-af

Deploy the Azure Function code from:

  • pwrp/product-dwh-exact/code/af

Azure Data Factory (ADF)

  • Create an Azure Data Factory instance
  • Configure linked services:
  • Azure Function (Exact Connector)
  • Azure SQL DWH
  • Import the ARM template from:
  • pwrp/product-dwh-exact/code/adf
  • Configure the pipeline trigger (schedule-based)
  • Publish the ADF changes

Once completed, the Exact DWH ingestion is fully operational and scheduled via ADF.