Database Setup
EntiHub targets one relational engine per deployment. The same product features apply across SQL Server, PostgreSQL, Oracle, and MySQL; only connection wiring and generated SQL dialect differ.
Supported engines
| Engine | Typical deployment | Authentication |
|---|---|---|
SqlServer |
Microsoft Fabric Warehouse, Azure SQL, on-premises SQL Server | ServicePrincipal or SqlUser |
PostgreSql |
Azure Database for PostgreSQL, AWS RDS, self-hosted | SqlUser |
Oracle |
Autonomous Database, on-premises via SQL*Net / Easy Connect | SqlUser |
MySql |
Azure Database for MySQL, cloud or self-hosted | SqlUser |
Configuration settings
All settings live under the Mdm configuration section.
| Setting | Purpose |
|---|---|
Mdm:DatabaseBackend |
Engine selector: SqlServer, PostgreSql, Oracle, MySql. |
Mdm:DbAuthMode |
ServicePrincipal or SqlUser. |
Mdm:DbConnectionString |
Full backend-specific connection string. |
Mdm:ServicePrincipalAuth:TenantId |
Azure AD tenant for SQL Server Entra auth. |
Mdm:ServicePrincipalAuth:ClientId |
Client ID of the service principal. |
Mdm:ServicePrincipalAuth:ClientSecret |
Client secret for token acquisition. |
Mdm:ConfigSchema |
Schema for configuration and governance tables. |
Mdm:EntityDataSchema |
Schema for entity physical data tables. |
Mdm:Tier |
Small, Professional, or Enterprise. |
Mdm:LakehouseName |
Logical lakehouse / database name included in webhook payloads. |
Mdm:PermissionsKey |
Secret key for hashing user identifiers in role assignments. |
Mdm:AuditRetentionDays |
Audit retention window in days. |
Connection string composition
- EntiHub uses
DbConnectionStringas-is for opening the database connection. - This keeps secrets out of long hand-maintained strings when you prefer structured configuration or Key Vault-backed values.
Behavior by backend
- Bootstrap — engine-specific DDL creates schemas and metadata tables with correct types and identifiers.
- Deploy — entity and infrastructure DDL is emitted in the dialect appropriate to the selected backend.
- Runtime SQL — shared helpers abstract paging, boolean literals, quoting, and upsert patterns so the same business logic works across engines.
Operational checklist
- Choose the backend and set
Mdm__DatabaseBackendandMdm__DbAuthModeaccordingly. - Create a database user or service principal with rights to create and alter objects in
ConfigSchemaandEntityDataSchema. - Set dedicated schema names to avoid collisions with existing warehouse objects.
- Verify connectivity with
GET /health/readyafter the container starts. - Define or import an entity in YAML and run Deploy to validate end-to-end DDL and permissions.