Configuration settings
Application settings
# retrieve the version from the pom file
olog.version=@project.version@
# the server port for the rest service
server.port: 8181
# Options support for unsecure http
server.http.enable=true
server.http.port=8080
# Disable the spring banner
#spring.main.banner-mode=off
# send the error messages along with the error code, the options are never, always, on_param
server.error.include-message=always
# suppress the logging from spring boot
# during debugging this should be set to DEBUG
logging.level.root=INFO
logging.level.org.springframework=INFO
logging.level.org.apache.catalina=INFO
logging.level.org.apache.kafka=INFO
logging.level.org.springframework.web=INFO
logging.level.org.springframework.security=INFO
logging.level.org.springframework.messaging=INFO
logging.level.org.springframework.web.socket=INFO
spring.main.allow-bean-definition-overriding=true
############## SSL - Configuration ##############
server.ssl.key-store-type=PKCS12
server.ssl.key-store=classpath:keystore/newcf.p12
server.ssl.key-store-password=password
server.ssl.key-alias=cf
security.require-ssl=true
############## Authorization Role --> group Mapping ##############
# Customize group names here
admin-groups=olog-admins,sys-admins,ADMIN
log-groups=olog-logs,USER
tag-groups=olog-tags,USER
property-groups=olog-properties,USER
logbook-groups=olog-logbooks,USER
############################## Elastic Search ###############################
# Elasticsearch, by default, binds itself to the 0.0.0.0 address, and listens
# on port [9200-9300] for HTTP traffic and on port [9300-9400] for node-to-node
# communication. (the range means that if the port is busy, it will automatically
# try the next port).
# Set both 'bind_host' and 'publish_host':
#
elasticsearch.network.host: localhost
# Set a custom port to listen for HTTP traffic:
#
elasticsearch.http.port: 9200
# Set the name of the elastic cluster
elasticsearch.cluster.name: elasticsearch
# Create the Olog indices if they do not exist
elasticsearch.create.indices: true
# The names of the index to use for olog
elasticsearch.tag.index: olog_tags
elasticsearch.logbook.index: olog_logbooks
elasticsearch.property.index: olog_properties
elasticsearch.log.index: olog_logs
elasticsearch.sequence.index: olog_sequence
elasticsearch.template.index: olog_templates
elasticsearch.level.index: olog_levels
# Archive modified log entries
elasticsearch.log.archive.index: olog_archived_logs
############################## Mongo gridfs client ###############################
mongo.database:ologAttachments
mongo.host:localhost
mongo.port:27017
############################## Spring Session repository configuration ##############################
# For debugging purposes, set the below to true
# spring.h2.console.enabled=true
# Sets the maximum inactive interval, MUST be in minutes. Defaults to 30 if not set here.
# If set to a negative value, the session never expires.
# spring.session.timeout=30
# URL for the H2 database. Defaults to in-memory, which means sessions are lost between restarts.
# Use the below example to define a file-based URL.
# spring.datasource.url=jdbc:h2:file:./olog-session;DB_CLOSE_ON_EXIT=TRUE
############################## CORS settings ##############################
# Comma separated list of origins allowed to do CORS requests.
# Defaults to http://localhost:3000 (NodeJS development), but must be augmented
# with the origin(s) on which the web front-end is deployed.
#cors.allowed.origins=http://localhost:3000
################## File upload and request size limits ####################
# Unit should be MB (or KB), it is case-sensitive! Invalid unit will inhibit server startup.
spring.servlet.multipart.max-file-size=15MB
spring.servlet.multipart.max-request-size=50MB
################## List of "levels" ##################
levels=Urgent,Suggestion,Info,Request,Problem
########### Elasticsearch "result set" sizes ##########
# NOTE: Non-numeric values will trigger exception and fail startup of service.
# By default, Elasticsearch will return 10 items matching a query.
# This may bee too limiting, e.g. when client requests all tags.
elasticsearch.result.size.logbooks=100
elasticsearch.result.size.tags=100
elasticsearch.result.size.properties=100
elasticsearch.result.size.levels=100
# Default log entry search size if client does not set "limit" request parameter
elasticsearch.result.size.search.default=100
# Max log entry search size
elasticsearch.result.size.search.max=1000
# Default markup scheme. This is applied by default, i.e. if not overridden by client
# or service configuration.
defaultMarkup=commonmark
# Timeout in milliseconds for PropertyProviders. This timeout applies to all providers, i.e.
# all should finish within this amount of time.
propertyProvidersTimeout=2000
# Mapping of static resources. Needed as otherwise the web front-end (if present) will intercept and fail to
# serve a resource like for instance CommonmarkCheatsheet.html
spring.mvc.static-path-pattern=/Olog/**
########### Elasticsearch Default Logbooks, Tags, and Properties ##########
# The urls to the json files describing the default logbooks, tags, and properties which are
# to be created on the start up of the olog
# e.g.
# default.logbook.url=file:///C:/test/default_logbooks.json
default.logbook.url=
default.tags.url=
default.properties.url=
default.levels.url=
########### OpenAPI / Swagger #############
#OPENAPI
springdoc.api-docs.path=${API_PATH:/v3/api-docs}
springdoc.swagger-ui.path=${SWAGGER_PATH:/swagger-ui}
springdoc.swagger-ui.disable-swagger-default-url=true
springdoc.swagger-ui.displayOperationId=true
springdoc.api-docs.version=OPENAPI_3_1
########### Wanted authentication providers #############
# This is a comma separated list of wanted authentication providers
# Supported values:
# inMemory - in memory, hard coded username/password
# ldap - e.g. external OpenLDAP
# embeddedLdap - embedded LDAP
# activeDirectory - Active Directory
authenticationProviders=inMemory
# Resources for the authentication providers that need it
embeddedLdapPropertySource=classpath:/security/embedded_ldap.properties
ldapPropertySource=classpath:/security/ldap.properties
activeDirectoryPropertySource=classpath:/security/active_directory.properties
########### Spring Boot Actuator Configuration #############
# Enable actuator endpoints
management.endpoints.web.exposure.include=health,info,metrics,loggers,env
# Base path for actuator endpoints (default is /actuator)
# management.endpoints.web.base-path=/actuator
# Enable info endpoint
management.info.env.enabled=true
Embedded LDAP settings
#
# Copyright 2025 European Spallation Source ERIC.
#
#
embedded_ldap.urls = ldap://localhost:8389/dc=olog,dc=local
embedded_ldap.base.dn = dc=olog,dc=local
embedded_ldap.user.dn.pattern = uid={0},ou=People
embedded_ldap.groups.search.base = ou=Group
embedded_ldap.groups.search.pattern = (memberUid= {1})
# MUST be integer value
spring.ldap.embedded.port=8389
# Path to custom ldif file. Default is classpath resource, but may be specified
# as local file URL, e.g. file:///path/to/my.ldif, or a remote URL (which needs to
# respond with Content-Type: text/plain).
embedded_ldap_ldif:classpath:olog.ldif
External LDAP settings
#
# Copyright 2025 European Spallation Source ERIC.
#
#
ldap.starttls = false
#ldap.urls = ldaps://ldap.cs.nsls2.local/dc=nsls2,dc=bnl,dc=gov
ldap.urls = ldaps://controlns02.nsls2.bnl.gov/dc=nsls2,dc=bnl,dc=gov
ldap.base.dn = dc=nsls2,dc=bnl,dc=gov
ldap.user.search.base=
# User search pattern, e.g. uid={0},ou=People. No default value as LDAP environment may not
# support user search by pattern.
ldap.user.dn.pattern=
# User search filter, e.g. (&(objectClass=person)(SAMAccountName={0})). No default value as LDAP environment
# may not support user search by filter.
ldap.user.search.filter=
ldap.groups.search.base = ou=Group
ldap.groups.search.pattern = (memberUid= {1})
# dn of manager account, may be required for group search
ldap.manager.dn=
# password of account
ldap.manager.password=
Active Directory settings
#
# Copyright 2025 European Spallation Source ERIC.
#
#
ad.url = ldap://127.0.0.1
ad.domain = test.com