Skip to main content
Version: 2.0.x (Latest)

Deployment Settings Reference

These values come from the checked-in Development configuration. They are not production recommendations or proof that every option is consumed by the runtime. Environment overrides replace colons with double underscores.

The OPA implementation reads BaseUrl and Path; the Url and DecisionPath entries below are legacy example keys and must be corrected as explained in OPA integration. Semantic provider entries do not make the baseline intent stub a functioning classifier.

Kestrel​

KeyChecked-in development value
Kestrel:Endpoints:Http:Url"http://localhost:7080"
Kestrel:Limits:MaxConcurrentConnections1000
Kestrel:Limits:MaxConcurrentUpgradedConnections1000
Kestrel:Limits:KeepAliveTimeout"00:02:00"
Kestrel:Limits:RequestHeadersTimeout"00:00:30"
Kestrel:Limits:MaxRequestBodySize52428800

Cors​

KeyChecked-in development value
Cors:AllowedOrigins["https://localhost:7181"]
Cors:AllowedMethods["GET", "POST", "PUT", "PATCH", "DELETE", "OPTIONS"]
Cors:AllowedHeaders["Content-Type", "Authorization"]

OutboundHttp​

KeyChecked-in development value
OutboundHttp:AllowPrivateAddressestrue
OutboundHttp:MaxResponseBodySizeBytes2097152
OutboundHttp:Timeout"00:00:30"

DataProtection​

KeyChecked-in development value
DataProtection:ApplicationName"synentra"
DataProtection:KeyRingPath"./data/keys"
DataProtection:RequireEncryptedKeyRingfalse
DataProtection:DefaultKeyLifetime"90.00:00:00"
DataProtection:Certificate:Path""

Persistence​

KeyChecked-in development value
Persistence:Provider"sqlite"
Persistence:Providers:sqlite:ConnectionString"Data Source=synentra.db"
Persistence:Providers:postgres:ConnectionString"Host=localhost;Port=5432;Database=synentra;Username=postgres;Password=YOURPASSWORD"

Logging​

KeyChecked-in development value
Logging:LogLevel:Default"Information"
Logging:File:Enabledtrue
Logging:File:LogPath"logs/log-.txt"
Logging:File:RollingInterval"Day"
Logging:File:RetainedFileCountLimit7
Logging:File:MinimumLevel"Warning"
Logging:Seq:Enabledfalse
Logging:Seq:Url"http://localhost:5341"
Logging:Seq:ApiKeySecretRefnull
Logging:Seq:MinimumLevel"Information"

OpenTelemetry​

KeyChecked-in development value
OpenTelemetry:Enabledfalse
OpenTelemetry:Endpoint"http://localhost:4317"
OpenTelemetry:ServiceName"synentra"
OpenTelemetry:ExportLogsfalse
OpenTelemetry:ExportTracestrue
OpenTelemetry:ExportMetricstrue

Identity​

KeyChecked-in development value
Identity:Provider"oidc"
Identity:Claims:AgentId"sub"
Identity:Claims:Roles"roles"
Identity:Claims:SecurityScope"security_scope"
Identity:Providers:oidc:Authority"http://localhost:8080/realms/synentra"
Identity:Providers:oidc:Audience"synentra-agents"
Identity:Providers:oidc:Issuer"http://localhost:8080/realms/synentra"
Identity:Providers:oidc:RequireHttpsMetadatafalse
Identity:Providers:ldap:Endpoint"ldap://localhost:389"
Identity:Providers:ldap:BaseDn"dc=example,dc=com"
Identity:Providers:ldap:UserDnPattern"uid={0},ou=users,dc=example,dc=com"
Identity:Providers:ldap:BindDn"cn=admin,dc=example,dc=com"
Identity:Providers:ldap:BindPasswordSecretRef"<your-ldap-password-secret-ref>"

Approvals​

KeyChecked-in development value
Approvals:AllowSelfApprovalfalse
Approvals:AllowCrossScopeApprovalfalse

Trust​

KeyChecked-in development value
Trust:InitialScore50
Trust:QuarantineThreshold10
Trust:MaxManualAdjustment10
Trust:EvidenceWeights:SuccessfulExecution1
Trust:EvidenceWeights:ConfirmedMisuse-25
Trust:EvidenceWeights:PolicyViolation-5
Trust:EvidenceWeights:ReviewerAction0

Semantic​

KeyChecked-in development value
Semantic:Providers:Internal:ModelType"Community"
Semantic:Providers:Internal:PackagePath"/models/community-model.zip"
Semantic:Providers:Ollama:Endpoint"http://localhost:11434"
Semantic:Providers:Ollama:Model"llama3.2"
Semantic:Providers:AzureAi:Endpoint"https://<your-endpoint>.inference.ai.azure.com"
Semantic:Providers:AzureAi:ApiKey"<your-api-key>"
Semantic:Providers:AzureAi:Model"gpt-4o-mini"
Semantic:Providers:OpenAi:ApiKey"<your-openai-api-key>"
Semantic:Providers:OpenAi:Model"gpt-4o-mini"
Semantic:Providers:Gemini:ApiKey"<your-gemini-api-key>"
Semantic:Providers:Gemini:Model"gemini-2.0-flash"

Policy​

KeyChecked-in development value
Policy:Provider"Declarative"
Policy:Providers:Opa:Url"http://localhost:8181"
Policy:Providers:Opa:DecisionPath"synentra/authz/decision"
Policy:Providers:Opa:Timeout"00:00:05"

BackgroundJobs​

KeyChecked-in development value
BackgroundJobs:Outbox:Enabledtrue
BackgroundJobs:Outbox:PollingInterval"00:00:02"
BackgroundJobs:Outbox:MaxAttempts5
BackgroundJobs:ClaimExpiration:Enabledtrue
BackgroundJobs:ClaimExpiration:PollingInterval"00:00:30"

Initialization​

KeyChecked-in development value
Initialization:ManifestBootstrap:Enabledtrue

Secrets​

KeyChecked-in development value
Secrets:Provider"none"
Secrets:Providers:LocalVault:Enabledtrue
Secrets:Resolution:Timeout"00:00:30"
Secrets:Cache:Mode"memory"
Secrets:Cache:Ttl"00:01:00"
Secrets:Cache:MaximumEntries1024
Secrets:Cache:OutagePolicy"use-unexpired-cache"

Provider and deployment models​

The following declarations include additional properties that may not appear in the Development file. Validate provider registration and configuration before use.

OidcConfiguration​

namespace Synentra.Infrastructure.Configuration.Identity;



/// <summary>

/// External provider settings (Keycloak, Auth0, Azure AD, Custom)

/// </summary>

public class OidcConfiguration

{

public string Authority { get; set; } = string.Empty;

public string Audience { get; set; } = string.Empty;

public string Issuer { get; set; } = string.Empty;

public bool RequireHttpsMetadata { get; set; } = true;



}

DataProtectionConfiguration​

using System.Security.Cryptography.X509Certificates;



namespace Synentra.Infrastructure.Configuration.DataProtection;



public sealed class DataProtectionConfiguration : ISynentraConfiguration

{

public static string SectionName => "DataProtection";



public string ApplicationName { get; set; } = "synentra";

public string KeyRingPath { get; set; } = "./data/keys";

public bool RequireEncryptedKeyRing { get; set; } = false;

public TimeSpan DefaultKeyLifetime { get; set; } = TimeSpan.FromDays(90);

public KeyRingCertificateConfiguration Certificate { get; set; } = new();

}



public sealed class KeyRingCertificateConfiguration

{

public string? Path { get; set; }

public string? Password { get; set; }

public string? Thumbprint { get; set; }

public StoreName StoreName { get; set; } = StoreName.My;

public StoreLocation StoreLocation { get; set; } = StoreLocation.CurrentUser;

}

OutboundHttpConfiguration​

namespace Synentra.Infrastructure.Configuration.OutboundHttp;



public class OutboundHttpConfiguration: ISynentraConfiguration

{

public static string SectionName => "OutboundHttp";



public bool? AllowPrivateAddresses { get; set; } = false;

public int? MaxResponseBodySizeBytes { get; set; } = 2 * 1024 * 1024; // 2MB

public TimeSpan? Timeout { get; set; } = TimeSpan.FromSeconds(30);

}

OpaPolicyConfiguration​

namespace Synentra.Infrastructure.Configuration.Policy;



public class OpaPolicyConfiguration

{

public string BaseUrl { get; set; } = string.Empty;

public string Path { get; set; } = "/v2/data/synentra/authz";

public string? OpaBearerToken { get; set; } = string.Empty;

public TimeSpan? Timeout { get; set; } = TimeSpan.FromSeconds(5);

}

SecretDeclaration​

using Synentra.Domain.Security.ValueObjects;



namespace Synentra.Infrastructure.Configuration.Secrets;



public sealed class SecretDeclaration

{

public SecretTier Tier { get; set; }

public string Provider { get; set; } = "";

public string Path { get; set; } = "";

public string Version { get; set; } = "";

public string? ConfigurationKey { get; set; }

public string[] DependsOn { get; set; } = [];

public override string ToString() => "SecretDeclaration([REDACTED])";

public SecretProviderRef Reference => new(Provider, Path, Version);

}

HashiCorpVaultConfiguration​

namespace Synentra.Infrastructure.Configuration.SecretManagement;



public class HashiCorpVaultConfiguration

{

public string Endpoint { get; set; } = string.Empty;

public string Mount { get; set; } = "secret";

public string Token { get; set; } = "";

}

AzureKeyVaultConfiguration​

namespace Synentra.Infrastructure.Configuration.Secrets;



public class AzureKeyVaultConfiguration

{

public string Endpoint { get; set; } = string.Empty;

public string Identity { get; set; } = "workload";

public string? ClientId { get; set; }

public string? TenantId { get; set; }

public string? ClientSecret { get; set; }

}

AwsSecretsConfiguration​

namespace Synentra.Infrastructure.Configuration.Secrets;



public class AwsSecretsConfiguration

{

public string? Region { get; set; }

public string Identity { get; set; } = "web-identity";

public string? AccessKey { get; set; }

public string? SecretKey { get; set; }

public string? SessionToken { get; set; }

}

Was this helpful?