GSM Application uses environment variables as the single configuration surface for secrets, connection strings, and service-discovery addresses. Variables are injected at container start time from the rootDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/ti-infinite/GSMApplication/llms.txt
Use this file to discover all available pages before exploring further.
.env file (for Docker Compose deployments) or from the CI/CD environment secrets (for cloud deployments). Build-time variables for the React frontend are baked into the compiled bundle by Vite and cannot be changed without rebuilding the image.
Shared Secrets
These variables are consumed by multiple services and must have the same value in each.Shared HMAC signing secret used to sign and validate JWTs. Must be identical across
gateway, gsmauth, gsmapplication, and gsmoperations. Use a cryptographically random string of at least 32 characters.Default (insecure placeholder): gsm-auth-secret-key-change-in-production-2026Example:ADO.NET connection string for the central
TenantRegistryDb SQL Server database. Used by gsmauth, gsmapplication, and gsmoperations to look up per-tenant connection details. The Database field should be TenantRegistryDb.Format: Server=<host>;User ID=<user>;Password=<password>;Database=TenantRegistryDb;TrustServerCertificate=TrueExample:TrustServerCertificate=True is required when the SQL Server instance uses a self-signed TLS certificate. For production deployments with a CA-signed certificate, you can omit this flag or set it to False.JWT Settings
These variables configure the JWT token parameters. They are set as environment variables indocker-compose.yml for gsmauth, gsmapplication, and gsmoperations. The gateway reads JwtSettings.Issuer and JwtSettings.Audience from its own appsettings.json (hardcoded to GSMAuth and GSMClients), so those two variables are not passed to the gateway container via the environment.
The Default:
iss claim written into every JWT by gsmauth and validated by gsmapplication and gsmoperations. The double-underscore (__) is the ASP.NET Core convention for nested configuration keys.The
gateway does not consume this as an environment variable. Its issuer value is read from appsettings.json ("Issuer": "GSMAuth"). Only the three microservices receive this variable via docker-compose.yml.GSMAuthExample:The Default:
aud claim written into every JWT by gsmauth and validated by gsmapplication and gsmoperations.The
gateway does not consume this as an environment variable. Its audience value is read from appsettings.json ("Audience": "GSMClients"). Only the three microservices receive this variable via docker-compose.yml.GSMClientsExample:Token lifetime in minutes from the moment of issuance. After expiry, the gateway will reject requests with
401 Unauthorized and the client must re-authenticate.Default: 240 (4 hours)Example:ASP.NET Core Runtime Settings
Controls the ASP.NET Core runtime behaviour. Use
Production for deployed environments (disables detailed error pages, enables performance optimisations) and Development for local debugging (enables Swagger UI, detailed exceptions).Allowed values: Production, Development, StagingDefault in docker-compose.yml: ProductionThe HTTP listen address for each ASP.NET Core service. The
Example:
+ wildcard binds to all network interfaces inside the container.| Service | Value |
|---|---|
gateway | http://+:80 |
gsmauth | http://+:8081 |
gsmapplication | http://+:8082 |
gsmoperations | http://+:8083 |
Frontend Build Variables
These variables are resolved by Vite at image build time and embedded in the compiled JavaScript bundle. Changing them requires rebuilding thefrontend Docker image.
The
CompanyId pre-filled in the tenant field on the login page. Useful for single-tenant deployments or demo environments where users should not need to know their company code.Default: IH001Example:Comma-separated list of all valid
CompanyId values known to the frontend. Used to populate tenant selection dropdowns and validate user input before making an API call.Default: IH001,AG001Example:YARP Cluster Destination Addresses
The gateway uses YARP’s environment variable override pattern to configure the addresses of downstream microservice clusters at runtime. These override the values inappsettings.json and follow the ASP.NET Core hierarchical key syntax with __ as the section separator.
Full base URL of the
gsmauth microservice as reachable from the gateway container. In Docker Compose, this is the Docker service name and internal port.Docker Compose value: http://gsmauth:8081/Full base URL of the
gsmapplication microservice as reachable from the gateway container.Docker Compose value: http://gsmapplication:8082/Full base URL of the
gsmoperations microservice as reachable from the gateway container.Docker Compose value: http://gsmoperations:8083/Summary Table
The following table shows which variables are required by each service:| Variable | gateway | gsmauth | gsmapplication | gsmoperations | frontend |
|---|---|---|---|---|---|
JWT_SECRET | ✅ | ✅ | ✅ | ✅ | — |
DB_MASTER_URL | — | ✅ | ✅ | ✅ | — |
JwtSettings__Issuer | — | ✅ | ✅ | ✅ | — |
JwtSettings__Audience | — | ✅ | ✅ | ✅ | — |
JwtSettings__ExpirationMinutes | — | ✅ | — | — | — |
ASPNETCORE_ENVIRONMENT | ✅ | ✅ | ✅ | ✅ | — |
ASPNETCORE_URLS | ✅ | ✅ | ✅ | ✅ | — |
ReverseProxy__Clusters__* | ✅ | — | — | — | — |
VITE_TENANT_DEFAULT | — | — | — | — | ✅ (build) |
VITE_TENANT_IDS | — | — | — | — | ✅ (build) |