jmustache on the classpath (for alert notification templates) triggers Spring Boot's MustacheAutoConfiguration, which warns about the missing classpath:/templates/ folder we don't use. Disable its check. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
135 lines
5.5 KiB
YAML
135 lines
5.5 KiB
YAML
server:
|
|
port: 8081
|
|
|
|
spring:
|
|
servlet:
|
|
multipart:
|
|
max-file-size: 200MB
|
|
max-request-size: 200MB
|
|
datasource:
|
|
url: ${SPRING_DATASOURCE_URL:jdbc:postgresql://localhost:5432/cameleer?currentSchema=tenant_${cameleer.server.tenant.id}&ApplicationName=tenant_${cameleer.server.tenant.id}}
|
|
username: ${SPRING_DATASOURCE_USERNAME:cameleer}
|
|
password: ${SPRING_DATASOURCE_PASSWORD:cameleer_dev}
|
|
driver-class-name: org.postgresql.Driver
|
|
flyway:
|
|
enabled: true
|
|
locations: classpath:db/migration
|
|
create-schemas: true
|
|
mvc:
|
|
async:
|
|
request-timeout: -1
|
|
mustache:
|
|
check-template-location: false
|
|
jackson:
|
|
serialization:
|
|
write-dates-as-timestamps: false
|
|
deserialization:
|
|
fail-on-unknown-properties: false
|
|
|
|
cameleer:
|
|
server:
|
|
tenant:
|
|
id: ${CAMELEER_SERVER_TENANT_ID:default}
|
|
agentregistry:
|
|
heartbeatintervalms: 30000
|
|
stalethresholdms: 90000
|
|
deadthresholdms: 300000
|
|
pingintervalms: 15000
|
|
commandexpiryms: 60000
|
|
lifecyclecheckintervalms: 10000
|
|
ingestion:
|
|
buffercapacity: 50000
|
|
batchsize: 5000
|
|
flushintervalms: 5000
|
|
bodysizelimit: ${CAMELEER_SERVER_INGESTION_BODYSIZELIMIT:16384}
|
|
runtime:
|
|
enabled: ${CAMELEER_SERVER_RUNTIME_ENABLED:true}
|
|
jarstoragepath: ${CAMELEER_SERVER_RUNTIME_JARSTORAGEPATH:/data/jars}
|
|
baseimage: ${CAMELEER_SERVER_RUNTIME_BASEIMAGE:gitea.siegeln.net/cameleer/cameleer-runtime-base:latest}
|
|
dockernetwork: ${CAMELEER_SERVER_RUNTIME_DOCKERNETWORK:cameleer}
|
|
agenthealthport: 9464
|
|
healthchecktimeout: 60
|
|
container:
|
|
memorylimit: ${CAMELEER_SERVER_RUNTIME_CONTAINER_MEMORYLIMIT:512m}
|
|
cpushares: ${CAMELEER_SERVER_RUNTIME_CONTAINER_CPUSHARES:512}
|
|
routingmode: ${CAMELEER_SERVER_RUNTIME_ROUTINGMODE:path}
|
|
routingdomain: ${CAMELEER_SERVER_RUNTIME_ROUTINGDOMAIN:localhost}
|
|
serverurl: ${CAMELEER_SERVER_RUNTIME_SERVERURL:}
|
|
jardockervolume: ${CAMELEER_SERVER_RUNTIME_JARDOCKERVOLUME:}
|
|
indexer:
|
|
debouncems: ${CAMELEER_SERVER_INDEXER_DEBOUNCEMS:2000}
|
|
queuesize: ${CAMELEER_SERVER_INDEXER_QUEUESIZE:10000}
|
|
catalog:
|
|
discoveryttldays: ${CAMELEER_SERVER_CATALOG_DISCOVERYTTLDAYS:7}
|
|
license:
|
|
token: ${CAMELEER_SERVER_LICENSE_TOKEN:}
|
|
file: ${CAMELEER_SERVER_LICENSE_FILE:}
|
|
publickey: ${CAMELEER_SERVER_LICENSE_PUBLICKEY:}
|
|
security:
|
|
accesstokenexpiryms: 3600000
|
|
refreshtokenexpiryms: 604800000
|
|
bootstraptoken: ${CAMELEER_SERVER_SECURITY_BOOTSTRAPTOKEN:}
|
|
bootstraptokenprevious: ${CAMELEER_SERVER_SECURITY_BOOTSTRAPTOKENPREVIOUS:}
|
|
uiuser: ${CAMELEER_SERVER_SECURITY_UIUSER:admin}
|
|
uipassword: ${CAMELEER_SERVER_SECURITY_UIPASSWORD:admin}
|
|
uiorigin: ${CAMELEER_SERVER_SECURITY_UIORIGIN:http://localhost:5173}
|
|
jwtsecret: ${CAMELEER_SERVER_SECURITY_JWTSECRET:}
|
|
corsallowedorigins: ${CAMELEER_SERVER_SECURITY_CORSALLOWEDORIGINS:}
|
|
infrastructureendpoints: ${CAMELEER_SERVER_SECURITY_INFRASTRUCTUREENDPOINTS:true}
|
|
oidc:
|
|
issueruri: ${CAMELEER_SERVER_SECURITY_OIDC_ISSUERURI:}
|
|
jwkseturi: ${CAMELEER_SERVER_SECURITY_OIDC_JWKSETURI:}
|
|
audience: ${CAMELEER_SERVER_SECURITY_OIDC_AUDIENCE:}
|
|
tlsskipverify: ${CAMELEER_SERVER_SECURITY_OIDC_TLSSKIPVERIFY:false}
|
|
alerting:
|
|
evaluator-tick-interval-ms: ${CAMELEER_SERVER_ALERTING_EVALUATORTICKINTERNALMS:5000}
|
|
evaluator-batch-size: ${CAMELEER_SERVER_ALERTING_EVALUATORBATCHSIZE:20}
|
|
claim-ttl-seconds: ${CAMELEER_SERVER_ALERTING_CLAIMTTLSECONDS:30}
|
|
notification-tick-interval-ms: ${CAMELEER_SERVER_ALERTING_NOTIFICATIONTICKINTERNALMS:5000}
|
|
notification-batch-size: ${CAMELEER_SERVER_ALERTING_NOTIFICATIONBATCHSIZE:50}
|
|
in-tick-cache-enabled: ${CAMELEER_SERVER_ALERTING_INTICKCACHEENABLED:true}
|
|
circuit-breaker-fail-threshold: ${CAMELEER_SERVER_ALERTING_CIRCUITBREAKERFAILTHRESHOLD:5}
|
|
circuit-breaker-window-seconds: ${CAMELEER_SERVER_ALERTING_CIRCUITBREAKERWINDOWSECONDS:30}
|
|
circuit-breaker-cooldown-seconds: ${CAMELEER_SERVER_ALERTING_CIRCUITBREAKERCOOLDOWNSECONDS:60}
|
|
event-retention-days: ${CAMELEER_SERVER_ALERTING_EVENTRETENTIONDAYS:90}
|
|
notification-retention-days: ${CAMELEER_SERVER_ALERTING_NOTIFICATIONRETENTIONDAYS:30}
|
|
webhook-timeout-ms: ${CAMELEER_SERVER_ALERTING_WEBHOOKTIMEOUTMS:5000}
|
|
webhook-max-attempts: ${CAMELEER_SERVER_ALERTING_WEBHOOKMAXATTEMPTS:3}
|
|
# PER_EXCHANGE first-run cursor clamp: on first tick with no persisted cursor, evaluator
|
|
# scans no further back than (now - this cap). Prevents one-time backlog flood for rules
|
|
# whose createdAt predates a migration. Set to 0 to disable and replay from createdAt.
|
|
per-exchange-deploy-backlog-cap-seconds: ${CAMELEER_SERVER_ALERTING_PEREXCHANGEDEPLOYBACKLOGCAPSECONDS:86400}
|
|
outbound-http:
|
|
trust-all: false
|
|
trusted-ca-pem-paths: []
|
|
default-connect-timeout-ms: 2000
|
|
default-read-timeout-ms: 5000
|
|
# proxy-url:
|
|
# proxy-username:
|
|
# proxy-password:
|
|
clickhouse:
|
|
url: ${CAMELEER_SERVER_CLICKHOUSE_URL:jdbc:clickhouse://localhost:8123/cameleer}
|
|
username: ${CAMELEER_SERVER_CLICKHOUSE_USERNAME:default}
|
|
password: ${CAMELEER_SERVER_CLICKHOUSE_PASSWORD:}
|
|
|
|
springdoc:
|
|
api-docs:
|
|
path: /api/v1/api-docs
|
|
swagger-ui:
|
|
path: /api/v1/swagger-ui
|
|
|
|
logging:
|
|
level:
|
|
com.clickhouse: INFO
|
|
org.apache.hc.client5: WARN
|
|
|
|
management:
|
|
endpoints:
|
|
web:
|
|
base-path: /api/v1
|
|
exposure:
|
|
include: health,prometheus
|
|
endpoint:
|
|
health:
|
|
show-details: always
|