-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathconfig.local.neon.example
More file actions
118 lines (101 loc) · 5.56 KB
/
config.local.neon.example
File metadata and controls
118 lines (101 loc) · 5.56 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
106
107
108
109
110
111
112
113
114
115
116
117
118
parameters:
api:
address: "https://your.recodex.domain/api"
webapp:
address: "https://your.recodex.domain"
async:
pollingInterval: 10 # seconds (you may set this to larger values if inotify wake-ups are allowed)
# inotify can wake the async worker (immediately once an async operation is issued)
inotify: false # set to true only if your system (and PHP) supports inotify (not available on Windows, extension required on Linux)
fileStorage: # where the local files are being stored
local:
root: %appDir%/../storage/local # this should be replaced with path to existing directory
hash:
root: %appDir%/../storage/hash # this should be replaced with path to existing directory
submissions:
locked: false # if set to true, the API will not be accepting submissions (and it will be indicated in can-submit/permission hints)
lockedReason: # Localized message with reason displayed in UI, why the submissions are locked (ignored if locked == false)
cs: "Odevzdávání řešení bylo zablokováno v konfiguraci aplikace."
en: "Submitting new solutions is currently locked out in the application configuration."
accessManager:
issuer: "%webapp.address%"
audience: "%webapp.address%"
expiration: 604800 # 7 days in seconds
invitationExpiration: 604800 # of an invitation token (7 days in seconds)
verificationKey: "recodex-123" # this should be a really secret string and sufficiently long (for HS256, at least 32 characters is required)
tokenCookieName: 'recodex_accessToken' # web-app config value 'PERSISTENT_TOKENS_KEY_PREFIX' + '_accessToken', null if only Authorization header is used
broker:
address: "tcp://127.0.0.1:9658"
auth:
username: "user" # these credentials must match credentials
password: "pass" # in broker configuration file
monitor:
address: "wss://your.recodex.domain:443/ws"
workerFiles: # configuration for worker-files endpoint (direct access from worker to the core to upload/download files)
enabled: true
auth: # username and password that must workers use in base HTTP auth
username: "re"
password: "codex"
removalThreshold: "1 day" # threshold for GC
localRegistration:
enabled: false # set to true if you want to permit simple local registration
externalAuthenticators:
- name: "cas-auth-ext"
jwtSecret: "secretStringSharedWithExternAuth"
jwtAlgorithm: HS256 # optional, HS256 is default
expiration: 60 # seconds passed since iat
extraIds: [] # additional service types whose IDs may be provided as extra IDs in the auth token
emails:
footerUrl: "%webapp.address%"
from: "ReCodEx <noreply@your.recodex.domain>"
defaultAdminTo: "Administrator <admin@example.com>"
#debugMode: true # in debug mode, no messages are sent via SMTP (you should also active archiving)
#archivingDir: "%appDir%/../log/email-debug" # a directory where copies of all emails sent are stored (in text files)
exercises:
# Restrictions
testCountLimit: 100 # maximal number of tests in one exercise
exerciseFileCountLimit: 200 # maximal number of test files
exerciseFileSizeLimit: 268435456 # 256 MiB, max. total size of all test files
# Default values for newly created exercises
solutionFilesLimitDefault: 10 # at most 10 files per solution (default, configurable per assignment)
solutionSizeLimitDefault: 262144 # 256 KiB, max. size for all submitted files (default, configurable per assignment)
removeInactiveUsers:
# How long the user has to be inactive to warrant the removal (null = never remove students, 1 month is minimum).
# Please note that the length of the auth. token expiration should be considered (readonly tokens may expire after 1 year).
threshold: "2 years"
extensions: # 3rd party tools which are linked from UI and can cooperate with ReCodEx
- id: "ext-identifier"
caption: # to be displayed in UI; could be also single string (for all localizations)
cs: "Český popisek"
en: "English Caption"
# in URL, '{*}' are placeholders for auth token, locale (en/cs), and return URL
url: "https://extetrnal.domain.com/recodex/extension?token={token}&locale={locale}&return={return}"
urlTokenExpiration: 60 # [s] how long a temporary url token lasts
token: # generated from tmp tokens passed via URL so the ext. tool can access ReCodEx API
expiration: 86400 # [s] how long a full token lasts
scopes: [ 'master', 'refresh' ] # list of scopes for generated tokens (to be used by the extension)
user: null # user override (ID) for generating tokens (if null, the token will be generated for logged-in user)
instances: [] # array of instances where this extension is enabled (empty array = all)
user: # filters applied to determine, whether logged-in user can access the extension
roles: [] # array of enabled user roles (empty array = all)
externalLogins: [] # list of external_login.auth_service IDs (at least one is required, empty array = nothing is required)
# The most important part - a database system connection
nettrine.dbal:
connection:
host: "localhost"
user: "recodex"
password: "someSecretPasswordYouNeedToSetYourself"
dbname: "recodex"
# configure mailing module
mail:
host: "your.smtp.forwarding.server"
clientHost: "your.recodex.domain"
port: 587
username: "user"
password: "pass"
secure: "tls"
context:
ssl:
verify_peer: false
verify_peer_name: false
allow_self_signed: true