Configuration keys reference
Every key Diana itself reads. All keys are overridable via environment
variables (server.port ← SERVER_PORT; dots and dashes become
underscores). Your application adds its own keys freely (@Value,
@ConfigurationProperties, config.get).
Server
Key
Default
Meaning
server.host
0.0.0.0
Bind address (localhost, ::, IP literal)
server.port
8080
Port (serve(port: 0) for ephemeral in tests)
server.isolates
1
Worker isolates (experimental; see operations )
TLS
Key
Default
Meaning
server.ssl.certPath
—
Certificate chain (PEM). Set together with keyPath
server.ssl.keyPath
—
Private key (PEM)
server.ssl.keyPassword
—
Key password, if any
CORS (server.cors.*)
Key
Default
Meaning
enabled
false
Global CORS on every route
allowedOrigins
['*']
Allowed origins
allowedMethods
registered methods
Preflight allow-methods
allowedHeaders
['*']
* echoes the preflight request
exposedHeaders
[]
Access-Control-Expose-Headers
allowCredentials
false
Credentials; * origins then echo
maxAge
3600
Preflight cache (seconds)
Static files (server.static.*)
Key
Default
Meaning
enabled
false
Mount the static handler
dir
public
Directory to serve
prefix
/static
URL prefix
index
index.html
Served on directory hits
spa
false
Serve index on any miss under the prefix
cacheMaxAge
3600
Cache-Control: max-age (seconds)
Bodies
Key
Default
Meaning
server.maxBodyBytes
10485760 (10 MiB)
Request body limit for non-multipart bodies (JSON, forms, raw String, custom codecs); exceeding ⇒ 413. 0 disables
server.multipart.maxSize
10485760 (10 MiB)
Multipart body limit (raw stream, including part headers); exceeding ⇒ 413. Replaces server.maxBodyBytes for multipart/form-data requests
Server-Sent Events
Key
Default
Meaning
server.sse.heartbeatSeconds
15
Keep-alive comment interval on SSE streams; 0 disables
STOMP (stomp.*)
Key
Default
Meaning
stomp.appPrefix
/app
Destinations under this prefix route to @MessageMapping handlers
stomp.heartbeatMs
10000
Server heartbeat interval offered at CONNECT (both directions; 0 disables)
gRPC (grpc.*, with package:diana_grpc)
Key
Default
Meaning
grpc.enabled
true
Serve @GrpcService classes (false skips serving)
grpc.host
0.0.0.0
gRPC bind address
grpc.port
9090
gRPC port (0 for ephemeral in tests)
gRPC serving requires server.isolates: 1 — see the
gRPC guide .
OpenAPI (server.openapi.*)
Key
Default
Meaning
enabled
false
Serve GET /openapi.json
title
Diana application
Patched into info.title
version
0.0.0
Patched into info.version
Actuator
Key
Default
Meaning
management.enabled
false
Serve /actuator/health and /actuator/info
info.*
—
Free-form section served by /actuator/info
Authentication (auth.*, with package:diana_auth)
diana_auth reads no keys directly; your AuthenticationMiddleware pulls
them via @Value. Conventional keys:
Key
Default
Meaning
auth.jwt.secret
—
HS256 signing/verification secret (env AUTH_JWT_SECRET)
auth.jwt.jwksUri
—
JWKS endpoint for RS256 verification (env AUTH_JWT_JWKSURI)
auth.jwt.issuer
—
Expected iss claim
auth.jwt.audience
—
Expected aud claim
See the auth guide .
Persistence (db.*, with package:diana_data)
Key
Default
Meaning
db.migrations.dir
—
Directory of *.sql migrations applied on startup (opt-in)
db.*
—
Whatever your DatabaseConnector reads (host, file, credentials, …)
See the persistence guide .
Observability (observability.*, with package:diana_observability)
Key
Default
Meaning
observability.tracing.endpoint
—
OTLP collector URL; empty/unset disables tracing (metrics still work)
observability.tracing.serviceName
diana
service.name resource attribute
/actuator/metrics and the liveness/readiness probes are gated by
management.enabled (see Actuator ). See the
observability guide .
Profiles
Key / variable
Meaning
DIANA_PROFILE (env)
Comma-separated active profiles; replaces diana.profile
diana.profile
Active profiles from the base file
Applied as overlays: application.yaml → application-{profile}.yaml (in
order) → environment variables.