settings Configuration
Bimrocket server configuration is managed with the smallrye-config library that follows the microprofile-config specification. This library can obtain configuration parameters from multiple sources at the same time (environment variables, JVM properties, external files, etc.). By default, bimrocket defines these parameters in a yaml file like this:
# bimrocket-server config
# BIMROCKET_DATA_PATH is set by default to ${user.home}/bimrocket
# but can be changed via JVM property or environ variable.
# service config
services:
# security service
security:
adminPassword: bimrocket
passwordPattern: '^(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%^&+=_\-\.])(?=\S+$).{8,}$'
credentialsCacheTimeout: 300
userCacheTimeout: 300
roleCacheTimeout: 300
tokenTimeout: 1800
maxTokenAge: 28800
cookie:
secure: false
httpOnly: true
sameSite: STRICT
store:
class: org.bimrocket.service.security.store.orient.SecurityOrientDaoStore
orient:
database: bimdb
ldap:
enabled: false
url: ldap://dc1.santfeliu.local
domain: santfeliu.local
searchBase: DC=santfeliu,DC=local
adminUsername: admin
adminPassword: changeit
oauth2:
active: []
providers:
valid:
logoUrl: changeit
baseUrl: https://valid-pre.aoc.cat
authUrl: /o/oauth2/auth
tokenUrl: /o/oauth2/token
getUserInfoUrl: /serveis-rest/getUserInfo
scope: autenticacio_usuari
clientId: changeit
secretId: changeit
roles: []
# file service
file:
folders:
- models
- scripts
- reports
- ifc_snapshots
- tasks
store:
class: org.bimrocket.service.file.store.filesystem.FileSystemFileStore
filesystem:
directory: ${BIMROCKET_DATA_PATH}/cloudfs
# bcf service
bcf:
templateProjectName: template
mail:
createTopic:
subject: '#{project.name}##{index}: #{title} [#{priority}]'
body: '#{description}'
store:
class: org.bimrocket.service.bcf.store.orient.BcfOrientDaoStore
orient:
database: bimdb
# ifcdb service
ifcdb:
schemas:
- IFC2X3
- IFC4
maxFileSizeMb: 200
store:
class: org.bimrocket.service.ifcdb.store.orient.OrientIfcStore
# task service
task:
taskCacheSize: 10
store:
class: org.bimrocket.service.task.store.orient.TaskOrientDaoStore
orient:
database: bimdb
# print service
print:
directory: ${BIMROCKET_DATA_PATH}/printsvc
title: 'Bimrocket print'
creator: 'Bimrocket PrintService'
# mail service
mail:
enabled: false
host: helios
port: 25
startTls: false
auth: false
username: none
password: none
from: 'admin@bimrocket.org'
contentType: 'text/plain;charset=ISO-8859-1'
# proxy service
proxy:
validUrls:
- https://api.openai.com/
- https://api.bsdd.buildingsmart.org/
aliases:
chatgpt:
url: https://api.openai.com/v1/chat/completions
ipFilter: ''
authorization: changeit
# database config
databases:
bimdb:
url: embedded:${BIMROCKET_DATA_PATH}/db/bimdb
username: root
password: orientdb
IFC2X3:
url: embedded:${BIMROCKET_DATA_PATH}/db/IFC2X3
username: root
password: orientdb
IFC4:
url: embedded:${BIMROCKET_DATA_PATH}/db/IFC4
username: root
password: orientdb
During server startup, a yaml configuration file is created (if not exists) in this path: ${BIMROCKET_DATA_PATH}/bimrocket-server.yaml
where ${BIMROCKET_DATA_PATH} points to ${user.home}/bimrocket by default.
Edit this yaml file to change the parameters you need and restart the bimrocket server for the parameters to take effect.
The value of BIMROCKET_DATA_PATH can be changed via an environment variable or a JVM property:
- Environment variable:
BIMROCKET_DATA_PATH=<my_location> - JVM property: In tomcat installations, edit
<TOMCAT_HOME>/conf/catalina.propertiesand add this line:BIMROCKET_DATA_PATH=<my_location>
In the default configuration, OrientDB embedded databases are created automaticaly in ${BIMROCKET_DATA_PATH}/db.
You can change the database urls in bimrocket-server.yaml file to create the databases in a remote OrientDB server.
The default password of the admin user is bimrocket.
It can be changed through the services.security.adminPassword property of the bimrocket-server.yaml file.
Service configuration parameters
The following section describes the configuration parameters accepted by each service.
These parameters can be modified directly in the bimrocket-server.yaml file or through any other mechanism provided by the smallrye config library (environment properties, JVM variables, etc.).
In many cases, it is necessary to restart the services for configuration changes to take effect.
SecurityService 🔗
Service that manages user information and access roles.
Base path: services.security
.adminPassword{String}: Password of theadminuser. This user has full privileges over all services..passwordPattern{String}: Java regular expression that defines the accepted format for user passwords..credentialsCacheTimeout{Integer}: Refresh time (in seconds) of the credentials cache..userCacheTimeout{Integer}: Refresh time (in seconds) of the user cache..roleCacheTimeout{Integer}: Refresh time (in seconds) of the role cache..tokenTimeout{Integer}: Session token expiration time (in seconds) due to inactivity..maxTokenAge{Integer}: Maximum duration of a session token (in seconds)..cookie.secure{Boolean}:secureproperty of the generated cookie..cookie.httpOnly{Boolean}:httpOnlyproperty of the generated cookie..cookie.sameSite{String}:sameSiteproperty of the generated cookie..ldap.enabled{Boolean}: Parameter that indicates whether user passwords are validated against an LDAP server. When this parameter is enabled, users do not need to be created in the database..ldap.url{String}: URL of the LDAP server..ldap.domain{String}: Domain of the LDAP server..ldap.searchBase{String}: Base path in the LDAP directory where users are searched..ldap.adminUsername{String}: User for accessing the LDAP server..ldap.adminPassword{String}: Password for accessing the LDAP server..oauth2.active{String[]}: Names of the enabled OAuth2 providers..oauth2.providers.<providerName>.logoUrl: {String}: URL of the representative image of the OAuth2 provider..oauth2.providers.<providerName>.baseUrl: {String}: Base URL of the following URLs..oauth2.providers.<providerName>.authUrl: {String}: Authorization URL..oauth2.providers.<providerName>.tokenUrl: {String}: URL to obtain the token..oauth2.providers.<providerName>.clientId: {String}: Client id..oauth2.providers.<providerName>.secretId: {String}: Secret id..oauth2.providers.<providerName>.roles: {String[]}: List of roles assigned to users identified through this provider..store.class{Class}: Class that implements user and role storage:- For storage in OrientDB:
org.bimrocket.service.security.store.orient.SecurityOrientDaoStore - For storage in MongoDB:
org.bimrocket.service.security.store.mongo.SecurityMongoDaoStore
- For storage in OrientDB:
.store.orient.database{String}: Alias of the OrientDB database defined in thedatabasessection..store.mongo.database{String}: Alias of the MongoDB database defined in thedatabasessection.
FileService 🔗
Service that manages the storage of files and folders.
Base path: services.file
.folders{List<String>}: List of folders to be created in the base directory of the service..store{Class}: Class that implements the storage of folders and files:- For file system storage:
org.bimrocket.service.file.store.filesystem.FileSystemFileStore
- For file system storage:
.store.filesystem.directory{String}: Base directory where folders and files are stored.
BcfService 🔗
Service that manages the storage of BCF issues.
Base path: services.bcf
.projectTemplate{String}: Name of the project used as a template. When a new BCF project is created, it inherits the extensions (BcfExtensions) of the template project..store{Class}: Class that implements the storage of BCF issues:- For storage in OrientDB:
org.bimrocket.service.bcf.store.orient.BcfOrientDaoStore - For storage in MongoDB:
org.bimrocket.service.bcf.store.mongo.BcfMongoDaoStore
- For storage in OrientDB:
.store.orient.database: Alias of the OrientDB database defined in thedatabasessection..store.mongo.database: Alias of the MongoDB database defined in thedatabasessection..mail.createTopic.subject{String}: Pattern that defines the subject of the message sent to participants when the issue is created. The pattern can include expressions#{<property>}wherepropertyis any property of the Topic (issue)..mail.createTopic.body{String}: Pattern that defines the body of the message sent to participants when the issue is created. The pattern can include expressions#{<property>}wherepropertyis any property of the Topic (issue).
IfcdbService 🔗
Service that manages the storage of IFC model objects in a database.
Base path: services.ifcdb
.schemas{List<String>}: List of supported IFC schemas (IFC2X3, IFC4, or IFC4X3_ADD2). A separate database will be created for each schema. Thealiasof the database used will match the name of the IFC schema..maxFileSizeMb{Integer}: Maximum size in MB of IFC models that can be stored in the database..store{Class}: Class that defines the implementation of model storage:- For storage in OrientDB:
org.bimrocket.service.ifcdb.store.orient.OrientIfcStore - For storage in MongoDB:
org.bimrocket.service.ifcdb.store.mongo.MongoIfcStore
- For storage in OrientDB:
TaskService 🔗
Service that manages task execution on the server.
Base path: services.task
.taskCacheSize{Integer}: Number of tasks cached in an LRU structure..store.class{Class}: Class that defines the implementation of task data storage:- For storage in OrientDB:
org.bimrocket.service.task.store.orient.TaskOrientDaoStore - For storage in MongoDB:
org.bimrocket.service.task.store.mongo.TaskMongoDaoStore
- For storage in OrientDB:
.store.orient.database{String}: Alias of the OrientDB database defined in thedatabasessection..store.mongo.database{String}: Alias of the MongoDB database defined in thedatabasessection.
ProxyService 🔗
Service for accessing external URLs.
Base path: services.proxy
.validUrls{List<String>}: List of URLs accepted by the proxy..aliases.<alias>{Object}: Definition of an external connection associated withalias..aliases.<alias>.url{String}: External URL to access..aliases.<alias>.ipFilter{String}: Java regular expression that defines which IP addresses are allowed to access the URL..aliases.<alias>.authorization{String}: Authorization header sent when accessing the URL (Bearer or Basic).
MailService 🔗
Service for sending email messages.
Base path: services.mail
.enabled{Boolean}: Parameter that controls the activation of the service..host{String}: Name of the SMTP mail server..port{Integer}: Listening port of the mail server..startTls{Boolean}: Parameter that controls the use of the TLS protocol..auth{Boolean}: Parameter that indicates whether the connection requires authentication..username{String}: Username used to authenticate with the server..password{String}: Password used to authenticate with the server..from{String}: Default sender email address..contentType{String}: Content-Type of the message body.
PrintService 🔗
Service for generating PDF files with vector geometries.
Base path: services.print
.directory{String}: Directory where generated PDF files are stored..title{String}: Title displayed in the PDF document..creator{String}:creatorproperty included in the PDF document.