120 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			120 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
# Concelier configuration template for StellaOps deployments.
 | 
						|
# Copy to ../etc/concelier.yaml (relative to the web service content root)
 | 
						|
# and adjust the values to match your environment. Environment variables
 | 
						|
# (prefixed with CONCELIER_) override these settings at runtime.
 | 
						|
 | 
						|
storage:
 | 
						|
  driver: mongo
 | 
						|
  # Mongo connection string. Use SRV URI or standard connection string.
 | 
						|
  dsn: "mongodb://concelier:concelier@mongo:27017/concelier?authSource=admin"
 | 
						|
  # Optional database name; defaults to the name embedded in the DSN or 'concelier'.
 | 
						|
  database: "concelier"
 | 
						|
  # Mongo command timeout in seconds.
 | 
						|
  commandTimeoutSeconds: 30
 | 
						|
 | 
						|
plugins:
 | 
						|
  # Concelier resolves plug-ins relative to the content root; override as needed.
 | 
						|
  baseDirectory: ".."
 | 
						|
  directory: "StellaOps.Concelier.PluginBinaries"
 | 
						|
  searchPatterns:
 | 
						|
    - "StellaOps.Concelier.Plugin.*.dll"
 | 
						|
 | 
						|
telemetry:
 | 
						|
  enabled: true
 | 
						|
  enableTracing: false
 | 
						|
  enableMetrics: false
 | 
						|
  enableLogging: true
 | 
						|
  minimumLogLevel: "Information"
 | 
						|
  serviceName: "stellaops-concelier"
 | 
						|
  # Configure OTLP endpoint when shipping traces/metrics/logs out-of-band.
 | 
						|
  otlpEndpoint: ""
 | 
						|
  # Optional headers for OTLP exporters, for example authentication tokens.
 | 
						|
  otlpHeaders: {}
 | 
						|
  # Attach additional resource attributes to telemetry exports.
 | 
						|
  resourceAttributes:
 | 
						|
    deployment.environment: "local"
 | 
						|
  # Emit console exporters for local debugging.
 | 
						|
  exportConsole: true
 | 
						|
 | 
						|
authority:
 | 
						|
  enabled: false
 | 
						|
  # Temporary rollout flag. When true, Concelier logs anonymous access but does not fail requests
 | 
						|
  # without tokens. Set to false before 2025-12-31 UTC to enforce authentication fully.
 | 
						|
  allowAnonymousFallback: true
 | 
						|
  # Issuer advertised by StellaOps Authority (e.g. https://authority.stella-ops.local).
 | 
						|
  issuer: "https://authority.stella-ops.local"
 | 
						|
  # Optional explicit metadata address; defaults to {issuer}/.well-known/openid-configuration.
 | 
						|
  metadataAddress: ""
 | 
						|
  requireHttpsMetadata: true
 | 
						|
  backchannelTimeoutSeconds: 30
 | 
						|
  tokenClockSkewSeconds: 60
 | 
						|
  audiences:
 | 
						|
    - "api://concelier"
 | 
						|
  requiredScopes:
 | 
						|
    - "concelier.jobs.trigger"
 | 
						|
    - "advisory:read"
 | 
						|
    - "advisory:ingest"
 | 
						|
  requiredTenants:
 | 
						|
    - "tenant-default"
 | 
						|
  # Outbound credentials Concelier can use to call Authority (client credentials flow).
 | 
						|
  clientId: "concelier-jobs"
 | 
						|
  # Prefer storing the secret outside of the config file. Provide either clientSecret or clientSecretFile.
 | 
						|
  clientSecret: ""
 | 
						|
  clientSecretFile: ""
 | 
						|
  clientScopes:
 | 
						|
    - "concelier.jobs.trigger"
 | 
						|
    - "advisory:read"
 | 
						|
    - "advisory:ingest"
 | 
						|
  resilience:
 | 
						|
    # Enable deterministic retry/backoff when Authority is briefly unavailable.
 | 
						|
    enableRetries: true
 | 
						|
    retryDelays:
 | 
						|
      - "00:00:01"
 | 
						|
      - "00:00:02"
 | 
						|
      - "00:00:05"
 | 
						|
    # Allow stale discovery/JWKS responses when Authority is offline (extend tolerance as needed for air-gapped mirrors).
 | 
						|
    allowOfflineCacheFallback: true
 | 
						|
    offlineCacheTolerance: "00:10:00"
 | 
						|
  # Networks allowed to bypass authentication (loopback by default for on-host cron jobs).
 | 
						|
  bypassNetworks:
 | 
						|
    - "127.0.0.1/32"
 | 
						|
    - "::1/128"
 | 
						|
 | 
						|
mirror:
 | 
						|
  enabled: false
 | 
						|
  # Directory containing JSON exporter outputs (absolute or relative to content root).
 | 
						|
  exportRoot: "exports/json"
 | 
						|
  # Optional explicit export identifier; defaults to `latest` symlink or most recent export.
 | 
						|
  activeExportId: ""
 | 
						|
  latestDirectoryName: "latest"
 | 
						|
  mirrorDirectoryName: "mirror"
 | 
						|
  requireAuthentication: false
 | 
						|
  maxIndexRequestsPerHour: 600
 | 
						|
  domains:
 | 
						|
    - id: "primary"
 | 
						|
      displayName: "Primary Mirror"
 | 
						|
      requireAuthentication: false
 | 
						|
      maxDownloadRequestsPerHour: 1200
 | 
						|
 | 
						|
sources:
 | 
						|
  ghsa:
 | 
						|
    apiToken: "${GITHUB_PAT}"
 | 
						|
    pageSize: 50
 | 
						|
    maxPagesPerFetch: 5
 | 
						|
    requestDelay: "00:00:00.200"
 | 
						|
    failureBackoff: "00:05:00"
 | 
						|
    rateLimitWarningThreshold: 500
 | 
						|
    secondaryRateLimitBackoff: "00:02:00"
 | 
						|
  cve:
 | 
						|
    baseEndpoint: "https://cveawg.mitre.org/api/"
 | 
						|
    apiOrg: ""
 | 
						|
    apiUser: ""
 | 
						|
    apiKey: ""
 | 
						|
    # Optional mirror used when credentials are unavailable.
 | 
						|
    seedDirectory: "./seed-data/cve"
 | 
						|
    pageSize: 200
 | 
						|
    maxPagesPerFetch: 5
 | 
						|
    initialBackfill: "30.00:00:00"
 | 
						|
    requestDelay: "00:00:00.250"
 | 
						|
    failureBackoff: "00:10:00"
 |