carta-controller 3.0.0-beta-1b → 3.0.0-beta.2
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.
- package/README.md +3 -3
- package/config/config_schema.json +13 -3
- package/config/example_backend.json +7 -0
- package/config/preference_backend_schema_2.json +97 -0
- package/dist/auth/index.js +1 -1
- package/dist/auth/index.js.map +1 -1
- package/dist/auth/local.js +1 -1
- package/dist/auth/local.js.map +1 -1
- package/dist/controllerTests.js +31 -23
- package/dist/serverHandlers.js +15 -10
- package/docs/_build/doctrees/configuration.doctree +0 -0
- package/docs/_build/doctrees/environment.pickle +0 -0
- package/docs/_build/doctrees/index.doctree +0 -0
- package/docs/_build/doctrees/introduction.doctree +0 -0
- package/docs/_build/doctrees/schema.doctree +0 -0
- package/docs/_build/html/.buildinfo +1 -1
- package/docs/_build/html/_sources/configuration.rst.txt +4 -1
- package/docs/_build/html/_sources/index.rst.txt +2 -2
- package/docs/_build/html/_sources/introduction.rst.txt +1 -1
- package/docs/_build/html/_static/config/config_schema.json +10 -0
- package/docs/_build/html/_static/documentation_options.js +1 -1
- package/docs/_build/html/configuration.html +5 -1
- package/docs/_build/html/genindex.html +1 -1
- package/docs/_build/html/index.html +2 -2
- package/docs/_build/html/installation.html +1 -1
- package/docs/_build/html/introduction.html +2 -2
- package/docs/_build/html/schema.html +56 -32
- package/docs/_build/html/search.html +1 -1
- package/docs/_build/html/searchindex.js +1 -1
- package/docs/_build/html/ubuntu_focal_instructions.html +1 -1
- package/docs/src/centos8_instructions.rst +248 -0
- package/docs/src/conf.py +1 -1
- package/docs/src/configuration.rst +62 -5
- package/docs/src/index.rst +7 -4
- package/docs/src/installation.rst +2 -2
- package/docs/src/introduction.rst +1 -1
- package/docs/src/schema_backend.rst +7 -0
- package/docs/src/ubuntu_focal_instructions.rst +2 -2
- package/package.json +2 -2
- package/views/templated.pug +1 -1
package/README.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# CARTA Controller
|
|
2
2
|
|
|
3
|
-
[](https://github.com/CARTAvis/carta-backend/releases/tag/v3.0.0-beta.2)
|
|
4
|
+
[](https://npmjs.org/package/carta-controller "View this project on npm")
|
|
5
5
|

|
|
6
6
|

|
|
7
7
|
|
|
@@ -9,4 +9,4 @@ The CARTA controller provides a simple dashboard which authenticates users and a
|
|
|
9
9
|
|
|
10
10
|
For installation and configuration instructions, and more detailed information about the controller's features, please consult [the full documentation on ReadTheDocs](https://carta-controller.readthedocs.io/en/dev/).
|
|
11
11
|
|
|
12
|
-
If you encounter a problem with the controller or documentation, please submit an issue in the controller repo. If you need assistance in configuration or deployment, please contact the [CARTA helpdesk](mailto:
|
|
12
|
+
If you encounter a problem with the controller or documentation, please submit an issue in the controller repo. If you need assistance in configuration or deployment, please contact the [CARTA helpdesk](mailto:support@carta.freshdesk.com).
|
|
@@ -399,8 +399,13 @@
|
|
|
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
|
-
"description": "Public-facing server address",
|
|
408
|
+
"description": "Public-facing server address. If this is specified, all requests will be redirected to this address, otherwise any address used will be preserved",
|
|
404
409
|
"type": "string",
|
|
405
410
|
"format": "uri",
|
|
406
411
|
"pattern": "^https?://"
|
|
@@ -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",
|
|
@@ -464,7 +474,7 @@
|
|
|
464
474
|
"default": "/usr/local/bin/carta-kill-script"
|
|
465
475
|
},
|
|
466
476
|
"rootFolderTemplate": {
|
|
467
|
-
"description": "Top-level path of directories accessible to CARTA. The `{username}` placeholder will be replaced with the username",
|
|
477
|
+
"description": "Top-level path of directories accessible to CARTA. The `{username}` placeholder will be replaced with the username. Defaults to `/usr/share/carta` if it exists, or `/usr/local/share/carta` if it exists. If neither exists and no default is provided, the controller exits with an error",
|
|
468
478
|
"type": "string",
|
|
469
479
|
"examples": [
|
|
470
480
|
"/home/{username}",
|
|
@@ -472,7 +482,7 @@
|
|
|
472
482
|
]
|
|
473
483
|
},
|
|
474
484
|
"baseFolderTemplate": {
|
|
475
|
-
"description": "Starting directory of CARTA. Must be a subfolder of rootFolderTemplate. The `{username}` placeholder will be replaced with the username",
|
|
485
|
+
"description": "Starting directory of CARTA. Must be a subfolder of rootFolderTemplate. The `{username}` placeholder will be replaced with the username. Defaults to the same value as `rootFolderTemplate`",
|
|
476
486
|
"type": "string",
|
|
477
487
|
"examples": [
|
|
478
488
|
"/home/{username}/CARTA",
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"title": "Backend preferences",
|
|
4
|
+
"description": "Schema for CARTA backend preferences (Version 2)",
|
|
5
|
+
"$id": "carta_backend_preferences_2",
|
|
6
|
+
"required": [],
|
|
7
|
+
"properties": {
|
|
8
|
+
"verbosity": {
|
|
9
|
+
"type": "integer",
|
|
10
|
+
"enum": [
|
|
11
|
+
0,
|
|
12
|
+
1,
|
|
13
|
+
2,
|
|
14
|
+
3,
|
|
15
|
+
4,
|
|
16
|
+
5
|
|
17
|
+
],
|
|
18
|
+
"default": 4
|
|
19
|
+
},
|
|
20
|
+
"no_log": {
|
|
21
|
+
"type": "boolean",
|
|
22
|
+
"default": true
|
|
23
|
+
},
|
|
24
|
+
"log_performance": {
|
|
25
|
+
"type": "boolean",
|
|
26
|
+
"default": false
|
|
27
|
+
},
|
|
28
|
+
"log_protocol_messages": {
|
|
29
|
+
"type": "boolean",
|
|
30
|
+
"default": false
|
|
31
|
+
},
|
|
32
|
+
"no_http": {
|
|
33
|
+
"type": "boolean",
|
|
34
|
+
"default": false
|
|
35
|
+
},
|
|
36
|
+
"no_browser": {
|
|
37
|
+
"type": "boolean",
|
|
38
|
+
"default": false
|
|
39
|
+
},
|
|
40
|
+
"browser": {
|
|
41
|
+
"type": "string",
|
|
42
|
+
"default": ""
|
|
43
|
+
},
|
|
44
|
+
"host": {
|
|
45
|
+
"type": "string",
|
|
46
|
+
"minLength": 1,
|
|
47
|
+
"default": "0.0.0.0"
|
|
48
|
+
},
|
|
49
|
+
"port": {
|
|
50
|
+
"type": ["integer", "array"],
|
|
51
|
+
"default": 3002
|
|
52
|
+
},
|
|
53
|
+
"grpc_port": {
|
|
54
|
+
"type": "integer",
|
|
55
|
+
"default": -1
|
|
56
|
+
},
|
|
57
|
+
"omp_threads": {
|
|
58
|
+
"type": "integer",
|
|
59
|
+
"default": -1
|
|
60
|
+
},
|
|
61
|
+
"top_level_folder": {
|
|
62
|
+
"type": "string",
|
|
63
|
+
"minLength": 1,
|
|
64
|
+
"default": "/"
|
|
65
|
+
},
|
|
66
|
+
"frontend_folder": {
|
|
67
|
+
"type": "string",
|
|
68
|
+
"minLength": 1,
|
|
69
|
+
"default": ""
|
|
70
|
+
},
|
|
71
|
+
"exit_timeout": {
|
|
72
|
+
"type": "integer",
|
|
73
|
+
"default": -1
|
|
74
|
+
},
|
|
75
|
+
"initial_timeout": {
|
|
76
|
+
"type": "integer",
|
|
77
|
+
"default": -1
|
|
78
|
+
},
|
|
79
|
+
"idle_timeout": {
|
|
80
|
+
"type": "integer",
|
|
81
|
+
"default": -1
|
|
82
|
+
},
|
|
83
|
+
"read_only_mode": {
|
|
84
|
+
"type": "boolean",
|
|
85
|
+
"default": false
|
|
86
|
+
},
|
|
87
|
+
"starting_folder": {
|
|
88
|
+
"type": "string",
|
|
89
|
+
"minLength": 1,
|
|
90
|
+
"default": ""
|
|
91
|
+
},
|
|
92
|
+
"event_thread_count": {
|
|
93
|
+
"type": "integer",
|
|
94
|
+
"default": -1
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
package/dist/auth/index.js
CHANGED
package/dist/auth/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/auth/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/auth/index.ts"],"names":[],"mappings":"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"}
|
package/dist/auth/local.js
CHANGED
|
@@ -40,7 +40,7 @@ function addTokensToResponse(authConf, username, res) {
|
|
|
40
40
|
path: config_1.RuntimeConfig.authPath,
|
|
41
41
|
maxAge: ms(authConf.refreshTokenAge),
|
|
42
42
|
httpOnly: true,
|
|
43
|
-
secure:
|
|
43
|
+
secure: !config_1.ServerConfig.httpOnly,
|
|
44
44
|
sameSite: "strict"
|
|
45
45
|
});
|
|
46
46
|
const access_token = generateToken(authConf, username, false);
|
package/dist/auth/local.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"local.js","sourceRoot":"","sources":["../../src/auth/local.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,yBAAyB;AACzB,oCAAoC;AAGpC,iCAAiC;AACjC,mCAAoC;AACpC,yBAA0B;AAC1B,
|
|
1
|
+
{"version":3,"file":"local.js","sourceRoot":"","sources":["../../src/auth/local.ts"],"names":[],"mappings":"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"}
|
package/dist/controllerTests.js
CHANGED
|
@@ -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,18 +49,21 @@ function runTests(username) {
|
|
|
49
49
|
}
|
|
50
50
|
exports.runTests = runTests;
|
|
51
51
|
function testLog(username) {
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
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
|
+
});
|
|
64
67
|
}
|
|
65
68
|
function testLdap(authConf, username) {
|
|
66
69
|
return new Promise((resolve, reject) => {
|
|
@@ -177,28 +180,33 @@ function testFrontend() {
|
|
|
177
180
|
function testBackendStartup(username) {
|
|
178
181
|
return __awaiter(this, void 0, void 0, function* () {
|
|
179
182
|
const port = config_1.ServerConfig.backendPorts.max - 1;
|
|
180
|
-
let args = [
|
|
181
|
-
|
|
183
|
+
let args = [];
|
|
184
|
+
if (config_1.ServerConfig.preserveEnv) {
|
|
185
|
+
args.push("--preserve-env=CARTA_AUTH_TOKEN");
|
|
186
|
+
}
|
|
187
|
+
args = args.concat([
|
|
188
|
+
"-n",
|
|
182
189
|
"-u",
|
|
183
190
|
`${username}`,
|
|
184
191
|
config_1.ServerConfig.processCommand,
|
|
185
192
|
"--no_http",
|
|
186
|
-
"true",
|
|
187
193
|
"--debug_no_auth",
|
|
188
|
-
"true",
|
|
189
|
-
"--no_log",
|
|
190
|
-
config_1.ServerConfig.logFileTemplate ? "true" : "false",
|
|
191
194
|
"--port",
|
|
192
195
|
`${port}`,
|
|
193
196
|
"--top_level_folder",
|
|
194
|
-
config_1.ServerConfig.rootFolderTemplate.replace("{username}", username)
|
|
195
|
-
|
|
196
|
-
|
|
197
|
+
config_1.ServerConfig.rootFolderTemplate.replace("{username}", username)
|
|
198
|
+
]);
|
|
199
|
+
if (config_1.ServerConfig.logFileTemplate) {
|
|
200
|
+
args.push("--no_log");
|
|
201
|
+
}
|
|
197
202
|
if (config_1.ServerConfig.additionalArgs) {
|
|
198
203
|
args = args.concat(config_1.ServerConfig.additionalArgs);
|
|
199
204
|
}
|
|
205
|
+
// Finally, add the positional argument for the base folder
|
|
206
|
+
args.push(config_1.ServerConfig.baseFolderTemplate.replace("{username}", username));
|
|
200
207
|
util_1.verboseLog(`running sudo ${args.join(" ")}`);
|
|
201
|
-
|
|
208
|
+
// Use same stdout and stderr stream for the backend process
|
|
209
|
+
const backendProcess = child_process_1.spawn("sudo", args, { stdio: "inherit" });
|
|
202
210
|
yield util_1.delay(2000);
|
|
203
211
|
if (backendProcess.signalCode) {
|
|
204
212
|
throw new Error(`Backend process terminated with code ${backendProcess.signalCode}. Please check your sudoers config, processCommand option and additionalArgs section`);
|
package/dist/serverHandlers.js
CHANGED
|
@@ -176,24 +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
|
-
|
|
179
|
+
let args = [];
|
|
180
|
+
if (config_1.ServerConfig.preserveEnv) {
|
|
181
|
+
args.push("--preserve-env=CARTA_AUTH_TOKEN");
|
|
182
|
+
}
|
|
183
|
+
args = args.concat([
|
|
184
|
+
"-n",
|
|
181
185
|
"-u",
|
|
182
186
|
`${username}`,
|
|
183
187
|
config_1.ServerConfig.processCommand,
|
|
184
188
|
"--no_http",
|
|
185
|
-
"true",
|
|
186
|
-
"--no_log",
|
|
187
|
-
config_1.ServerConfig.logFileTemplate ? "true" : "false",
|
|
188
189
|
"--port",
|
|
189
190
|
`${port}`,
|
|
190
191
|
"--top_level_folder",
|
|
191
|
-
config_1.ServerConfig.rootFolderTemplate.replace("{username}", username)
|
|
192
|
-
|
|
193
|
-
|
|
192
|
+
config_1.ServerConfig.rootFolderTemplate.replace("{username}", username)
|
|
193
|
+
]);
|
|
194
|
+
if (config_1.ServerConfig.logFileTemplate) {
|
|
195
|
+
args.push("--no_log");
|
|
196
|
+
}
|
|
194
197
|
if (config_1.ServerConfig.additionalArgs) {
|
|
195
198
|
args = args.concat(config_1.ServerConfig.additionalArgs);
|
|
196
199
|
}
|
|
200
|
+
// Finally, add the positional argument for the base folder
|
|
201
|
+
args.push(config_1.ServerConfig.baseFolderTemplate.replace("{username}", username));
|
|
197
202
|
const headerToken = uuid_1.v4();
|
|
198
203
|
const child = child_process_1.spawn("sudo", args, { env: { CARTA_AUTH_TOKEN: headerToken } });
|
|
199
204
|
setPendingProcess(username, port, headerToken, child);
|
|
@@ -234,7 +239,7 @@ function startServer(username) {
|
|
|
234
239
|
child.on("exit", code => {
|
|
235
240
|
console.log(`Process ${child.pid} exited with code ${code} and signal ${child.signalCode}`);
|
|
236
241
|
deleteProcess(username);
|
|
237
|
-
logStream === null || logStream === void 0 ? void 0 : logStream.
|
|
242
|
+
logStream === null || logStream === void 0 ? void 0 : logStream.end();
|
|
238
243
|
});
|
|
239
244
|
// Check for early exit of backend process
|
|
240
245
|
yield util_1.delay(config_1.ServerConfig.startDelay);
|
|
@@ -250,7 +255,7 @@ function startServer(username) {
|
|
|
250
255
|
catch (e) {
|
|
251
256
|
util_1.verboseError(e);
|
|
252
257
|
console.log(`Problem starting process for user ${username}`);
|
|
253
|
-
logStream === null || logStream === void 0 ? void 0 : logStream.
|
|
258
|
+
logStream === null || logStream === void 0 ? void 0 : logStream.end();
|
|
254
259
|
if (e.statusCode && e.message) {
|
|
255
260
|
throw e;
|
|
256
261
|
}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
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:
|
|
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-3.0.0--beta.
|
|
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/v3.0.0-beta.
|
|
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 ``v3.0.0-beta.
|
|
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",
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
|
|
8
8
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
9
9
|
|
|
10
|
-
<title>Configuration — CARTA Controller 3.0.0-beta.
|
|
10
|
+
<title>Configuration — 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">"preserveEnv"</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">"CARTA_AUTH_TOKEN"</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>CARTA Controller — CARTA Controller 3.0.0-beta.
|
|
10
|
+
<title>CARTA Controller — 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/v3.0.0-beta.
|
|
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>Introduction — CARTA Controller 3.0.0-beta.
|
|
10
|
+
<title>Introduction — 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">v3.0.0-beta.
|
|
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>
|