This page lists every configuration section and Options class provided by
Granit packages. Developers should use it as the canonical lookup when adding or
overriding configuration keys.
All Granit configuration sections live under a flat key that matches the
module name. Most classes declare a public const string SectionName used in
the binding call. Nested sections use the colon separator
(e.g. Cache:Redis, Notifications:Email).
Typical binding in a module:
services . Configure <ObservabilityOptions>(
configuration . GetSection ( ObservabilityOptions . SectionName ));
The .NET configuration system merges sources in order of precedence (last wins):
appsettings.json — base defaults, committed to the repository.
appsettings.{ASPNETCORE_ENVIRONMENT}.json — environment overrides
(Development, Staging, Production).
Environment variables — deployed via Kubernetes ConfigMaps or container
orchestrators.
HashiCorp Vault (via Granit.Vault) — secrets and dynamic credentials
injected at startup.
.NET maps configuration keys to environment variables using the double
underscore (__) separator in place of ::
appsettings path Environment variable Cache:Redis:ConfigurationCache__Redis__ConfigurationObservability:OtlpEndpointObservability__OtlpEndpointNotifications:Email:ProviderNotifications__Email__ProviderBlobStorage:ServiceUrlBlobStorage__ServiceUrl
For arrays, use the index as a key segment:
Wolverine__RetryDelays__0 = 00:00:05
Wolverine__RetryDelays__1 = 00:00:30
Key Type Default Description Section — (none — configured in code) Package — Granit.TimingDefaultTimezonestring?nullIANA timezone (e.g. Europe/Brussels). null = no conversion, dates remain UTC.
Key Type Default Description Section — (configured in code) Package — Granit.GuidsDefaultSequentialGuidTypeSequentialGuidType?nullnull = SequentialAsString (PostgreSQL-optimized).
Key Type Default Description Section — AuthenticationPackage — Granit.Authentication.JwtBearerAuthoritystring""OIDC authority URL. Audiencestring""Expected JWT audience. RequireHttpsMetadatabooltrueRequire HTTPS for OIDC metadata. NameClaimTypestring"sub"Claim mapped to IIdentity.Name. BackChannelLogout:EnabledboolfalseEnable OIDC back-channel logout. BackChannelLogout:EndpointPathstring"/auth/back-channel-logout"Logout endpoint route. BackChannelLogout:SessionRevocationTtlTimeSpan01:00:00How long revoked session IDs stay in cache.
Key Type Default Description Section — KeycloakPackage — Granit.Authentication.KeycloakAuthoritystring""OIDC authority URL. ClientIdstring""Keycloak client ID. ClientSecretstring""Client secret (load from Vault). RequireHttpsMetadatabooltrueRequire HTTPS for OIDC metadata. Audiencestring?nullExpected audience. Defaults to ClientId. AdminRolestring"admin"Keycloak realm role for admins. RoleClaimsSourcestring"realm_access""realm_access" or "resource_access".
Key Type Default Description Section — EntraIdPackage — Granit.Authentication.EntraIdInstancestring"https://login.microsoftonline.com/"Azure AD instance URL. TenantIdstring""Azure AD tenant ID. ClientIdstring""App registration client ID. RequireHttpsMetadatabooltrueRequire HTTPS for OIDC metadata. AdminRolestring"admin"Admin App Role name.
Key Type Default Description Section — CognitoPackage — Granit.Authentication.CognitoUserPoolIdstring""Cognito User Pool ID. ClientIdstring""Cognito app client ID. Regionstring""AWS region (e.g. eu-west-1).
Key Type Default Description Section — (configured via authentication scheme) Package — Granit.Authentication.ApiKeysCacheDurationTimeSpan00:05:00Cache TTL for API key lookups. TimeSpan.Zero to disable. TrackLastUsedbooltrueUpdate LastUsedAt on each request.
Key Type Default Description Section — ApiKeysEndpointsPackage — Granit.Authentication.ApiKeys.EndpointsRoutePrefixstring"api-keys"Route prefix. TagNamestring"API Keys"OpenAPI tag. RequiredRolestring"granit-apikeys-admin"Fallback authorization role. AllowedEnvironmentsstring[]["live","test","dev"]Allowed environments for key creation.
Key Type Default Description Section — AuthorizationPackage — Granit.AuthorizationAdminRolesstring[]["admin"]Roles that bypass all permission checks. CacheDurationTimeSpan00:05:00Permission check cache TTL. AlwaysAllowboolfalseSkip permission checks entirely (dev only).
Key Type Default Description Section — AuthorizationEndpointsPackage — Granit.Authorization.EndpointsRoutePrefixstring"auth"Route prefix. TagNamestring"Authorization"OpenAPI tag.
Key Type Default Description Section — VaultPackage — Granit.Vault.HashiCorpAddressstring""Vault server URL. AuthMethodstring"Kubernetes""Kubernetes" or "Token".Tokenstring?nullVault token (dev only). KubernetesRolestring"my-backend"K8s auth role. KubernetesTokenPathstring/var/run/secrets/.../tokenPath to K8s service account JWT. DatabaseMountPointstring"database"Database engine mount point. DatabaseRoleNamestring"readwrite"Dynamic credential role. TransitMountPointstring"transit"Transit engine mount point. LeaseRenewalThresholddouble0.75Lease renewal at 75% of TTL.
Key Type Default Description Section — EncryptionPackage — Granit.EncryptionPassPhrasestring""AES key derivation passphrase (from Vault). KeySizeint256AES key size in bits. ProviderNamestring"Aes""Aes", "Vault", or "AzureKeyVault".VaultKeyNamestring"string-encryption"Transit key name (when provider is Vault).
Key Type Default Description Section — Vault:AzurePackage — Granit.Vault.AzureVaultUristring""Azure Key Vault URI (e.g. https://my-vault.vault.azure.net/). EncryptionKeyNamestring"string-encryption"Key name for encrypt/decrypt operations. EncryptionAlgorithmstring"RSA-OAEP-256"Algorithm: RSA-OAEP-256, RSA-OAEP, or RSA1_5. DatabaseSecretNamestring?nullSecret name for DB credentials. Omit to disable credential rotation. RotationCheckIntervalMinutesint5Secret version polling interval (minutes). TimeoutSecondsint30Azure SDK operation timeout.
Key Type Default Description Section — PrivacyPackage — Granit.PrivacyExportTimeoutMinutesint5GDPR export saga timeout. ExportMaxSizeMbint100Maximum export archive size (MB).
Key Type Default Description Section — KeycloakAdminPackage — Granit.Identity.KeycloakBaseUrlstring""Keycloak server base URL. Realmstring""Realm name. ClientIdstring""Service account client ID. ClientSecretstring""Service account client secret (from Vault). UseTokenExchangeForDeviceActivityboolfalseUse token exchange for device-level session info. TimeoutSecondsint30HTTP request timeout. DirectAccessClientIdstring?nullPublic client for credential verification.
Key Type Default Description Section — EntraIdAdminPackage — Granit.Identity.EntraIdTenantIdstring""Azure AD tenant ID. ClientIdstring""Service principal client ID. ClientSecretstring""Service principal secret (from Vault). ServicePrincipalObjectIdstring""Enterprise app Object ID for App Role ops. DefaultDomainstring?nullDomain for userPrincipalName construction. TimeoutSecondsint30Microsoft Graph request timeout. GraphBaseUrlstring"https://graph.microsoft.com"Graph API base URL. RopcClientIdstring?nullPublic client for ROPC credential verification.
Key Type Default Description Section — CognitoAdminPackage — Granit.Identity.CognitoUserPoolIdstring""Cognito User Pool ID. Regionstring""AWS region (e.g. eu-west-1). AccessKeyIdstring?nullAWS access key (optional — uses default credential chain if omitted). SecretAccessKeystring?nullAWS secret key (from Vault). TimeoutSecondsint30HTTP request timeout.
Key Type Default Description Section — IdentityUserCachePackage — Granit.Identity.EntityFrameworkCoreStalenessThresholdTimeSpan1.00:00:00Duration before a cached user is stale. EnableLoginTimeSyncbooltrueAuto-sync user from JWT on each request. IncrementalSyncBatchSizeint50Max stale entries per incremental sync batch.
Key Type Default Description Section — IdentityEndpointsPackage — Granit.Identity.EndpointsRoutePrefixstring"identity/users"Route prefix. TagNamestring"Identity User Cache"OpenAPI tag. RequiredRolestring"granit-identity-admin"Fallback authorization role.
Key Type Default Description Section — IdentityWebhookPackage — Granit.Identity.EndpointsSecretstring""HMAC-SHA256 shared secret for webhook validation. SignatureHeaderNamestring"X-Webhook-Signature"HTTP header carrying the signature.
Key Type Default Description Section — CachePackage — Granit.CachingKeyPrefixstring"dd"Prefix for all cache keys. DefaultAbsoluteExpirationRelativeToNowTimeSpan?01:00:00Default absolute expiration. DefaultSlidingExpirationTimeSpan?00:20:00Default sliding expiration. EncryptValuesboolfalseEnable AES-256 encryption for all cached values.
Key Type Default Description Section — Cache:EncryptionPackage — Granit.CachingKeystring?nullAES-256 key (base64, 32 bytes). From Vault in production.
Key Type Default Description Section — Cache:HybridPackage — Granit.Caching.HybridLocalCacheExpirationTimeSpan00:00:30L1 (in-memory) expiration per pod. Max recommended: 60s.
Key Type Default Description Section — Cache:RedisPackage — Granit.Caching.StackExchangeRedisIsEnabledbooltrueEnable Redis provider (false = Memory fallback). Configurationstring"localhost:6379"StackExchange.Redis connection string. InstanceNamestring"dd:"Redis key prefix for app isolation.
Key Type Default Description Section — MultiTenancyPackage — Granit.MultiTenancyIsEnabledbooltrueEnable tenant resolution middleware. TenantIdClaimTypestring"tenant_id"JWT claim for tenant ID. TenantIdHeaderNamestring"X-Tenant-Id"HTTP header for tenant ID.
Key Type Default Description Section — TenantIsolationPackage — Granit.PersistenceStrategyTenantIsolationStrategySharedDatabaseSharedDatabase, TenantPerSchema, or TenantPerDatabase.
Key Type Default Description Section — TenantSchemaPackage — Granit.PersistenceNamingConventionTenantSchemaNamingConventionTenantIdTenantId, TenantName, or Custom.Prefixstring"tenant_"Schema name prefix.
Key Type Default Description Section — GranitMigrationsPackage — Granit.Persistence.MigrationsDefaultBatchSizeint500Rows per batch when resuming pending cycles. BatchExecutionTimeoutTimeSpan00:05:00Timeout per migration batch.
Key Type Default Description Section — SettingsPackage — Granit.SettingsCacheExpirationTimeSpan00:30:00Settings cache entry lifetime.
Key Type Default Description Section — (configured in code) Package — Granit.Settings.EndpointsUserRoutePrefixstring"settings/user"User-scoped settings route. GlobalRoutePrefixstring"settings/global"Global settings route. TenantRoutePrefixstring"settings/tenant"Tenant-scoped settings route. TagNamestring"Settings"OpenAPI tag.
Key Type Default Description Section — ReferenceDataPackage — Granit.ReferenceDataCacheTimeToLiveTimeSpan01:00:00In-memory cache TTL for reference data.
Key Type Default Description Section — (configured in code) Package — Granit.ReferenceData.EndpointsRoutePrefixstring"reference-data"Route prefix. TagNamestring"Reference Data"OpenAPI tag. AdminPolicyNamestring?"ReferenceData.Admin"Admin authorization policy. null = no auth. RequiredRolestring"granit-reference-data-admin"Fallback admin role.
Key Type Default Description Section — QueryingPackage — Granit.QueryingDefaultPageSizeint20Default page size for paginated queries. MaxPageSizeint100Maximum allowed page size.
Key Type Default Description Section — ApiVersioningPackage — Granit.ApiVersioningDefaultMajorVersionint1Default API version when client omits it. ReportApiVersionsbooltrueInclude version headers in responses.
Key Type Default Description Section — ApiDocumentationPackage — Granit.ApiDocumentationMajorVersionsint[][1]API versions to generate OpenAPI docs for. Titlestring"API"API title in Scalar UI. Descriptionstring?nullMarkdown description in OpenAPI info. ContactEmailstring?nullContact email in OpenAPI info. LogoUrlstring?nullLogo image URL for Scalar UI. FaviconUrlstring?nullFavicon URL for Scalar page. EnableInProductionboolfalseExpose docs in Production. EnableTenantHeaderboolfalseDocument tenant header on endpoints. TenantHeaderNamestring"X-Tenant-Id"Tenant header name. AuthorizationPolicystring?nullPolicy for doc endpoints. "" = anonymous. OAuth2:AuthorizationUrlstring?nullOAuth2 authorization endpoint. OAuth2:TokenUrlstring?nullOAuth2 token endpoint. OAuth2:ClientIdstring?nullPublic OAuth2 client ID (PKCE). OAuth2:EnablePkcebooltrueEnable PKCE with S256. OAuth2:Scopesstring[]["openid"]OAuth2 scopes to request.
Key Type Default Description Section — (configured in code) Package — Granit.ExceptionHandlingExposeInternalErrorDetailsboolfalseShow internal error messages in ProblemDetails. Never true in production (ISO 27001).
Key Type Default Description Section — CorsPackage — Granit.CorsAllowedOriginsstring[][]Allowed CORS origins. Wildcard * forbidden outside Development (ISO 27001). AllowCredentialsboolfalseInclude Access-Control-Allow-Credentials.
Key Type Default Description Section — CookiesPackage — Granit.CookiesThrowOnUnregisteredbooltrueFail-fast on unregistered cookies. DefaultRetentionDaysint365Default cookie retention period. ThirdPartyServicesarray[]Third-party services for CMP setup (see below).
Each entry in ThirdPartyServices:
Key Type Description NamestringService identifier (e.g. "matomo"). CategoryCookieCategoryGDPR consent category. CookiePatternsstring[]Regex patterns matching service cookies.
Key Type Default Description Section — KlaroPackage — Granit.Cookies.KlaroCookieNamestring"klaro"Klaro consent cookie name.
Key Type Default Description Section — (configured in code) Package — Granit.Cookies.EndpointsRoutePrefixstring"cookies"Route prefix. TagNamestring"Cookies"OpenAPI tag.
Key Type Default Description Section — IdempotencyPackage — Granit.IdempotencyHeaderNamestring"Idempotency-Key"HTTP header name. KeyPrefixstring"idp"Redis key prefix. CompletedTtlTimeSpan1.00:00:00TTL for completed entries. InProgressTtlTimeSpan00:00:30TTL for in-progress lock. ExecutionTimeoutTimeSpan00:00:25Max downstream handler execution time. MaxBodySizeBytesint1048576Max request body size to hash (1 MiB).
Key Type Default Description Section — RateLimitingPackage — Granit.RateLimitingEnabledbooltrueEnable rate limiting. KeyPrefixstring"rl"Redis key prefix for counters. FallbackOnCounterStoreFailureCounterStoreFailureBehaviorAllowBehavior when Redis is unavailable. BypassRolesstring[][]Roles exempt from rate limiting. UseFeatureBasedQuotasboolfalseUse Granit.Features for plan-based quotas. PoliciesDictionary{}Named rate limit policies (see below).
Each entry in Policies:
Key Type Default Description AlgorithmRateLimitAlgorithmSlidingWindowSlidingWindow, FixedWindow, or TokenBucket.PermitLimitint1000Max permits per window. WindowTimeSpan00:01:00Time window for sliding/fixed algorithms. SegmentsPerWindowint6Segments per sliding window (1—60). TokenLimitint50Max tokens for TokenBucket. TokensPerPeriodint10Tokens added per replenishment. ReplenishmentPeriodTimeSpan00:00:10Interval between replenishments. FeatureNamestring?nullFeature name override for quota resolution.
Key Type Default Description Section — BulkheadPackage — Granit.BulkheadEnabledbooltrueEnable bulkhead isolation. BypassRolesstring[][]Roles exempt from bulkhead checks. UseFeatureBasedQuotasboolfalseUse Granit.Features for dynamic limits. IdleTimeoutTimeSpan00:30:00TTL for idle limiters before eviction. CleanupIntervalTimeSpan00:05:00Interval between cleanup sweeps. PoliciesDictionary{}Named bulkhead policies (see below).
Each entry in Policies:
Key Type Default Description PermitLimitint10Max concurrent operations per tenant (1—10,000). QueueLimitint0Max queued operations. 0 = reject immediately. QueueTimeoutTimeSpan00:00:30Max time in queue before rejection. FeatureNamestring?nullFeature name override for dynamic resolution.
Key Type Default Description Section — WolverinePackage — Granit.WolverineRetryDelaysTimeSpan[][00:00:05, 00:00:30, 00:05:00]Cooldown delays between retry attempts. MaxRetryAttemptsint3Maximum retry attempts.
Key Type Default Description Section — WolverinePostgresqlPackage — Granit.Wolverine.PostgresqlTransportConnectionStringstring""PostgreSQL connection string for outbox tables. TransactionModeTransactionMiddlewareModeEagerEager (ISO 27001-recommended) or Lightweight.
Key Type Default Description Section — WolverineSqlServerPackage — Granit.Wolverine.SqlServerTransportConnectionStringstring""SQL Server connection string for outbox tables. TransactionModeTransactionMiddlewareModeEagerEager (ISO 27001-recommended) or Lightweight.
Key Type Default Description Section — WebhooksPackage — Granit.WebhooksHttpTimeoutSecondsint10HTTP delivery timeout (5—120). MaxParallelDeliveriesint20Parallel deliveries on the local queue (1—100). StorePayloadboolfalsePersist delivery payloads (GDPR: validate with DPO).
Key Type Default Description Section — NotificationsPackage — Granit.NotificationsMaxParallelDeliveriesint8Max parallel delivery messages.
Key Type Default Description Section — (configured in code) Package — Granit.Notifications.EndpointsRoutePrefixstring"notifications"Route prefix. TagNamestring"Notifications"OpenAPI tag.
Key Type Default Description Section — Notifications:EmailPackage — Granit.Notifications.EmailProviderstring"Smtp"Keyed service provider ("Smtp", "Brevo", "AzureCommunicationServices", "Scaleway", "SendGrid"). SenderAddressstring""Default sender email. SenderNamestring""Default sender display name.
Key Type Default Description Section — Notifications:SmtpPackage — Granit.Notifications.Email.SmtpHoststring"localhost"SMTP server hostname. Portint587SMTP server port. UseSslbooltrueUse SSL/TLS. Usernamestring?nullSMTP username. Passwordstring?nullSMTP password (from Vault). TimeoutSecondsint30Connection/send timeout.
Key Type Default Description Section — Notifications:BrevoPackage — Granit.Notifications.BrevoApiKeystring""Brevo API key (from Vault). DefaultSenderEmailstring""Default sender email. DefaultSenderNamestring""Default sender name. DefaultSmsSenderIdstring""Default SMS sender ID. BaseUrlstring"https://api.brevo.com/v3"Brevo API base URL. TimeoutSecondsint30HTTP request timeout.
Key Type Default Description Section — Notifications:Email:ScalewayPackage — Granit.Notifications.Email.ScalewaySecretKeystring""Scaleway API secret key (from Vault). ProjectIdstring""Scaleway project ID. DefaultSenderEmailstring""Default sender email (must be verified in Scaleway TEM). DefaultSenderNamestring""Default sender display name. Regionstring"fr-par"Scaleway region. BaseUrlstring"https://api.scaleway.com"Scaleway API base URL. TimeoutSecondsint30HTTP request timeout.
Key Type Default Description Section — Notifications:Email:SendGridPackage — Granit.Notifications.Email.SendGridApiKeystring""SendGrid API key (from Vault). DefaultSenderEmailstring""Default sender email (must be verified in SendGrid). DefaultSenderNamestring""Default sender display name. SandboxModeboolfalseEnable SendGrid sandbox mode (no actual delivery). TimeoutSecondsint30HTTP request timeout.
Key Type Default Description Section — Notifications:TwilioPackage — Granit.Notifications.TwilioAccountSidstring""Twilio Account SID. AuthTokenstring""Twilio Auth Token (from Vault). DefaultSmsFromstring""Default SMS sender number (E.164 format) or Messaging Service SID. DefaultWhatsAppFromstring""Default WhatsApp sender (e.g. whatsapp:+14155238886). MessagingServiceSidstring?nullTwilio Messaging Service SID (overrides DefaultSmsFrom when set). TimeoutSecondsint30HTTP request timeout.
Key Type Default Description Section — Notifications:SmsPackage — Granit.Notifications.SmsProviderstring""Keyed service provider ("Brevo", "AzureCommunicationServices", "AwsSns", "Twilio"). SenderIdstring?nullDefault sender ID.
Key Type Default Description Section — Notifications:WhatsAppPackage — Granit.Notifications.WhatsAppProviderstring""Keyed service provider ("Brevo", "Twilio").
Key Type Default Description Section — Notifications:PushPackage — Granit.Notifications.WebPushVapidSubjectstring""VAPID subject (mailto: or https: URL). VapidPublicKeystring""VAPID public key (base64 URL-safe). VapidPrivateKeystring""VAPID private key (from Vault).
Key Type Default Description Section — Notifications:MobilePushPackage — Granit.Notifications.MobilePushProviderstring"GoogleFcm"Keyed service provider.
Key Type Default Description Section — Notifications:MobilePush:GoogleFcmPackage — Granit.Notifications.MobilePush.GoogleFcmProjectIdstring""Firebase project ID. ServiceAccountJsonstring""Service account JSON key (from Vault). BaseAddressstring"https://fcm.googleapis.com/"FCM API base address. TimeoutSecondsint30Request timeout.
Key Type Default Description Section — AzureCommunicationServices:EmailPackage — Granit.Notifications.Email.AzureCommunicationServicesConnectionStringstring?nullACS connection string. Mutually exclusive with Endpoint. Endpointstring?nullACS endpoint URI (uses DefaultAzureCredential). SenderAddressstring""Sender email address (must be verified in ACS). TimeoutSecondsint120Send operation timeout (ACS emails can take time).
Key Type Default Description Section — AzureCommunicationServices:SmsPackage — Granit.Notifications.Sms.AzureCommunicationServicesConnectionStringstring?nullACS connection string. Mutually exclusive with Endpoint. Endpointstring?nullACS endpoint URI (uses DefaultAzureCredential). FromPhoneNumberstring""Sender phone number in E.164 format (must start with +). TimeoutSecondsint30Send operation timeout.
Key Type Default Description Section — Notifications:AzureNotificationHubsPackage — Granit.Notifications.MobilePush.AzureNotificationHubsConnectionStringstring""Notification Hub connection string. HubNamestring""Notification Hub name. TimeoutSecondsint30Send operation timeout.
Key Type Default Description Section — Notifications:SignalRPackage — Granit.Notifications.SignalRRedisConnectionStringstring?nullRedis connection for SignalR backplane (multi-pod).
Key Type Default Description Section — Notifications:SsePackage — Granit.Notifications.SseHeartbeatIntervalSecondsint30Keep-alive heartbeat interval.
Key Type Default Description Section — Notifications:ZulipPackage — Granit.Notifications.ZulipDefaultStreamstring"alerts"Default Zulip stream. DefaultTopicstring"system"Default Zulip topic.
Key Type Default Description Section — Notifications:Zulip:BotPackage — Granit.Notifications.ZulipBaseUrlstring""Zulip server base URL. BotEmailstring""Bot email address. ApiKeystring""Bot API key (from Vault). TimeoutSecondsint30Request timeout.
Key Type Default Description Section — (configured in code) Package — Granit.Templating.EndpointsRoutePrefixstring"templates"Route prefix. TagNamestring"Templates"OpenAPI tag.
Key Type Default Description Section — DocumentGeneration:PdfPackage — Granit.DocumentGeneration.PdfPaperFormatstring"A4"Paper format (A4, A5, Letter). LandscapeboolfalseLandscape orientation. MarginTopstring"10mm"Top margin (CSS units). MarginBottomstring"10mm"Bottom margin. MarginLeftstring"10mm"Left margin. MarginRightstring"10mm"Right margin. HeaderTemplatestring?nullHTML header template (PuppeteerSharp classes). FooterTemplatestring?nullHTML footer template. PrintBackgroundbooltruePrint background graphics. ChromiumExecutablePathstring?nullCustom Chromium path. null = PuppeteerSharp-managed. MaxConcurrentPagesint4Max parallel Chromium tabs (1—32).
Key Type Default Description Section — DataExchangePackage — Granit.DataExchangeDefaultMaxFileSizeMbint50Max file size (MB) unless overridden per definition. DefaultBatchSizeint500Default import batch size. FuzzyMatchThresholddouble0.8Minimum fuzzy matching score for mapping suggestions.
Key Type Default Description Section — DataExportPackage — Granit.DataExchangeBackgroundThresholdint1000Row count above which export runs as a background job.
Key Type Default Description Section — DataExchangeEndpointsPackage — Granit.DataExchange.EndpointsRoutePrefixstring"data-exchange"Route prefix. RequiredRolestring"granit-data-exchange-admin"Fallback authorization role. TagNamestring"Data Exchange"OpenAPI tag.
Key Type Default Description Section — WorkflowEndpointsPackage — Granit.Workflow.EndpointsRoutePrefixstring"workflow"Route prefix. RequiredRolestring"granit-workflow-admin"Fallback authorization role. TagNamestring"Workflow"OpenAPI tag.
Key Type Default Description Section — ObservabilityPackage — Granit.ObservabilityServiceNamestring"unknown-service"OTEL service name. ServiceVersionstring"0.0.0"Service version. OtlpEndpointstring"http://localhost:4317"OTLP gRPC endpoint. ServiceNamespacestring"my-company"OTEL service namespace. Environmentstring"development"Deployment environment. EnableTracingbooltrueEnable trace export. EnableMetricsbooltrueEnable metrics export.
Key Type Default Description Section — (configured in code) Package — Granit.DiagnosticsLivenessPathstring"/health/live"Liveness probe path. ReadinessPathstring"/health/ready"Readiness probe path. StartupPathstring"/health/startup"Startup probe path. DefaultCacheDurationTimeSpan00:00:10Health check cache duration.
Key Type Default Description Section — TimelineEndpointsPackage — Granit.Timeline.EndpointsRoutePrefixstring"timeline"Route prefix. RequiredRolestring"granit-timeline-user"Fallback authorization role. TagNamestring"Timeline"OpenAPI tag.
Key Type Default Description Section — BlobStoragePackage — Granit.BlobStorageUploadUrlExpiryTimeSpan00:15:00Pre-signed upload URL TTL. DownloadUrlExpiryTimeSpan00:05:00Pre-signed download URL TTL.
Extends BlobStorageOptions with S3-specific settings. Bound from the same
BlobStorage section.
Key Type Default Description Section — BlobStoragePackage — Granit.BlobStorage.S3ServiceUrlstring""S3-compatible endpoint URL. AccessKeystring""S3 access key (from Vault). SecretKeystring""S3 secret key (from Vault). Regionstring"us-east-1"S3 region identifier. DefaultBucketstring""Default bucket name. ForcePathStylebooltrueUse path-style URLs (required for MinIO). TenantIsolationBlobTenantIsolationPrefixPrefix or BucketPerTenant.
Extends BlobStorageOptions with Azure Blob-specific settings. Bound from the
same BlobStorage section.
Key Type Default Description Section — BlobStoragePackage — Granit.BlobStorage.AzureBlobConnectionStringstring""Azure Storage connection string (from Vault). DefaultContainerstring""Default blob container name. UseManagedIdentityboolfalseUse Azure Managed Identity instead of connection string. ServiceUristring""Storage account URI (required when UseManagedIdentity = true). TenantIsolationBlobTenantIsolationPrefixPrefix or Container (one per tenant).
Extends BlobStorageOptions with local file system settings. Bound from the
same BlobStorage section.
Key Type Default Description Section — BlobStoragePackage — Granit.BlobStorage.FileSystemBasePathstring""Root directory for blob storage (required).
Extends BlobStorageOptions with database storage settings. Bound from the
same BlobStorage section.
Key Type Default Description Section — BlobStoragePackage — Granit.BlobStorage.DatabaseMaxBlobSizeByteslong10485760 (10 MB)Maximum blob size accepted by the provider.
Configuration for the proxy endpoint provider used by FileSystem and Database
providers. Bound from the BlobStorage:Proxy section.
Key Type Default Description Section — BlobStorage:ProxyPackage — Granit.BlobStorage.ProxyBaseUrlstring""Public URL of the API server (required). RoutePrefixstring"/api/blobs"Route prefix for proxy endpoints. MaxUploadByteslong104857600 (100 MB)Maximum upload size through proxy.
Key Type Default Description Section — BackgroundJobsPackage — Granit.BackgroundJobsModeJobStoreModeInMemoryInMemory (dev) or Durable (EF Core).ConnectionStringstring""DB connection string (required when Mode is Durable).
Key Type Default Description Section — BackgroundJobsEndpointsPackage — Granit.BackgroundJobs.EndpointsRoutePrefixstring"background-jobs"Route prefix. RequiredRolestring"granit-background-jobs-admin"Fallback authorization role. TagNamestring"Background Jobs"OpenAPI tag.
Key Type Default Description Section — (configured in code via lambda) Package — Granit.LocalizationEnableAutoDiscoveryboolfalseAuto-discover JSON localization resources by naming convention.
GranitLocalizationOptions is primarily configured through code
(services.AddGranitLocalization(options => ...)) rather than appsettings.json.
Properties like Languages, Resources, and FormattingCultures are populated
programmatically.
Key Type Default Description Section — (configured in code) Package — Granit.LocalizationCacheTtlTimeSpan00:05:00In-memory TTL for DB override dictionaries.
Key Type Default Description Section — (configured in code) Package — Granit.Localization.EndpointsRoutePrefixstring"localization"Route prefix. TagNamestring"Localization"OpenAPI tag.