carta-controller 2.0.4 → 2.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -455,6 +455,11 @@
455
455
  ],
456
456
  "default": "/usr/bin/carta_backend"
457
457
  },
458
+ "preserveEnv": {
459
+ "description": "Use the --preserve-env argument when calling sudo",
460
+ "type": "boolean",
461
+ "default": true
462
+ },
458
463
  "killCommand": {
459
464
  "description": "Path to CARTA kill script",
460
465
  "type": "string",
@@ -40,7 +40,7 @@ function runTests(username) {
40
40
  }
41
41
  yield testDatabase();
42
42
  if (config_1.ServerConfig.logFileTemplate) {
43
- testLog(username);
43
+ yield testLog(username);
44
44
  }
45
45
  testFrontend();
46
46
  const backendProcess = yield testBackendStartup(username);
@@ -49,21 +49,21 @@ function runTests(username) {
49
49
  }
50
50
  exports.runTests = runTests;
51
51
  function testLog(username) {
52
- const logLocation = config_1.ServerConfig.logFileTemplate
53
- .replace("{username}", username)
54
- .replace("{pid}", "9999")
55
- .replace("{datetime}", moment().format("YYYYMMDD.h_mm_ss"));
56
- try {
57
- const logStream = fs.createWriteStream(logLocation, { flags: "a" });
58
- logStream.write("test");
59
- logStream.close();
60
- fs.unlinkSync(logLocation);
61
- console.log(logSymbols.success, `Checked log writing for user ${username}`);
62
- }
63
- catch (err) {
64
- util_1.verboseError(err);
65
- throw new Error(`Could not create log file at ${logLocation} for user ${username}. Please check your config file's logFileTemplate option`);
66
- }
52
+ return __awaiter(this, void 0, void 0, function* () {
53
+ const logLocation = config_1.ServerConfig.logFileTemplate.replace("{username}", username).replace("{pid}", "9999").replace("{datetime}", moment().format("YYYYMMDD.h_mm_ss"));
54
+ try {
55
+ const logStream = fs.createWriteStream(logLocation, { flags: "a" });
56
+ // Transform callbacks into awaits
57
+ yield new Promise(res => logStream.write("test", res));
58
+ yield new Promise(res => logStream.end(res));
59
+ fs.unlinkSync(logLocation);
60
+ console.log(logSymbols.success, `Checked log writing for user ${username}`);
61
+ }
62
+ catch (err) {
63
+ util_1.verboseError(err);
64
+ throw new Error(`Could not create log file at ${logLocation} for user ${username}. Please check your config file's logFileTemplate option`);
65
+ }
66
+ });
67
67
  }
68
68
  function testLdap(authConf, username) {
69
69
  return new Promise((resolve, reject) => {
@@ -180,22 +180,33 @@ function testFrontend() {
180
180
  function testBackendStartup(username) {
181
181
  return __awaiter(this, void 0, void 0, function* () {
182
182
  const port = config_1.ServerConfig.backendPorts.max - 1;
183
- let args = [
184
- "--preserve-env=CARTA_AUTH_TOKEN",
185
- "-u", `${username}`,
183
+ let args = [];
184
+ if (config_1.ServerConfig.preserveEnv) {
185
+ args.push("--preserve-env=CARTA_AUTH_TOKEN");
186
+ }
187
+ args = args.concat([
188
+ "-n",
189
+ "-u",
190
+ `${username}`,
186
191
  config_1.ServerConfig.processCommand,
187
- "--no_http", "true",
188
- "--debug_no_auth", "true",
189
- "--no_log", config_1.ServerConfig.logFileTemplate ? "true" : "false",
190
- "--port", `${port}`,
191
- "--top_level_folder", config_1.ServerConfig.rootFolderTemplate.replace("{username}", username),
192
- config_1.ServerConfig.baseFolderTemplate.replace("{username}", username),
193
- ];
192
+ "--no_http",
193
+ "--debug_no_auth",
194
+ "--port",
195
+ `${port}`,
196
+ "--top_level_folder",
197
+ config_1.ServerConfig.rootFolderTemplate.replace("{username}", username)
198
+ ]);
199
+ if (config_1.ServerConfig.logFileTemplate) {
200
+ args.push("--no_log");
201
+ }
194
202
  if (config_1.ServerConfig.additionalArgs) {
195
203
  args = args.concat(config_1.ServerConfig.additionalArgs);
196
204
  }
205
+ // Finally, add the positional argument for the base folder
206
+ args.push(config_1.ServerConfig.baseFolderTemplate.replace("{username}", username));
197
207
  util_1.verboseLog(`running sudo ${args.join(" ")}`);
198
- const backendProcess = child_process_1.spawn("sudo", args);
208
+ // Use same stdout and stderr stream for the backend process
209
+ const backendProcess = child_process_1.spawn("sudo", args, { stdio: "inherit" });
199
210
  yield util_1.delay(2000);
200
211
  if (backendProcess.signalCode) {
201
212
  throw new Error(`Backend process terminated with code ${backendProcess.signalCode}. Please check your sudoers config, processCommand option and additionalArgs section`);
@@ -176,19 +176,29 @@ function startServer(username) {
176
176
  if (port < 0) {
177
177
  throw { statusCode: 500, message: "No available ports for the backend process" };
178
178
  }
179
- let args = [
180
- "--preserve-env=CARTA_AUTH_TOKEN",
181
- "-u", `${username}`,
179
+ let args = [];
180
+ if (config_1.ServerConfig.preserveEnv) {
181
+ args.push("--preserve-env=CARTA_AUTH_TOKEN");
182
+ }
183
+ args = args.concat([
184
+ "-n",
185
+ "-u",
186
+ `${username}`,
182
187
  config_1.ServerConfig.processCommand,
183
- "--no_http", "true",
184
- "--no_log", config_1.ServerConfig.logFileTemplate ? "true" : "false",
185
- "--port", `${port}`,
186
- "--top_level_folder", config_1.ServerConfig.rootFolderTemplate.replace("{username}", username),
187
- config_1.ServerConfig.baseFolderTemplate.replace("{username}", username),
188
- ];
188
+ "--no_http",
189
+ "--port",
190
+ `${port}`,
191
+ "--top_level_folder",
192
+ config_1.ServerConfig.rootFolderTemplate.replace("{username}", username)
193
+ ]);
194
+ if (config_1.ServerConfig.logFileTemplate) {
195
+ args.push("--no_log");
196
+ }
189
197
  if (config_1.ServerConfig.additionalArgs) {
190
198
  args = args.concat(config_1.ServerConfig.additionalArgs);
191
199
  }
200
+ // Finally, add the positional argument for the base folder
201
+ args.push(config_1.ServerConfig.baseFolderTemplate.replace("{username}", username));
192
202
  const headerToken = uuid_1.v4();
193
203
  const child = child_process_1.spawn("sudo", args, { env: { CARTA_AUTH_TOKEN: headerToken } });
194
204
  setPendingProcess(username, port, headerToken, child);
@@ -232,7 +242,7 @@ function startServer(username) {
232
242
  child.on("exit", code => {
233
243
  console.log(`Process ${child.pid} exited with code ${code} and signal ${child.signalCode}`);
234
244
  deleteProcess(username);
235
- logStream === null || logStream === void 0 ? void 0 : logStream.close();
245
+ logStream === null || logStream === void 0 ? void 0 : logStream.end();
236
246
  });
237
247
  // Check for early exit of backend process
238
248
  yield util_1.delay(config_1.ServerConfig.startDelay);
@@ -248,7 +258,7 @@ function startServer(username) {
248
258
  catch (e) {
249
259
  util_1.verboseError(e);
250
260
  console.log(`Problem starting process for user ${username}`);
251
- logStream === null || logStream === void 0 ? void 0 : logStream.close();
261
+ logStream === null || logStream === void 0 ? void 0 : logStream.end();
252
262
  if (e.statusCode && e.message) {
253
263
  throw e;
254
264
  }
Binary file
Binary file
@@ -1,4 +1,4 @@
1
1
  # Sphinx build info version 1
2
2
  # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
3
- config: b9e9ea0b4abf5f06de7b98cc0b9165b2
3
+ config: cab4ab9f21bbbaa15a42a39a8e17d156
4
4
  tags: 645f666f9bcd5a90fca523b33c5a78b7
@@ -26,7 +26,10 @@ To provide the ``carta`` user with these privileges, you must make modifications
26
26
 
27
27
  .. warning::
28
28
  Please only edit your sudoers configuration with ``visudo`` or equivalent.
29
-
29
+
30
+ .. note::
31
+ Older versions of ``sudo`` do not support the ``--preserve-env=VARIABLE`` argument. If your version of ``sudo`` is too old, set ``"preserveEnv"`` to ``false`` in your controller configuration, and add ``Defaults env_keep += "CARTA_AUTH_TOKEN"`` to your sudoers configuration.
32
+
30
33
  .. _config-authentication:
31
34
 
32
35
  Authentication
@@ -22,9 +22,9 @@ Detailed :ref:`step-by-step instructions<focal_instructions>` are provided for U
22
22
  ubuntu_focal_instructions
23
23
  schema
24
24
 
25
- .. |backend-github| image:: https://img.shields.io/badge/CARTA%20Version-2.0.0--beta.0-brightgreen
25
+ .. |backend-github| image:: https://img.shields.io/badge/CARTA%20Version-3.0.0--beta.1c-brightgreen
26
26
  :alt: View this backend version on GitHub
27
- :target: https://github.com/CARTAvis/carta-backend/releases/tag/v2.0.0-beta.0
27
+ :target: https://github.com/CARTAvis/carta-backend/releases/tag/v3.0.0-beta.1c
28
28
 
29
29
  .. |npm-package| image:: https://img.shields.io/npm/v/carta-controller/dev.svg?style=flat
30
30
  :alt: View this project on npm
@@ -10,7 +10,7 @@ The CARTA controller provides a simple dashboard which authenticates users and a
10
10
  Dependencies
11
11
  ------------
12
12
 
13
- To allow the controller to serve CARTA sessions, you must give it access to an executable CARTA backend, which can be either a compiled executable or a container. If you want to use a non-standard version of the CARTA frontend, you must also build it, and adjust the controller configuration to point to it. You should use the ``v2.0.0-beta.0`` tag of `the CARTA backend <https://github.com/CARTAvis/carta-backend>`_.
13
+ To allow the controller to serve CARTA sessions, you must give it access to an executable CARTA backend, which can be either a compiled executable or a container. If you want to use a non-standard version of the CARTA frontend, you must also build it, and adjust the controller configuration to point to it. You should use the ``v3.0.0-beta.1c`` tag of `the CARTA backend <https://github.com/CARTAvis/carta-backend>`_.
14
14
 
15
15
  By default, the controller runs on port 8000. It should be run behind a proxy, so that it can be accessed via HTTP and HTTPS.
16
16
 
@@ -399,6 +399,11 @@
399
399
  "type": "string",
400
400
  "examples": ["localhost", "127.0.0.1"]
401
401
  },
402
+ "httpOnly": {
403
+ "description": "Allow HTTP-only connections. For testing or internal networks only",
404
+ "type": "boolean",
405
+ "default": false
406
+ },
402
407
  "serverAddress": {
403
408
  "description": "Public-facing server address",
404
409
  "type": "string",
@@ -455,6 +460,11 @@
455
460
  ],
456
461
  "default": "/usr/bin/carta_backend"
457
462
  },
463
+ "preserveEnv": {
464
+ "description": "Use the --preserve-env argument when calling sudo",
465
+ "type": "boolean",
466
+ "default": true
467
+ },
458
468
  "killCommand": {
459
469
  "description": "Path to CARTA kill script",
460
470
  "type": "string",
@@ -0,0 +1,44 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "title": "Snippet",
4
+ "description": "Schema for CARTA Snippet (Version 1)",
5
+ "$id": "carta_snippet_1",
6
+ "required": ["snippetVersion", "frontendVersion", "code"],
7
+ "properties": {
8
+ "snippetVersion": {
9
+ "description": "The version of the snippet contained",
10
+ "type": "integer",
11
+ "minimum": 1,
12
+ "maximum": 1
13
+ },
14
+ "frontendVersion": {
15
+ "description": "The version of the frontend targeted by this snippet",
16
+ "type": "string"
17
+ },
18
+ "code": {
19
+ "description": "Snippet source code",
20
+ "type": "string"
21
+ },
22
+ "tags": {
23
+ "description": "List of tags associated with this snippet",
24
+ "type": "array",
25
+ "items": {
26
+ "type": "string"
27
+ }
28
+ },
29
+ "categories": {
30
+ "description": "List of categories under which to place this snippet",
31
+ "type": "array",
32
+ "items": {
33
+ "type": "string"
34
+ }
35
+ },
36
+ "requires": {
37
+ "description": "List of snippets (by name) which need to be run before running this snippet",
38
+ "type": "array",
39
+ "items": {
40
+ "type": "string"
41
+ }
42
+ }
43
+ }
44
+ }
@@ -1,6 +1,6 @@
1
1
  var DOCUMENTATION_OPTIONS = {
2
2
  URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'),
3
- VERSION: '2.0',
3
+ VERSION: '3.0.0-beta.1d',
4
4
  LANGUAGE: 'None',
5
5
  COLLAPSE_INDEX: false,
6
6
  BUILDER: 'html',
@@ -7,7 +7,7 @@
7
7
 
8
8
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
9
9
 
10
- <title>Configuration &mdash; CARTA Controller 2.0 documentation</title>
10
+ <title>Configuration &mdash; CARTA Controller 3.0.0-beta.1d documentation</title>
11
11
 
12
12
 
13
13
 
@@ -205,6 +205,10 @@
205
205
  <p class="admonition-title">Warning</p>
206
206
  <p>Please only edit your sudoers configuration with <code class="docutils literal notranslate"><span class="pre">visudo</span></code> or equivalent.</p>
207
207
  </div>
208
+ <div class="admonition note">
209
+ <p class="admonition-title">Note</p>
210
+ <p>Older versions of <code class="docutils literal notranslate"><span class="pre">sudo</span></code> do not support the <code class="docutils literal notranslate"><span class="pre">--preserve-env=VARIABLE</span></code> argument. If your version of <code class="docutils literal notranslate"><span class="pre">sudo</span></code> is too old, set <code class="docutils literal notranslate"><span class="pre">&quot;preserveEnv&quot;</span></code> to <code class="docutils literal notranslate"><span class="pre">false</span></code> in your controller configuration, and add <code class="docutils literal notranslate"><span class="pre">Defaults</span> <span class="pre">env_keep</span> <span class="pre">+=</span> <span class="pre">&quot;CARTA_AUTH_TOKEN&quot;</span></code> to your sudoers configuration.</p>
211
+ </div>
208
212
  </div>
209
213
  <div class="section" id="authentication">
210
214
  <span id="config-authentication"></span><h3>Authentication<a class="headerlink" href="#authentication" title="Permalink to this headline">¶</a></h3>
@@ -7,7 +7,7 @@
7
7
 
8
8
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
9
9
 
10
- <title>Index &mdash; CARTA Controller 2.0 documentation</title>
10
+ <title>Index &mdash; CARTA Controller 3.0.0-beta.1d documentation</title>
11
11
 
12
12
 
13
13
 
@@ -7,7 +7,7 @@
7
7
 
8
8
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
9
9
 
10
- <title>CARTA Controller &mdash; CARTA Controller 2.0 documentation</title>
10
+ <title>CARTA Controller &mdash; CARTA Controller 3.0.0-beta.1d documentation</title>
11
11
 
12
12
 
13
13
 
@@ -156,7 +156,7 @@
156
156
 
157
157
  <div class="section" id="carta-controller">
158
158
  <h1>CARTA Controller<a class="headerlink" href="#carta-controller" title="Permalink to this headline">¶</a></h1>
159
- <p><a class="reference external" href="https://github.com/CARTAvis/carta-backend/releases/tag/v2.0.0-beta.0"><img alt="View this backend version on GitHub" src="https://img.shields.io/badge/CARTA%20Version-2.0.0--beta.0-brightgreen" /></a> <a class="reference external" href="https://npmjs.org/package/carta-controller"><img alt="View this project on npm" src="https://img.shields.io/npm/v/carta-controller/dev.svg?style=flat" /></a> <img alt="Last commit" src="https://img.shields.io/github/last-commit/CARTAvis/carta-controller" /> <img alt="Commit activity" src="https://img.shields.io/github/commit-activity/m/CARTAvis/carta-controller" /></p>
159
+ <p><a class="reference external" href="https://github.com/CARTAvis/carta-backend/releases/tag/v3.0.0-beta.1c"><img alt="View this backend version on GitHub" src="https://img.shields.io/badge/CARTA%20Version-3.0.0--beta.1c-brightgreen" /></a> <a class="reference external" href="https://npmjs.org/package/carta-controller"><img alt="View this project on npm" src="https://img.shields.io/npm/v/carta-controller/dev.svg?style=flat" /></a> <img alt="Last commit" src="https://img.shields.io/github/last-commit/CARTAvis/carta-controller" /> <img alt="Commit activity" src="https://img.shields.io/github/commit-activity/m/CARTAvis/carta-controller" /></p>
160
160
  <p>CARTA is the Cube Analysis and Rendering Tool for Astronomy. This document describes the installation and configuration process for the controller component.</p>
161
161
  <p>Detailed <a class="reference internal" href="ubuntu_focal_instructions.html#focal-instructions"><span class="std std-ref">step-by-step instructions</span></a> are provided for Ubuntu 20.04 (Focal Fossa).</p>
162
162
  <div class="toctree-wrapper compound">
@@ -7,7 +7,7 @@
7
7
 
8
8
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
9
9
 
10
- <title>Installation &mdash; CARTA Controller 2.0 documentation</title>
10
+ <title>Installation &mdash; CARTA Controller 3.0.0-beta.1d documentation</title>
11
11
 
12
12
 
13
13
 
@@ -7,7 +7,7 @@
7
7
 
8
8
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
9
9
 
10
- <title>Introduction &mdash; CARTA Controller 2.0 documentation</title>
10
+ <title>Introduction &mdash; CARTA Controller 3.0.0-beta.1d documentation</title>
11
11
 
12
12
 
13
13
 
@@ -166,7 +166,7 @@
166
166
  <p>The CARTA controller provides a simple dashboard which authenticates users and allows them to manage their CARTA backend processes. It also serves static frontend code to clients, and dynamically redirects authenticated client connections to the appropriate backend processes. The controller can either handle authentication itself, or delegate it to an external OAuth2-based authentication server.</p>
167
167
  <div class="section" id="dependencies">
168
168
  <span id="id2"></span><h2>Dependencies<a class="headerlink" href="#dependencies" title="Permalink to this headline">¶</a></h2>
169
- <p>To allow the controller to serve CARTA sessions, you must give it access to an executable CARTA backend, which can be either a compiled executable or a container. If you want to use a non-standard version of the CARTA frontend, you must also build it, and adjust the controller configuration to point to it. You should use the <code class="docutils literal notranslate"><span class="pre">v2.0.0-beta.0</span></code> tag of <a class="reference external" href="https://github.com/CARTAvis/carta-backend">the CARTA backend</a>.</p>
169
+ <p>To allow the controller to serve CARTA sessions, you must give it access to an executable CARTA backend, which can be either a compiled executable or a container. If you want to use a non-standard version of the CARTA frontend, you must also build it, and adjust the controller configuration to point to it. You should use the <code class="docutils literal notranslate"><span class="pre">v3.0.0-beta.1c</span></code> tag of <a class="reference external" href="https://github.com/CARTAvis/carta-backend">the CARTA backend</a>.</p>
170
170
  <p>By default, the controller runs on port 8000. It should be run behind a proxy, so that it can be accessed via HTTP and HTTPS.</p>
171
171
  <p>MongoDB is required for storing user preferences, layouts and (in the near future) controller metrics.</p>
172
172
  <p>You also need a working <a class="reference external" href="https://nodejs.org/en/about/releases/">NodeJS LTS</a> installation with NPM. Use <code class="docutils literal notranslate"><span class="pre">npm</span> <span class="pre">install</span></code> to install all Node dependencies.</p>
@@ -7,7 +7,7 @@
7
7
 
8
8
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
9
9
 
10
- <title>CARTA configuration schema &mdash; CARTA Controller 2.0 documentation</title>
10
+ <title>CARTA configuration schema &mdash; CARTA Controller 3.0.0-beta.1d documentation</title>
11
11
 
12
12
 
13
13
 
@@ -340,124 +340,148 @@
340
340
  </tr>
341
341
  <tr class="row-even"><td colspan="3"><p>127.0.0.1</p></td>
342
342
  </tr>
343
- <tr class="row-odd"><td rowspan="4"><ul class="simple">
343
+ <tr class="row-odd"><td rowspan="3"><ul class="simple">
344
+ <li><p>httpOnly</p></li>
345
+ </ul>
346
+ </td>
347
+ <td colspan="4"><p>Allow HTTP-only connections. For testing or internal networks only</p></td>
348
+ </tr>
349
+ <tr class="row-even"><td><p>type</p></td>
350
+ <td colspan="3"><p><em>boolean</em></p></td>
351
+ </tr>
352
+ <tr class="row-odd"><td><p>default</p></td>
353
+ <td colspan="3"><p>False</p></td>
354
+ </tr>
355
+ <tr class="row-even"><td rowspan="4"><ul class="simple">
344
356
  <li><p>serverAddress</p></li>
345
357
  </ul>
346
358
  </td>
347
359
  <td colspan="4"><p>Public-facing server address</p></td>
348
360
  </tr>
349
- <tr class="row-even"><td><p>type</p></td>
361
+ <tr class="row-odd"><td><p>type</p></td>
350
362
  <td colspan="3"><p><em>string</em></p></td>
351
363
  </tr>
352
- <tr class="row-odd"><td><p>pattern</p></td>
364
+ <tr class="row-even"><td><p>pattern</p></td>
353
365
  <td colspan="3"><p>^https?://</p></td>
354
366
  </tr>
355
- <tr class="row-even"><td><p>format</p></td>
367
+ <tr class="row-odd"><td><p>format</p></td>
356
368
  <td colspan="3"><p>uri</p></td>
357
369
  </tr>
358
- <tr class="row-odd"><td rowspan="4"><ul class="simple">
370
+ <tr class="row-even"><td rowspan="4"><ul class="simple">
359
371
  <li><p>dashboardAddress</p></li>
360
372
  </ul>
361
373
  </td>
362
374
  <td colspan="4"><p>Optional parameter for explicitly configuring a custom dashboard address</p></td>
363
375
  </tr>
364
- <tr class="row-even"><td><p>type</p></td>
376
+ <tr class="row-odd"><td><p>type</p></td>
365
377
  <td colspan="3"><p><em>string</em></p></td>
366
378
  </tr>
367
- <tr class="row-odd"><td><p>pattern</p></td>
379
+ <tr class="row-even"><td><p>pattern</p></td>
368
380
  <td colspan="3"><p>^https?://</p></td>
369
381
  </tr>
370
- <tr class="row-even"><td><p>format</p></td>
382
+ <tr class="row-odd"><td><p>format</p></td>
371
383
  <td colspan="3"><p>uri</p></td>
372
384
  </tr>
373
- <tr class="row-odd"><td rowspan="4"><ul class="simple">
385
+ <tr class="row-even"><td rowspan="4"><ul class="simple">
374
386
  <li><p>apiAddress</p></li>
375
387
  </ul>
376
388
  </td>
377
389
  <td colspan="4"><p>Optional parameter for explicitly configuring a custom API base address</p></td>
378
390
  </tr>
379
- <tr class="row-even"><td><p>type</p></td>
391
+ <tr class="row-odd"><td><p>type</p></td>
380
392
  <td colspan="3"><p><em>string</em></p></td>
381
393
  </tr>
382
- <tr class="row-odd"><td><p>pattern</p></td>
394
+ <tr class="row-even"><td><p>pattern</p></td>
383
395
  <td colspan="3"><p>^https?://</p></td>
384
396
  </tr>
385
- <tr class="row-even"><td><p>format</p></td>
397
+ <tr class="row-odd"><td><p>format</p></td>
386
398
  <td colspan="3"><p>uri</p></td>
387
399
  </tr>
388
- <tr class="row-odd"><td rowspan="2"><ul class="simple">
400
+ <tr class="row-even"><td rowspan="2"><ul class="simple">
389
401
  <li><p>frontendPath</p></li>
390
402
  </ul>
391
403
  </td>
392
404
  <td colspan="4"><p>Path to the built frontend folder. If no path is provided, the packaged version will be used</p></td>
393
405
  </tr>
394
- <tr class="row-even"><td><p>type</p></td>
406
+ <tr class="row-odd"><td><p>type</p></td>
395
407
  <td colspan="3"><p><em>string</em></p></td>
396
408
  </tr>
397
- <tr class="row-odd"><td rowspan="12"><ul class="simple">
409
+ <tr class="row-even"><td rowspan="12"><ul class="simple">
398
410
  <li><p>backendPorts</p></li>
399
411
  </ul>
400
412
  </td>
401
413
  <td colspan="4"><p>Port range to use for the CARTA backend process</p></td>
402
414
  </tr>
403
- <tr class="row-even"><td><p>type</p></td>
415
+ <tr class="row-odd"><td><p>type</p></td>
404
416
  <td colspan="3"><p><em>object</em></p></td>
405
417
  </tr>
406
- <tr class="row-odd"><td rowspan="2"><p>default</p></td>
418
+ <tr class="row-even"><td rowspan="2"><p>default</p></td>
407
419
  <td><p>min</p></td>
408
420
  <td colspan="2"><p>3003</p></td>
409
421
  </tr>
410
- <tr class="row-even"><td><p>max</p></td>
422
+ <tr class="row-odd"><td><p>max</p></td>
411
423
  <td colspan="2"><p>3500</p></td>
412
424
  </tr>
413
- <tr class="row-odd"><td colspan="4"><p>properties</p></td>
425
+ <tr class="row-even"><td colspan="4"><p>properties</p></td>
414
426
  </tr>
415
- <tr class="row-even"><td rowspan="3"><ul class="simple">
427
+ <tr class="row-odd"><td rowspan="3"><ul class="simple">
416
428
  <li><p><strong>min</strong></p></li>
417
429
  </ul>
418
430
  </td>
419
431
  <td><p>type</p></td>
420
432
  <td colspan="2"><p><em>integer</em></p></td>
421
433
  </tr>
422
- <tr class="row-odd"><td><p>maximum</p></td>
434
+ <tr class="row-even"><td><p>maximum</p></td>
423
435
  <td colspan="2"><p>65535</p></td>
424
436
  </tr>
425
- <tr class="row-even"><td><p>minimum</p></td>
437
+ <tr class="row-odd"><td><p>minimum</p></td>
426
438
  <td colspan="2"><p>1024</p></td>
427
439
  </tr>
428
- <tr class="row-odd"><td rowspan="3"><ul class="simple">
440
+ <tr class="row-even"><td rowspan="3"><ul class="simple">
429
441
  <li><p><strong>max</strong></p></li>
430
442
  </ul>
431
443
  </td>
432
444
  <td><p>type</p></td>
433
445
  <td colspan="2"><p><em>integer</em></p></td>
434
446
  </tr>
435
- <tr class="row-even"><td><p>maximum</p></td>
447
+ <tr class="row-odd"><td><p>maximum</p></td>
436
448
  <td colspan="2"><p>65535</p></td>
437
449
  </tr>
438
- <tr class="row-odd"><td><p>minimum</p></td>
450
+ <tr class="row-even"><td><p>minimum</p></td>
439
451
  <td colspan="2"><p>1024</p></td>
440
452
  </tr>
441
- <tr class="row-even"><td><p>additionalProperties</p></td>
453
+ <tr class="row-odd"><td><p>additionalProperties</p></td>
442
454
  <td colspan="3"><p>False</p></td>
443
455
  </tr>
444
- <tr class="row-odd"><td rowspan="5"><ul class="simple">
456
+ <tr class="row-even"><td rowspan="5"><ul class="simple">
445
457
  <li><p>processCommand</p></li>
446
458
  </ul>
447
459
  </td>
448
460
  <td colspan="4"><p>Path to CARTA backend executable</p></td>
449
461
  </tr>
450
- <tr class="row-even"><td><p>type</p></td>
462
+ <tr class="row-odd"><td><p>type</p></td>
451
463
  <td colspan="3"><p><em>string</em></p></td>
452
464
  </tr>
453
- <tr class="row-odd"><td rowspan="2"><p>examples</p></td>
465
+ <tr class="row-even"><td rowspan="2"><p>examples</p></td>
454
466
  <td colspan="3"><p>/usr/bin/carta_backend</p></td>
455
467
  </tr>
456
- <tr class="row-even"><td colspan="3"><p>/usr/local/bin/carta_backend</p></td>
468
+ <tr class="row-odd"><td colspan="3"><p>/usr/local/bin/carta_backend</p></td>
457
469
  </tr>
458
- <tr class="row-odd"><td><p>default</p></td>
470
+ <tr class="row-even"><td><p>default</p></td>
459
471
  <td colspan="3"><p>/usr/bin/carta_backend</p></td>
460
472
  </tr>
473
+ <tr class="row-odd"><td rowspan="3"><ul class="simple">
474
+ <li><p>preserveEnv</p></li>
475
+ </ul>
476
+ </td>
477
+ <td colspan="4"><p>Use the –preserve-env argument when calling sudo</p></td>
478
+ </tr>
479
+ <tr class="row-even"><td><p>type</p></td>
480
+ <td colspan="3"><p><em>boolean</em></p></td>
481
+ </tr>
482
+ <tr class="row-odd"><td><p>default</p></td>
483
+ <td colspan="3"><p>True</p></td>
484
+ </tr>
461
485
  <tr class="row-even"><td rowspan="4"><ul class="simple">
462
486
  <li><p>killCommand</p></li>
463
487
  </ul>
@@ -7,7 +7,7 @@
7
7
 
8
8
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
9
9
 
10
- <title>Search &mdash; CARTA Controller 2.0 documentation</title>
10
+ <title>Search &mdash; CARTA Controller 3.0.0-beta.1d documentation</title>
11
11
 
12
12
 
13
13
 
@@ -1 +1 @@
1
- Search.setIndex({docnames:["configuration","index","installation","introduction","schema","ubuntu_focal_instructions"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":3,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":2,"sphinx.domains.rst":2,"sphinx.domains.std":1,sphinx:56},filenames:["configuration.rst","index.rst","installation.rst","introduction.rst","schema.rst","ubuntu_focal_instructions.rst"],objects:{},objnames:{},objtypes:{},terms:{"15h":4,"15m":4,"606f7e":4,"90s":4,"boolean":4,"default":[0,3,4],"enum":4,"final":5,"long":3,"new":3,"null":4,"public":[0,4,5],"return":[0,3],"short":3,"static":3,"switch":5,"true":4,"var":[0,4,5],For:0,LTS:[3,5],TLS:4,The:[0,2,3,4,5],These:5,Use:3,abl:0,abov:3,accept:4,access:[0,3,4,5],accesstokenag:4,account:0,activ:4,adapt:5,add:[0,5],added:[],adding:2,addit:[0,4,5],additionalarg:[0,4],additionalproperti:4,addon:5,address:4,addus:5,adher:0,adjust:[0,3],admin:4,advis:4,after:[2,3,4,5],algorithm:4,all:[0,2,3,4,5],allow:[0,3,5],almost:5,also:[0,2,3],alter:0,amount:3,analysi:1,ani:[0,4],apach:0,api:[3,4],apiaddress:4,app:4,appear:[0,4,5],applic:[3,4],appropri:3,apt:[2,5],argument:[0,4],arrai:4,assist:3,assum:[0,3,5],astronomi:1,attempt:0,auth:[3,4],authent:[1,4,5],author:3,authprovid:[0,1],automat:[0,2,4,5],backend:[1,3,4],backendport:4,background:[0,4],backgroundcolor:[0,4],badger:5,banner:[0,4],bannercolor:[0,4],bannerimag:[0,4],base:[3,4],basefoldertempl:[0,4],bash:[0,5],bashrc:[],beaver:2,becaus:0,been:3,befor:4,behind:[3,4],belong:[0,5],below:5,beta:[2,3,5],better:3,bin:[0,4,5],binari:2,bind:4,bindcredenti:4,binddn:4,bindproperti:4,bionic:[2,5],both:[0,2],bound:4,branch:[],build:[2,3,5],built:[0,4],cach:4,call:5,can:[0,2,3,5],carta:[2,3],carta_backend:[0,4,5],carta_config:4,carta_control:[0,5],carta_kill_script:[],carta_priv:[0,4,5],carta_publ:[0,4,5],cartavi:5,casacor:2,cert:0,chang:0,check:4,child:0,child_pid:0,chown:5,click:4,client:[3,4],clientid:4,clone:2,code:3,color:4,com:[0,4,5],comm:0,command:[0,5],command_of_pid:0,command_to_match:0,comment:[0,4],commun:0,compat:[2,4],compil:[3,5],compon:1,config:[0,5],config_schema:0,configur:[1,2,3],confluenc:[],connect:[0,3,4],consol:3,contact:[0,3,4],contain:3,content:1,control:[3,4],cooki:3,copi:[],core:2,correct:0,correctli:[],correspond:2,creat:[2,3],credenti:[0,4],cube:1,curl:5,current:5,custom:[2,4],customis:[0,5],d2dce5:0,dashboard:[0,3,4,5],dashboardaddress:4,dat:4,data:[0,2,4],databas:[0,4],databasenam:[0,4],datatim:4,datetim:4,deb:5,debian:2,defin:4,deleg:3,deni:0,depend:[1,2],deploy:[3,4],describ:[1,3],detail:[1,2,4,5],dev:[2,5],develop:[2,5],differ:[2,5],direct:0,directli:3,directori:4,disabl:[],displai:4,document:[1,3,4,5],doe:0,domain:[0,4],dure:3,dynam:3,echo:0,edit:[0,2,5],either:3,els:0,email:[0,4],emit:4,empti:4,encount:3,ensur:[0,5],enter:[0,4],environ:0,equival:0,error:3,es256:4,es384:4,es512:4,especi:0,essenti:5,etc:[0,4,5],event:4,exampl:[0,4,5],exchang:3,execut:[0,3,4,5],exist:0,exit:0,exit_aft:[],exit_timeout:4,explicitli:4,extern:[0,1,3],f6f8fa:[0,4],face:4,fair:3,fals:4,featur:3,feedback:3,ff11ee:4,field:[0,4],file:[0,2,4,5],filter:4,fit:0,flag:[0,5],flexibl:3,flow:3,focal:[1,2],folder:4,footer:4,footertext:[0,4],forc:4,forev:2,format:[0,3,4],forward:[0,5],fossa:[1,2],four:3,from:[0,2,5],frontend:[1,3,4,5],frontendpath:4,fssl:5,futur:1,geco:[],gener:[0,5],genrsa:[0,5],get:[0,1,2,5],github:2,githubusercont:[],give:3,given:[0,4],gmail:4,googl:[1,3],googleusercont:4,group:[0,5],h_mm_ss:4,handl:[0,3],has:[0,3],have:[0,2,4,5],hello:[],help:1,helpdesk:[3,4],here:5,home:[0,4,5],host:[0,2,3,4],href:[0,4],hs256:4,hs384:4,hs512:4,html:4,http:[0,3,4,5],http_upgrad:0,httponli:3,identifi:[4,5],idia:[],idl:4,idletimeout:4,imag:0,implement:3,includ:5,incom:0,inform:[0,4],infotext:[0,4],init_exit_aft:[],initial_timeout:4,instal:[1,3],instanc:4,institut:[0,4],instruct:[0,1,2],integ:4,interfac:[3,4],intern:0,introduct:1,issu:3,issuer:[0,4],item:4,itself:3,javascript:0,json:[0,5],jsonc:0,just:2,jwt:[3,4],keep:2,kei:[0,3,4,5],kern:2,keyalgorithm:1,kill:[0,4,5],killcommand:[0,4],last:4,latest:[2,5],layout:3,ldap:[0,1,3],ldapopt:4,least:[],level:[0,4],lib:5,librari:3,lifetim:4,like:[2,4],line:0,list:4,listen:[0,4],live:3,local:[0,1,5],localhost:[0,4],locat:[0,4],log:[0,4,5],logfiletempl:[0,4],login:0,logintext:[0,4],logo:4,logoutaddress:4,lookup:[0,4],lts:[],mai:[0,2],mailto:[0,4],make:[0,4,5],manag:[2,3],map:0,match:0,max:4,maximum:4,method:[0,4],metric:3,millisecond:4,min:4,minimum:4,minitem:4,minlength:4,minut:4,mkdir:5,mode:3,modif:0,modul:0,mongodb:[0,3,4,5],more:[2,3,4],most:[],multipl:0,must:[0,3,4],my_auth_server_public_kei:4,myapp:4,name:[0,4],nativ:5,need:[0,3,4],no_http:0,no_log:0,node:[3,5],node_modul:[],nodej:[3,5],nodesourc:5,non:3,nopasswd:0,note:5,notic:0,npm:[2,3,5],number:[3,4],nvm:[],nvm_bin:[],oauth2:[3,4],object:4,occur:5,omit:4,omp_thread:4,one:4,onli:[0,4,5],openssl:[0,5],option:[0,2,4,5],order:0,org:4,other:[0,4],our:2,out:[0,4,5],outform:[0,5],over:0,overrid:0,own:5,packag:[2,4],pair:0,pam:[0,3,4,5],paramet:4,pars:4,part:5,pass:[3,4,5],password:[0,3,4],passwordless:5,path:[0,4],pattern:4,pem:[0,4,5],perm:5,permit:0,pgrep:0,pid:[0,4],place:3,placehold:4,plain:4,pleas:[0,2,3,4,5],pm2:2,png:4,point:[0,3],port:[0,3,4,5],posit:0,possibl:[0,2],ppa:[2,5],prefer:3,privat:[0,3,4,5],privatekeyloc:[0,4],privileg:0,problem:[0,3,4],process:[0,1,3,4,5],processcommand:[0,4],profil:[],properti:4,provid:[0,1,2,3,4,5],proxi:[0,3,4],proxy_cache_bypass:0,proxy_http_vers:0,proxy_pass:0,proxy_set_head:0,ps256:4,ps384:4,ps512:4,publickeyloc:[0,4],pubout:[0,5],rang:4,raw:[],read:0,reason:[],reboot:[2,5],recommend:2,reconnect:4,red:4,redirect:[0,3],refer:[2,4,5],refresh:[0,3,4],refreshtokenag:4,releas:2,relev:5,reload:0,remot:0,remote_addr:0,render:1,replac:4,repo:[3,5],repositori:[2,5],request:0,request_uri:0,requir:[0,2,3],respect:[0,4],respons:4,restrict:0,rgb:4,root:[],rootfoldertempl:[0,4],rout:4,rs256:4,rs384:4,rs512:4,rsa:[0,5],run:[0,1,3,4],safe:0,same:0,sampl:5,save:5,schema:[0,1],scope:4,script:[0,2,4],search:4,searchbas:4,searchfilt:4,searchscop:4,section:5,secur:[],see:4,send:4,serv:[0,3],server:[0,3,4,5],server_nam:0,serveraddress:[0,4],serverinterfac:[0,4],serverport:[0,4],servic:5,session:3,set:0,setenv:0,setup_lt:5,shadow:[0,5],shell:5,should:[2,3,4,5],sign:[0,3,4],simpl:3,some:3,sourc:2,span:[0,4],specif:0,specifi:[0,4],ssl:[0,4],ssl_certif:0,ssl_certificate_kei:0,standard:[0,3],start:[0,2,4,5],startdelai:4,starttl:4,startup:2,step:1,still:[3,4],stop:0,store:3,strict:4,strictdn:4,string:4,strongli:0,stub:4,style:0,sub:4,subfold:4,submit:3,sudo:[0,5],sudoer:[0,5],suggest:[0,4],support:[1,5],suppress:0,svg:[0,4],system:[1,2,3,4,5],tabl:[0,4],tag:3,team:5,test:[0,3,4],text:4,than:4,thei:[0,5],them:[3,5],thi:[0,1,3,4,5],thread:[],three:[],through:4,time:4,token:[0,3,4],tokenrefreshaddress:4,tool:[1,5],top:[0,4],top_level_fold:0,traffic:0,translat:0,trust:0,txt:4,type:4,ubuntu:[1,2],uid:4,unauthor:0,unchang:5,undefin:4,under:0,uniqu:[0,4],uniquefield:4,unix:[0,5],unnecessari:[],unsaf:5,updat:[0,5],upgrad:0,uri:[0,4],url:4,use:[0,2,3,4],used:[0,3,4,5],useemailasid:4,user1:0,user1_alt:0,user2:0,user:[0,3,4,5],user_id:4,userlookup:4,userlookupt:4,usermod:5,usernam:[0,3,4],usert:4,using:[0,2,4,5],usr:[0,4,5],util:2,v12:5,v14:5,v16:5,valid:[0,3,4],validdomain:4,verifi:4,version:[2,3,4,5],via:[0,3,4],visudo:[0,5],wai:0,wait:4,want:3,watch:0,web:3,websocket:0,welcom:[0,4],well:3,what:0,when:[0,2,4],whenev:0,where:5,whether:4,which:[0,2,3],who:5,wish:2,without:[0,2],work:1,world:[],would:[2,4],write:0,you:[0,2,3,4,5],your:[0,2,4,5],yyyymmdd:4},titles:["Configuration","CARTA Controller","Installation","Introduction","CARTA configuration schema","Step-by-step instructions for Ubuntu 20.04.2 (Focal Fossa)"],titleterms:{authent:[0,3],authprovid:4,backend:[0,2,5],carta:[0,1,4,5],configur:[0,4,5],control:[0,1,2,5],creat:5,depend:[3,5],directori:[0,5],extern:4,focal:5,fossa:5,frontend:2,futur:3,gener:[],get:3,googl:4,help:3,instal:[2,5],instruct:5,introduct:3,kei:[],keyalgorithm:4,ldap:4,local:4,nginx:[0,5],other:5,packag:5,permiss:[0,5],pm2:5,requir:5,run:[2,5],schema:4,script:5,set:5,startup:5,step:5,support:3,system:0,ubuntu:5,work:3}})
1
+ Search.setIndex({docnames:["configuration","index","installation","introduction","schema","ubuntu_focal_instructions"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":3,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":2,"sphinx.domains.rst":2,"sphinx.domains.std":1,sphinx:56},filenames:["configuration.rst","index.rst","installation.rst","introduction.rst","schema.rst","ubuntu_focal_instructions.rst"],objects:{},objnames:{},objtypes:{},terms:{"15h":4,"15m":4,"606f7e":4,"90s":4,"boolean":4,"default":[0,3,4],"enum":4,"final":5,"long":3,"new":3,"null":4,"public":[0,4,5],"return":[0,3],"short":3,"static":3,"switch":5,"true":4,"var":[0,4,5],For:[0,4],LTS:[3,5],TLS:4,The:[0,2,3,4,5],These:5,Use:[3,4],_config_control:[],_config_controller_:[],abl:0,abov:3,accept:4,access:[0,3,4,5],accesstokenag:4,account:0,across:[],activ:4,adapt:5,add:[0,5],added:[],adding:2,addit:[0,4,5],additionalarg:[0,4],additionalproperti:4,addon:5,address:4,addus:5,adher:0,adjust:[0,3],admin:4,advis:4,after:[2,3,4,5],algorithm:4,all:[0,2,3,4,5],allow:[0,3,4,5],almost:5,also:[0,2,3],alter:0,amount:3,analysi:1,ani:[0,4],apach:0,api:[3,4],apiaddress:4,app:4,appear:[0,4,5],applic:[3,4],appropri:3,apt:[2,5],argument:[0,4],arrai:4,assist:3,assum:[0,3,5],astronomi:1,attempt:0,auth:[3,4],authent:[1,4,5],author:3,authprovid:[0,1],automat:[0,2,4,5],backend:[1,3,4],backendport:4,background:[0,4],backgroundcolor:[0,4],badger:5,banner:[0,4],bannercolor:[0,4],bannerimag:[0,4],base:[3,4],basefoldertempl:[0,4],bash:[0,5],bashrc:[],beaver:2,becaus:0,been:3,befor:4,behind:[3,4],belong:[0,5],below:5,beta:[2,3,5],better:3,bin:[0,4,5],binari:2,bind:4,bindcredenti:4,binddn:4,bindproperti:4,bionic:[2,5],both:[0,2],bound:4,branch:[],build:[2,3,5],built:[0,4],cach:4,call:[4,5],can:[0,2,3,5],carta:[2,3],carta_auth_token:0,carta_backend:[0,4,5],carta_config:4,carta_control:[0,5],carta_kill_script:[],carta_priv:[0,4,5],carta_publ:[0,4,5],cartavi:5,casacor:2,cert:0,chang:0,check:4,child:0,child_pid:0,chown:5,click:4,client:[3,4],clientid:4,clone:2,code:3,color:4,com:[0,4,5],comm:0,command:[0,5],command_of_pid:0,command_to_match:0,comment:[0,4],commun:0,compat:[2,4],compil:[3,5],compon:1,config:[0,5],config_controller_:[],config_schema:0,configur:[1,2,3],confluenc:[],connect:[0,3,4],consol:3,contact:[0,3,4],contain:3,content:1,control:[3,4],cooki:3,copi:[],core:2,correct:0,correctli:[],correspond:2,creat:[2,3],credenti:[0,4],cube:1,curl:5,current:5,custom:[2,4],customis:[0,5],d2dce5:0,dashboard:[0,3,4,5],dashboardaddress:4,dat:4,data:[0,2,4],databas:[0,4],databasenam:[0,4],datatim:4,datetim:4,deb:5,debian:2,defin:4,deleg:3,deni:0,depend:[1,2],deploy:[3,4],describ:[1,3],detail:[1,2,4,5],dev:[2,5],develop:[2,5],differ:[2,5],direct:0,directli:3,directori:4,disabl:[],displai:4,document:[1,3,4,5],doe:0,domain:[0,4],dure:3,dynam:3,echo:0,edit:[0,2,5],either:3,els:0,email:[0,4],emit:4,empti:4,encount:3,ensur:[0,5],enter:[0,4],env:[0,4],env_keep:0,environ:0,environment:[],equival:0,error:3,es256:4,es384:4,es512:4,especi:0,essenti:5,etc:[0,4,5],event:4,exampl:[0,4,5],exchang:3,execut:[0,3,4,5],exist:0,exit:0,exit_aft:[],exit_timeout:4,explicitli:4,extern:[0,1,3],f6f8fa:[0,4],face:4,fair:3,fals:[0,4],featur:3,feedback:3,ff11ee:4,field:[0,4],file:[0,2,4,5],filter:4,fit:0,flag:[0,5],flexibl:3,flow:3,focal:[1,2],folder:4,footer:4,footertext:[0,4],forc:4,forev:2,format:[0,3,4],forward:[0,5],fossa:[1,2],four:3,from:[0,2,5],frontend:[1,3,4,5],frontendpath:4,fssl:5,futur:1,geco:[],gener:[0,5],genrsa:[0,5],get:[0,1,2,5],github:2,githubusercont:[],give:3,given:[0,4],gmail:4,googl:[1,3],googleusercont:4,group:[0,5],h_mm_ss:4,handl:[0,3],has:[0,3],have:[0,2,4,5],hello:[],help:1,helpdesk:[3,4],here:5,home:[0,4,5],host:[0,2,3,4],href:[0,4],hs256:4,hs384:4,hs512:4,html:4,http:[0,3,4,5],http_upgrad:0,httponli:[3,4],identifi:[4,5],idia:[],idl:4,idletimeout:4,imag:0,implement:3,includ:5,incom:0,inform:[0,4],infotext:[0,4],init_exit_aft:[],initial_timeout:4,instal:[1,3],instanc:4,institut:[0,4],instruct:[0,1,2],integ:4,interfac:[3,4],intern:[0,4],introduct:1,issu:3,issuer:[0,4],item:4,itself:3,javascript:0,json:[0,5],jsonc:0,just:2,jwt:[3,4],keep:2,kei:[0,3,4,5],kern:2,keyalgorithm:1,kill:[0,4,5],killcommand:[0,4],last:4,latest:[2,5],layout:3,ldap:[0,1,3],ldapopt:4,least:[],level:[0,4],lib:5,librari:3,lifetim:4,like:[2,4],line:0,list:4,listen:[0,4],live:3,local:[0,1,5],localhost:[0,4],locat:[0,4],log:[0,4,5],logfiletempl:[0,4],login:0,logintext:[0,4],logo:4,logoutaddress:4,lookup:[0,4],lts:[],mai:[0,2],mailto:[0,4],make:[0,4,5],manag:[2,3],map:0,match:0,max:4,maximum:4,method:[0,4],metric:3,millisecond:4,min:4,minimum:4,minitem:4,minlength:4,minut:4,mkdir:5,mode:3,modif:0,modul:0,mongodb:[0,3,4,5],more:[2,3,4],most:[],multipl:0,must:[0,3,4],my_auth_server_public_kei:4,myapp:4,name:[0,4],nativ:5,need:[0,3,4],network:4,no_http:0,no_log:0,node:[3,5],node_modul:[],nodej:[3,5],nodesourc:5,non:3,nopasswd:0,note:5,notic:0,npm:[2,3,5],number:[3,4],nvm:[],nvm_bin:[],oauth2:[3,4],object:4,occur:5,old:0,older:0,omit:4,omp_thread:4,one:4,onli:[0,4,5],openssl:[0,5],option:[0,2,4,5],order:0,org:4,other:[0,4],our:2,out:[0,4,5],outform:[0,5],over:0,overrid:0,own:5,packag:[2,4],pair:0,pam:[0,3,4,5],paramet:4,pars:4,part:5,pass:[3,4,5],password:[0,3,4],passwordless:5,path:[0,4],pattern:4,pem:[0,4,5],perm:5,permit:0,persist:[],pgrep:0,pid:[0,4],place:3,placehold:4,plain:4,pleas:[0,2,3,4,5],pm2:2,png:4,point:[0,3],port:[0,3,4,5],posit:0,possibl:[0,2],ppa:[2,5],prefer:3,preserv:[0,4],preserveenv:[0,4],privat:[0,3,4,5],privatekeyloc:[0,4],privileg:0,problem:[0,3,4],process:[0,1,3,4,5],processcommand:[0,4],profil:[],properti:4,provid:[0,1,2,3,4,5],proxi:[0,3,4],proxy_cache_bypass:0,proxy_http_vers:0,proxy_pass:0,proxy_set_head:0,ps256:4,ps384:4,ps512:4,publickeyloc:[0,4],pubout:[0,5],rang:4,raw:[],read:0,reason:[],reboot:[2,5],recommend:2,reconnect:4,red:4,redirect:[0,3],ref:[],refer:[2,4,5],refresh:[0,3,4],refreshtokenag:4,releas:2,relev:5,reload:0,remot:0,remote_addr:0,render:1,replac:4,repo:[3,5],repositori:[2,5],request:0,request_uri:0,requir:[0,2,3],respect:[0,4],respons:4,restrict:0,rgb:4,root:[],rootfoldertempl:[0,4],rout:4,rs256:4,rs384:4,rs512:4,rsa:[0,5],run:[0,1,3,4],safe:0,same:0,sampl:5,save:5,schema:[0,1],scope:4,script:[0,2,4],search:4,searchbas:4,searchfilt:4,searchscop:4,section:5,secur:[],see:4,send:4,serv:[0,3],server:[0,3,4,5],server_nam:0,serveraddress:[0,4],serverinterfac:[0,4],serverport:[0,4],servic:5,session:3,set:0,setenv:0,setup_lt:5,shadow:[0,5],shell:5,should:[2,3,4,5],sign:[0,3,4],simpl:3,some:3,sourc:2,span:[0,4],specif:0,specifi:[0,4],ssl:[0,4],ssl_certif:0,ssl_certificate_kei:0,standard:[0,3],start:[0,2,4,5],startdelai:4,starttl:4,startup:2,step:1,still:[3,4],stop:0,store:3,strict:4,strictdn:4,string:4,strongli:0,stub:4,style:0,sub:4,subfold:4,submit:3,sudo:[0,4,5],sudoer:[0,5],suggest:[0,4],support:[0,1,5],suppress:0,svg:[0,4],system:[1,2,3,4,5],tabl:[0,4],tag:3,team:5,test:[0,3,4],text:4,than:4,thei:[0,5],them:[3,5],thi:[0,1,3,4,5],thread:[],three:[],through:4,time:4,token:[0,3,4],tokenrefreshaddress:4,too:0,tool:[1,5],top:[0,4],top_level_fold:0,traffic:0,translat:0,trust:0,txt:4,type:4,ubuntu:[1,2],uid:4,unauthor:0,unchang:5,undefin:4,under:0,uniqu:[0,4],uniquefield:4,unix:[0,5],unnecessari:[],unsaf:5,updat:[0,5],upgrad:0,uri:[0,4],url:4,use:[0,2,3,4],used:[0,3,4,5],useemailasid:4,user1:0,user1_alt:0,user2:0,user:[0,3,4,5],user_id:4,userlookup:4,userlookupt:4,usermod:5,usernam:[0,3,4],usert:4,using:[0,2,4,5],usr:[0,4,5],util:2,v12:5,v14:5,v16:5,valid:[0,3,4],validdomain:4,variabl:0,verifi:4,version:[0,2,3,4,5],via:[0,3,4],visudo:[0,5],wai:0,wait:4,want:3,watch:0,web:3,websocket:0,welcom:[0,4],well:3,what:0,when:[0,2,4],whenev:0,where:5,whether:4,which:[0,2,3],who:5,wish:2,without:[0,2],work:1,world:[],would:[2,4],write:0,you:[0,2,3,4,5],your:[0,2,4,5],yyyymmdd:4},titles:["Configuration","CARTA Controller","Installation","Introduction","CARTA configuration schema","Step-by-step instructions for Ubuntu 20.04.2 (Focal Fossa)"],titleterms:{authent:[0,3],authprovid:4,backend:[0,2,5],carta:[0,1,4,5],configur:[0,4,5],control:[0,1,2,5],creat:5,depend:[3,5],directori:[0,5],extern:4,focal:5,fossa:5,frontend:2,futur:3,gener:[],get:3,googl:4,help:3,instal:[2,5],instruct:5,introduct:3,kei:[],keyalgorithm:4,ldap:4,local:4,nginx:[0,5],other:5,packag:5,permiss:[0,5],pm2:5,requir:5,run:[2,5],schema:4,script:5,set:5,startup:5,step:5,support:3,system:0,ubuntu:5,work:3}})
@@ -7,7 +7,7 @@
7
7
 
8
8
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
9
9
 
10
- <title>Step-by-step instructions for Ubuntu 20.04.2 (Focal Fossa) &mdash; CARTA Controller 2.0 documentation</title>
10
+ <title>Step-by-step instructions for Ubuntu 20.04.2 (Focal Fossa) &mdash; CARTA Controller 3.0.0-beta.1d documentation</title>
11
11
 
12
12
 
13
13
 
@@ -26,7 +26,10 @@ To provide the ``carta`` user with these privileges, you must make modifications
26
26
 
27
27
  .. warning::
28
28
  Please only edit your sudoers configuration with ``visudo`` or equivalent.
29
-
29
+
30
+ .. note::
31
+ Older versions of ``sudo`` do not support the ``--preserve-env=VARIABLE`` argument. If your version of ``sudo`` is too old, set ``"preserveEnv"`` to ``false`` in your controller configuration, and add ``Defaults env_keep += "CARTA_AUTH_TOKEN"`` to your sudoers configuration.
32
+
30
33
  .. _config-authentication:
31
34
 
32
35
  Authentication
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "carta-controller",
3
- "version": "2.0.4",
3
+ "version": "2.0.5",
4
4
  "description": "NodeJS-based controller for CARTA",
5
5
  "repository": "https://github.com/CARTAvis/carta-controller",
6
6
  "homepage": "https://www.cartavis.org",