multipart.enabled=true # Jackson 3 defaults FAIL_ON_NULL_FOR_PRIMITIVES to true (was false in Jackson 2). # Restore Jackson 2 behaviour so absent/null JSON fields map to Java primitive defaults. spring.jackson.deserialization.fail-on-null-for-primitives=false logging.level.org.springframework=WARN logging.level.org.springframework.security=WARN logging.level.org.hibernate=WARN logging.level.org.eclipse.jetty=WARN #logging.level.org.springframework.security.oauth2=DEBUG #logging.level.org.springframework.security=DEBUG #logging.level.org.opensaml=DEBUG #logging.level.stirling.software.proprietary.security=DEBUG logging.level.com.zaxxer.hikari=WARN logging.level.stirling.software.SPDF.service.PdfJsonConversionService=INFO logging.level.stirling.software.common.service.JobExecutorService=INFO logging.level.stirling.software.common.service.TaskManager=INFO spring.jpa.open-in-view=false server.forward-headers-strategy=NATIVE # Enable HTTP/2 for improved performance (multiplexed streams, header compression) server.http2.enabled=true # Enable virtual threads (Java 21+, pinning fix in Java 25) spring.threads.virtual.enabled=true # Only run security filters on REQUEST and ERROR dispatches (not ASYNC). # StreamingResponseBody triggers an ASYNC dispatch on completion; without this, # Spring Security re-evaluates authorization after the response is already committed. spring.security.filter.dispatcher-types=REQUEST,ERROR # Response compression server.compression.enabled=true server.compression.min-response-size=1024 server.compression.mime-types=application/json,application/xml,text/html,text/plain,text/css,application/javascript,image/svg+xml,application/x-font-ttf,font/opentype,application/vnd.ms-fontobject,font/woff,font/woff2,application/font-woff,application/font-woff2 spring.web.error.path=/error spring.web.error.whitelabel.enabled=false spring.web.error.include-stacktrace=always spring.web.error.include-exception=true spring.web.error.include-message=always # Disable Spring's built-in ProblemDetailsExceptionHandler (@Order(0)) so that # GlobalExceptionHandler runs first and provides detailed, logged error responses. # GlobalExceptionHandler already produces RFC 7807 ProblemDetail objects. spring.mvc.problemdetails.enabled=false #logging.level.org.springframework.web=DEBUG #logging.level.org.springframework=DEBUG #logging.level.org.springframework.security=DEBUG # Multipart file size limits # Can be set via environment variables: SPRING_SERVLET_MULTIPART_MAX_FILE_SIZE and SPRING_SERVLET_MULTIPART_MAX_REQUEST_SIZE # Or via SYSTEMFILEUPLOADLIMIT/SYSTEM_MAXFILESIZE which will also set fileUploadLimit in settings.yml spring.servlet.multipart.max-file-size=${SPRING_SERVLET_MULTIPART_MAX_FILE_SIZE:2000MB} spring.servlet.multipart.max-request-size=${SPRING_SERVLET_MULTIPART_MAX_REQUEST_SIZE:2000MB} # Jetty max form content size (default 200KB is too small for signature images) server.jetty.max-http-form-post-size=10MB server.servlet.session.tracking-modes=cookie server.servlet.context-path=${SYSTEM_ROOTURIPATH:/} spring.devtools.restart.enabled=true spring.devtools.livereload.enabled=true spring.devtools.restart.exclude=stirling.software.proprietary.security/** spring.web.resources.mime-mappings.webmanifest=application/manifest+json spring.mvc.async.request-timeout=${SYSTEM_CONNECTIONTIMEOUTMILLISECONDS:1200000} server.jetty.max-http-request-header-size=32768 spring.datasource.url=jdbc:h2:file:./configs/stirling-pdf-DB-2.3.232;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE;MODE=PostgreSQL spring.datasource.driver-class-name=org.h2.Driver spring.datasource.username=sa spring.datasource.password= spring.h2.console.enabled=false spring.jpa.hibernate.ddl-auto=update # Defer datasource initialization to ensure that the database is fully set up # before Hibernate attempts to access it. This is particularly useful when # using database initialization scripts or tools. spring.jpa.defer-datasource-initialization=true # Disable SQL logging to avoid cluttering the logs in production. Enable this # property during development if you need to debug SQL queries. spring.jpa.show-sql=false server.servlet.session.timeout:30m # Change the default URL path for OpenAPI JSON springdoc.api-docs.path=/v1/api-docs # Set the URL of the OpenAPI JSON for the Swagger UI springdoc.swagger-ui.url=/v1/api-docs springdoc.swagger-ui.path=/swagger-ui.html # Force OpenAPI 3.0 specification version springdoc.api-docs.version=OPENAPI_3_0 posthog.api.key=phc_fiR65u5j6qmXTYL56MNrLZSWqLaDW74OrZH0Insd2xq posthog.host=https://eu.i.posthog.com spring.main.allow-bean-definition-overriding=true # Set up a consistent temporary directory location java.io.tmpdir=${stirling.tempfiles.directory:${java.io.tmpdir}/stirling-pdf} # V2 features v2=true