Skip to content

Configuration Reference

All configuration lives in metaone-core/src/main/resources/application.yaml. Override values with environment variables or profile-specific YAML files.

Server

PropertyDefaultDescription
server.servlet.context-path/apiAll API endpoints are prefixed with this path

JWT Security

PropertyEnv VariableDefaultDescription
metaone.security.jwt.secretMETAONE_JWT_SECRET(required)HMAC-SHA secret for signing JWTs. Must be ≥ 32 characters.
metaone.security.jwt.expiration-msMETAONE_JWT_EXPIRATION_MS86400000 (1 day)Access token lifetime in milliseconds
metaone.security.jwt.refresh-expiration-msMETAONE_JWT_REFRESH_EXPIRATION_MS604800000 (7 days)Refresh token lifetime in milliseconds

OAuth2

PropertyEnv VariableDescription
metaone.security.oauth2.authorized-redirect-urisAUTHORIZED_REDIRECT_URISComma-separated list of allowed OAuth2 redirect URIs
spring.security.oauth2.client.registration.google.scopeScopes requested from Google (email, profile)

Plugin Runtime

PropertyDefaultDescription
metaone.plugins-pathpluginsDirectory where PF4J plugin JARs are loaded from. Relative to the working directory or absolute.

Workspace DataSource

Each workspace gets its own PostgreSQL database, provisioned dynamically.

PropertyDefaultDescription
metaone.workspace.datasource.url-templatejdbc:postgresql://localhost:5432/metaone_ws_{workspaceKey}JDBC URL template. {workspaceKey} is replaced with the workspace key.
metaone.workspace.datasource.username(inherits from main datasource)DB username
metaone.workspace.datasource.password(inherits from main datasource)DB password
metaone.workspace.datasource.driver-class-nameorg.postgresql.DriverJDBC driver
metaone.workspace.datasource.admin-urljdbc:postgresql://localhost:5432/postgresAdmin connection for creating workspace databases
metaone.workspace.datasource.pool.max-size-per-workspace5Max connections per workspace pool
metaone.workspace.datasource.pool.min-idle-per-workspace1Min idle connections per workspace pool
metaone.workspace.datasource.pool.max-pools50Maximum number of active workspace connection pools
metaone.workspace.datasource.pool.idle-eviction-minutes30Idle pool eviction timeout
metaone.workspace.datasource.pool.connection-timeout-ms30000Connection acquisition timeout

Caching

PropertyDefaultDescription
spring.cache.caffeine.specmaximumSize=1000,expireAfterWrite=5mCaffeine cache spec for extension access checks
spring.cache.cache-namesextension-accessNamed caches managed by Caffeine

Profiles

ProfilePurpose
(default)Production — requires real PostgreSQL and all env vars set
devLocal development with relaxed settings
testCI/unit tests — uses H2 in PostgreSQL compatibility mode

Example application-dev.yaml overrides

yaml
spring:
  datasource:
    url: jdbc:postgresql://localhost:5432/metaone
    username: metaone
    password: secret

metaone:
  security:
    jwt:
      secret: dev-secret-key-at-least-32-characters-long
  plugins-path: plugins/

Full Example

yaml
server:
  servlet:
    context-path: /api

metaone:
  plugins-path: /opt/metaone/plugins
  security:
    oauth2:
      authorized-redirect-uris: https://app.example.com/oauth2/callback
    jwt:
      secret: ${METAONE_JWT_SECRET}
      expiration-ms: 86400000
      refresh-expiration-ms: 604800000
  workspace:
    datasource:
      url-template: "jdbc:postgresql://db:5432/metaone_ws_{workspaceKey}"
      username: ${DB_USERNAME}
      password: ${DB_PASSWORD}
      admin-url: "jdbc:postgresql://db:5432/postgres"
      pool:
        max-size-per-workspace: 10
        max-pools: 100

MetaOne Platform Documentation