-
Notifications
You must be signed in to change notification settings - Fork 15
Expand file tree
/
Copy pathapplication.properties
More file actions
105 lines (105 loc) · 4.83 KB
/
Copy pathapplication.properties
File metadata and controls
105 lines (105 loc) · 4.83 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
app.rsd-context-url=https://rsd.openskillsnetwork.org/context-v1.json
# Database settings
db.name=${DB_NAME:osmt_db}
db.user=${DB_USER:osmt_db_user}
db.password=${DB_PASSWORD:password}
db.host=${DB_HOST:0.0.0.0}
db.port=${DB_PORT:3306}
db.uri=${DB_URI:${db.user}:${db.password}@${db.host}:${db.port}}
db.composedUrl=jdbc:mysql://${db.uri}/${db.name}
db.driver=com.mysql.cj.jdbc.Driver
db.showMissingCreateTableStatements=false
spring.datasource.url=${db.composedUrl}
# Elasticsearch
es.uri=${ELASTICSEARCH_URI:http://localhost:9200}
#es.username=${ELASTICSEARCH_USERNAME}
#es.password=${ELASTICSEARCH_PWD}
# Redis
redis.uri=${REDIS_URI:localhost:6379}
spring.redis.url=redis://${redis.uri}
spring.session.store-type=redis
# Both server session timeout and JWT expiry use the same value
server.servlet.session.timeout=${APP_SESSION_TOKEN_EXPIRY_SECONDS:86400}s
spring.session.redis.flush-mode=immediate
spring.session.redis.namespace=spring:session
# Flywaydb
spring.flyway.enabled=false
spring.flyway.user=${db.user}
spring.flyway.password=${db.password}
spring.flyway.default-schema=${db.name}
spring.flyway.schemas=${db.name}
spring.flyway.locations=classpath:db/migration
spring.flyway.url=${db.composedUrl}
# Spring
spring.main.web-application-type=servlet
spring.jackson.serialization.write-dates-as-timestamps=false
app.baseDomain=osmt.wgu.edu
app.baseUrl=https://${app.baseDomain}
app.frontendUrl=https://${app.baseDomain}
app.loginSuccessRedirectUrl=${app.frontendUrl}/login/success
# JWT claims
app.userName=name
app.userIdentifier=email
app.security.cors.allowedOrigins=${app.baseUrl}
# Stop repository auto configuration
spring.data.jdbc.repositories.enabled=false
spring.data.jpa.repositories.enabled=false
spring.data.redis.repositories.enabled=false
# Silence spring-data-elasticsearch conversion warnings
logging.level.org.springframework.data.convert.CustomConversions=ERROR
# Include sync correlation ID in logs when set (for Credential Engine sync)
logging.pattern.console=%d{${LOG_DATEFORMAT_PATTERN:-yyyy-MM-dd HH:mm:ss.SSS}} ${LOG_LEVEL_PATTERN:-%5p} ${PID:- } [%X{syncCorrelationId:-}] --- [%15.15t] %-40.40logger{39} : %m%n
# tomcat
server.tomcat.remoteip.remote-ip-header=x-forwarded-for
server.tomcat.remoteip.protocol-header=x-forwarded-proto
# Actuator health and info settings
management.endpoints.enabled-by-default=false
management.endpoint.health.enabled=true
management.info.defaults.enabled=true
management.info.git.enabled=true
management.info.git.mode=full
management.health.redis.enabled=true
management.health.db.enabled=true
management.health.elasticsearch.enabled=true
management.endpoint.health.show-details=never
management.endpoint.info.enabled=false
management.endpoints.web.base-path=
management.endpoints.web.path-mapping.health=/health
# application settings
app.defaultAuthorName=Western Governors University
app.defaultAuthorUri=
app.defaultCreatorUri=https://credentialengineregistry.org/resources/ce-036d082d-d80e-41a7-99a0-2d63a4ad3a4a
app.baseLineAuditLogIfEmpty=true
app.allowPublicSearching=true
app.allowPublicLists=true
app.publicKeywordLimit=1000
app.authMode=oauth2
# OAuth2 roles claim name for mapping token claims to authorities (e.g. roles, groups)
app.oauth2.rolesClaim=roles
# Session token (OAuth2 backend-issued JWT)
app.sessionTokenSecret=${APP_SESSION_TOKEN_SECRET:}
app.sessionTokenExpirySeconds=${APP_SESSION_TOKEN_EXPIRY_SECONDS:86400}
app.sessionTokenIssuer=${APP_SESSION_TOKEN_ISSUER:}
# Limit log4j behaviors as partial stopgap for https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-44228
log4j2.formatMsgNoLookups=true
# Roles settings
app.enableRoles=true
osmt.security.role.admin=ROLE_Osmt_Admin
osmt.security.role.curator=ROLE_Osmt_Curator
osmt.security.role.view=ROLE_Osmt_View
osmt.security.scope.read=SCOPE_osmt.read
# Credential Engine (optional - when absent, mock in dev / disabled in prod)
credential-engine.api-key=${CREDENTIAL_ENGINE_API_KEY:}
credential-engine.org-ctid=${CREDENTIAL_ENGINE_ORG_CTID:}
credential-engine.registry-url=${CREDENTIAL_ENGINE_REGISTRY_URL:https://sandbox.credentialengine.org}
credential-engine.sync.batch-size=${CREDENTIAL_ENGINE_SYNC_BATCH_SIZE:20}
credential-engine.sync.retry-attempts=${CREDENTIAL_ENGINE_SYNC_RETRY_ATTEMPTS:5}
credential-engine.sync.retry-initial-delay-ms=${CREDENTIAL_ENGINE_SYNC_RETRY_INITIAL_DELAY_MS:5000}
credential-engine.sync.retry-delay-multiplier=${CREDENTIAL_ENGINE_SYNC_RETRY_DELAY_MULTIPLIER:1.5}
credential-engine.label-prefix=${CREDENTIAL_ENGINE_LABEL_PREFIX:}
credential-engine.canonical-url-base=${CREDENTIAL_ENGINE_CANONICAL_URL_BASE:}
credential-engine.allow-unpublish-all=${CREDENTIAL_ENGINE_ALLOW_UNPUBLISH_ALL:false}
# Split deployment (optional): read-only=public browser; writable=authoring (set publicInstanceUrl there)
app.readOnlyMode=${OSMT_READ_ONLY_MODE:false}
app.publicInstanceUrl=${OSMT_PUBLIC_INSTANCE_URL:}
app.authoringWelcomeMessage=${OSMT_AUTHORING_WELCOME_MESSAGE:}