Deployment & Hosting
Struktural is designed to be deployed as a stateless container, relying on external managed services for persistence and caching.
Environment Variables
The platform behavior is heavily influenced by the standard ASPNETCORE_ENVIRONMENT variable:
Development/Local: Enables debugging endpoints, bypasses strict security checks for the Studio, enables theInMemorydatabase provider, and triggers automatic DDL schema migrations on boot.Production: Locks down the administrative APIs, disables automatic destructive schema migrations, enforces strict Identity Provider authentication, and requires secure storage providers.
Database Providers
Struktural requires a relational database. The provider is defined in the app-config.json (per tenant) or via appsettings.json overrides.
Supported dialects:
- PostgreSQL: Recommended for cloud-native deployments. Supports Entra ID token injection and standard user/password.
- SQLServer: Fully supported, including Azure SQL with Managed Identity authentication.
- Oracle: Requires Oracle 19c or newer. Supports standard and AWS IAM/Entra ID authentication.
- InMemory: Strictly reserved for
Localdevelopment. Data is lost upon restart.
Example app-config.json database configuration:
"Database": {
"Provider": "PostgreSQL",
"ConnectionString": "Server=...;Database=...;Username=...;",
"Schema": "public",
"AuthMode": "Native"
}
(Note: AuthMode can be "Native", "EntraID", or "AWS_IAM").
File Storage Configurations
By default, files are stored on the local disk (files/ directory). For production scalability, external providers must be used.
- Azure Blob Storage: Requires an
AzureContainerNameand anAzureConnectionString(or a Secret Reference). - AWS S3: Requires an
AwsBucketName,AwsRegion, and credentials (or relies on the ambient IAM role of the EC2/EKS host).
Event Bus Configuration
The Event Bus orchestrates Workflows and system background tasks.
- Database: The default provider. Uses the primary SQL database to poll for messages. Suitable for low-to-medium throughput.
- Kafka: Recommended for high-throughput enterprise deployments. Requires setting
BootstrapServersand authentication details in theEventBusconfiguration block.