-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy path.env.example
More file actions
275 lines (204 loc) · 13 KB
/
.env.example
File metadata and controls
275 lines (204 loc) · 13 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
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
# rename this file to .env and change the values to match your settings
# ########################################################################## #
# ########################## General Settings ############################## #
# ########################################################################## #
## The following variable defines whether the file finding will be "exclusive",
## meaning that records will only include files for which NexusLIMS has an explicit
## metadata extractor defined (see https://datasophos.github.io/NexusLIMS/stable/),
## or "inclusive", meaning that records will include all files, with basic
## metadata defined for files without a NexusLIMS extractor. The variable should
## be either the string 'exclusive' or 'inclusive'. If no value (or a value other than
## those two) is given, the default 'exclusive' strategy will be used.
NX_FILE_STRATEGY='exclusive'
# NX_FILE_STRATEGY='inclusive'
## The following variable defines patterns that will be ignored when searching
## for files that are part of an Experiment. This value can be tailored to
## exclude files that may not be of interest depending on what instruments
## are producing data. The values should be in a string representing a JSON array,
## meaning it is surrounded by single apostrophe (') characters, and each
## individual pattern is surrounded by quotation mark (") characters, separated
## by commas. The patterns should follow the same syntax as the '-name' argument
## to the GNU find command (see https://manpages.org/find)
NX_IGNORE_PATTERNS='["*.mib","*.db","*.emi","*.hdr"]'
## The following value is used to authenticate to the
## CDCS API for uploading built records to the
## front-end record repository (see https://github.com/datasophos/NexusLIMS-CDCS).
## Obtain this token from the CDCS admin panel or via the API token endpoint.
NX_CDCS_TOKEN='your-api-token-here'
## The following value should be set to the root URL of the NexusLIMS CDCS
## front-end (the one installed using https://github.com/datasophos/NexusLIMS-CDCS).
## This will be the target for record uploads using the NX_CDCS_TOKEN above
## (should include the trailing slash)
NX_CDCS_URL='https://nexuslims.domain.com/'
## Per-user record ownership in CDCS (optional)
## When true, NexusLIMS looks up or creates a CDCS user account matching the
## NEMO session user and assigns record ownership accordingly. Requires the
## NX_CDCS_TOKEN to belong to a superuser account. Default: false.
# NX_CDCS_USER_OWNED_RECORDS='false'
## When true (default), uploaded records are assigned to the global public
## workspace so all users can browse them. Set false only in combination with
## NX_CDCS_USER_OWNED_RECORDS=true to keep records in the user's private space.
# NX_CDCS_ASSIGN_TO_PUBLIC_WORKSPACE='true'
## LabArchives API configuration (optional)
## If configured, records will also be exported to LabArchives in addition to CDCS.
## If not configured, LabArchives export will be disabled.
# NX_LABARCHIVES_ACCESS_KEY_ID='your-access-key-id-here'
# NX_LABARCHIVES_ACCESS_PASSWORD='your-access-password-here'
# NX_LABARCHIVES_USER_ID='your-user-id-uid-here'
# NX_LABARCHIVES_URL='https://api.labarchives.com/api' # default for cloud LabArchives
# NX_LABARCHIVES_NOTEBOOK_ID='' # Optional: target notebook ID (nbid)
## The following value (for development) should be set to the root URL of a
## NexusLIMS CDCS instance to use for testing. If defined, this URL will be
## used for the CDCS tests rather than the "actual" URL defined above. If not
## defined, the CDCS tests will be skipped so the tests do not impact the production
## deployment.
# NX_EXPORT_STRATEGY='all'
## If you need a custom SSL certificate CA bundle to verify requests to the
## "NX_CDCS_URL" or NEMO URLs, provide the path to that bundle here and uncomment
## the variable. Any certificates provided in this bundle will be appended to
## the existing system certificates.
# NX_CERT_BUNDLE_FILE='/path/to/bundle.pem'
## Alternatively, you can provide the entire certificate bundle as a single
# string (this can be useful for CI/CD pipelines). Lines should be separated
# by a single '\n' character If defined, this value will take precedence over
# NX_CERT_BUNDLE_FILE
# NX_CERT_BUNDLE='-----BEGIN CERTIFICATE-----\nMIIFBTCCAu2gAwIBAgIQdRxyg4+
## WARNING: Do NOT enable in production. Disables SSL certificate verification
## for all outgoing HTTPS requests. Only useful during local development with
## self-signed certificates where providing every CA via NX_CERT_BUNDLE_FILE is
## impractical.
# NX_DISABLE_SSL_VERIFY=false
## NX_INSTRUMENT_DATA_PATH should be the path to the centralized file store for instrument
## data (i.e. the root of the paths specified for each instrument in the
## NexusLIMS DB ``filestore_path`` column). The expectation is that this path
## is mounted read-only to ensure data preservation
NX_INSTRUMENT_DATA_PATH='/path/to/instrument/data'
## NX_DATA_PATH should be a writable path that will be a parallel directory
## structure to "NX_INSTRUMENT_DATA_PATH", which is where extracted metadata will be
## and generated preview images will be written. This path must be made
## available to the frontend NexusLIMS CDCS instance for proper record display
## and metadata/preview image download
NX_DATA_PATH='/path/to/nexusLIMS/data'
## NX_DB_PATH should be the writable path to the NexusLIMS SQLite
## database that is used to get information about instruments and sessions that
## are built into records
NX_DB_PATH='/path/to/nexuslims_db.sqlite'
## NX_FILE_DELAY_DAYS controls the maximum delay between observing a
## session ending and when the files are expected to be present. For the number
## of days set below (can be a fraction of a day, if desired), record building
## will not fail if no files are found, and the builder will search again until
## the delay has passed. So if the value is "2", and a session ended Monday at
## 5PM, the record builder will continue to try looking for files until
## Wednesday at 5PM.
NX_FILE_DELAY_DAYS=2
## NX_CLUSTERING_SENSITIVITY (optional) controls the sensitivity of file clustering
## into Acquisition Activities. Higher values (e.g., 2.0) make clustering more
## sensitive to time gaps, resulting in more activities. Lower values (e.g., 0.5)
## make clustering less sensitive, resulting in fewer activities. Set to 0 to
## disable clustering entirely and group all files into a single activity.
## Default is 1.0 (no change to automatic clustering).
NX_CLUSTERING_SENSITIVITY=1.0
## NX_LOG_PATH (optional) sets the directory for application logs. If not specified,
## defaults to NX_DATA_PATH/logs/. Logs are organized by date in subdirectories:
## logs/YYYY/MM/DD/YYYYMMDD-HHMM.log
# NX_LOG_PATH='/var/log/nexuslims'
## NX_RECORDS_PATH (optional) sets the directory for generated XML records. If not
## specified, defaults to NX_DATA_PATH/records/. Successfully uploaded records are
## moved to a 'uploaded' subdirectory within this path.
# NX_RECORDS_PATH='/data/nexuslims/records'
## NX_LOCAL_PROFILES_PATH (optional) sets the directory for site-specific instrument
## profiles. These profiles customize metadata extraction for instruments unique to
## your deployment without modifying the core NexusLIMS codebase. Profile files
## should be Python modules that register InstrumentProfile objects. If not specified,
## only built-in profiles will be loaded.
# NX_LOCAL_PROFILES_PATH='/opt/nexuslims/local_profiles'
# ########################################################################## #
# ############## Email Notification Settings (Optional) #################### #
# ########################################################################## #
# These settings control email notifications for the process_records CLI.
# If not configured, email notifications will be disabled.
# Email notifications are sent when errors are detected in the record builder logs.
# SMTP server hostname (required)
# NX_EMAIL_SMTP_HOST='smtp.gmail.com'
# SMTP server port (optional, default: 587 for STARTTLS)
# NX_EMAIL_SMTP_PORT=587
# SMTP username for authentication (optional, required for authenticated SMTP)
# NX_EMAIL_SMTP_USERNAME='your-email@gmail.com'
# SMTP password for authentication (optional, required for authenticated SMTP)
# NX_EMAIL_SMTP_PASSWORD='your-app-password'
# Use TLS encryption (optional, default: true)
# NX_EMAIL_USE_TLS=true
# Email address to send from (required)
# NX_EMAIL_SENDER='nexuslims@yourdomain.com'
# Address(es) to email when an error is detected (required, comma-separated)
# NX_EMAIL_RECIPIENTS='admin@yourdomain.com,team@yourdomain.com'
# ########################################################################## #
# #################### Settings for NEMO Harvesters ####################### #
# ########################################################################## #
## One or more NEMO Harvesters can be enabled by setting at least one of
## NX_NEMO_ADDRESS_1 and NX_NEMO_TOKEN_1 (and optionally NX_NEMO_STRFTIME_FMT_1,
## NX_NEMO_STRPTIME_FMT_1, and NX_NEMO_TZ_1). To enable multiple harvesters, duplicate
## the same environment variables, but with a different suffix (e.g.
## NX_NEMO_ADDRESS_2, NX_NEMO_TOKEN_2, etc.). For specifics of what each variable does
## and the expected values, see below. To enable the NEMO harvesting, uncomment
## and fill out the values starting with "NX_NEMO..."
## NX_NEMO_ADDRESS_1 should be the full path to the root of the API, with the
## trailing slash included, as shown in the example value below
# NX_NEMO_ADDRESS_1="https://nemo.address.com/api/"
## NX_NEMO_TOKEN_1 authenticates the application to the NEMO server.
## The token can be obtained from the "detailed administration" page of the NEMO
## installation,
# NX_NEMO_TOKEN_1="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
## The following strftime_fmt, strptime_fmt, and tz options are optional, and
## control how dates/times are sent to (strftime) and interpreted from
## (strptime) the API. If "strftime_fmt" or "strptime_fmt" are not provided, the
## standard ISO 8601 format for datetime representation will be used (which
## should work with the default NEMO settings). These options are configurable
## to allow for support of non-default date format settings on a NEMO server.
## The formats should be provided using the standard datetime library syntax for
## encoding date and time information (see
## https://docs.python.org/3/library/datetime.html#strftime-and-strptime-format-codes)
# format to send to filter API responses
# NX_NEMO_STRFTIME_FMT_1="%Y-%m-%dT%H:%M:%S%z"
# format to expect back from API
# NX_NEMO_STRPTIME_FMT_1="%Y-%m-%dT%H:%M:%S%z"
## If the following "tz" option is provided, the datetime strings received from
## the API will be coerced into the given timezone. The timezone should be
## specified using the IANA "tz database" name (see
## https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). This option
## should not be supplied for NEMO servers that return time zone information in
## their API response, since it will override the timezone of the returned data.
## It is mostly useful for servers that return reservation/usage event times
## without any timezone information. Providing it here helps properly map file
## creation times to usage event times
# NX_NEMO_TZ_1="America/Denver"
# ########################################################################## #
# If needed, uncomment and change these to enable additional NEMO harvesters #
# ########################################################################## #
# NX_NEMO_ADDRESS_2="https://nemo.address.com/api/"
# NX_NEMO_TOKEN_2="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
# NX_NEMO_STRFTIME_FMT_2="%Y-%m-%dT%H:%M:%S%z"
# NX_NEMO_STRPTIME_FMT_2="%m-%d-%Y %H:%M:%S"
# NX_NEMO_TZ_2="America/New_York"
# ########################################################################## #
# ################## eLabFTW Export Configuration (Optional) ############### #
# ########################################################################## #
## eLabFTW is an electronic lab notebook that can receive NexusLIMS records
## as experiments. If configured, NexusLIMS will automatically export session
## records to eLabFTW alongside (or instead of) CDCS uploads.
## NX_ELABFTW_API_KEY is the API authentication key. Obtain this from your
## eLabFTW user panel (typically under "API keys" in user settings).
## Format: {id}-{key} (e.g., "1-abc123...")
# NX_ELABFTW_API_KEY='your-elabftw-api-key'
## NX_ELABFTW_URL is the root URL of your eLabFTW instance.
## Should NOT include /api/ or any path - just the domain.
## Examples: 'https://elabftw.example.com' or 'http://localhost:3148'
# NX_ELABFTW_URL='https://elabftw.example.com'
## NX_ELABFTW_EXPERIMENT_CATEGORY (optional) sets the default category ID
## for created experiments. If not specified, eLabFTW uses its default category.
## Find category IDs in the eLabFTW admin panel under Categories.
# NX_ELABFTW_EXPERIMENT_CATEGORY=1
## NX_ELABFTW_EXPERIMENT_STATUS (optional) sets the default status ID
## for created experiments. If not specified, eLabFTW uses its default status.
## Find status IDs in the eLabFTW admin panel under Status.
# NX_ELABFTW_EXPERIMENT_STATUS=1