Skip to content

Install EntiHub

Deploy EntiHub into your Azure subscription, point it at your warehouse database, and let the application initialize its own configuration schema on first run. No hand-written DDL is required.

Prerequisites

  • An Azure subscription with permission to deploy marketplace solutions and manage container workloads.
  • A Microsoft Entra ID tenant for user and service-principal authentication.
  • A target database reachable from your deployment: Microsoft Fabric / Azure SQL, PostgreSQL, Oracle, or MySQL.

Supported database backends

Engine Typical deployment Authentication
SqlServer Microsoft Fabric Warehouse, Azure SQL, on-prem SQL Server ServicePrincipal or SqlUser
PostgreSql Azure Database for PostgreSQL, AWS RDS, self-hosted SqlUser
Oracle Autonomous Database, on-prem via SQL*Net/Easy Connect SqlUser
MySql Azure Database for MySQL, cloud or self-hosted SqlUser

Azure Marketplace deployment

EntiHub is currently installed from Azure Marketplace. To start the installation, search for EntiHub - MDM in Azure Marketplace.

img

After selecting the Marketplace offer, Azure displays the EntiHub offer details. Choose the application tier you want to use from the selection input (Small, Professional, or Enterprise), then click Create.

img

Azure then opens the solution configuration wizard. The settings are divided into several tabs. On the Basics tab, define the basic deployment parameters. First, select the subscription that will be charged for the infrastructure and license costs. Next, select the Azure resource group where the application will be installed. Then select the Azure region where the application will be deployed.

In Managed Application Details, define the Application Name under which the application will be visible in Azure, and the Managed Resource Group where the full application instance will be created. This managed resource group contains all application components, and the customer has only limited access to it. It contains the Container Apps environment, Log Analytics workspace, and Container App.

img

The naming of resources in the managed resource group can be configured on the Container tab. In the first three text inputs, define the names for the Container App, Container Apps environment, and Log Analytics workspace.

On the same tab, you can also configure two additional parameters: Network Access Mode and Compute Profile.

img

The network access mode defines how the application is accessible from an infrastructure perspective. If it is set to Public Access, the application is accessible from the public internet. If you want to place it in a selected VNet and control access, for example from corporate infrastructure only, choose VNet Integration.

When VNet Integration is selected, an additional text input appears where you must provide the ID of the selected subnet where the application will be placed. The Container Apps environment is then created as restricted, and public internet access to the application is limited according to the infrastructure settings of the selected subnet. Make sure that the application has access from this subnet to the source database where all settings and data will be stored.

img

In the next step, configure App Settings on the third tab. First, define the Database Backend. You can choose SqlServer (including Azure SQL and Fabric SQL), PostgreSql, MySql, or Oracle. EntiHub supports these databases as its backend.

Next, define the Database Connection String. This is the connection string for the database backend selected in the previous step. Use the ADO.NET connection string format.

SQL Server:

Server=tcp:myserver.database.windows.net,1433;Database=myDataBase;User ID=mylogin@myserver;Password=myPassword;Trusted_Connection=False;Encrypt=True;

PostgreSQL:

Provider=PostgreSQL OLE DB Provider;Data Source=myServerAddress;location=myDataBase;User ID=myUsername;password=myPassword;timeout=1000;

Oracle:

Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=MyHost)(PORT=MyPort))(CONNECT_DATA=(SERVICE_NAME=MyOracleSID)));User Id=myUsername;Password=myPassword;

MySQL:

Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword;SslMode=Required;

When defining the connection string, it is recommended to set higher timeout values. Some steps or functions may require a longer processing time, and higher timeouts help avoid timeout errors. For Azure SQL or Fabric SQL databases, the connection string can also use a service principal for authentication.

Next, define the database schema for the application configuration and the database schema for MDM data. EntiHub stores data in these schemas. If they do not exist, the application creates them.

img

Another important installation parameter is Secret Key. The application uses this key to encrypt sensitive configuration data so that it is not directly accessible in the database. This also prevents someone with access to the database backend from changing user access to entity data directly in the database. The same secret is used for other sensitive information stored in the database. Store this secret safely. During an application upgrade or reinstallation, configuration data may be lost if the original secret key is not available.

img

EntiHub also supports API rate limiting. During installation, you can define the maximum number of API requests that a user can make within a defined time window. To enable this feature, set Enable API Rate Limiting to True. In the displayed inputs, define the maximum number of requests in the window and the window length in seconds.

img

On the next tab, define the Azure AD settings that the application uses for authentication. Provide the Tenant ID, Client ID, and Client Secret of the prepared service principal. See the Setup Service Principal documentation. Finally, define the Azure AD domain under which authentication will be performed.

img

After all settings are configured, click Review + create. Azure Marketplace validates the configuration and displays the license price for the selected tier, terms, and access permission settings. After you select I agree to the terms and conditions above, Azure Marketplace enables the Create button.

img

After clicking Create, the application installation starts in your Azure subscription according to the configured settings.

img

After the installation completes successfully, the application is ready. In the selected resource group, it appears under the configured name as a Managed application.

img

When you open the managed application resource group, you can see all installed application resources. Access to this resource group is limited. For example, you can read and analyze application logs through the Log Analytics workspace. All other administration steps are performed through the original resource group where the managed application is installed.

img

When you open the managed application, Azure displays information about the installed application, such as support contact details.

img

To find the URL where the GUI and API are available, open Parameters and Outputs from the left-side menu. In the lower Outputs section, find the containerAppUrl parameter. Use this URL to open the application in a browser.

img

For authentication to work correctly, add this URL to the service principal's list of Redirect URIs in the following format:

{app-url}/signin-oidc

If the application will also be accessed through other URLs, such as company subdomains, add those URLs to the Redirect URI list as well.

img

The application is then ready to use. When you open the application URL and authenticate successfully, the user can access the application GUI. Do not forget to assign the user role in Azure AD (entihub-user or entihub-admin).

img

Remove the application from Azure

To uninstall the application from your Azure subscription, open the managed application in the Azure portal and click Delete in the header menu. After confirmation, the application is fully uninstalled. This removes not only the managed application, but also the entire managed application resource group, including the Container App, Container Apps environment, and Log Analytics workspace.

img

After the application is removed, the EntiHub license is no longer charged to your subscription. If you want to use the application again, install it again from Azure Marketplace. Use the same approach when you want to update the application.

Because application configuration data and entity data are stored in an external database, this data remains available after you stop using the application, without restrictions or limits.

The following section summarizes the total infrastructure costs for the application.

Infrastructure costs

The Azure Marketplace ARM templates deploy EntiHub runtime only—not your database. Monthly Azure spend is mainly Azure Container Apps (Consumption plan) and Log Analytics. The warehouse or database (Microsoft Fabric, Azure SQL, PostgreSQL, and so on) is billed separately and is often the largest cost item.

Resources created by the template

Resource Notes
Log Analytics workspace SKU PerGB2018, 30-day retention
Container Apps environment Consumption plan (no Dedicated workload profile)
Container App Single replica (minReplicas = maxReplicas = 1), image from entihub.azurecr.io
VNet mode (optional) Uses an existing customer subnet; the template does not create a virtual network

Not included in the template: database, Microsoft Entra ID licensing, Fabric capacity, or the EntiHub Marketplace software license.

Compute profiles by plan

Marketplace plan Profile vCPU Memory Default at deploy
Small S0_5 0.5 1 GiB
Small S1 1.0 2 GiB Yes
Professional P1 1.0 2 GiB
Professional P2 2.0 4 GiB Yes
Enterprise E1 2.0 4 GiB Yes (only option)

Professional (P2) and Enterprise (E1) use the same Azure compute footprint. Tiers differ by licensed features (Mdm__Tier), not by additional ARM resources.

Indicative monthly Azure cost (runtime only)

Estimates assume one replica running 24/7, Consumption active billing rates (typical US/EU regions), and the subscription-wide free grants for Container Apps: 180,000 vCPU-seconds, 360,000 GiB-seconds, and 2 million HTTP requests per month. Health probe traffic is not counted toward request charges.

Profile Container Apps (approx.) Log Analytics (approx.) Total app infra (approx.)
S0_5 $30–35 $0–15 $35–50
S1 / P1 $70–80 $0–20 $75–100
P2 / E1 $145–160 $0–25 $150–185

Log Analytics cost depends on log volume; light usage often stays within the first few gigabytes per month. Above that, ingestion is billed per GB (region-dependent, typically about $2–3/GB).

If the replica qualifies for idle billing (minimum one replica, very low CPU and traffic), Container Apps charges can be roughly half to one third of the active figures above—for example S0_5 about $10–15/month, P2/E1 about $45–55/month. With periodic health checks, the app may remain in active billing more often.

HTTP requests beyond 2 million per month per subscription are about $0.40 per million.

VNet mode: no extra Container Apps environment fee from the template; you pay for existing network resources (subnet, peering, private connectivity to the database, and so on).

Costs outside this deployment

Item Typical impact
Database (Fabric Warehouse, Azure SQL, PostgreSQL, …) Often tens to hundreds+ USD/month, depending on SKU and data volume
Microsoft Entra ID Usually covered by existing tenant licensing
EntiHub Marketplace license Software subscription (see License); not part of Azure infrastructure meter
Data egress Depends on database location and cloud provider

Accurate quotes

Prices change by region, currency, and agreement. Use the Azure pricing calculator with Container Apps (Consumption) and Log Analytics, 730 hours per month, one replica, and the vCPU/memory from the table above. Add your database and networking separately.

Health check

  • GET /health - lightweight liveness probe.
  • GET /health/ready - verifies the application can reach the database with configured credentials.