Understanding application.yml
Introduction
A YAML file, with extension *.yml or .yaml , is a human readable file in which we can write data pairs in a suitable way by combinations of lists, maps and simple data. Another of the most important features of these files is the indentation. It is important to write these indented elements correctly, since if they are badly indented, they cannot be parsed correctly.
Application.yml file description
Endpoints
They allow you to monitor and interact with your application. Integrated endpoints are available, but adding custom endpoints is also allowed.
-
endpoints: api:
Attribute Values Meaning enabled true, false Active Spring Boot endpoints. Example
endpoints: api: enabled: true
Logging
-
logging: level:
Attribute Values Meaning root String Default server log level set to INFO level Example
logging: level: root: info
CORS
Mechanism that allows restricted resources to be requested between domains.
-
ontimize:corsfilter:
Attribute Values Meaning enabled true, false CORS filter enabled. -
ontimize:globalcors:
CORS global configuration
Attribute Values Meaning cors-configurations String Configuration for this entrypoint -
ontimize:globalcors:cors-configurations:
Attribute Values Meaning allowed-origins String Allow different origins allowed-headers String Allow headers exposed-headers [“X-Auth-Token”,”Content-disposition”,”X-Requested-With”] Exposed headers allowed-methods GET, POST, PUT, DELETE, OPTIONS Allow HTTP methods Example
ontimize: corsfilter: enabled: true globalcors: cors-configurations: '[/**]': allowed-origins: "*" allowed-headers: "*" exposed-headers: ["X-Auth-Token","Content-disposition","X-Requested-With"] allowed-methods: - GET - POST - PUT - OPTIONS - DELETE
-
JDBC
-
ontimize:jdbc:
Attribute Values Meaning name-convention upper, lower, database Convention of data columns name sqlhandler postgres, mysql, oracle, oracle12, sqlserver, hsqldb SQL handler -
ontimize:jdbc:sql-condition-processor:
Attribute Values Meaning upper-string true, false Use of uppercase upper-like true, false String comparision using LIKE in uppercase Example
jdbc: name-convention: upper sqlhandler: hsqldb sql-condition-processor: upper-string: true upper-like: true
-
Security
-
ontimize:security:
Attribute Values Meaning mode default Default security mode ignore-paths /app/** Routes where authenticated user control will not apply -
ontimize:security:jwt:
Configure password for JWT token.
Attribute Values Meaning password cH4nG3_M3** Password for JWT token This JWT token MUST BE CHANGED in any application. It’s a secret inormation.
-
ontimize:security:role-information-service:
Configure columns for user roles
Attribute Values Meaning role-repository String Repository which store the user role role-name-column String Name of the column which store the role name server-permission-query-id String Query ID to identify the query of server permissions server-permission-name-column String Name of the columns which contains the name of the server permission client-permission-query-id String Query ID for client permissions client-permission-column String Name of the columns which contains the name of the client permission -
ontimize:security:user-information-service:
Information about the user
Attribute Values Meaning user-repository String Repository which stores the users of the application user-login-column String Name of the column with the username user-password-column String Name of the column with the password query-id String Query identififer for login other-data List Other query columns -
ontimize:security:user-role-information-service:
Repository information about linking users and roles
Attribute Values Meaning user-role-repository String Repository name query-id String Query identifier role-login-column String Column which stores the user role-name-column String Column which stores the role name
Example
security: mode: default jwt: password: cH4nG3_M3** # ← CHANGE THIS VALUE ignore-paths: /app/** role-information-iervice: role-repository: UserRoleDao role-name-column: ROLENAME server-permission-query-id: serverPermissions server-permission-name-column: PERMISSION_NAME client-permission-query-id: clientPermissions client-permission-column: XMLCLIENTPERMISSION user-information-service: user-repository: UserDao user-login-column: USER_ user-password-column: PASSWORD query-id: login other-data: - NAME - SURNAME - EMAIL - NIF - USERBLOCKED - LASTPASSWORDUPDATE - FIRSTLOGIN user-role-information-service: user-role-repository: UserRoleDao query-id: userRole role-login-column: USER_ role-name-column: ROLENAME
-
Server
-
ontimize:server:
Attribute Values Meaning port int Server port -
ontimize:server:servlet:
Attribute Values Meaning context-path String customized servlet path -
ontimize:server:tomcat:
Attribute Values Meaning uri-encoding String URI encoding -
ontimize:server:compression:
Attribute Values Meaning enabled true, false Enable data compression mime-types String Mime types
Example
server: servlet: context-path: /custom/path port: 33333 tomcat: uri-encoding: UTF-8 compression: enabled: true mime-types: application/json, application/xml
-
Spring
-
ontimize:spring:datasource:
Data source (DB connection)
Attribute Values Meaning driver-class-name String JDBC driver jdbc-url String Connection URl username String DB username password String DB username password initial-size int Initial size test-on-borrow true, false Validation -
ontimize:spring:main:
Attribute Values Meaning banner-mode on, off Remove the startup banner in the console -
ontimize:spring:session:
Attribute Values Meaning store-type String Save the session in spring -
ontimize:spring:resources:
Attribute Values Meaning static-locations String Path for satic resources -
ontimize:spring:autoconfigure:
Attribute Values Meaning exclude String Delete Spring Boot auto-configuration files
Example
spring:
datasource:
driver-class-name: org.hsqldb.jdbcDriver
jdbc-url: jdbc:hsqldb:hsql://localhost:9013/templateDB
username: SA
password:
initial-size: 10
test-on-borrow: true
main:
banner-mode: 'off'
session:
store-type: none
resources:
static-locations: classpath:/ngx/dist/
autoconfigure:
exclude:
org.springframework.boot.autoconfigure.security.SecurityAutoConfiguration, org.springframework.boot.actuate.autoconfigure.ManagementWebSecurityAutoConfiguration