diff --git a/.buildinfo b/.buildinfo index 12992f5e..ace9b274 100644 --- a/.buildinfo +++ b/.buildinfo @@ -1,4 +1,4 @@ # Sphinx build info version 1 # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. -config: 5aa5c997f3fe38de2d7290db1d978aa5 +config: e1a2298868947d53477b5c54c89e1f8b tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/Architecture-Overview.html b/Architecture-Overview.html index f6c62239..82270455 100644 --- a/Architecture-Overview.html +++ b/Architecture-Overview.html @@ -4,7 +4,7 @@ - OpenTera Architecture Overview — OpenTera 1.2.5 documentation + OpenTera Architecture Overview — OpenTera 1.2.6 documentation @@ -15,8 +15,8 @@ - - + + @@ -38,7 +38,7 @@
- 1.2.5 + 1.2.6
diff --git a/Configuration-files.html b/Configuration-files.html index f7e93da2..38ee7a6b 100644 --- a/Configuration-files.html +++ b/Configuration-files.html @@ -4,7 +4,7 @@ - Configuration Files — OpenTera 1.2.5 documentation + Configuration Files — OpenTera 1.2.6 documentation @@ -15,8 +15,8 @@ - - + + @@ -36,7 +36,7 @@
- 1.2.5 + 1.2.6
diff --git a/Deployment.html b/Deployment.html index c228e4a2..9d9dc918 100644 --- a/Deployment.html +++ b/Deployment.html @@ -4,7 +4,7 @@ - Deployment Notes — OpenTera 1.2.5 documentation + Deployment Notes — OpenTera 1.2.6 documentation @@ -15,8 +15,8 @@ - - + + @@ -38,7 +38,7 @@
- 1.2.5 + 1.2.6
diff --git a/Home.html b/Home.html index 9479de2b..8223b470 100644 --- a/Home.html +++ b/Home.html @@ -4,7 +4,7 @@ - About OpenTera — OpenTera 1.2.5 documentation + About OpenTera — OpenTera 1.2.6 documentation @@ -15,8 +15,8 @@ - - + + @@ -38,7 +38,7 @@
- 1.2.5 + 1.2.6
diff --git a/Security.html b/Security.html index 377dda90..90f4ed62 100644 --- a/Security.html +++ b/Security.html @@ -4,7 +4,7 @@ - Security — OpenTera 1.2.5 documentation + Security — OpenTera 1.2.6 documentation @@ -15,8 +15,8 @@ - - + + @@ -38,7 +38,7 @@
- 1.2.5 + 1.2.6
diff --git a/_static/basic.css b/_static/basic.css index 30fee9d0..f316efcb 100644 --- a/_static/basic.css +++ b/_static/basic.css @@ -4,7 +4,7 @@ * * Sphinx stylesheet -- basic theme. * - * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. + * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ diff --git a/_static/doctools.js b/_static/doctools.js index d06a71d7..4d67807d 100644 --- a/_static/doctools.js +++ b/_static/doctools.js @@ -4,7 +4,7 @@ * * Base JavaScript utilities for all Sphinx HTML documentation. * - * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. + * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ diff --git a/_static/documentation_options.js b/_static/documentation_options.js index dee837df..dc5c51da 100644 --- a/_static/documentation_options.js +++ b/_static/documentation_options.js @@ -1,5 +1,5 @@ const DOCUMENTATION_OPTIONS = { - VERSION: '1.2.5', + VERSION: '1.2.6', LANGUAGE: 'en', COLLAPSE_INDEX: false, BUILDER: 'html', diff --git a/_static/language_data.js b/_static/language_data.js index 250f5665..367b8ed8 100644 --- a/_static/language_data.js +++ b/_static/language_data.js @@ -5,7 +5,7 @@ * This script contains the language-specific data used by searchtools.js, * namely the list of stopwords, stemmer, scorer and splitter. * - * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. + * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ @@ -13,7 +13,7 @@ var stopwords = ["a", "and", "are", "as", "at", "be", "but", "by", "for", "if", "in", "into", "is", "it", "near", "no", "not", "of", "on", "or", "such", "that", "the", "their", "then", "there", "these", "they", "this", "to", "was", "will", "with"]; -/* Non-minified version is copied as a separate JS file, is available */ +/* Non-minified version is copied as a separate JS file, if available */ /** * Porter Stemmer diff --git a/_static/searchtools.js b/_static/searchtools.js index 7918c3fa..92da3f8b 100644 --- a/_static/searchtools.js +++ b/_static/searchtools.js @@ -4,7 +4,7 @@ * * Sphinx JavaScript utilities for the full-text search. * - * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. + * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ @@ -99,7 +99,7 @@ const _displayItem = (item, searchTerms, highlightTerms) => { .then((data) => { if (data) listItem.appendChild( - Search.makeSearchSummary(data, searchTerms) + Search.makeSearchSummary(data, searchTerms, anchor) ); // highlight search terms in the summary if (SPHINX_HIGHLIGHT_ENABLED) // set in sphinx_highlight.js @@ -116,8 +116,8 @@ const _finishSearch = (resultCount) => { ); else Search.status.innerText = _( - `Search finished, found ${resultCount} page(s) matching the search query.` - ); + "Search finished, found ${resultCount} page(s) matching the search query." + ).replace('${resultCount}', resultCount); }; const _displayNextItem = ( results, @@ -137,6 +137,22 @@ const _displayNextItem = ( // search finished, update title and status message else _finishSearch(resultCount); }; +// Helper function used by query() to order search results. +// Each input is an array of [docname, title, anchor, descr, score, filename]. +// Order the results by score (in opposite order of appearance, since the +// `_displayNextItem` function uses pop() to retrieve items) and then alphabetically. +const _orderResultsByScoreThenName = (a, b) => { + const leftScore = a[4]; + const rightScore = b[4]; + if (leftScore === rightScore) { + // same score: sort alphabetically + const leftTitle = a[1].toLowerCase(); + const rightTitle = b[1].toLowerCase(); + if (leftTitle === rightTitle) return 0; + return leftTitle > rightTitle ? -1 : 1; // inverted is intentional + } + return leftScore > rightScore ? 1 : -1; +}; /** * Default splitQuery function. Can be overridden in ``sphinx.search`` with a @@ -160,13 +176,26 @@ const Search = { _queued_query: null, _pulse_status: -1, - htmlToText: (htmlString) => { + htmlToText: (htmlString, anchor) => { const htmlElement = new DOMParser().parseFromString(htmlString, 'text/html'); - htmlElement.querySelectorAll(".headerlink").forEach((el) => { el.remove() }); + for (const removalQuery of [".headerlinks", "script", "style"]) { + htmlElement.querySelectorAll(removalQuery).forEach((el) => { el.remove() }); + } + if (anchor) { + const anchorContent = htmlElement.querySelector(`[role="main"] ${anchor}`); + if (anchorContent) return anchorContent.textContent; + + console.warn( + `Anchored content block not found. Sphinx search tries to obtain it via DOM query '[role=main] ${anchor}'. Check your theme or template.` + ); + } + + // if anchor not specified or not found, fall back to main content const docContent = htmlElement.querySelector('[role="main"]'); - if (docContent !== undefined) return docContent.textContent; + if (docContent) return docContent.textContent; + console.warn( - "Content block not found. Sphinx search tries to obtain it via '[role=main]'. Could you check your theme or template." + "Content block not found. Sphinx search tries to obtain it via DOM query '[role=main]'. Check your theme or template." ); return ""; }, @@ -239,16 +268,7 @@ const Search = { else Search.deferQuery(query); }, - /** - * execute search (requires search index to be loaded) - */ - query: (query) => { - const filenames = Search._index.filenames; - const docNames = Search._index.docnames; - const titles = Search._index.titles; - const allTitles = Search._index.alltitles; - const indexEntries = Search._index.indexentries; - + _parseQuery: (query) => { // stem the search terms and add them to the correct list const stemmer = new Stemmer(); const searchTerms = new Set(); @@ -284,16 +304,32 @@ const Search = { // console.info("required: ", [...searchTerms]); // console.info("excluded: ", [...excludedTerms]); - // array of [docname, title, anchor, descr, score, filename] - let results = []; + return [query, searchTerms, excludedTerms, highlightTerms, objectTerms]; + }, + + /** + * execute search (requires search index to be loaded) + */ + _performSearch: (query, searchTerms, excludedTerms, highlightTerms, objectTerms) => { + const filenames = Search._index.filenames; + const docNames = Search._index.docnames; + const titles = Search._index.titles; + const allTitles = Search._index.alltitles; + const indexEntries = Search._index.indexentries; + + // Collect multiple result groups to be sorted separately and then ordered. + // Each is an array of [docname, title, anchor, descr, score, filename]. + const normalResults = []; + const nonMainIndexResults = []; + _removeChildren(document.getElementById("search-progress")); - const queryLower = query.toLowerCase(); + const queryLower = query.toLowerCase().trim(); for (const [title, foundTitles] of Object.entries(allTitles)) { - if (title.toLowerCase().includes(queryLower) && (queryLower.length >= title.length/2)) { + if (title.toLowerCase().trim().includes(queryLower) && (queryLower.length >= title.length/2)) { for (const [file, id] of foundTitles) { let score = Math.round(100 * queryLower.length / title.length) - results.push([ + normalResults.push([ docNames[file], titles[file] !== title ? `${titles[file]} > ${title}` : title, id !== null ? "#" + id : "", @@ -308,46 +344,47 @@ const Search = { // search for explicit entries in index directives for (const [entry, foundEntries] of Object.entries(indexEntries)) { if (entry.includes(queryLower) && (queryLower.length >= entry.length/2)) { - for (const [file, id] of foundEntries) { - let score = Math.round(100 * queryLower.length / entry.length) - results.push([ + for (const [file, id, isMain] of foundEntries) { + const score = Math.round(100 * queryLower.length / entry.length); + const result = [ docNames[file], titles[file], id ? "#" + id : "", null, score, filenames[file], - ]); + ]; + if (isMain) { + normalResults.push(result); + } else { + nonMainIndexResults.push(result); + } } } } // lookup as object objectTerms.forEach((term) => - results.push(...Search.performObjectSearch(term, objectTerms)) + normalResults.push(...Search.performObjectSearch(term, objectTerms)) ); // lookup as search terms in fulltext - results.push(...Search.performTermsSearch(searchTerms, excludedTerms)); + normalResults.push(...Search.performTermsSearch(searchTerms, excludedTerms)); // let the scorer override scores with a custom scoring function - if (Scorer.score) results.forEach((item) => (item[4] = Scorer.score(item))); - - // now sort the results by score (in opposite order of appearance, since the - // display function below uses pop() to retrieve items) and then - // alphabetically - results.sort((a, b) => { - const leftScore = a[4]; - const rightScore = b[4]; - if (leftScore === rightScore) { - // same score: sort alphabetically - const leftTitle = a[1].toLowerCase(); - const rightTitle = b[1].toLowerCase(); - if (leftTitle === rightTitle) return 0; - return leftTitle > rightTitle ? -1 : 1; // inverted is intentional - } - return leftScore > rightScore ? 1 : -1; - }); + if (Scorer.score) { + normalResults.forEach((item) => (item[4] = Scorer.score(item))); + nonMainIndexResults.forEach((item) => (item[4] = Scorer.score(item))); + } + + // Sort each group of results by score and then alphabetically by name. + normalResults.sort(_orderResultsByScoreThenName); + nonMainIndexResults.sort(_orderResultsByScoreThenName); + + // Combine the result groups in (reverse) order. + // Non-main index entries are typically arbitrary cross-references, + // so display them after other results. + let results = [...nonMainIndexResults, ...normalResults]; // remove duplicate search results // note the reversing of results, so that in the case of duplicates, the highest-scoring entry is kept @@ -361,7 +398,12 @@ const Search = { return acc; }, []); - results = results.reverse(); + return results.reverse(); + }, + + query: (query) => { + const [searchQuery, searchTerms, excludedTerms, highlightTerms, objectTerms] = Search._parseQuery(query); + const results = Search._performSearch(searchQuery, searchTerms, excludedTerms, highlightTerms, objectTerms); // for debugging //Search.lastresults = results.slice(); // a copy @@ -466,14 +508,18 @@ const Search = { // add support for partial matches if (word.length > 2) { const escapedWord = _escapeRegExp(word); - Object.keys(terms).forEach((term) => { - if (term.match(escapedWord) && !terms[word]) - arr.push({ files: terms[term], score: Scorer.partialTerm }); - }); - Object.keys(titleTerms).forEach((term) => { - if (term.match(escapedWord) && !titleTerms[word]) - arr.push({ files: titleTerms[word], score: Scorer.partialTitle }); - }); + if (!terms.hasOwnProperty(word)) { + Object.keys(terms).forEach((term) => { + if (term.match(escapedWord)) + arr.push({ files: terms[term], score: Scorer.partialTerm }); + }); + } + if (!titleTerms.hasOwnProperty(word)) { + Object.keys(titleTerms).forEach((term) => { + if (term.match(escapedWord)) + arr.push({ files: titleTerms[term], score: Scorer.partialTitle }); + }); + } } // no match but word was a required one @@ -496,9 +542,8 @@ const Search = { // create the mapping files.forEach((file) => { - if (fileMap.has(file) && fileMap.get(file).indexOf(word) === -1) - fileMap.get(file).push(word); - else fileMap.set(file, [word]); + if (!fileMap.has(file)) fileMap.set(file, [word]); + else if (fileMap.get(file).indexOf(word) === -1) fileMap.get(file).push(word); }); }); @@ -549,8 +594,8 @@ const Search = { * search summary for a given text. keywords is a list * of stemmed words. */ - makeSearchSummary: (htmlText, keywords) => { - const text = Search.htmlToText(htmlText); + makeSearchSummary: (htmlText, keywords, anchor) => { + const text = Search.htmlToText(htmlText, anchor); if (text === "") return null; const textLower = text.toLowerCase(); diff --git a/deployment/DeployWithDockerCompose.html b/deployment/DeployWithDockerCompose.html index 00063950..afa9856a 100644 --- a/deployment/DeployWithDockerCompose.html +++ b/deployment/DeployWithDockerCompose.html @@ -4,7 +4,7 @@ - Deploying with Docker on Linux Servers — OpenTera 1.2.5 documentation + Deploying with Docker on Linux Servers — OpenTera 1.2.6 documentation @@ -15,8 +15,8 @@ - - + + @@ -38,7 +38,7 @@
- 1.2.5 + 1.2.6
diff --git a/deployment/DeployWithLinuxNative.html b/deployment/DeployWithLinuxNative.html index 14b0e503..c9d0ae02 100644 --- a/deployment/DeployWithLinuxNative.html +++ b/deployment/DeployWithLinuxNative.html @@ -4,7 +4,7 @@ - Deploying OpenTera on a Linux Server — OpenTera 1.2.5 documentation + Deploying OpenTera on a Linux Server — OpenTera 1.2.6 documentation @@ -15,8 +15,8 @@ - - + + @@ -38,7 +38,7 @@
- 1.2.5 + 1.2.6
diff --git a/developers/Code-Structure.html b/developers/Code-Structure.html index 23ede942..afd752f6 100644 --- a/developers/Code-Structure.html +++ b/developers/Code-Structure.html @@ -4,7 +4,7 @@ - Code structure — OpenTera 1.2.5 documentation + Code structure — OpenTera 1.2.6 documentation @@ -15,8 +15,8 @@ - - + + @@ -38,7 +38,7 @@
- 1.2.5 + 1.2.6
diff --git a/developers/Database-Structure.html b/developers/Database-Structure.html index 0f4c0e94..dd911ed5 100644 --- a/developers/Database-Structure.html +++ b/developers/Database-Structure.html @@ -4,7 +4,7 @@ - Database Structure — OpenTera 1.2.5 documentation + Database Structure — OpenTera 1.2.6 documentation @@ -15,8 +15,8 @@ - - + + @@ -38,7 +38,7 @@
- 1.2.5 + 1.2.6
diff --git a/developers/Developer-Setup-for-Docker.html b/developers/Developer-Setup-for-Docker.html index 3af68932..cc8e1028 100644 --- a/developers/Developer-Setup-for-Docker.html +++ b/developers/Developer-Setup-for-Docker.html @@ -4,7 +4,7 @@ - Setup a dev Environment with Docker-Compose on Mac/Linux/Windows — OpenTera 1.2.5 documentation + Setup a dev Environment with Docker-Compose on Mac/Linux/Windows — OpenTera 1.2.6 documentation @@ -15,8 +15,8 @@ - - + + @@ -38,7 +38,7 @@
- 1.2.5 + 1.2.6
diff --git a/developers/Developer-Setup-for-Linux.html b/developers/Developer-Setup-for-Linux.html index 4b532136..7d90ee21 100644 --- a/developers/Developer-Setup-for-Linux.html +++ b/developers/Developer-Setup-for-Linux.html @@ -4,7 +4,7 @@ - Getting Started for Developers - Ubuntu-based Linux distros — OpenTera 1.2.5 documentation + Getting Started for Developers - Ubuntu-based Linux distros — OpenTera 1.2.6 documentation @@ -15,8 +15,8 @@ - - + + @@ -38,7 +38,7 @@
- 1.2.5 + 1.2.6
diff --git a/developers/Developer-Setup-for-Mac.html b/developers/Developer-Setup-for-Mac.html index a03c36c3..d3886974 100644 --- a/developers/Developer-Setup-for-Mac.html +++ b/developers/Developer-Setup-for-Mac.html @@ -4,7 +4,7 @@ - Getting Started for Developers - Mac OS — OpenTera 1.2.5 documentation + Getting Started for Developers - Mac OS — OpenTera 1.2.6 documentation @@ -15,8 +15,8 @@ - - + + @@ -38,7 +38,7 @@
- 1.2.5 + 1.2.6
diff --git a/developers/Developer-Setup-for-Windows.html b/developers/Developer-Setup-for-Windows.html index 62b32d50..4b27ae71 100644 --- a/developers/Developer-Setup-for-Windows.html +++ b/developers/Developer-Setup-for-Windows.html @@ -4,7 +4,7 @@ - Getting Started for Developers - Windows 10 — OpenTera 1.2.5 documentation + Getting Started for Developers - Windows 10 — OpenTera 1.2.6 documentation @@ -15,8 +15,8 @@ - - + + @@ -38,7 +38,7 @@
- 1.2.5 + 1.2.6
diff --git a/developers/Developers.html b/developers/Developers.html index 7be3962e..2f222c66 100644 --- a/developers/Developers.html +++ b/developers/Developers.html @@ -4,7 +4,7 @@ - Developers setup guide — OpenTera 1.2.5 documentation + Developers setup guide — OpenTera 1.2.6 documentation @@ -15,8 +15,8 @@ - - + + @@ -38,7 +38,7 @@
- 1.2.5 + 1.2.6
diff --git a/developers/Form-Structure.html b/developers/Form-Structure.html index 2a8a2cbb..72d253e7 100644 --- a/developers/Form-Structure.html +++ b/developers/Form-Structure.html @@ -4,7 +4,7 @@ - Internal Form Structure — OpenTera 1.2.5 documentation + Internal Form Structure — OpenTera 1.2.6 documentation @@ -15,8 +15,8 @@ - - + + @@ -38,7 +38,7 @@
- 1.2.5 + 1.2.6
diff --git a/developers/Internal-services-communication-module.html b/developers/Internal-services-communication-module.html index 9ac9fa14..96177d02 100644 --- a/developers/Internal-services-communication-module.html +++ b/developers/Internal-services-communication-module.html @@ -4,7 +4,7 @@ - Inter-service communication — OpenTera 1.2.5 documentation + Inter-service communication — OpenTera 1.2.6 documentation @@ -15,8 +15,8 @@ - - + + @@ -38,7 +38,7 @@
- 1.2.5 + 1.2.6
diff --git a/developers/Login-and-authentication.html b/developers/Login-and-authentication.html index 5a2a98b8..daeb0bc3 100644 --- a/developers/Login-and-authentication.html +++ b/developers/Login-and-authentication.html @@ -4,7 +4,7 @@ - Login & Authentication — OpenTera 1.2.5 documentation + Login & Authentication — OpenTera 1.2.6 documentation @@ -15,8 +15,8 @@ - - + + @@ -38,7 +38,7 @@
- 1.2.5 + 1.2.6
diff --git a/developers/Messages-structure.html b/developers/Messages-structure.html index 39238844..1e09808f 100644 --- a/developers/Messages-structure.html +++ b/developers/Messages-structure.html @@ -4,7 +4,7 @@ - Internal messages structure — OpenTera 1.2.5 documentation + Internal messages structure — OpenTera 1.2.6 documentation @@ -15,8 +15,8 @@ - - + + @@ -38,7 +38,7 @@
- 1.2.5 + 1.2.6
diff --git a/developers/Running-tests.html b/developers/Running-tests.html index b0dc5276..b870f0fd 100644 --- a/developers/Running-tests.html +++ b/developers/Running-tests.html @@ -4,7 +4,7 @@ - Unit Tests — OpenTera 1.2.5 documentation + Unit Tests — OpenTera 1.2.6 documentation @@ -15,8 +15,8 @@ - - + + @@ -38,7 +38,7 @@
- 1.2.5 + 1.2.6
diff --git a/developers/Service-Creation.html b/developers/Service-Creation.html index d010fac6..8471462f 100644 --- a/developers/Service-Creation.html +++ b/developers/Service-Creation.html @@ -4,7 +4,7 @@ - Creating a new service — OpenTera 1.2.5 documentation + Creating a new service — OpenTera 1.2.6 documentation @@ -15,8 +15,8 @@ - - + + @@ -38,7 +38,7 @@
- 1.2.5 + 1.2.6
diff --git a/developers/Translations.html b/developers/Translations.html index 7c60b6e2..0b64786d 100644 --- a/developers/Translations.html +++ b/developers/Translations.html @@ -4,7 +4,7 @@ - Translations — OpenTera 1.2.5 documentation + Translations — OpenTera 1.2.6 documentation @@ -15,8 +15,8 @@ - - + + @@ -38,7 +38,7 @@
- 1.2.5 + 1.2.6
diff --git a/developers/Websockets-communication.html b/developers/Websockets-communication.html index 1ab32af7..8705985d 100644 --- a/developers/Websockets-communication.html +++ b/developers/Websockets-communication.html @@ -4,7 +4,7 @@ - Websockets communication — OpenTera 1.2.5 documentation + Websockets communication — OpenTera 1.2.6 documentation @@ -15,8 +15,8 @@ - - + + @@ -37,7 +37,7 @@
- 1.2.5 + 1.2.6
diff --git a/genindex.html b/genindex.html index 40bb21af..2585ecd6 100644 --- a/genindex.html +++ b/genindex.html @@ -3,7 +3,7 @@ - Index — OpenTera 1.2.5 documentation + Index — OpenTera 1.2.6 documentation @@ -14,8 +14,8 @@ - - + + @@ -35,7 +35,7 @@
- 1.2.5 + 1.2.6
diff --git a/http-routingtable.html b/http-routingtable.html index 4ade4b06..f743b738 100644 --- a/http-routingtable.html +++ b/http-routingtable.html @@ -3,7 +3,7 @@ - HTTP Routing Table — OpenTera 1.2.5 documentation + HTTP Routing Table — OpenTera 1.2.6 documentation @@ -14,8 +14,8 @@ - - + + @@ -42,7 +42,7 @@
- 1.2.5 + 1.2.6
@@ -480,6 +480,11 @@

HTTP Routing Table

GET /user/assets null + + + + GET /user/assets/archive + null diff --git a/index.html b/index.html index 70c13d10..a92479b3 100644 --- a/index.html +++ b/index.html @@ -4,7 +4,7 @@ - About OpenTera — OpenTera 1.2.5 documentation + About OpenTera — OpenTera 1.2.6 documentation @@ -15,8 +15,8 @@ - - + + @@ -37,7 +37,7 @@
- 1.2.5 + 1.2.6
diff --git a/objects.inv b/objects.inv index 89c8333c..6d410425 100644 Binary files a/objects.inv and b/objects.inv differ diff --git a/search.html b/search.html index 7fd4400a..c0a6fc76 100644 --- a/search.html +++ b/search.html @@ -3,7 +3,7 @@ - Search — OpenTera 1.2.5 documentation + Search — OpenTera 1.2.6 documentation @@ -15,8 +15,8 @@ - - + + @@ -38,7 +38,7 @@
- 1.2.5 + 1.2.6
diff --git a/searchindex.js b/searchindex.js index dc936cae..d93d3f6f 100644 --- a/searchindex.js +++ b/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["Architecture-Overview", "Configuration-files", "Deployment", "Home", "Security", "deployment/DeployWithDockerCompose", "deployment/DeployWithLinuxNative", "developers/Code-Structure", "developers/Database-Structure", "developers/Developer-Setup-for-Docker", "developers/Developer-Setup-for-Linux", "developers/Developer-Setup-for-Mac", "developers/Developer-Setup-for-Windows", "developers/Developers", "developers/Form-Structure", "developers/Internal-services-communication-module", "developers/Login-and-authentication", "developers/Messages-structure", "developers/Running-tests", "developers/Service-Creation", "developers/Translations", "developers/Websockets-communication", "index", "services/FileTransfer-Service", "services/Logging-Service", "services/OpenTera_Services", "services/Services-Access", "services/Videorehab-Service", "services/services", "services/teraserver/OpenTera_AccessRoles", "services/teraserver/UserManager-module", "services/teraserver/api/API", "services/teraserver/api/api_doc", "services/teraserver/teraserver"], "filenames": ["Architecture-Overview.md", "Configuration-files.md", "Deployment.md", "Home.rst", "Security.md", "deployment/DeployWithDockerCompose.md", "deployment/DeployWithLinuxNative.md", "developers/Code-Structure.md", "developers/Database-Structure.md", "developers/Developer-Setup-for-Docker.rst", "developers/Developer-Setup-for-Linux.md", "developers/Developer-Setup-for-Mac.md", "developers/Developer-Setup-for-Windows.md", "developers/Developers.rst", "developers/Form-Structure.md", "developers/Internal-services-communication-module.md", "developers/Login-and-authentication.md", "developers/Messages-structure.md", "developers/Running-tests.md", "developers/Service-Creation.md", "developers/Translations.md", "developers/Websockets-communication.md", "index.rst", "services/FileTransfer-Service.md", "services/Logging-Service.md", "services/OpenTera_Services.md", "services/Services-Access.md", "services/Videorehab-Service.md", "services/services.rst", "services/teraserver/OpenTera_AccessRoles.md", "services/teraserver/UserManager-module.md", "services/teraserver/api/API.md", "services/teraserver/api/api_doc.rst", "services/teraserver/teraserver.rst"], "titles": ["OpenTera Architecture Overview", "Configuration Files", "Deployment Notes", "About OpenTera", "Security", "Deploying with Docker on Linux Servers", "Deploying OpenTera on a Linux Server", "Code structure", "Database Structure", "Setup a dev Environment with Docker-Compose on Mac/Linux/Windows", "Getting Started for Developers - Ubuntu-based Linux distros", "Getting Started for Developers - Mac OS", "Getting Started for Developers - Windows 10", "Developers setup guide", "Internal Form Structure", "Inter-service communication", "Login & Authentication", "Internal messages structure", "Unit Tests", "Creating a new service", "Translations", "Websockets communication", "About OpenTera", "File Transfer Service", "Logging Service", "OpenTera Services Structure", "Services Access Roles", "VideoRehab Service", "Core Services", "Access Roles", "User Manager Module", "REST API", "API Documentation", "TeraServer Service"], "terms": {"The": [0, 1, 3, 4, 6, 7, 8, 9, 10, 11, 12, 14, 15, 16, 17, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33], "follow": [0, 1, 3, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 18, 19, 22, 25, 26, 27, 30, 31, 32], "diagram": 0, "present": [0, 1, 4, 8, 19], "global": [0, 25, 32], "softwar": [0, 4, 6, 8, 12, 25], "A": [0, 3, 5, 6, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 22, 25, 27, 29, 31, 32], "modular": [0, 3, 4, 22], "base": [0, 1, 3, 4, 6, 7, 11, 12, 13, 16, 17, 18, 19, 20, 21, 22, 25, 27, 28, 29, 31, 32], "open": [0, 10, 11, 12, 13, 16, 23, 27, 31], "sourc": [0, 8, 9, 17, 19], "project": [0, 6, 7, 8, 9, 10, 11, 12, 13, 18, 19, 25, 29, 31, 32], "standard": [0, 3, 4, 8, 13, 14, 16, 17, 22, 31, 32], "i": [0, 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, 29, 30, 31, 32, 33], "us": [0, 1, 2, 3, 4, 7, 8, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 24, 25, 26, 27, 29, 30, 31, 32, 33], "each": [0, 1, 4, 6, 7, 8, 10, 11, 12, 14, 15, 16, 17, 18, 20, 21, 23, 25, 26, 27, 30, 31, 32], "compon": [0, 4, 8, 9, 10, 11, 12, 18, 23], "describ": [0, 1, 6, 14, 17, 23, 25, 31, 33], "below": [0, 6, 7, 8, 12, 14, 16, 17, 24, 27, 28, 29, 31], "simpli": [0, 8, 10, 11, 12, 15, 18], "manag": [0, 1, 3, 9, 10, 12, 13, 15, 16, 17, 22, 23, 25, 27, 29, 32, 33], "all": [0, 4, 6, 8, 9, 10, 11, 12, 14, 16, 17, 18, 20, 21, 29, 31, 32], "other": [0, 1, 4, 6, 8, 10, 11, 12, 13, 14, 15, 16, 18, 20, 23, 25, 29, 31], "intern": [0, 1, 4, 7, 10, 11, 12, 21, 25, 27, 32], "itself": [0, 1, 4, 6, 10, 11, 12, 18, 23, 29, 31, 32], "repres": [0, 8, 14, 15], "especi": [0, 1, 4, 13], "when": [0, 1, 6, 7, 8, 9, 10, 11, 12, 14, 15, 16, 17, 20, 23, 24, 27, 30, 31, 32], "come": [0, 8, 16, 31], "access": [0, 1, 6, 16, 19, 21, 24, 25, 27, 31, 32, 33], "role": [0, 4, 8, 10, 11, 12, 16, 27, 32, 33], "server": [0, 2, 4, 7, 8, 13, 14, 15, 16, 17, 18, 20, 21, 23, 24, 25, 26, 27, 31, 32, 33], "fulli": [0, 31], "written": [0, 25], "python": [0, 3, 7, 9, 10, 11, 12, 13, 18, 19, 22], "main": [0, 1, 6, 7, 8, 15, 19, 25, 26, 31], "script": [0, 7, 10, 11, 12, 20], "py": [0, 6, 10, 11, 12, 23, 24, 27, 33], "basic": [0, 6, 8, 14, 23, 24, 25, 27, 32], "start": [0, 2, 4, 6, 8, 9, 13, 29, 32], "configur": [0, 3, 4, 5, 8, 10, 11, 12, 22, 26, 29, 31, 32], "more": [0, 1, 2, 4, 6, 8, 9, 15, 18, 20, 21, 26, 27, 29, 31, 32], "inform": [0, 1, 3, 4, 7, 8, 9, 10, 11, 12, 16, 21, 22, 27, 29, 31, 32], "thi": [0, 1, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 29, 30, 31, 32, 33], "can": [0, 1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 23, 24, 25, 26, 27, 29, 30, 31, 32, 33], "found": [0, 1, 14, 19, 20, 30, 32], "here": [0, 1, 6, 9, 10, 11, 14, 21, 25, 27, 30, 31, 32, 33], "ar": [0, 1, 3, 4, 6, 8, 9, 10, 11, 12, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 25, 26, 27, 28, 29, 30, 31, 32, 33], "do": [0, 6, 8, 9, 15, 18, 19, 23, 29, 31, 32], "need": [0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 24, 25, 27, 28, 30, 32], "directli": [0, 8, 10, 11, 12, 14, 21, 29], "referenc": 0, "call": [0, 3, 14, 16, 17, 22, 23, 25, 30, 31], "specif": [0, 1, 3, 4, 6, 8, 12, 13, 14, 15, 16, 18, 20, 21, 22, 23, 24, 25, 26, 28, 29, 30, 31, 32], "ha": [0, 1, 8, 14, 15, 16, 20, 21, 29, 30, 31, 32], "defin": [0, 4, 8, 9, 14, 15, 16, 17, 21, 25, 26, 27, 29], "commun": [0, 3, 7, 10, 11, 12, 16, 17, 19, 22, 23, 24, 27, 30], "As": [0, 4, 8, 10, 15, 21, 23, 24, 27, 29, 31], "hint": 0, "name": [0, 1, 6, 9, 10, 11, 12, 14, 17, 23, 25, 31, 32], "those": [0, 1, 3, 4, 6, 8, 9, 10, 11, 12, 14, 15, 17, 19, 21, 22, 25, 26, 27, 29, 30, 31], "provid": [0, 3, 4, 5, 6, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 19, 22, 23, 25, 27, 28, 29, 30, 32], "requir": [0, 1, 2, 4, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16, 18, 19, 20, 25, 27, 29, 31, 32], "valid": [0, 4, 14, 15, 16, 20, 21, 25], "check": [0, 14, 16, 31, 32], "keep": 0, "registri": [0, 30], "current": [0, 1, 3, 8, 13, 14, 15, 16, 17, 22, 23, 24, 25, 27, 29, 30, 31, 32], "user": [0, 1, 3, 4, 6, 8, 9, 14, 15, 18, 19, 21, 22, 25, 26, 27, 31, 33], "particip": [0, 3, 4, 8, 15, 21, 22, 25, 26, 27, 30, 31], "devic": [0, 3, 7, 8, 10, 11, 12, 15, 21, 22, 25, 26, 27, 30, 31], "see": [0, 1, 4, 7, 8, 10, 11, 12, 13, 14, 16, 17, 21, 24, 27, 29, 31], "authent": [0, 4, 6, 19, 21, 29, 31], "further": [0, 4, 12, 16, 26], "avail": [0, 3, 6, 8, 9, 10, 14, 15, 16, 22, 23, 24, 25, 27, 28, 29, 30, 31, 32, 33], "type": [0, 1, 8, 9, 13, 15, 16, 17, 21, 23, 26, 27, 29, 30, 31, 32], "sequenc": [0, 17], "put": [0, 1, 4, 6, 9, 12, 18, 25, 31], "variou": [0, 1, 4, 7, 8, 14, 15, 17, 18, 20, 25, 26, 29, 30, 31], "platform": [0, 4, 7, 8, 13, 17, 24, 27, 33], "It": [0, 1, 9, 13, 14, 16, 18, 20, 24, 25, 27, 30, 33], "charg": 0, "gener": [0, 1, 4, 6, 7, 8, 9, 10, 11, 12, 16, 19], "temporari": 0, "token": [0, 4, 23, 31, 32], "mechan": [0, 13, 15, 17, 19, 21, 26, 29], "invalid": [0, 15, 32], "them": [0, 1, 4, 6, 8, 12, 14, 26, 29, 32], "thei": [0, 4, 8, 16, 18, 23, 28, 29], "expir": [0, 16], "state": [0, 14, 17], "onlin": [0, 4, 6, 15, 16, 17, 29, 30, 32], "busi": [0, 17, 30, 32], "statu": [0, 15, 17, 27, 30, 32], "By": [0, 1, 4, 8, 10, 14, 15, 18, 20, 23, 24, 27, 33], "subscrib": [0, 9, 13, 21], "publish": [0, 9, 13, 21], "topic": [0, 9, 17], "monitor": [0, 3, 22, 30], "toggl": 0, "also": [0, 2, 3, 4, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 24, 25, 27, 31, 32], "support": [0, 3, 10, 11, 12, 13, 14, 15, 16, 22, 31, 32], "remot": [0, 3, 9, 17, 22], "process": [0, 4, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16, 19, 20, 21, 23, 27, 31], "interfac": [0, 3, 9, 10, 11, 12, 22, 27], "rpc": [0, 17], "queri": [0, 1, 8, 9, 14, 16, 21, 29, 30, 31, 32], "connect": [0, 1, 3, 4, 6, 8, 15, 16, 22, 27, 30], "from": [0, 1, 3, 4, 6, 7, 8, 9, 10, 11, 12, 14, 15, 18, 20, 21, 22, 23, 27, 31, 32], "twist": [0, 3, 21, 22], "engin": [0, 1, 21], "factori": 0, "event": [0, 8, 15, 16, 21, 24, 29, 32], "properli": [0, 4, 10, 11, 12, 14, 15, 25, 27, 31], "handl": [0, 15], "In": [0, 1, 3, 8, 10, 11, 12, 14, 15, 16, 22, 27, 31], "one": [0, 8, 13, 14, 15, 17, 20, 24, 27, 31, 32], "wai": [0, 3, 4, 6, 8, 12, 14, 15, 16, 17, 19, 22, 25], "channel": [0, 17, 21], "send": [0, 14, 15, 16, 17, 21, 23, 27, 32], "messag": [0, 7, 15, 16, 20, 21, 27, 30], "flask": [0, 3, 18, 19, 20, 22, 31], "web": [0, 3, 4, 7, 8, 19, 20, 22, 31], "framework": [0, 3, 19, 22, 25, 27], "request": [0, 4, 6, 8, 9, 13, 14, 15, 20, 21, 27, 29, 32], "updat": [0, 4, 8, 11, 14, 15, 17, 18, 20, 23, 27, 29, 30, 31, 32], "scheme": [0, 16, 31], "restrict": [0, 16, 32], "depend": [0, 6, 8, 14, 15, 16, 18, 21, 23, 25, 26, 29, 30, 31], "return": [0, 8, 15, 16, 21, 30, 31, 32], "valu": [0, 1, 6, 8, 9, 15, 16, 18, 20, 25, 31, 32], "either": [0, 6, 8, 14, 15, 26, 32], "filter": [0, 4, 8, 14, 21, 29, 31, 32], "includ": [0, 1, 3, 6, 8, 10, 11, 12, 14, 16, 22, 24, 26, 27, 31, 32, 33], "onli": [0, 1, 3, 4, 6, 8, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 21, 22, 23, 26, 27, 29, 30, 31, 32], "item": [0, 32], "deni": [0, 16], "object": [0, 14, 16, 17, 18, 20, 21, 29, 30, 31, 32], "function": [0, 8, 16, 18, 20, 27], "ensur": [0, 1, 6, 8, 12, 14, 18, 21, 27, 31], "build": [0, 8, 10, 11, 12, 13, 19], "an": [0, 1, 3, 4, 8, 9, 11, 12, 14, 15, 16, 17, 18, 20, 21, 22, 26, 27, 29, 30, 31, 32, 33], "appropri": [0, 6, 8, 13, 16, 23, 27, 31], "so": [0, 6, 8, 18, 19, 20, 30, 32], "level": [0, 8, 16, 17, 24, 29, 30], "structur": [0, 3, 9, 10, 11, 12, 15, 22, 27], "wrap": [0, 17], "set": [0, 1, 6, 9, 10, 11, 12, 14, 16, 18, 20, 23, 27, 31, 32], "up": [0, 6, 9, 10, 11, 12, 13, 14, 16, 31], "protocol": [0, 17, 21], "launch": [0, 9, 12, 23, 24, 27, 33], "automat": [0, 6, 8, 9, 16, 20, 21, 23, 24, 27, 29, 31], "stand": [0, 7, 8, 19], "alon": [0, 7, 8, 19], "featur": [0, 3, 8, 18, 22, 25, 28, 31], "share": [0, 8, 9], "serv": [0, 18, 19, 31], "purpos": [0, 1, 4, 14, 15, 16, 17, 31], "run": [0, 1, 4, 6, 8, 9, 15, 20, 23, 24, 27, 33], "separ": [0, 1, 4, 16, 25, 31], "between": [0, 3, 4, 8, 13, 15, 17, 22, 31, 32], "done": [0, 3, 4, 6, 10, 11, 12, 15, 16, 20, 22, 29, 31], "upload": [0, 32], "download": [0, 6, 9, 10, 11, 12, 32, 33], "within": [0, 21], "allow": [0, 3, 4, 8, 9, 13, 14, 15, 16, 17, 19, 21, 22, 25, 26, 27, 31, 32], "central": [0, 24, 30], "repositori": [0, 10, 17, 23], "while": [0, 1, 3, 4, 8, 10, 11, 12, 13, 15, 16, 17, 18, 19, 20, 21, 22, 23, 27, 29], "implement": [0, 4, 8, 14, 15, 16, 17, 23, 25, 26, 27, 30, 31, 32], "storag": [0, 4, 8, 13], "index": [0, 1, 32], "quickli": 0, "reus": [0, 3, 17, 22], "act": [0, 4, 24, 30], "everi": [0, 8, 12, 16, 18, 31], "interact": [0, 8, 9, 18, 19, 31], "mani": [0, 4, 14, 19, 32], "might": [0, 1, 4, 8, 9, 16, 19, 27, 31], "videoconferenc": [0, 4, 26], "applic": [0, 3, 8, 9, 16, 20, 22, 23, 31, 32], "webrtc": [0, 3, 4, 6, 7, 22], "adapt": [0, 3, 22, 26, 27], "rehabilit": [0, 3, 22, 25, 27], "session": [0, 3, 8, 15, 21, 22, 23, 26, 27, 29, 30, 32], "usag": [0, 3, 22, 27], "node": [0, 3, 10, 11, 12, 22, 27], "j": [0, 3, 10, 11, 12, 22, 27], "easyrtc": [0, 6, 7, 10, 11, 12, 27], "built": [0, 3, 4, 12, 22], "extens": [0, 25], "onto": 0, "which": [0, 1, 3, 8, 14, 15, 18, 19, 22, 23, 25, 27, 29, 30, 31, 32], "address": [0, 3, 4, 6, 17, 22, 25], "ad": [0, 4, 8, 14, 18, 27, 32], "For": [0, 1, 8, 9, 15, 16, 23, 27, 29, 31, 32], "list": [0, 6, 8, 14, 15, 21, 27, 29, 30, 31, 32], "relat": [0, 2, 8, 14, 18, 20, 29, 30, 31, 32], "creat": [0, 1, 4, 6, 7, 8, 9, 14, 17, 23, 25, 26, 27, 29, 31, 32], "new": [0, 4, 7, 8, 9, 16, 18, 25, 26, 27, 31, 32], "creation": [0, 26, 31], "whether": [0, 8, 19], "front": [0, 8, 19, 23, 24], "end": [0, 4, 8, 10, 11, 12, 14, 16, 19, 20, 23, 24, 31, 32], "compil": [0, 9], "nginx": [0, 4, 7, 9, 13, 23, 27], "router": [0, 4, 10, 11, 12, 23, 27], "expos": [0, 13, 15, 19, 26, 27, 29, 31], "singl": [0, 4, 9, 10, 11, 12, 17, 26, 31], "port": [0, 1, 4, 6, 9, 12, 13, 19], "encrypt": [0, 1, 4, 6, 16, 21], "certif": [0, 1, 7, 9, 10, 11, 12, 21, 31, 32], "secur": [0, 3, 6, 9, 16, 22, 27, 31, 32], "rout": [0, 1, 10, 11, 12, 27], "teraserv": [1, 6, 9, 10, 11, 12, 19, 20, 26, 28, 29], "associ": [1, 8, 20, 21, 29, 30, 32], "config": [1, 7, 8, 9, 10, 12, 19, 25, 32], "detail": [1, 3, 22, 32], "2": [1, 3, 9, 10, 11, 12, 16, 22, 23, 29, 30, 32], "json": [1, 6, 8, 9, 14, 15, 25, 27, 30, 31, 32], "format": [1, 8, 14, 15, 21, 25, 27, 30, 31], "differ": [1, 3, 4, 6, 8, 10, 11, 12, 15, 21, 22, 24, 26, 27, 33], "paramet": [1, 6, 8, 16, 21, 31, 32], "displai": [1, 7, 8, 14, 18, 23, 24, 31, 33], "On": [1, 8, 10, 11, 12, 26], "deploi": [1, 7, 16, 18, 25], "should": [1, 4, 6, 8, 9, 10, 11, 12, 14, 15, 16, 18, 19, 25, 27, 28, 31, 32], "dn": [1, 6], "hostnam": [1, 6, 27], "listen": [1, 4, 6, 19, 23, 24, 27, 33], "unless": [1, 4, 6, 16, 25], "multipl": [1, 8, 9, 13, 14, 16, 17], "left": [1, 6, 10, 11, 12, 17], "localhost": [1, 9, 10, 11, 12], "127": [1, 23, 24, 27, 31, 33], "0": [1, 3, 9, 22, 23, 24, 27, 31, 32, 33], "1": [1, 10, 11, 12, 14, 16, 23, 24, 27, 29, 31, 33], "extern": [1, 6, 7, 12, 13, 15, 17, 18, 27, 32], "respond": 1, "veri": [1, 4, 8, 10, 11, 12, 28, 31], "place": [1, 4, 16], "chang": [1, 4, 6, 9, 10, 11, 12, 14, 15, 17, 18, 20, 27, 29, 31], "default": [1, 6, 8, 9, 10, 11, 12, 14, 20, 21, 25, 31, 32], "4040": [1, 33], "ssl_path": 1, "path": [1, 6, 10, 12, 18, 20, 23, 27], "where": [1, 3, 4, 15, 16, 22, 29], "ssl": [1, 16, 21, 23, 24, 27, 33], "store": [1, 3, 4, 7, 8, 9, 11, 14, 15, 16, 22, 23, 25, 26], "folder": [1, 6, 8, 10, 11, 12, 14, 18, 19, 20], "local": [1, 4, 18, 19, 20, 27, 31], "debug_mod": 1, "true": [1, 4, 9], "verbos": 1, "sql": [1, 8, 13], "rest": [1, 16, 19, 21, 29, 30, 33], "api": [1, 7, 8, 9, 14, 15, 18, 19, 20, 21, 25, 29, 30, 33], "enable_doc": 1, "document": [1, 6, 7, 9, 15, 18, 21, 23, 24, 33], "doc": [1, 3, 7, 9, 22, 23, 24, 31, 33], "page": [1, 4, 7, 10, 11, 12, 23, 24, 31, 33], "locat": [1, 6, 18, 31], "http": [1, 3, 6, 9, 10, 11, 12, 22, 23, 24, 27, 31, 32, 33], "server_url": 1, "recommend": [1, 2, 6, 10, 11, 12, 13, 15, 16, 18], "fals": [1, 16], "product": [1, 4, 5, 9, 18], "still": [1, 16, 18, 29], "deprec": 1, "remov": [1, 6, 8, 32], "soon": 1, "alreadi": [1, 11, 32], "db_type": 1, "unus": 1, "sinc": [1, 4, 8, 16, 17, 19, 27, 29, 31], "postgresql": [1, 3, 8, 9, 13, 22], "right": [1, 9, 10, 11, 12, 18, 32], "now": [1, 10, 11, 12, 15, 17, 27, 29, 31, 32], "except": [1, 4, 28], "unit": [1, 3, 6, 7, 8, 22], "test": [1, 2, 7, 8, 9, 14, 24, 31, 33], "sqllite": [1, 18], "modul": [1, 4, 7, 8, 13, 16, 21, 24, 29, 31, 33], "url": [1, 4, 9, 14, 16, 19, 21, 31, 32], "typic": [1, 4, 6, 8, 14, 15, 25, 29], "5432": 1, "usernam": [1, 12, 16, 32], "password": [1, 6, 9, 10, 11, 12, 14, 16, 32], "pleas": [1, 12, 32, 33], "full": [1, 4, 6, 9, 16, 18, 23, 31, 32], "error": [1, 24, 27, 32], "occur": [1, 4, 13, 15, 16, 17, 20, 21, 27, 31, 32], "deploy": [1, 3, 22, 27], "instruct": [1, 6, 10, 11, 13], "how": [1, 21, 27], "initi": [1, 6, 16, 18, 31], "host": [1, 4, 6, 9], "scenario": 1, "6379": 1, "db": 1, "empti": [1, 14, 32], "mean": [1, 31], "split": 1, "contain": [1, 7, 8, 9, 14, 16, 17, 19, 20, 23, 27, 30, 31, 32], "usual": [1, 8, 19, 31], "howev": [1, 10, 11, 12, 18, 20, 23, 24, 27], "element": [1, 4, 14, 32], "interest": 1, "40075": [1, 9, 10, 11, 12, 23, 27, 31, 33], "could": [1, 3, 4, 8, 10, 11, 12, 13, 14, 15, 17, 20, 22, 23, 25, 27, 31], "anyth": [1, 14, 24], "keyword": [1, 20], "ssl_certif": [1, 6], "ssl_certificate_kei": [1, 6], "ssl_client_certif": [1, 6], "match": [1, 4, 32], "your": [1, 3, 5, 6, 10, 11, 12, 13, 19, 22], "rule": [1, 6, 27], "system": [1, 2, 6, 7, 8, 9, 10, 11, 12, 13, 15, 16, 18, 21, 23, 24, 26, 27, 28, 29, 30, 31, 32, 33], "you": [1, 5, 6, 9, 10, 11, 12, 13, 19, 23], "adjust": [1, 6, 8, 10, 11, 12, 19], "yourself": [1, 10, 11, 12], "accord": [1, 6, 21, 25, 29], "subsect": 1, "self": [1, 4, 9, 10, 11, 12, 17, 21, 29, 32], "explanatori": [1, 17], "easi": [1, 3, 12, 22, 31], "understand": [1, 9], "docker": [2, 7, 13], "compos": [2, 8, 13, 14], "opentera": [2, 4, 7, 8, 13, 14, 15, 16, 18, 19, 20, 21, 23, 24, 27, 28, 29, 31, 32, 33], "develop": [2, 3, 4, 7, 8, 18, 19, 22, 25, 27, 31], "nativ": [2, 3, 22], "instal": [2, 8], "linux": [2, 7, 13], "possibl": [2, 3, 4, 9, 14, 16, 18, 20, 22, 32, 33], "knowledg": 2, "tool": [2, 3, 6, 7, 9, 10, 11, 12, 13, 20, 22], "micro": [3, 22, 25, 31], "servic": [3, 4, 7, 8, 9, 13, 18, 20, 21, 22, 31], "backend": [3, 10, 11, 12, 13, 22], "primarili": [3, 22], "research": [3, 4, 22], "focus": [3, 22], "year": [3, 22], "field": [3, 4, 8, 14, 17, 20, 22, 29, 32], "common": [3, 7, 8, 13, 17, 22, 25, 31], "emerg": [3, 22], "data": [3, 4, 7, 8, 9, 14, 15, 18, 19, 21, 22, 23, 31, 32], "eas": [3, 4, 8, 10, 11, 12, 14, 15, 19, 20, 22], "analysi": [3, 8, 22], "ecolog": [3, 22], "captur": [3, 22], "collect": [3, 8, 22], "laboratori": [3, 22], "control": [3, 8, 22, 27, 31], "environ": [3, 4, 7, 13, 22, 23, 27, 30], "home": [3, 6, 12, 22], "dashboard": [3, 22], "much": [3, 22], "wa": [3, 4, 8, 10, 11, 12, 14, 15, 17, 20, 22, 27, 29, 30, 31], "befor": [3, 4, 6, 10, 11, 12, 14, 16, 18, 22, 27, 31, 32], "reduc": [3, 22], "time": [3, 4, 8, 9, 10, 11, 12, 14, 15, 21, 22, 30, 31, 32], "transfer": [3, 4, 6, 10, 11, 12, 22, 25, 28], "To": [3, 8, 10, 11, 12, 14, 16, 18, 19, 21, 22, 23, 27, 31, 32], "design": [3, 4, 8, 16, 18, 22], "architectur": [3, 7, 19, 22, 25, 26, 31], "recogn": [3, 22], "best": [3, 22], "practic": [3, 22], "introlab": [3, 6, 10, 11, 12, 22], "github": [3, 5, 6, 9, 10, 11, 12, 18, 22], "io": [3, 22], "its": [3, 8, 9, 10, 11, 12, 16, 18, 20, 22, 23, 25, 26, 27, 29, 32], "essenc": [3, 22], "With": [3, 9, 22, 32], "tailor": [3, 22], "limit": [3, 4, 8, 16, 22, 26, 27, 29, 31, 32], "appli": [3, 19, 22, 27], "clinician": [3, 22], "have": [3, 4, 6, 8, 9, 10, 11, 12, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 25, 26, 29, 31, 32], "patient": [3, 4, 22], "Such": [3, 4, 22], "tele": [3, 22], "rehabilib": [3, 22], "physic": [3, 4, 6, 8, 22], "social": [3, 22], "mental": [3, 22], "oper": [3, 4, 8, 9, 14, 22, 31], "activ": [3, 22, 27, 30], "sever": [3, 9, 22], "site": [3, 6, 8, 22, 25, 29, 31, 32], "group": [3, 6, 8, 10, 11, 12, 22, 26, 29, 32], "asset": [3, 7, 8, 22, 23, 25, 27, 29, 32], "manner": [3, 22], "we": [3, 9, 22, 27], "qt": [3, 13, 22], "openteraplu": [3, 10, 11, 12, 22, 33], "under": [3, 10, 11, 12, 22], "futur": [3, 22, 27, 29], "ani": [3, 4, 8, 10, 11, 12, 13, 14, 15, 16, 17, 19, 20, 22, 23, 25, 27, 29, 30, 31, 32], "cloud": [3, 22], "dedic": [3, 22], "embed": [3, 22], "raspberri": [3, 22], "pi": [3, 22], "aw": [3, 22], "azur": [3, 22], "elderli": [3, 22], "client": [3, 4, 7, 8, 14, 16, 17, 21, 22, 25, 27, 31, 33], "better": [3, 22, 31], "collabor": [3, 22], "dissemin": [3, 22], "code": [3, 6, 8, 10, 11, 12, 20, 22, 27, 30, 31, 32], "inter": [3, 16, 22], "actimetri": [3, 22], "watch": [3, 22], "portabl": [3, 20, 22], "videoconfer": [3, 22], "desk": [3, 22], "visual": [3, 8, 22], "form": [3, 8, 22, 23, 27, 29, 31, 32], "openimu": [3, 22], "minilogg": [3, 22], "inerti": [3, 22], "measur": [3, 22], "agewel": [3, 22], "smart": [3, 22], "movit": [3, 22], "presenc": [3, 22], "assist": [3, 22], "peopl": [3, 22], "mobil": [3, 22], "power": [3, 22], "wheelchair": [3, 22], "instrument": [3, 22], "welcom": [3, 4, 22], "effort": [3, 18, 22], "leav": [3, 8, 17, 22], "u": [3, 6, 22], "comment": [3, 15, 22], "report": [3, 8, 22], "issu": [3, 4, 22], "domin": [3, 22, 32], "l\u00e9tourneau": [3, 22], "ing": [3, 22], "m": [3, 22], "sc": [3, 22], "universit\u00e9": [3, 22], "de": [3, 22], "sherbrook": [3, 22], "doumdi": [3, 22], "simon": [3, 22], "bri\u00e8r": [3, 22], "cdrv": [3, 22], "sbrier": [3, 22], "fran\u00e7oi": [3, 22], "michaud": [3, 22], "ph": [3, 22], "d": [3, 6, 22], "michel": [3, 22], "tousign": [3, 22], "pht": [3, 22], "philipp": [3, 22], "arsenault": [3, 22], "c\u00e9dric": [3, 22], "godin": [3, 22], "marc": [3, 22], "antoin": [3, 22], "maheux": [3, 22], "cynthia": [3, 22], "vilanova": [3, 22], "et": [3, 22], "al": [3, 22], "journal": [3, 22], "vol": [3, 22], "8": [3, 10, 11, 12, 22], "91": [3, 22], "p": [3, 12, 22], "5497": [3, 22], "2023": [3, 22], "panchea": [3, 22], "microservic": [3, 22], "solut": [3, 22, 25], "rapid": [3, 22], "prototyp": [3, 22], "covid": [3, 22], "19": [3, 22], "challeng": [3, 22], "care": [3, 22, 32], "facil": [3, 22], "health": [3, 22], "technol": [3, 22], "12": [3, 22], "583": [3, 22], "596": [3, 22], "2022": [3, 22], "apach": [3, 22], "desktop": [3, 12, 22], "webport": [3, 22], "librari": [3, 8, 22, 23], "ro": [3, 22], "teleoper": [3, 22], "frontend": [3, 22], "technologi": [3, 13, 22], "3": [3, 6, 10, 11, 12, 22, 29], "psfl": [3, 22], "bsd": [3, 22], "like": [3, 9, 10, 11, 12, 13, 22, 29], "redi": [3, 13, 15, 18, 22], "txredisapi": [3, 22], "sqlalchemi": [3, 8, 22], "mit": [3, 22], "consider": 4, "isn": [4, 10, 32], "t": [4, 6, 8, 10, 11, 12, 14, 15, 16, 19, 27, 29, 30, 31, 32], "meant": 4, "electron": 4, "medic": 4, "record": [4, 8, 24], "emr": 4, "first": [4, 9, 10, 11, 12, 14], "exchang": [4, 15, 19], "nowadai": 4, "telehealth": 4, "profession": 4, "involv": [4, 8, 29], "brief": 4, "overview": [4, 8, 25], "been": [4, 10, 11, 12, 15, 16, 20, 21], "section": [4, 6, 9, 10, 11, 12, 13, 25], "sensit": 4, "part": [4, 7, 8, 12, 14, 17, 18, 23, 31, 32], "furthermor": [4, 14], "out": [4, 8, 14, 15, 16, 17, 31], "cannot": [4, 28, 31, 33], "doesn": [4, 8, 12, 16, 19, 27, 29, 32], "side": [4, 10, 11, 12, 14], "prevent": [4, 6, 8, 15, 18, 31], "even": [4, 8, 16, 18, 31], "against": [4, 31], "tamper": 4, "static": [4, 7, 15, 16, 31], "dynam": [4, 14, 15, 16, 27, 31], "thu": [4, 8, 13, 15, 16, 29, 31], "case": [4, 8, 15, 16, 25, 26, 29, 31], "breach": 4, "easili": [4, 31], "minim": [4, 31, 32], "impact": [4, 18], "point": [4, 6, 14], "entri": [4, 8, 14, 29], "maintain": [4, 13], "mainten": 4, "without": [4, 8, 9, 12, 16, 17, 19, 20, 32, 33], "individu": [4, 9, 31], "special": [4, 14], "sign": [4, 7, 9, 10, 11, 12, 16], "setup": [4, 6, 18, 25], "author": [4, 15, 16, 23], "most": [4, 14, 31, 32], "browser": [4, 9, 10, 11, 12, 20, 27], "refus": 4, "accept": [4, 9, 20], "over": [4, 13, 16, 17], "same": [4, 6, 8, 12, 15, 16, 17, 18, 27, 29, 31, 32], "abov": [4, 8, 10, 11, 12, 15, 16], "60": [4, 16, 21], "second": [4, 8, 16, 21], "close": [4, 6, 16, 21], "ti": [4, 25], "id": [4, 8, 10, 11, 12, 13, 14, 15, 18, 25, 27, 31, 32], "anoth": [4, 7, 8, 15, 17, 18, 27, 32], "particular": [4, 8, 14, 29], "layer": [4, 8], "peer": 4, "audio": [4, 14], "transit": 4, "third": [4, 12], "parti": [4, 12], "signal": [4, 27], "rare": 4, "turn": 4, "relai": [4, 6], "would": [4, 10, 11, 12, 14, 16, 18, 31], "kei": [4, 6, 14, 15, 20, 23, 30, 31, 32], "decrypt": 4, "There": [4, 6, 8, 12, 16, 19, 31], "singular": 4, "room": 4, "similar": [4, 8, 16, 23, 24, 27], "concept": [4, 16], "leak": [4, 31], "know": [4, 15, 16], "invit": [4, 17], "sent": [4, 8, 14, 15, 16, 17, 21, 27], "join": [4, 8, 17, 31], "imposs": 4, "what": [4, 15, 29, 31], "": [4, 6, 12, 15, 17, 18, 19, 31, 32], "go": [4, 9, 17], "oppos": 4, "link": [4, 6, 7, 8, 12, 14, 26, 27, 29, 32], "meet": [4, 8], "advanc": 4, "invite": [4, 8, 27], "log": [4, 6, 10, 11, 12, 16, 17, 23, 25, 28, 29, 31, 32], "receiv": [4, 8, 15, 16, 17, 21, 32], "make": [4, 6, 8, 9, 10, 11, 12, 14, 16, 17, 20, 23, 31], "volatil": 4, "last": 4, "effect": 4, "variabl": [4, 9, 15, 23], "rehab": [4, 7, 27], "128": 4, "bit": 4, "uniqu": [4, 17, 25, 32], "hacker": 4, "try": [4, 17], "combin": [4, 14, 31, 32], "fact": [4, 16], "ongo": 4, "lot": 4, "comput": [4, 8, 14], "resourc": 4, "hack": 4, "lucki": 4, "And": 4, "improb": 4, "happen": [4, 8, 15], "just": [4, 12], "anew": 4, "approach": [4, 31], "databas": [4, 6, 7, 13, 14, 15, 16, 17, 18, 25, 26, 27, 29, 31, 32], "file": [4, 7, 8, 9, 10, 11, 12, 15, 19, 20, 24, 25, 27, 28, 33], "If": [4, 6, 8, 9, 10, 11, 12, 14, 15, 16, 18, 19, 21, 23, 27, 30, 32], "high": [4, 8], "exampl": [4, 6, 7, 8, 9, 10, 11, 12, 15, 16, 18, 19, 25, 26, 27, 29, 30, 31], "becom": 4, "compromis": 4, "load": [4, 10, 11, 12, 13, 27, 32], "balanc": [4, 13], "redund": 4, "never": [4, 25], "perfect": 4, "potenti": [4, 15], "complet": [5, 15, 31], "sampl": [5, 7, 9], "modifi": [5, 14, 18, 19, 29, 32], "fit": 5, "suppos": 6, "ubuntu": [6, 13], "20": 6, "04": 6, "virtual": [6, 10, 11, 12], "machin": [6, 8, 9], "packag": [6, 10, 16, 19, 23], "sudo": [6, 10], "apt": [6, 10], "get": [6, 13, 16, 21, 32], "postgr": [6, 9], "psql": 6, "alter": 6, "typethepasswordher": 6, "option": [6, 7, 8, 10, 11, 12, 16, 18, 19, 26, 27], "pgadmin": [6, 10, 11, 12], "instanc": [6, 10, 11, 12, 15, 18], "ssh": 6, "tunnel": 6, "teraag": [6, 10, 11, 12], "choic": [6, 13, 19], "WITH": 6, "typeuserpasswordher": 6, "assign": [6, 8, 19, 29, 31], "owner": [6, 10, 11, 12], "openterafil": [6, 10, 11, 12], "openteralog": [6, 10, 11, 12], "don": [6, 10, 11, 12, 29, 32], "forget": [6, 10, 11, 12], "quit": [6, 12, 16, 17, 29], "consol": [6, 10, 11, 12, 18], "q": 6, "strongli": 6, "nano": 6, "etc": [6, 8], "conf": [6, 12], "edit": [6, 8, 14, 32], "line": [6, 9, 10, 11, 12, 14], "requirepass": 6, "save": [6, 10, 11, 12, 32], "restart": 6, "systemctl": 6, "execut": [6, 8, 10, 11, 12, 15, 18, 27], "conda": 6, "init": 6, "command": [6, 9, 10, 11, 12, 18, 27], "shell": [6, 10, 11], "again": [6, 9, 10, 11, 12, 14, 21], "git": [6, 9, 12], "cmake": [6, 9, 12, 13, 20], "g": [6, 32], "nodej": 6, "npm": [6, 10, 11, 12], "proce": [6, 9, 16], "fetch": 6, "submodul": [6, 12], "clone": [6, 9, 10, 11, 12], "recurs": [6, 7, 10, 11, 12], "com": [6, 9, 10, 11, 12], "cd": [6, 10, 11, 12], "videorehab": [6, 8, 10, 11, 12, 25, 28], "few": [6, 8, 18], "correct": [6, 10, 11, 12, 16, 19, 21, 27, 31], "ve": 6, "previous": [6, 23], "teraserverconfig": 6, "ini": 6, "shouldn": 6, "noth": 6, "filetransferservic": [6, 23], "loggingservic": [6, 24], "videorehabservic": [6, 27], "sure": [6, 10, 11, 12, 23], "copi": [6, 9, 14], "external_servic": 6, "baseus": 6, "enabl": [6, 16, 21, 28, 31, 32, 33], "symbol": 6, "ln": 6, "80": 6, "rm": 6, "TO": 6, "after": [6, 16, 18, 32], "reboot": 6, "systemd": 6, "lib": 6, "content": [6, 17, 31], "descript": [6, 9, 32], "openteraserv": [6, 9], "network": [6, 9], "target": [6, 10, 11, 12, 20], "THE": 6, "pythonpath": 6, "execstart": 6, "env": [6, 7, 10, 11, 12], "11": 6, "bin": 6, "python3": 6, "workingdirectori": 6, "standardoutput": 6, "syslog": 6, "standarderror": 6, "alwai": [6, 8, 15, 16, 18, 21, 29], "restartsec": 6, "10": [6, 13, 21, 31], "killmod": 6, "killsign": 6, "sigint": 6, "wantedbi": 6, "multi": [6, 9, 14], "step": [6, 10, 11, 12], "googl": 6, "simpl": [6, 9, 12, 17], "coturn": 6, "work": [6, 10, 11, 12, 16, 31], "ones": [6, 8, 18, 31], "firewal": 6, "tl": 6, "5349": 6, "ip": 6, "replac": [6, 8, 10, 11, 12, 32], "x": 6, "min": 6, "max": 6, "udp": 6, "49152": 6, "65535": 6, "protect": 6, "recommand": 6, "lt": 6, "cred": 6, "mech": 6, "turnadmin": 6, "realm": 6, "someth": [6, 15, 19], "els": [6, 19], "cert": 6, "public": [6, 19], "privat": 6, "certbot": 6, "agent": 6, "plugin": 6, "standalon": [6, 25], "your_host_nam": 6, "logic": [7, 8, 14], "organ": [7, 8, 14], "At": [7, 9, 14, 32], "ye": 7, "video": [7, 8, 14, 25, 27], "subsystem": 7, "alemb": [7, 8], "version": [7, 9, 11, 12, 32, 33], "upgrad": [7, 8], "txt": 7, "Will": [7, 23, 24, 32, 33], "hold": 7, "some": [7, 8, 12, 13, 15, 16, 17, 18, 19, 20, 26, 32], "class": [7, 15, 16, 18, 21], "model": [7, 16, 17, 18, 25, 26, 27, 29, 31], "templat": 7, "about": [7, 8, 9, 10, 11, 12, 16, 32, 33], "import": [7, 12, 16, 19, 23, 27], "translat": [7, 10, 11, 12, 13, 14], "core": [8, 15, 18, 19, 20, 25, 29, 33], "establish": [8, 16, 27, 30], "relationship": [8, 26, 32], "imag": [8, 9], "show": [8, 10, 11, 12, 29], "4": [8, 10, 11, 12, 29, 31], "consid": [8, 12, 18, 25], "who": [8, 15, 17, 32], "almost": 8, "Their": 8, "sensor": 8, "robot": 8, "feed": 8, "subtyp": [8, 32], "categor": 8, "behavior": [8, 32], "pictur": 8, "kind": 8, "though": [8, 10, 11, 12, 27, 31], "result": [8, 10, 11, 12, 32], "stop": [8, 12, 27, 29], "stamp": 8, "timestamp": [8, 30, 32], "team": 8, "sens": [8, 17], "context": [8, 14, 25, 32], "must": [8, 9, 11, 16, 21, 31, 32], "admin": [8, 9, 26, 29, 32], "grant": 8, "hardwar": [8, 25], "camera": 8, "organiz": 8, "whatev": [8, 13], "specifi": [8, 9, 10, 11, 12, 14, 15, 23, 25, 27, 31, 32], "layout": 8, "answer": 8, "question": 8, "attach": [8, 9, 23, 26], "text": [8, 10, 11, 12, 14, 20, 23], "checkbox": [8, 14], "combobox": 8, "higher": 8, "overcom": 8, "lower": [8, 14], "prefer": [8, 32], "mapper": 8, "orm": 8, "underli": [8, 20], "tabl": [8, 9, 29], "manipul": 8, "own": [8, 10, 11, 12, 18, 19, 23, 25, 26, 29, 31, 32], "util": [8, 20], "safe": [8, 16], "regard": [8, 16], "inherit": [8, 18], "That": [8, 10, 11, 12, 16, 25], "helper": [8, 12], "re": [8, 10, 11, 12], "child": 8, "least": [8, 14, 16, 31, 32], "readabl": [8, 20], "to_json": 8, "from_json": 8, "serial": [8, 14, 17, 21], "deseri": 8, "string": [8, 14, 20, 27, 30, 31, 32], "brows": [8, 9], "properti": [8, 31], "ignore_field": 8, "lead": 8, "circular": 8, "refer": [8, 16, 20, 23, 25, 31], "clean_valu": 8, "dict": [8, 27], "get_count": 8, "number": [8, 14, 17, 23, 27, 32], "commit": 8, "insert": 8, "delet": [8, 17, 18, 29, 32], "custom": [8, 27], "identifi": [8, 16, 17, 25], "tera": [8, 10, 11, 12], "t_": 8, "space": [8, 9], "_": 8, "id_": [8, 31], "column": 8, "prefix": 8, "model_nam": 8, "version_id": 8, "basemodel": 8, "previou": [8, 31], "progress": [8, 27], "fail": [8, 18], "integr": [8, 11, 20], "respect": [8, 16, 31], "insid": 8, "detect": [8, 17, 20, 21], "instead": [8, 15, 16, 23, 26, 32], "addit": [8, 26, 30], "restrain": 8, "simplifi": [9, 13], "complex": [9, 13, 26], "yaml": 9, "volum": 9, "easier": [9, 10, 11, 12, 17, 20], "orchestr": 9, "directori": [9, 10, 11, 12, 27], "suit": 9, "enough": [9, 32], "free": 9, "disk": 9, "10gb": 9, "procedur": [9, 11, 12, 17, 23], "administr": 9, "markdown": 9, "assum": 9, "select": [9, 10, 11, 12, 18, 23], "root": [9, 24, 33], "yml": 9, "postgressql": 9, "revers": 9, "proxi": 9, "click": [9, 10, 11, 12, 18, 23], "take": [9, 27, 31], "minut": [9, 31], "mount": 9, "moment": 9, "stage": 9, "congratul": 9, "view": 9, "risk": [9, 16], "give": [9, 32], "caus": 9, "becaus": [9, 18, 27], "gui": 9, "releas": [9, 18], "altern": [9, 10, 11], "want": [9, 15, 23], "add": [9, 17, 19, 23, 24, 26, 27, 31, 32], "decid": [9, 20], "showserv": 9, "logtofil": 9, "friendli": 9, "graphic": 9, "perform": [9, 14, 18], "task": 9, "5433": 9, "connexion": 9, "6380": 9, "favorit": [9, 10], "inspect": 9, "cach": 9, "debugg": 9, "5678": 9, "map": 9, "correspond": [9, 14, 31], "vscode": 9, "intellisens": 9, "learn": 9, "attribut": 9, "hover": 9, "exist": [9, 10, 11, 12, 18, 20, 23, 32, 33], "visit": [9, 11], "microsoft": 9, "fwlink": 9, "linkid": 9, "830387": 9, "pathmap": 9, "localroot": 9, "workspacefold": 9, "pathsepar": 9, "remoteroot": 9, "justmycod": 9, "breakpoint": 9, "abl": [9, 10, 11, 12, 16, 29, 31], "ui": [10, 11, 12, 25, 31], "pycharm": [10, 11, 12, 13, 18], "theori": [10, 11, 12, 13, 15, 27], "editor": [10, 11, 12, 20], "bash": 10, "accordingli": [10, 11, 12, 14, 19, 20], "disabl": [10, 16, 25, 28], "manual": [10, 11, 12, 20, 23], "start_nginx": [10, 11], "sh": [10, 11], "plan": [10, 11, 12], "stabl": [10, 11, 12], "branch": [10, 11, 12], "otherwis": [10, 11, 12, 16, 27, 31, 32], "dev": [10, 11, 12, 13], "tag": [10, 11, 12, 32], "b": [10, 11, 12], "auto": [10, 11, 12], "beforehand": [10, 11, 12, 23], "login": [10, 11, 12, 15, 17, 21, 23, 24, 29, 31, 32], "expand": [10, 11, 12, 18, 32], "enter": [10, 11, 12, 14], "readi": [10, 11, 12], "next": [10, 11, 12], "tree": [10, 11, 12], "fill": [10, 11, 12, 14], "dialog": [10, 11, 12], "definit": [10, 11, 12, 14, 16, 30, 31], "privileg": [10, 11, 12], "repeat": [10, 11, 12], "13": [10, 11, 12], "5": [10, 11, 12], "interpret": [10, 11, 12], "being": [10, 11, 12, 13, 16, 17, 18, 31], "bar": [10, 11, 12], "virtualenv": [10, 11, 12], "tab": [10, 11, 12], "choos": [10, 11, 12], "ex": [10, 12, 23], "look": [10, 11, 12, 31], "6": [10, 11, 12], "createscertif": [10, 11, 12], "were": [10, 11, 12, 27], "window": [10, 13, 16], "went": [10, 11, 12], "well": [10, 11, 12], "latest": 11, "app": 11, "brew": 11, "termin": [11, 17], "osx": 11, "miniconda3": [11, 12], "turtoisegit": 12, "openssl": 12, "light": 12, "suffici": [12, 16], "websit": 12, "me": 12, "c": 12, "cmakefil": 12, "straightforward": 12, "note": [12, 16, 32], "stack": 12, "builder": 12, "extract": [12, 20], "archiv": [12, 17], "nssm": 12, "batch": 12, "bat": 12, "flag": [12, 14, 32], "cross": [13, 18], "languag": [13, 14, 17, 20, 23, 25], "mac": 13, "long": [13, 16, 19], "term": [13, 31], "bring": 13, "ll": 13, "miniconda": 13, "autom": [13, 18], "creator": 13, "alchemi": 13, "mysql": 13, "natur": 13, "made": [13, 15, 16, 18, 21], "suggest": [13, 20], "explicitli": [13, 15, 17], "redirect": [13, 27], "o": 13, "distro": 13, "relev": 14, "teraform": 14, "objecttyp": 14, "help": [14, 15, 18], "label": 14, "_order": 14, "order": [14, 31, 32], "complic": 14, "confirm": 14, "indic": [14, 17, 30, 31, 32], "read_onli": 14, "read": [14, 15, 29], "boolean": [14, 32], "mandatori": [14, 23, 25], "back": [14, 18], "exact": [14, 31], "arrai": [14, 15, 32], "drop": 14, "down": 14, "audioinput": 14, "input": [14, 27, 30, 32], "checklist": 14, "color": 14, "chooser": 14, "datetim": 14, "date": [14, 32], "durat": 14, "hidden": 14, "longtext": 14, "longer": 14, "box": 14, "numer": 14, "decim": 14, "float": [14, 15], "mask": 14, "short": 14, "videoinput": 14, "equat": 14, "find": [14, 31], "op": 14, "equal": 14, "NOT": 14, "null": [14, 32], "compar": 14, "word": 14, "trigger": 14, "hook": 14, "met": 14, "argument": [14, 15], "append": [14, 16, 31], "two": [15, 19], "mode": 15, "non": [15, 23, 24, 27, 33], "block": [15, 19], "until": 15, "repli": [15, 16, 17, 21, 27, 31, 32], "rediscli": 15, "redisclientrpc": 15, "instanti": 15, "write": [15, 20, 29], "conflict": [15, 32], "probabl": [15, 31], "redisvar": 15, "incom": 15, "websocket": [15, 16, 17, 30, 32], "offlin": [15, 17, 32], "debug": 15, "trace": 15, "duplic": 15, "module_nam": 15, "origin": 15, "service_kei": [15, 32], "user_uuid": [15, 30, 32], "device_uuid": [15, 30, 32], "participant_uuid": [15, 30, 32], "mai": [15, 16, 31], "caller": 15, "reason": [15, 31, 32], "rpcmessag": 15, "pars": 15, "forward": 15, "somehow": [15, 31], "wiki": 15, "call_servic": 15, "function_nam": 15, "arg": 15, "bool": [15, 30], "int": [15, 27, 30], "str": [15, 30, 32], "byte": 15, "none": [15, 23, 24], "didn": 15, "through": [15, 17], "credenti": 16, "unencrypt": 16, "header": [16, 17, 20, 23, 32], "obtain": [16, 23], "hour": 16, "refreshtoken": 16, "participant_login_en": [16, 32], "perman": 16, "participant_token_en": [16, 32], "teraparticip": 16, "less": [16, 31], "participant_multi_auth": 16, "login_requir": 16, "decor": 16, "somewher": [16, 32], "teradevic": 16, "device_en": [16, 32], "x509": 16, "csr": [16, 32], "regist": [16, 31, 32], "keystor": 16, "teraservic": [16, 25], "service_en": [16, 32], "wrapper": 16, "pypi": [16, 19], "vari": [16, 31], "littl": 16, "stateless": 16, "asynchron": [16, 23, 24, 27], "summar": 16, "_name": 16, "_uuid": 16, "websocket_url": 16, "with_websocket": [16, 21, 32], "onc": [16, 18, 32], "clean": 16, "buffer": [17, 21], "probuf": 17, "encapsul": [17, 20], "protobuf": [17, 21], "cast": 17, "known": [17, 21], "seq": 17, "dest": 17, "proto": 17, "batteri": [17, 30], "success": [17, 32], "aim": 18, "robust": 18, "pytest": 18, "unittest": 18, "hard": 18, "cover": 18, "situat": 18, "actual": 18, "larger": 18, "scope": [18, 25, 31], "than": [18, 29, 31], "unwant": 18, "encourag": 18, "beyond": [18, 25, 31], "guidelin": 18, "baseuserapitest": 18, "recreat": 18, "rememb": 18, "persist": [18, 30], "unexpect": 18, "larg": 18, "codebas": 18, "qualiti": 18, "modif": 18, "contextu": 18, "menu": 18, "doe": 18, "successfulli": 18, "merg": 18, "impos": 19, "constraint": 19, "technic": [19, 25], "behind": [19, 23], "endpoint": [19, 31, 32], "Of": [19, 29], "cours": [19, 29], "facilit": 19, "necessari": 19, "angular": 19, "react": 19, "babel": 20, "po": 20, "throughout": 20, "textual": 20, "english": 20, "advantag": 20, "dictionari": [20, 21, 27, 30, 31], "disadvantag": 20, "redo": 20, "sub": 20, "en": 20, "fr": 20, "french": 20, "respons": [20, 23], "fallback": 20, "correctli": [20, 32], "pybabel": 20, "gettext": 20, "poedit": 20, "mo": 20, "bidirect": 21, "unidirect": 21, "ping": 21, "transmit": 21, "inact": 21, "badli": [21, 32], "frame": 21, "direct": 21, "usereventmanag": 21, "participanteventmanag": 21, "deviceeventmanag": 21, "uuid": [21, 27, 30, 32], "files_directori": 23, "rel": 23, "4042": 23, "No": [23, 29, 32], "minimum": 23, "asset_nam": 23, "id_sess": [23, 27, 32], "exclud": 23, "payload": 23, "filenam": 23, "rb": 23, "zip": 23, "print": 23, "program": [23, 25], "bodi": [23, 32], "desir": 23, "logger": [24, 29], "attempt": 24, "logev": 24, "4041": 24, "400075": [24, 33], "freedom": 25, "goe": [25, 31], "capabl": 25, "filetransf": 25, "synchron": 25, "conferenc": 25, "teraserviceconfig": 25, "schema": 25, "xxxx": 25, "overriden": 25, "independ": 25, "overrid": 25, "pc": 25, "teraservicerol": 26, "refin": 26, "teraserviceaccess": 26, "teraserviceproject": 26, "Its": 27, "spawn": 27, "isol": 27, "external_port": 27, "reach": 27, "local_base_port": 27, "rang": 27, "max_sess": 27, "maximum": [27, 32], "parallel": 27, "working_directori": 27, "pass": [27, 32], "reli": 27, "4070": 27, "contribut": 27, "overal": 27, "8081": 27, "express": 27, "javascript": 27, "total": 27, "id_creator_us": [27, 32], "id_session_typ": [27, 32], "session_particip": [27, 32], "session_us": [27, 32], "session_devic": [27, 32], "joinsessionreplyev": [27, 30], "reply_cod": 27, "reply_msg": 27, "error_text": 27, "session_url_us": 27, "session_url_particip": 27, "session_url_devic": 27, "ok": [27, 32], "usertyp": 29, "adher": 29, "legend": 29, "certain": 29, "super": [29, 32], "logout": [29, 31, 32], "statist": 29, "resum": 29, "won": [29, 31], "simpler": 29, "similarli": [29, 31], "hasn": 30, "appear": 30, "userev": 30, "deviceev": 30, "participantev": 30, "live": 30, "joinsessionev": 30, "stopsessionev": 30, "leavesessionev": 30, "posit": 30, "online_us": 30, "busy_us": 30, "status_us": 30, "online_particip": 30, "busy_particip": 30, "status_particip": 30, "online_devic": 30, "busy_devic": 30, "status_devic": 30, "update_device_statu": 30, "action": [31, 32], "dump": 31, "everyth": 31, "largest": 31, "struggl": 31, "restx": 31, "swagger": 31, "snapshot": 31, "id_sit": [31, 32], "with_": 31, "convent": 31, "id_project": [31, 32], "project_nam": [31, 32], "octet": [31, 32], "stream": [31, 32], "rate": [31, 32], "per": 31, "mass": 31, "refresh_token": [31, 32], "fly": 31, "post": 32, "secret": 32, "501": 32, "Not": 32, "unabl": 32, "id_asset": 32, "integ": 32, "asset_uuid": 32, "id_devic": 32, "id_particip": 32, "id_us": 32, "service_uuid": 32, "id_creator_servic": 32, "id_creator_particip": 32, "id_creator_devic": 32, "with_url": 32, "info": 32, "with_only_token": 32, "ignor": 32, "200": 32, "400": 32, "bad": 32, "miss": 32, "403": 32, "forbidden": 32, "permiss": 32, "superadmin": 32, "device_certif": 32, "device_config": 32, "device_info": 32, "device_lastonlin": 32, "device_nam": 32, "device_not": 32, "device_onlin": 32, "device_token": 32, "id_device_subtyp": 32, "id_device_typ": 32, "500": 32, "wrong": 32, "alia": 32, "with_particip": 32, "with_sit": 32, "with_statu": 32, "too": 32, "device_particip": 32, "id_device_particip": 32, "Be": 32, "device_project": 32, "id_device_project": 32, "with_project": 32, "with_devic": 32, "device_sit": 32, "id_device_sit": 32, "id_servic": 32, "devicesubtyp": 32, "device_subtyp": 32, "device_subtype_nam": 32, "devicetyp": 32, "device_typ": 32, "device_type_kei": 32, "device_type_nam": 32, "id_device_nam": 32, "tri": 32, "disconnect": 32, "service_config": 32, "session_typ": 32, "session_type_config": 32, "test_typ": 32, "user_group": 32, "subitem": 32, "unknown": 32, "unsupport": 32, "id_participant_group": 32, "participant_group": 32, "participant_group_nam": 32, "id_group": 32, "authentif": 32, "httpauth": 32, "participant_email": 32, "participant_en": 32, "participant_lastonlin": 32, "participant_nam": 32, "participant_password": 32, "participant_token": 32, "participant_usernam": 32, "mismatch": 32, "orderby_rec": 32, "recent": 32, "no_group": 32, "projectaccess": 32, "project_access": 32, "id_user_group": 32, "by_us": 32, "usergroup": 32, "with_empti": 32, "project_descript": 32, "project_en": 32, "refresh": 32, "old": 32, "device_register_kei": 32, "registr": 32, "401": 32, "unauthor": 32, "service_clientendpoint": 32, "service_default_config": 32, "service_editable_config": 32, "service_endpoint": 32, "service_endpoint_devic": 32, "service_endpoint_particip": 32, "service_endpoint_us": 32, "service_hostnam": 32, "service_nam": 32, "service_port": 32, "service_system": 32, "with_config": 32, "id_service_access": 32, "id_service_rol": 32, "service_access": 32, "id_service_config": 32, "service_config_config": 32, "usedwith": 32, "id_specif": 32, "service_project": 32, "with_servic": 32, "with_rol": 32, "oneach": 32, "service_rol": 32, "service_role_nam": 32, "e": 32, "service_sit": 32, "id_service_sit": 32, "session_com": 32, "session_dur": 32, "session_nam": 32, "session_paramet": 32, "session_start_datetim": 32, "session_statu": 32, "session_uuid": 32, "session_participants_id": 32, "session_users_id": 32, "offset": 32, "start_dat": 32, "end_dat": 32, "with_session_typ": 32, "id_session_ev": 32, "session_ev": 32, "id_session_event_typ": 32, "session_event_context": 32, "session_event_datetim": 32, "session_event_text": 32, "session_manag": 32, "sessiontyp": 32, "typeproject": 32, "session_type_categori": 32, "session_type_color": 32, "session_type_nam": 32, "session_type_onlin": 32, "session_type_project": 32, "id_session_type_project": 32, "session_type_sit": 32, "id_session_type_sit": 32, "siteaccess": 32, "site_access": 32, "with_usergroup": 32, "issuperadmin": 32, "site_nam": 32, "stat": 32, "with_warn": 32, "warn": 32, "id_test": 32, "test_uuid": 32, "testtyp": 32, "id_test_typ": 32, "test_type_descript": 32, "test_type_has_json_format": 32, "test_type_has_web_editor": 32, "test_type_has_web_format": 32, "test_type_kei": 32, "test_type_nam": 32, "test_type_uuid": 32, "test_type_project": 32, "id_test_type_project": 32, "with_test_typ": 32, "test_type_sit": 32, "id_test_type_sit": 32, "user_group_nam": 32, "promot": 32, "user_user_group": 32, "user_email": 32, "user_en": 32, "user_firstnam": 32, "user_lastnam": 32, "user_lastonlin": 32, "user_not": 32, "user_password": 32, "user_profil": 32, "user_superadmin": 32, "user_usernam": 32, "409": 32, "taken": 32, "app_tag": 32, "overwritten": 32, "user_prefer": 32, "id_user_prefer": 32, "user_preference_app_tag": 32, "user_preference_prefer": 32, "id_user_user_group": 32, "clientvers": 32, "client_descript": 32, "client_documentation_url": 32, "client_linux_download_url": 32, "client_mac_download_url": 32, "client_nam": 32, "client_vers": 32, "client_windows_download_url": 32, "ofth": 32, "identif": 32, "type_kei": 32, "subtype_nam": 32, "usermanagermodul": 32, "succeed": 32, "from_user_uuid": 32, "from_participant_uuid": 32, "from_device_uuid": 32, "with_us": 32, "with_nam": 32, "with_device_typ": 32, "with_device_subtyp": 32, "with_device_asset": 32, "partial": 32, "serviceaccess": 32, "uuid_servic": 32, "with_base_url": 32, "uuid_sess": 32, "with_ev": 32, "uuid_us": 32, "reset": 32}, "objects": {"": [[32, 0, 1, "get--device-assets", "/device/assets"], [32, 0, 1, "get--device-devices", "/device/devices"], [32, 1, 1, "post--device-devices", "/device/devices"], [32, 0, 1, "get--device-login", "/device/login"], [32, 0, 1, "get--device-logout", "/device/logout"], [32, 0, 1, "get--device-participants", "/device/participants"], [32, 0, 1, "get--device-register", "/device/register"], [32, 1, 1, "post--device-register", "/device/register"], [32, 2, 1, "delete--device-sessions", "/device/sessions"], [32, 0, 1, "get--device-sessions", "/device/sessions"], [32, 1, 1, "post--device-sessions", "/device/sessions"], [32, 2, 1, "delete--device-sessions-events", "/device/sessions/events"], [32, 0, 1, "get--device-sessions-events", "/device/sessions/events"], [32, 1, 1, "post--device-sessions-events", "/device/sessions/events"], [32, 1, 1, "post--device-status", "/device/status"], [32, 0, 1, "get--participant-assets", "/participant/assets"], [32, 0, 1, "get--participant-devices", "/participant/devices"], [32, 0, 1, "get--participant-login", "/participant/login"], [32, 0, 1, "get--participant-logout", "/participant/logout"], [32, 0, 1, "get--participant-participants", "/participant/participants"], [32, 1, 1, "post--participant-participants", "/participant/participants"], [32, 0, 1, "get--participant-refresh_token", "/participant/refresh_token"], [32, 0, 1, "get--participant-sessions", "/participant/sessions"], [32, 1, 1, "post--participant-sessions", "/participant/sessions"], [32, 0, 1, "get--service-access", "/service/access"], [32, 2, 1, "delete--service-assets", "/service/assets"], [32, 0, 1, "get--service-assets", "/service/assets"], [32, 1, 1, "post--service-assets", "/service/assets"], [32, 0, 1, "get--service-devices", "/service/devices"], [32, 1, 1, "post--service-devices", "/service/devices"], [32, 0, 1, "get--service-disconnect", "/service/disconnect"], [32, 2, 1, "delete--service-groups", "/service/groups"], [32, 0, 1, "get--service-groups", "/service/groups"], [32, 1, 1, "post--service-groups", "/service/groups"], [32, 0, 1, "get--service-participants", "/service/participants"], [32, 1, 1, "post--service-participants", "/service/participants"], [32, 2, 1, "delete--service-projects", "/service/projects"], [32, 0, 1, "get--service-projects", "/service/projects"], [32, 1, 1, "post--service-projects", "/service/projects"], [32, 2, 1, "delete--service-roles", "/service/roles"], [32, 0, 1, "get--service-roles", "/service/roles"], [32, 1, 1, "post--service-roles", "/service/roles"], [32, 2, 1, "delete--service-serviceaccess", "/service/serviceaccess"], [32, 0, 1, "get--service-serviceaccess", "/service/serviceaccess"], [32, 1, 1, "post--service-serviceaccess", "/service/serviceaccess"], [32, 0, 1, "get--service-services", "/service/services"], [32, 0, 1, "get--service-sessions", "/service/sessions"], [32, 1, 1, "post--service-sessions", "/service/sessions"], [32, 0, 1, "get--service-sessions-events", "/service/sessions/events"], [32, 1, 1, "post--service-sessions-events", "/service/sessions/events"], [32, 1, 1, "post--service-sessions-manager", "/service/sessions/manager"], [32, 0, 1, "get--service-sessiontypes", "/service/sessiontypes"], [32, 0, 1, "get--service-sites", "/service/sites"], [32, 2, 1, "delete--service-tests", "/service/tests"], [32, 0, 1, "get--service-tests", "/service/tests"], [32, 1, 1, "post--service-tests", "/service/tests"], [32, 2, 1, "delete--service-testtypes", "/service/testtypes"], [32, 0, 1, "get--service-testtypes", "/service/testtypes"], [32, 1, 1, "post--service-testtypes", "/service/testtypes"], [32, 2, 1, "delete--service-testtypes-projects", "/service/testtypes/projects"], [32, 0, 1, "get--service-testtypes-projects", "/service/testtypes/projects"], [32, 1, 1, "post--service-testtypes-projects", "/service/testtypes/projects"], [32, 2, 1, "delete--service-usergroups", "/service/usergroups"], [32, 0, 1, "get--service-usergroups", "/service/usergroups"], [32, 1, 1, "post--service-usergroups", "/service/usergroups"], [32, 0, 1, "get--service-users", "/service/users"], [32, 0, 1, "get--service-users-access", "/service/users/access"], [32, 0, 1, "get--test-database-reset", "/test/database/reset"], [32, 2, 1, "delete--user-assets", "/user/assets"], [32, 0, 1, "get--user-assets", "/user/assets"], [32, 1, 1, "post--user-assets", "/user/assets"], [32, 2, 1, "delete--user-devices", "/user/devices"], [32, 0, 1, "get--user-devices", "/user/devices"], [32, 1, 1, "post--user-devices", "/user/devices"], [32, 0, 1, "get--user-devices-online", "/user/devices/online"], [32, 2, 1, "delete--user-devices-participants", "/user/devices/participants"], [32, 0, 1, "get--user-devices-participants", "/user/devices/participants"], [32, 1, 1, "post--user-devices-participants", "/user/devices/participants"], [32, 2, 1, "delete--user-devices-projects", "/user/devices/projects"], [32, 0, 1, "get--user-devices-projects", "/user/devices/projects"], [32, 1, 1, "post--user-devices-projects", "/user/devices/projects"], [32, 2, 1, "delete--user-devices-sites", "/user/devices/sites"], [32, 0, 1, "get--user-devices-sites", "/user/devices/sites"], [32, 1, 1, "post--user-devices-sites", "/user/devices/sites"], [32, 2, 1, "delete--user-devicesubtypes", "/user/devicesubtypes"], [32, 0, 1, "get--user-devicesubtypes", "/user/devicesubtypes"], [32, 1, 1, "post--user-devicesubtypes", "/user/devicesubtypes"], [32, 2, 1, "delete--user-devicetypes", "/user/devicetypes"], [32, 0, 1, "get--user-devicetypes", "/user/devicetypes"], [32, 1, 1, "post--user-devicetypes", "/user/devicetypes"], [32, 0, 1, "get--user-disconnect", "/user/disconnect"], [32, 0, 1, "get--user-forms", "/user/forms"], [32, 2, 1, "delete--user-groups", "/user/groups"], [32, 0, 1, "get--user-groups", "/user/groups"], [32, 1, 1, "post--user-groups", "/user/groups"], [32, 0, 1, "get--user-login", "/user/login"], [32, 0, 1, "get--user-logout", "/user/logout"], [32, 2, 1, "delete--user-participants", "/user/participants"], [32, 0, 1, "get--user-participants", "/user/participants"], [32, 1, 1, "post--user-participants", "/user/participants"], [32, 0, 1, "get--user-participants-online", "/user/participants/online"], [32, 2, 1, "delete--user-projectaccess", "/user/projectaccess"], [32, 0, 1, "get--user-projectaccess", "/user/projectaccess"], [32, 1, 1, "post--user-projectaccess", "/user/projectaccess"], [32, 2, 1, "delete--user-projects", "/user/projects"], [32, 0, 1, "get--user-projects", "/user/projects"], [32, 1, 1, "post--user-projects", "/user/projects"], [32, 0, 1, "get--user-refresh_token", "/user/refresh_token"], [32, 0, 1, "get--user-server-settings", "/user/server/settings"], [32, 2, 1, "delete--user-services", "/user/services"], [32, 0, 1, "get--user-services", "/user/services"], [32, 1, 1, "post--user-services", "/user/services"], [32, 2, 1, "delete--user-services-access", "/user/services/access"], [32, 0, 1, "get--user-services-access", "/user/services/access"], [32, 1, 1, "post--user-services-access", "/user/services/access"], [32, 2, 1, "delete--user-services-configs", "/user/services/configs"], [32, 0, 1, "get--user-services-configs", "/user/services/configs"], [32, 1, 1, "post--user-services-configs", "/user/services/configs"], [32, 2, 1, "delete--user-services-projects", "/user/services/projects"], [32, 0, 1, "get--user-services-projects", "/user/services/projects"], [32, 1, 1, "post--user-services-projects", "/user/services/projects"], [32, 2, 1, "delete--user-services-roles", "/user/services/roles"], [32, 0, 1, "get--user-services-roles", "/user/services/roles"], [32, 1, 1, "post--user-services-roles", "/user/services/roles"], [32, 2, 1, "delete--user-services-sites", "/user/services/sites"], [32, 0, 1, "get--user-services-sites", "/user/services/sites"], [32, 1, 1, "post--user-services-sites", "/user/services/sites"], [32, 2, 1, "delete--user-sessions", "/user/sessions"], [32, 0, 1, "get--user-sessions", "/user/sessions"], [32, 1, 1, "post--user-sessions", "/user/sessions"], [32, 2, 1, "delete--user-sessions-events", "/user/sessions/events"], [32, 0, 1, "get--user-sessions-events", "/user/sessions/events"], [32, 1, 1, "post--user-sessions-events", "/user/sessions/events"], [32, 1, 1, "post--user-sessions-manager", "/user/sessions/manager"], [32, 2, 1, "delete--user-sessiontypes", "/user/sessiontypes"], [32, 0, 1, "get--user-sessiontypes", "/user/sessiontypes"], [32, 1, 1, "post--user-sessiontypes", "/user/sessiontypes"], [32, 2, 1, "delete--user-sessiontypes-projects", "/user/sessiontypes/projects"], [32, 0, 1, "get--user-sessiontypes-projects", "/user/sessiontypes/projects"], [32, 1, 1, "post--user-sessiontypes-projects", "/user/sessiontypes/projects"], [32, 2, 1, "delete--user-sessiontypes-sites", "/user/sessiontypes/sites"], [32, 0, 1, "get--user-sessiontypes-sites", "/user/sessiontypes/sites"], [32, 1, 1, "post--user-sessiontypes-sites", "/user/sessiontypes/sites"], [32, 2, 1, "delete--user-siteaccess", "/user/siteaccess"], [32, 0, 1, "get--user-siteaccess", "/user/siteaccess"], [32, 1, 1, "post--user-siteaccess", "/user/siteaccess"], [32, 2, 1, "delete--user-sites", "/user/sites"], [32, 0, 1, "get--user-sites", "/user/sites"], [32, 1, 1, "post--user-sites", "/user/sites"], [32, 0, 1, "get--user-stats", "/user/stats"], [32, 2, 1, "delete--user-tests", "/user/tests"], [32, 0, 1, "get--user-tests", "/user/tests"], [32, 1, 1, "post--user-tests", "/user/tests"], [32, 2, 1, "delete--user-testtypes", "/user/testtypes"], [32, 0, 1, "get--user-testtypes", "/user/testtypes"], [32, 1, 1, "post--user-testtypes", "/user/testtypes"], [32, 2, 1, "delete--user-testtypes-projects", "/user/testtypes/projects"], [32, 0, 1, "get--user-testtypes-projects", "/user/testtypes/projects"], [32, 1, 1, "post--user-testtypes-projects", "/user/testtypes/projects"], [32, 2, 1, "delete--user-testtypes-sites", "/user/testtypes/sites"], [32, 0, 1, "get--user-testtypes-sites", "/user/testtypes/sites"], [32, 1, 1, "post--user-testtypes-sites", "/user/testtypes/sites"], [32, 2, 1, "delete--user-usergroups", "/user/usergroups"], [32, 0, 1, "get--user-usergroups", "/user/usergroups"], [32, 1, 1, "post--user-usergroups", "/user/usergroups"], [32, 2, 1, "delete--user-users", "/user/users"], [32, 0, 1, "get--user-users", "/user/users"], [32, 1, 1, "post--user-users", "/user/users"], [32, 0, 1, "get--user-users-online", "/user/users/online"], [32, 0, 1, "get--user-users-preferences", "/user/users/preferences"], [32, 1, 1, "post--user-users-preferences", "/user/users/preferences"], [32, 2, 1, "delete--user-users-usergroups", "/user/users/usergroups"], [32, 0, 1, "get--user-users-usergroups", "/user/users/usergroups"], [32, 1, 1, "post--user-users-usergroups", "/user/users/usergroups"], [32, 0, 1, "get--user-versions", "/user/versions"], [32, 1, 1, "post--user-versions", "/user/versions"]]}, "objtypes": {"0": "http:get", "1": "http:post", "2": "http:delete"}, "objnames": {"0": ["http", "get", "HTTP get"], "1": ["http", "post", "HTTP post"], "2": ["http", "delete", "HTTP delete"]}, "titleterms": {"opentera": [0, 1, 3, 6, 9, 10, 11, 12, 17, 22, 25, 26], "architectur": 0, "overview": 0, "core": [0, 1, 28], "servic": [0, 1, 6, 10, 11, 12, 15, 16, 17, 19, 23, 24, 25, 26, 27, 28, 29, 32, 33], "teraserv": [0, 7, 25, 33], "modul": [0, 15, 17, 30], "login": [0, 4, 16], "usermanag": 0, "websocket": [0, 4, 21], "rest": [0, 23, 24, 27, 31], "api": [0, 16, 23, 24, 27, 31, 32], "databas": [0, 1, 8, 9, 10, 11, 12], "system": [0, 4, 17, 25], "file": [0, 1, 6, 23], "transfer": [0, 23], "log": [0, 24], "videorehab": [0, 27], "extern": 0, "client": [0, 20], "configur": [1, 6, 9, 19, 23, 24, 25, 27, 33], "server": [1, 5, 6, 9, 10, 11, 12], "section": [1, 14, 23, 24, 27], "redi": [1, 6, 9, 10, 11, 12], "nginx": [1, 6, 10, 11, 12, 19], "conf": 1, "deploy": 2, "note": 2, "about": [3, 22], "document": [3, 22, 31, 32], "what": [3, 22], "can": [3, 22], "do": [3, 22], "you": [3, 22], "author": [3, 22], "contributor": [3, 22], "public": [3, 22], "": [3, 22], "video": [3, 4, 22], "telehealth": [3, 22], "platform": [3, 22], "clinic": [3, 22], "softwar": [3, 22], "get": [3, 10, 11, 12, 15, 22, 23, 31], "start": [3, 10, 11, 12, 22, 27], "licens": [3, 22], "relat": [3, 22], "open": [3, 9, 22], "sourc": [3, 7, 22], "project": [3, 22, 26], "gener": [3, 17, 20, 22, 23, 25, 31], "robot": [3, 22], "depend": [3, 22], "secur": 4, "access": [4, 8, 26, 29], "ssl": [4, 6], "certif": [4, 6, 16], "commun": [4, 15, 21, 25], "session": [4, 17], "divid": 4, "conquer": 4, "In": 4, "conclus": 4, "deploi": [5, 6], "docker": [5, 9], "linux": [5, 6, 9, 10], "pre": [6, 10, 11, 12], "requisit": [6, 10, 11, 12], "postgresql": [6, 10, 11, 12], "python": [6, 23], "environ": [6, 9, 10, 11, 12, 18], "us": [6, 9, 23], "miniconda": [6, 10, 11, 12], "build": [6, 9], "instal": [6, 9, 10, 11, 12], "config": [6, 23], "post": [6, 23, 31], "local": [6, 9], "turn": 6, "stun": 6, "letsencrypt": 6, "code": [7, 9, 23], "structur": [7, 8, 14, 17, 19, 25, 31], "root": 7, "folder": [7, 9], "object": 8, "schema": 8, "model": 8, "base": [8, 9, 10], "name": [8, 15], "convent": [8, 15], "version": 8, "conflict": 8, "manag": [8, 11, 21, 30], "verif": 8, "setup": [9, 10, 11, 12, 13, 27], "dev": 9, "compos": 9, "mac": [9, 11], "window": [9, 12], "warn": 9, "requir": 9, "desktop": 9, "visual": 9, "studio": 9, "extens": 9, "develop": [9, 10, 11, 12, 13], "connect": [9, 21], "openteraplu": 9, "your": 9, "advanc": 9, "option": 9, "pgadmin": 9, "debug": 9, "v": 9, "ubuntu": 10, "distro": 10, "git": [10, 11], "cmake": [10, 11], "nodej": [10, 11], "run": [10, 11, 12, 18], "qt": [10, 11, 12], "creator": [10, 11, 12], "creat": [10, 11, 12, 18, 19, 20], "user": [10, 11, 12, 16, 17, 29, 30, 32], "main": [10, 11, 12, 23, 24, 27, 33], "o": 11, "xcode": 11, "homebrew": 11, "packag": 11, "10": 12, "guid": 13, "intern": [14, 15, 17], "form": 14, "hierarchi": 14, "item": 14, "type": 14, "condit": 14, "valu": [14, 27], "inter": 15, "basic": [15, 16, 19, 31], "featur": [15, 29], "set": 15, "scheme": 15, "asynchron": 15, "publish": 15, "subscrib": 15, "topic": [15, 33], "remot": 15, "procedur": 15, "call": 15, "rpc": [15, 23, 24, 27, 30], "synchron": 15, "declar": 15, "callabl": 15, "function": [15, 30, 31], "authent": 16, "http": 16, "auth": 16, "token": 16, "bearer": 16, "particip": [16, 17, 29, 32], "devic": [16, 17, 29, 32], "request": [16, 18, 23, 31], "argument": 16, "logout": 16, "messag": 17, "wrapper": 17, "teramessag": 17, "event": 17, "teraev": 17, "teramodulemessag": 17, "specif": [17, 27, 33], "deviceev": 17, "participantev": 17, "userev": 17, "joinsessionev": 17, "joinsessionreplyev": 17, "leavesessionev": 17, "stopsessionev": 17, "databaseev": 17, "logev": 17, "loginev": 17, "rpcmessag": 17, "unit": 18, "test": [18, 23, 32], "self": 18, "contain": 18, "manual": 18, "automat": 18, "pull": 18, "new": 19, "creation": 19, "step": 19, "backend": 19, "frontend": [19, 23, 24, 27], "translat": 20, "select": 20, "edit": 20, "compil": 20, "establish": 21, "over": 21, "script": [23, 24, 27, 33], "filetransf": 23, "default": [23, 24, 27, 33], "port": [23, 24, 27, 33], "locat": [23, 24, 27, 33], "snippet": 23, "exampl": 23, "delet": [23, 31], "upload": 23, "file_asset": 23, "json": 23, "format": 23, "postman": 23, "queri": 23, "download": 23, "web": [23, 24, 27, 33], "url": [23, 24, 27, 33], "definit": 25, "mechan": 25, "role": [26, 29], "associ": 26, "site": 26, "webrtc": 27, "session_manag": 27, "descript": 27, "paramet": 27, "field": 27, "action": 27, "invit": 27, "remov": 27, "invite_repli": 27, "return": 27, "data": 29, "state": 30, "track": 30, "inform": 30, "On": 31, "need": 31, "know": 31, "basi": 31, "level": 31, "further": 31, "explan": 31, "some": 31}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx": 60}, "alltitles": {"OpenTera Architecture Overview": [[0, "opentera-architecture-overview"]], "Core service (OpenTera - TeraServer)": [[0, "core-service-opentera-teraserver"]], "Modules": [[0, "modules"]], "Login and UserManager module": [[0, "login-and-usermanager-module"]], "Login module": [[0, "login-module"]], "UserManager module": [[0, "usermanager-module"]], "Websockets module": [[0, "websockets-module"]], "REST API module": [[0, "rest-api-module"]], "Database module": [[0, "database-module"]], "Services module": [[0, "services-module"]], "System services": [[0, "system-services"], [25, "system-services"]], "File transfer service": [[0, "file-transfer-service"]], "Logging service": [[0, "logging-service"]], "Videorehab service": [[0, "videorehab-service"]], "External services": [[0, "external-services"]], "Clients": [[0, "clients"]], "Configuration Files": [[1, "configuration-files"]], "Core service - Configuration file": [[1, "core-service-configuration-file"]], "Server section": [[1, "server-section"]], "Database section": [[1, "database-section"]], "Redis section": [[1, "redis-section"]], "NGINX configuration file": [[1, "nginx-configuration-file"]], "nginx.conf": [[1, "nginx-conf"]], "opentera.conf": [[1, "opentera-conf"]], "Deployment Notes": [[2, "deployment-notes"]], "About OpenTera": [[3, "about-opentera"], [22, "about-opentera"]], "Documentation": [[3, "documentation"], [22, "documentation"], [31, "documentation"]], "What can OpenTera do for you?": [[3, "what-can-opentera-do-for-you"], [22, "what-can-opentera-do-for-you"]], "Authors": [[3, "authors"], [22, "authors"]], "Contributors": [[3, "contributors"], [22, "contributors"]], "Publication(s)": [[3, "publication-s"], [22, "publication-s"]], "Videos": [[3, "videos"], [22, "videos"]], "OpenTera Telehealth Platform": [[3, "opentera-telehealth-platform"], [22, "opentera-telehealth-platform"]], "OpenTera+ Clinical Telehealth Software": [[3, "opentera-clinical-telehealth-software"], [22, "opentera-clinical-telehealth-software"]], "Documentation and getting started": [[3, "documentation-and-getting-started"], [22, "documentation-and-getting-started"]], "License": [[3, "license"], [22, "license"]], "Related Open Source Projects": [[3, "related-open-source-projects"], [22, "related-open-source-projects"]], "General": [[3, "general"], [22, "general"]], "Robots": [[3, "robots"], [22, "robots"]], "Dependencies": [[3, "dependencies"], [22, "dependencies"]], "": [[3, "id1"], [22, "id1"]], "Security": [[4, "security"]], "Logins and system access": [[4, "logins-and-system-access"]], "SSL certificates": [[4, "ssl-certificates"]], "Websocket communication": [[4, "websocket-communication"]], "Video sessions": [[4, "video-sessions"]], "Divide and conquer": [[4, "divide-and-conquer"]], "In conclusion": [[4, "in-conclusion"]], "Deploying with Docker on Linux Servers": [[5, "deploying-with-docker-on-linux-servers"]], "Deploying OpenTera on a Linux Server": [[6, "deploying-opentera-on-a-linux-server"]], "Pre-requisites": [[6, "pre-requisites"], [10, "pre-requisites"], [11, "pre-requisites"], [12, "pre-requisites"]], "Postgresql": [[6, "postgresql"]], "Redis": [[6, "redis"]], "nginx": [[6, "nginx"]], "Python environment (using miniconda)": [[6, "python-environment-using-miniconda"]], "Build environment": [[6, "build-environment"]], "OpenTera installation": [[6, "opentera-installation"]], "Installation": [[6, "installation"]], "Configuration": [[6, "configuration"], [23, "configuration"], [24, "configuration"], [27, "configuration"], [33, "configuration"]], "Config files": [[6, "config-files"]], "nginx configuration": [[6, "nginx-configuration"]], "Service configuration": [[6, "service-configuration"]], "Post installation": [[6, "post-installation"]], "Local TURN/STUN server": [[6, "local-turn-stun-server"]], "SSL certificate with LetsEncrypt": [[6, "ssl-certificate-with-letsencrypt"]], "Code structure": [[7, "code-structure"]], "Root": [[7, "root"]], "Source folder": [[7, "source-folder"]], "TeraServer folder": [[7, "teraserver-folder"]], "Database Structure": [[8, "database-structure"]], "Database objects": [[8, "database-objects"]], "Database schema": [[8, "database-schema"]], "Objects models": [[8, "objects-models"]], "Objects structure": [[8, "objects-structure"]], "Base model": [[8, "base-model"]], "Naming convention": [[8, "naming-convention"]], "Version conflicts": [[8, "version-conflicts"]], "Database manager": [[8, "database-manager"]], "Access verification": [[8, "access-verification"]], "Setup a dev Environment with Docker-Compose on Mac/Linux/Windows": [[9, "setup-a-dev-environment-with-docker-compose-on-mac-linux-windows"]], "Warnings": [[9, "warnings"]], "Requirements": [[9, "requirements"]], "Install Docker Desktop": [[9, "install-docker-desktop"]], "Install Visual Studio Code": [[9, "install-visual-studio-code"]], "Visual Studio Code Extensions": [[9, "visual-studio-code-extensions"]], "Open OpenTera Base Folder in Visual Studio Code": [[9, "open-opentera-base-folder-in-visual-studio-code"]], "Build the Development Environment with docker-compose": [[9, "build-the-development-environment-with-docker-compose"]], "Connecting to the Local Server with OpenTeraPlus": [[9, "connecting-to-the-local-server-with-openteraplus"]], "Configuring OpenTeraPlus with your Local Server": [[9, "configuring-openteraplus-with-your-local-server"]], "Advanced Options": [[9, "advanced-options"]], "Connect to the Local Database using pgAdmin": [[9, "connect-to-the-local-database-using-pgadmin"]], "Connect to Redis": [[9, "connect-to-redis"]], "Debugging with VS Code": [[9, "debugging-with-vs-code"]], "Getting Started for Developers - Ubuntu-based Linux distros": [[10, "getting-started-for-developers-ubuntu-based-linux-distros"]], "Installing git, cmake and nodejs": [[10, "installing-git-cmake-and-nodejs"], [11, "installing-git-cmake-and-nodejs"]], "Installing Miniconda": [[10, "installing-miniconda"], [11, "installing-miniconda"], [12, "installing-miniconda"]], "Installing PostgreSQL": [[10, "installing-postgresql"], [11, "installing-postgresql"], [12, "installing-postgresql"]], "Installing Redis Server": [[10, "installing-redis-server"], [11, "installing-redis-server"], [12, "installing-redis-server"]], "Installing (and running) NGINX": [[10, "installing-and-running-nginx"], [11, "installing-and-running-nginx"], [12, "installing-and-running-nginx"]], "Installing Qt Creator": [[10, "installing-qt-creator"], [11, "installing-qt-creator"], [12, "installing-qt-creator"]], "Environment setup": [[10, "environment-setup"], [11, "environment-setup"], [12, "environment-setup"]], "Creating users": [[10, "creating-users"], [11, "creating-users"], [12, "creating-users"]], "Creating databases": [[10, "creating-databases"], [11, "creating-databases"], [12, "creating-databases"]], "Starting the main OpenTera service": [[10, "starting-the-main-opentera-service"], [11, "starting-the-main-opentera-service"], [12, "starting-the-main-opentera-service"]], "Getting Started for Developers - Mac OS": [[11, "getting-started-for-developers-mac-os"]], "Installing Xcode": [[11, "installing-xcode"]], "Install Homebrew package manager": [[11, "install-homebrew-package-manager"]], "Getting Started for Developers - Windows 10": [[12, "getting-started-for-developers-windows-10"]], "Developers setup guide": [[13, "developers-setup-guide"]], "Internal Form Structure": [[14, "internal-form-structure"]], "Forms hierarchy": [[14, "forms-hierarchy"]], "Form sections": [[14, "form-sections"]], "Form items": [[14, "form-items"]], "Item types": [[14, "item-types"]], "Items conditions": [[14, "items-conditions"]], "Item values": [[14, "item-values"]], "Inter-service communication": [[15, "inter-service-communication"]], "Basic features of the internal communication module": [[15, "basic-features-of-the-internal-communication-module"]], "Get / Set scheme (Asynchronous communication)": [[15, "get-set-scheme-asynchronous-communication"]], "Publish / Subscribe scheme (Asynchronous communication)": [[15, "publish-subscribe-scheme-asynchronous-communication"]], "Topic naming convention": [[15, "topic-naming-convention"]], "Remote Procedure Call (RPC) (Synchronous communication)": [[15, "remote-procedure-call-rpc-synchronous-communication"]], "Declaring a remotely callable procedure": [[15, "declaring-a-remotely-callable-procedure"]], "Calling a remote procedure (function)": [[15, "calling-a-remote-procedure-function"]], "Login & Authentication": [[16, "login-authentication"]], "Authentication": [[16, "authentication"]], "User API": [[16, "user-api"]], "HTTP Basic Auth": [[16, "http-basic-auth"], [16, "id1"]], "Token Bearer": [[16, "token-bearer"], [16, "id2"], [16, "id3"], [16, "id4"]], "Participant API": [[16, "participant-api"]], "Device API": [[16, "device-api"]], "Token request argument": [[16, "token-request-argument"], [16, "id5"]], "Certificates": [[16, "certificates"]], "Service API": [[16, "service-api"]], "Login": [[16, "login"]], "Logout": [[16, "logout"]], "Internal messages structure": [[17, "internal-messages-structure"]], "Message wrappers": [[17, "message-wrappers"]], "General message wrapper (TeraMessage)": [[17, "general-message-wrapper-teramessage"]], "Event wrapper (TeraEvent)": [[17, "event-wrapper-teraevent"]], "Module message wrapper (TeraModuleMessage)": [[17, "module-message-wrapper-teramodulemessage"]], "Specific events messages": [[17, "specific-events-messages"]], "Users, participants and devices": [[17, "users-participants-and-devices"]], "DeviceEvent": [[17, "deviceevent"]], "ParticipantEvent": [[17, "participantevent"]], "UserEvent": [[17, "userevent"]], "Sessions": [[17, "sessions"]], "JoinSessionEvent": [[17, "joinsessionevent"]], "JoinSessionReplyEvent": [[17, "joinsessionreplyevent"]], "LeaveSessionEvent": [[17, "leavesessionevent"]], "StopSessionEvent": [[17, "stopsessionevent"]], "OpenTera modules & system services": [[17, "opentera-modules-system-services"]], "DatabaseEvent": [[17, "databaseevent"]], "LogEvent": [[17, "logevent"]], "LoginEvent": [[17, "loginevent"]], "RPCMessage": [[17, "rpcmessage"]], "Unit Tests": [[18, "unit-tests"]], "Self-contained environment": [[18, "self-contained-environment"]], "Creating unit tests": [[18, "creating-unit-tests"]], "Running unit tests": [[18, "running-unit-tests"]], "Manual testing": [[18, "manual-testing"]], "Automatic testing on pull requests": [[18, "automatic-testing-on-pull-requests"]], "Creating a new service": [[19, "creating-a-new-service"]], "Service creation steps": [[19, "service-creation-steps"]], "NGINX configuration": [[19, "nginx-configuration"]], "Basic service structure": [[19, "basic-service-structure"]], "Service backend and frontend": [[19, "service-backend-and-frontend"]], "Translations": [[20, "translations"]], "Client translation selection": [[20, "client-translation-selection"]], "Creating/editing translations": [[20, "creating-editing-translations"]], "Compiling/generating translations": [[20, "compiling-generating-translations"]], "Websockets communication": [[21, "websockets-communication"]], "Websockets management": [[21, "websockets-management"]], "Establishing a websocket connection": [[21, "establishing-a-websocket-connection"]], "Communication over the websocket": [[21, "communication-over-the-websocket"]], "File Transfer Service": [[23, "file-transfer-service"]], "Main script": [[23, "main-script"], [24, "main-script"], [27, "main-script"], [33, "main-script"]], "FileTransfer config section": [[23, "filetransfer-config-section"]], "Default port and location": [[23, "default-port-and-location"], [24, "default-port-and-location"], [27, "default-port-and-location"], [33, "default-port-and-location"]], "Code snippets and examples for POST, GET and DELETE": [[23, "code-snippets-and-examples-for-post-get-and-delete"]], "Upload a file using POST request": [[23, "upload-a-file-using-post-request"]], "file_asset json format example": [[23, "file-asset-json-format-example"]], "Python requests POST example": [[23, "python-requests-post-example"]], "Testing and generating POST requests": [[23, "testing-and-generating-post-requests"]], "Using PostMan to test POST queries": [[23, "using-postman-to-test-post-queries"]], "Download and Delete a file using GET and DELETE request": [[23, "download-and-delete-a-file-using-get-and-delete-request"]], "Web URLs and REST API": [[23, "web-urls-and-rest-api"], [24, "web-urls-and-rest-api"]], "Web Frontend": [[23, "web-frontend"], [24, "web-frontend"], [27, "web-frontend"]], "RPC API": [[23, "rpc-api"], [24, "rpc-api"], [27, "rpc-api"]], "Logging Service": [[24, "logging-service"]], "Logging configuration section": [[24, "logging-configuration-section"]], "OpenTera Services Structure": [[25, "opentera-services-structure"]], "General structure and definition": [[25, "general-structure-and-definition"]], "Communication mechanisms": [[25, "communication-mechanisms"]], "TeraServer service": [[25, "teraserver-service"]], "Services configuration": [[25, "services-configuration"]], "Services Access Roles": [[26, "services-access-roles"]], "Access roles association": [[26, "access-roles-association"]], "OpenTera projects and sites roles": [[26, "opentera-projects-and-sites-roles"]], "Services and projects association": [[26, "services-and-projects-association"]], "VideoRehab Service": [[27, "videorehab-service"]], "WebRTC configuration section": [[27, "webrtc-configuration-section"]], "Service setup": [[27, "service-setup"]], "Web URLs": [[27, "web-urls"], [33, "web-urls"]], "REST API": [[27, "rest-api"], [31, "rest-api"]], "session_manage": [[27, "session-manage"]], "Description": [[27, "description"]], "Parameters": [[27, "parameters"]], "Specific fields for start action": [[27, "specific-fields-for-start-action"]], "Specific fields for invite and remove action": [[27, "specific-fields-for-invite-and-remove-action"]], "Specific fields for invite_reply action": [[27, "specific-fields-for-invite-reply-action"]], "Return value": [[27, "return-value"]], "Core Services": [[28, "core-services"]], "Services": [[28, null], [29, "services"]], "Access Roles": [[29, "access-roles"]], "Users": [[29, "users"]], "Data access": [[29, "data-access"]], "Features": [[29, "features"]], "Participants": [[29, "participants"]], "Devices": [[29, "devices"]], "User Manager Module": [[30, "user-manager-module"]], "States and tracked information": [[30, "states-and-tracked-information"]], "RPC functions": [[30, "rpc-functions"]], "General structure": [[31, "general-structure"]], "On a need-to-know basis": [[31, "on-a-need-to-know-basis"]], "API levels": [[31, "api-levels"]], "Request basics": [[31, "request-basics"]], "GET": [[31, "get"]], "POST": [[31, "post"]], "DELETE": [[31, "delete"]], "Further explanation on some of the API functions": [[31, "further-explanation-on-some-of-the-api-functions"]], "API Documentation": [[32, "api-documentation"]], "user": [[32, "user"]], "device": [[32, "device"]], "participant": [[32, "participant"]], "service": [[32, "service"]], "test": [[32, "test"]], "TeraServer Service": [[33, "teraserver-service"]], "Specific topics": [[33, "specific-topics"]]}, "indexentries": {}}) \ No newline at end of file +Search.setIndex({"alltitles": {"": [[3, "id1"], [22, "id1"]], "API Documentation": [[32, "api-documentation"]], "API levels": [[31, "api-levels"]], "About OpenTera": [[3, "about-opentera"], [22, "about-opentera"]], "Access Roles": [[29, "access-roles"]], "Access roles association": [[26, "access-roles-association"]], "Access verification": [[8, "access-verification"]], "Advanced Options": [[9, "advanced-options"]], "Authentication": [[16, "authentication"]], "Authors": [[3, "authors"], [22, "authors"]], "Automatic testing on pull requests": [[18, "automatic-testing-on-pull-requests"]], "Base model": [[8, "base-model"]], "Basic features of the internal communication module": [[15, "basic-features-of-the-internal-communication-module"]], "Basic service structure": [[19, "basic-service-structure"]], "Build environment": [[6, "build-environment"]], "Build the Development Environment with docker-compose": [[9, "build-the-development-environment-with-docker-compose"]], "Calling a remote procedure (function)": [[15, "calling-a-remote-procedure-function"]], "Certificates": [[16, "certificates"]], "Client translation selection": [[20, "client-translation-selection"]], "Clients": [[0, "clients"]], "Code snippets and examples for POST, GET and DELETE": [[23, "code-snippets-and-examples-for-post-get-and-delete"]], "Code structure": [[7, "code-structure"]], "Communication mechanisms": [[25, "communication-mechanisms"]], "Communication over the websocket": [[21, "communication-over-the-websocket"]], "Compiling/generating translations": [[20, "compiling-generating-translations"]], "Config files": [[6, "config-files"]], "Configuration": [[6, "configuration"], [23, "configuration"], [24, "configuration"], [27, "configuration"], [33, "configuration"]], "Configuration Files": [[1, "configuration-files"]], "Configuring OpenTeraPlus with your Local Server": [[9, "configuring-openteraplus-with-your-local-server"]], "Connect to Redis": [[9, "connect-to-redis"]], "Connect to the Local Database using pgAdmin": [[9, "connect-to-the-local-database-using-pgadmin"]], "Connecting to the Local Server with OpenTeraPlus": [[9, "connecting-to-the-local-server-with-openteraplus"]], "Contributors": [[3, "contributors"], [22, "contributors"]], "Core Services": [[28, "core-services"]], "Core service (OpenTera - TeraServer)": [[0, "core-service-opentera-teraserver"]], "Core service - Configuration file": [[1, "core-service-configuration-file"]], "Creating a new service": [[19, "creating-a-new-service"]], "Creating databases": [[10, "creating-databases"], [11, "creating-databases"], [12, "creating-databases"]], "Creating unit tests": [[18, "creating-unit-tests"]], "Creating users": [[10, "creating-users"], [11, "creating-users"], [12, "creating-users"]], "Creating/editing translations": [[20, "creating-editing-translations"]], "DELETE": [[31, "delete"]], "Data access": [[29, "data-access"]], "Database Structure": [[8, "database-structure"]], "Database manager": [[8, "database-manager"]], "Database module": [[0, "database-module"]], "Database objects": [[8, "database-objects"]], "Database schema": [[8, "database-schema"]], "Database section": [[1, "database-section"]], "DatabaseEvent": [[17, "databaseevent"]], "Debugging with VS Code": [[9, "debugging-with-vs-code"]], "Declaring a remotely callable procedure": [[15, "declaring-a-remotely-callable-procedure"]], "Default port and location": [[23, "default-port-and-location"], [24, "default-port-and-location"], [27, "default-port-and-location"], [33, "default-port-and-location"]], "Dependencies": [[3, "dependencies"], [22, "dependencies"]], "Deploying OpenTera on a Linux Server": [[6, "deploying-opentera-on-a-linux-server"]], "Deploying with Docker on Linux Servers": [[5, "deploying-with-docker-on-linux-servers"]], "Deployment Notes": [[2, "deployment-notes"]], "Description": [[27, "description"]], "Developers setup guide": [[13, "developers-setup-guide"]], "Device API": [[16, "device-api"]], "DeviceEvent": [[17, "deviceevent"]], "Devices": [[29, "devices"]], "Divide and conquer": [[4, "divide-and-conquer"]], "Documentation": [[3, "documentation"], [22, "documentation"], [31, "documentation"]], "Documentation and getting started": [[3, "documentation-and-getting-started"], [22, "documentation-and-getting-started"]], "Download and Delete a file using GET and DELETE request": [[23, "download-and-delete-a-file-using-get-and-delete-request"]], "Environment setup": [[10, "environment-setup"], [11, "environment-setup"], [12, "environment-setup"]], "Establishing a websocket connection": [[21, "establishing-a-websocket-connection"]], "Event wrapper (TeraEvent)": [[17, "event-wrapper-teraevent"]], "External services": [[0, "external-services"]], "Features": [[29, "features"]], "File Transfer Service": [[23, "file-transfer-service"]], "File transfer service": [[0, "file-transfer-service"]], "FileTransfer config section": [[23, "filetransfer-config-section"]], "Form items": [[14, "form-items"]], "Form sections": [[14, "form-sections"]], "Forms hierarchy": [[14, "forms-hierarchy"]], "Further explanation on some of the API functions": [[31, "further-explanation-on-some-of-the-api-functions"]], "GET": [[31, "get"]], "General": [[3, "general"], [22, "general"]], "General message wrapper (TeraMessage)": [[17, "general-message-wrapper-teramessage"]], "General structure": [[31, "general-structure"]], "General structure and definition": [[25, "general-structure-and-definition"]], "Get / Set scheme (Asynchronous communication)": [[15, "get-set-scheme-asynchronous-communication"]], "Getting Started for Developers - Mac OS": [[11, "getting-started-for-developers-mac-os"]], "Getting Started for Developers - Ubuntu-based Linux distros": [[10, "getting-started-for-developers-ubuntu-based-linux-distros"]], "Getting Started for Developers - Windows 10": [[12, "getting-started-for-developers-windows-10"]], "HTTP Basic Auth": [[16, "http-basic-auth"], [16, "id1"]], "In conclusion": [[4, "in-conclusion"]], "Install Docker Desktop": [[9, "install-docker-desktop"]], "Install Homebrew package manager": [[11, "install-homebrew-package-manager"]], "Install Visual Studio Code": [[9, "install-visual-studio-code"]], "Installation": [[6, "installation"]], "Installing (and running) NGINX": [[10, "installing-and-running-nginx"], [11, "installing-and-running-nginx"], [12, "installing-and-running-nginx"]], "Installing Miniconda": [[10, "installing-miniconda"], [11, "installing-miniconda"], [12, "installing-miniconda"]], "Installing PostgreSQL": [[10, "installing-postgresql"], [11, "installing-postgresql"], [12, "installing-postgresql"]], "Installing Qt Creator": [[10, "installing-qt-creator"], [11, "installing-qt-creator"], [12, "installing-qt-creator"]], "Installing Redis Server": [[10, "installing-redis-server"], [11, "installing-redis-server"], [12, "installing-redis-server"]], "Installing Xcode": [[11, "installing-xcode"]], "Installing git, cmake and nodejs": [[10, "installing-git-cmake-and-nodejs"], [11, "installing-git-cmake-and-nodejs"]], "Inter-service communication": [[15, "inter-service-communication"]], "Internal Form Structure": [[14, "internal-form-structure"]], "Internal messages structure": [[17, "internal-messages-structure"]], "Item types": [[14, "item-types"]], "Item values": [[14, "item-values"]], "Items conditions": [[14, "items-conditions"]], "JoinSessionEvent": [[17, "joinsessionevent"]], "JoinSessionReplyEvent": [[17, "joinsessionreplyevent"]], "LeaveSessionEvent": [[17, "leavesessionevent"]], "License": [[3, "license"], [22, "license"]], "Local TURN/STUN server": [[6, "local-turn-stun-server"]], "LogEvent": [[17, "logevent"]], "Logging Service": [[24, "logging-service"]], "Logging configuration section": [[24, "logging-configuration-section"]], "Logging service": [[0, "logging-service"]], "Login": [[16, "login"]], "Login & Authentication": [[16, "login-authentication"]], "Login and UserManager module": [[0, "login-and-usermanager-module"]], "Login module": [[0, "login-module"]], "LoginEvent": [[17, "loginevent"]], "Logins and system access": [[4, "logins-and-system-access"]], "Logout": [[16, "logout"]], "Main script": [[23, "main-script"], [24, "main-script"], [27, "main-script"], [33, "main-script"]], "Manual testing": [[18, "manual-testing"]], "Message wrappers": [[17, "message-wrappers"]], "Module message wrapper (TeraModuleMessage)": [[17, "module-message-wrapper-teramodulemessage"]], "Modules": [[0, "modules"]], "NGINX configuration": [[19, "nginx-configuration"]], "NGINX configuration file": [[1, "nginx-configuration-file"]], "Naming convention": [[8, "naming-convention"]], "Objects models": [[8, "objects-models"]], "Objects structure": [[8, "objects-structure"]], "On a need-to-know basis": [[31, "on-a-need-to-know-basis"]], "Open OpenTera Base Folder in Visual Studio Code": [[9, "open-opentera-base-folder-in-visual-studio-code"]], "OpenTera Architecture Overview": [[0, "opentera-architecture-overview"]], "OpenTera Services Structure": [[25, "opentera-services-structure"]], "OpenTera Telehealth Platform": [[3, "opentera-telehealth-platform"], [22, "opentera-telehealth-platform"]], "OpenTera installation": [[6, "opentera-installation"]], "OpenTera modules & system services": [[17, "opentera-modules-system-services"]], "OpenTera projects and sites roles": [[26, "opentera-projects-and-sites-roles"]], "OpenTera+ Clinical Telehealth Software": [[3, "opentera-clinical-telehealth-software"], [22, "opentera-clinical-telehealth-software"]], "POST": [[31, "post"]], "Parameters": [[27, "parameters"]], "Participant API": [[16, "participant-api"]], "ParticipantEvent": [[17, "participantevent"]], "Participants": [[29, "participants"]], "Post installation": [[6, "post-installation"]], "Postgresql": [[6, "postgresql"]], "Pre-requisites": [[6, "pre-requisites"], [10, "pre-requisites"], [11, "pre-requisites"], [12, "pre-requisites"]], "Publication(s)": [[3, "publication-s"], [22, "publication-s"]], "Publish / Subscribe scheme (Asynchronous communication)": [[15, "publish-subscribe-scheme-asynchronous-communication"]], "Python environment (using miniconda)": [[6, "python-environment-using-miniconda"]], "Python requests POST example": [[23, "python-requests-post-example"]], "REST API": [[27, "rest-api"], [31, "rest-api"]], "REST API module": [[0, "rest-api-module"]], "RPC API": [[23, "rpc-api"], [24, "rpc-api"], [27, "rpc-api"]], "RPC functions": [[30, "rpc-functions"]], "RPCMessage": [[17, "rpcmessage"]], "Redis": [[6, "redis"]], "Redis section": [[1, "redis-section"]], "Related Open Source Projects": [[3, "related-open-source-projects"], [22, "related-open-source-projects"]], "Remote Procedure Call (RPC) (Synchronous communication)": [[15, "remote-procedure-call-rpc-synchronous-communication"]], "Request basics": [[31, "request-basics"]], "Requirements": [[9, "requirements"]], "Return value": [[27, "return-value"]], "Robots": [[3, "robots"], [22, "robots"]], "Root": [[7, "root"]], "Running unit tests": [[18, "running-unit-tests"]], "SSL certificate with LetsEncrypt": [[6, "ssl-certificate-with-letsencrypt"]], "SSL certificates": [[4, "ssl-certificates"]], "Security": [[4, "security"]], "Self-contained environment": [[18, "self-contained-environment"]], "Server section": [[1, "server-section"]], "Service API": [[16, "service-api"]], "Service backend and frontend": [[19, "service-backend-and-frontend"]], "Service configuration": [[6, "service-configuration"]], "Service creation steps": [[19, "service-creation-steps"]], "Service setup": [[27, "service-setup"]], "Services": [[28, null], [29, "services"]], "Services Access Roles": [[26, "services-access-roles"]], "Services and projects association": [[26, "services-and-projects-association"]], "Services configuration": [[25, "services-configuration"]], "Services module": [[0, "services-module"]], "Sessions": [[17, "sessions"]], "Setup a dev Environment with Docker-Compose on Mac/Linux/Windows": [[9, "setup-a-dev-environment-with-docker-compose-on-mac-linux-windows"]], "Source folder": [[7, "source-folder"]], "Specific events messages": [[17, "specific-events-messages"]], "Specific fields for invite and remove action": [[27, "specific-fields-for-invite-and-remove-action"]], "Specific fields for invite_reply action": [[27, "specific-fields-for-invite-reply-action"]], "Specific fields for start action": [[27, "specific-fields-for-start-action"]], "Specific topics": [[33, "specific-topics"]], "Starting the main OpenTera service": [[10, "starting-the-main-opentera-service"], [11, "starting-the-main-opentera-service"], [12, "starting-the-main-opentera-service"]], "States and tracked information": [[30, "states-and-tracked-information"]], "StopSessionEvent": [[17, "stopsessionevent"]], "System services": [[0, "system-services"], [25, "system-services"]], "TeraServer Service": [[33, "teraserver-service"]], "TeraServer folder": [[7, "teraserver-folder"]], "TeraServer service": [[25, "teraserver-service"]], "Testing and generating POST requests": [[23, "testing-and-generating-post-requests"]], "Token Bearer": [[16, "token-bearer"], [16, "id2"], [16, "id3"], [16, "id4"]], "Token request argument": [[16, "token-request-argument"], [16, "id5"]], "Topic naming convention": [[15, "topic-naming-convention"]], "Translations": [[20, "translations"]], "Unit Tests": [[18, "unit-tests"]], "Upload a file using POST request": [[23, "upload-a-file-using-post-request"]], "User API": [[16, "user-api"]], "User Manager Module": [[30, "user-manager-module"]], "UserEvent": [[17, "userevent"]], "UserManager module": [[0, "usermanager-module"]], "Users": [[29, "users"]], "Users, participants and devices": [[17, "users-participants-and-devices"]], "Using PostMan to test POST queries": [[23, "using-postman-to-test-post-queries"]], "Version conflicts": [[8, "version-conflicts"]], "Video sessions": [[4, "video-sessions"]], "VideoRehab Service": [[27, "videorehab-service"]], "Videorehab service": [[0, "videorehab-service"]], "Videos": [[3, "videos"], [22, "videos"]], "Visual Studio Code Extensions": [[9, "visual-studio-code-extensions"]], "Warnings": [[9, "warnings"]], "Web Frontend": [[23, "web-frontend"], [24, "web-frontend"], [27, "web-frontend"]], "Web URLs": [[27, "web-urls"], [33, "web-urls"]], "Web URLs and REST API": [[23, "web-urls-and-rest-api"], [24, "web-urls-and-rest-api"]], "WebRTC configuration section": [[27, "webrtc-configuration-section"]], "Websocket communication": [[4, "websocket-communication"]], "Websockets communication": [[21, "websockets-communication"]], "Websockets management": [[21, "websockets-management"]], "Websockets module": [[0, "websockets-module"]], "What can OpenTera do for you?": [[3, "what-can-opentera-do-for-you"], [22, "what-can-opentera-do-for-you"]], "device": [[32, "device"]], "file_asset json format example": [[23, "file-asset-json-format-example"]], "nginx": [[6, "nginx"]], "nginx configuration": [[6, "nginx-configuration"]], "nginx.conf": [[1, "nginx-conf"]], "opentera.conf": [[1, "opentera-conf"]], "participant": [[32, "participant"]], "service": [[32, "service"]], "session_manage": [[27, "session-manage"]], "test": [[32, "test"]], "user": [[32, "user"]]}, "docnames": ["Architecture-Overview", "Configuration-files", "Deployment", "Home", "Security", "deployment/DeployWithDockerCompose", "deployment/DeployWithLinuxNative", "developers/Code-Structure", "developers/Database-Structure", "developers/Developer-Setup-for-Docker", "developers/Developer-Setup-for-Linux", "developers/Developer-Setup-for-Mac", "developers/Developer-Setup-for-Windows", "developers/Developers", "developers/Form-Structure", "developers/Internal-services-communication-module", "developers/Login-and-authentication", "developers/Messages-structure", "developers/Running-tests", "developers/Service-Creation", "developers/Translations", "developers/Websockets-communication", "index", "services/FileTransfer-Service", "services/Logging-Service", "services/OpenTera_Services", "services/Services-Access", "services/Videorehab-Service", "services/services", "services/teraserver/OpenTera_AccessRoles", "services/teraserver/UserManager-module", "services/teraserver/api/API", "services/teraserver/api/api_doc", "services/teraserver/teraserver"], "envversion": {"sphinx": 61, "sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2}, "filenames": ["Architecture-Overview.md", "Configuration-files.md", "Deployment.md", "Home.rst", "Security.md", "deployment/DeployWithDockerCompose.md", "deployment/DeployWithLinuxNative.md", "developers/Code-Structure.md", "developers/Database-Structure.md", "developers/Developer-Setup-for-Docker.rst", "developers/Developer-Setup-for-Linux.md", "developers/Developer-Setup-for-Mac.md", "developers/Developer-Setup-for-Windows.md", "developers/Developers.rst", "developers/Form-Structure.md", "developers/Internal-services-communication-module.md", "developers/Login-and-authentication.md", "developers/Messages-structure.md", "developers/Running-tests.md", "developers/Service-Creation.md", "developers/Translations.md", "developers/Websockets-communication.md", "index.rst", "services/FileTransfer-Service.md", "services/Logging-Service.md", "services/OpenTera_Services.md", "services/Services-Access.md", "services/Videorehab-Service.md", "services/services.rst", "services/teraserver/OpenTera_AccessRoles.md", "services/teraserver/UserManager-module.md", "services/teraserver/api/API.md", "services/teraserver/api/api_doc.rst", "services/teraserver/teraserver.rst"], "indexentries": {}, "objects": {"": [[32, 0, 1, "get--device-assets", "/device/assets"], [32, 0, 1, "get--device-devices", "/device/devices"], [32, 1, 1, "post--device-devices", "/device/devices"], [32, 0, 1, "get--device-login", "/device/login"], [32, 0, 1, "get--device-logout", "/device/logout"], [32, 0, 1, "get--device-participants", "/device/participants"], [32, 0, 1, "get--device-register", "/device/register"], [32, 1, 1, "post--device-register", "/device/register"], [32, 2, 1, "delete--device-sessions", "/device/sessions"], [32, 0, 1, "get--device-sessions", "/device/sessions"], [32, 1, 1, "post--device-sessions", "/device/sessions"], [32, 2, 1, "delete--device-sessions-events", "/device/sessions/events"], [32, 0, 1, "get--device-sessions-events", "/device/sessions/events"], [32, 1, 1, "post--device-sessions-events", "/device/sessions/events"], [32, 1, 1, "post--device-status", "/device/status"], [32, 0, 1, "get--participant-assets", "/participant/assets"], [32, 0, 1, "get--participant-devices", "/participant/devices"], [32, 0, 1, "get--participant-login", "/participant/login"], [32, 0, 1, "get--participant-logout", "/participant/logout"], [32, 0, 1, "get--participant-participants", "/participant/participants"], [32, 1, 1, "post--participant-participants", "/participant/participants"], [32, 0, 1, "get--participant-refresh_token", "/participant/refresh_token"], [32, 0, 1, "get--participant-sessions", "/participant/sessions"], [32, 1, 1, "post--participant-sessions", "/participant/sessions"], [32, 0, 1, "get--service-access", "/service/access"], [32, 2, 1, "delete--service-assets", "/service/assets"], [32, 0, 1, "get--service-assets", "/service/assets"], [32, 1, 1, "post--service-assets", "/service/assets"], [32, 0, 1, "get--service-devices", "/service/devices"], [32, 1, 1, "post--service-devices", "/service/devices"], [32, 0, 1, "get--service-disconnect", "/service/disconnect"], [32, 2, 1, "delete--service-groups", "/service/groups"], [32, 0, 1, "get--service-groups", "/service/groups"], [32, 1, 1, "post--service-groups", "/service/groups"], [32, 0, 1, "get--service-participants", "/service/participants"], [32, 1, 1, "post--service-participants", "/service/participants"], [32, 2, 1, "delete--service-projects", "/service/projects"], [32, 0, 1, "get--service-projects", "/service/projects"], [32, 1, 1, "post--service-projects", "/service/projects"], [32, 2, 1, "delete--service-roles", "/service/roles"], [32, 0, 1, "get--service-roles", "/service/roles"], [32, 1, 1, "post--service-roles", "/service/roles"], [32, 2, 1, "delete--service-serviceaccess", "/service/serviceaccess"], [32, 0, 1, "get--service-serviceaccess", "/service/serviceaccess"], [32, 1, 1, "post--service-serviceaccess", "/service/serviceaccess"], [32, 0, 1, "get--service-services", "/service/services"], [32, 0, 1, "get--service-sessions", "/service/sessions"], [32, 1, 1, "post--service-sessions", "/service/sessions"], [32, 0, 1, "get--service-sessions-events", "/service/sessions/events"], [32, 1, 1, "post--service-sessions-events", "/service/sessions/events"], [32, 1, 1, "post--service-sessions-manager", "/service/sessions/manager"], [32, 0, 1, "get--service-sessiontypes", "/service/sessiontypes"], [32, 0, 1, "get--service-sites", "/service/sites"], [32, 2, 1, "delete--service-tests", "/service/tests"], [32, 0, 1, "get--service-tests", "/service/tests"], [32, 1, 1, "post--service-tests", "/service/tests"], [32, 2, 1, "delete--service-testtypes", "/service/testtypes"], [32, 0, 1, "get--service-testtypes", "/service/testtypes"], [32, 1, 1, "post--service-testtypes", "/service/testtypes"], [32, 2, 1, "delete--service-testtypes-projects", "/service/testtypes/projects"], [32, 0, 1, "get--service-testtypes-projects", "/service/testtypes/projects"], [32, 1, 1, "post--service-testtypes-projects", "/service/testtypes/projects"], [32, 2, 1, "delete--service-usergroups", "/service/usergroups"], [32, 0, 1, "get--service-usergroups", "/service/usergroups"], [32, 1, 1, "post--service-usergroups", "/service/usergroups"], [32, 0, 1, "get--service-users", "/service/users"], [32, 0, 1, "get--service-users-access", "/service/users/access"], [32, 0, 1, "get--test-database-reset", "/test/database/reset"], [32, 2, 1, "delete--user-assets", "/user/assets"], [32, 0, 1, "get--user-assets", "/user/assets"], [32, 1, 1, "post--user-assets", "/user/assets"], [32, 0, 1, "get--user-assets-archive", "/user/assets/archive"], [32, 2, 1, "delete--user-devices", "/user/devices"], [32, 0, 1, "get--user-devices", "/user/devices"], [32, 1, 1, "post--user-devices", "/user/devices"], [32, 0, 1, "get--user-devices-online", "/user/devices/online"], [32, 2, 1, "delete--user-devices-participants", "/user/devices/participants"], [32, 0, 1, "get--user-devices-participants", "/user/devices/participants"], [32, 1, 1, "post--user-devices-participants", "/user/devices/participants"], [32, 2, 1, "delete--user-devices-projects", "/user/devices/projects"], [32, 0, 1, "get--user-devices-projects", "/user/devices/projects"], [32, 1, 1, "post--user-devices-projects", "/user/devices/projects"], [32, 2, 1, "delete--user-devices-sites", "/user/devices/sites"], [32, 0, 1, "get--user-devices-sites", "/user/devices/sites"], [32, 1, 1, "post--user-devices-sites", "/user/devices/sites"], [32, 2, 1, "delete--user-devicesubtypes", "/user/devicesubtypes"], [32, 0, 1, "get--user-devicesubtypes", "/user/devicesubtypes"], [32, 1, 1, "post--user-devicesubtypes", "/user/devicesubtypes"], [32, 2, 1, "delete--user-devicetypes", "/user/devicetypes"], [32, 0, 1, "get--user-devicetypes", "/user/devicetypes"], [32, 1, 1, "post--user-devicetypes", "/user/devicetypes"], [32, 0, 1, "get--user-disconnect", "/user/disconnect"], [32, 0, 1, "get--user-forms", "/user/forms"], [32, 2, 1, "delete--user-groups", "/user/groups"], [32, 0, 1, "get--user-groups", "/user/groups"], [32, 1, 1, "post--user-groups", "/user/groups"], [32, 0, 1, "get--user-login", "/user/login"], [32, 0, 1, "get--user-logout", "/user/logout"], [32, 2, 1, "delete--user-participants", "/user/participants"], [32, 0, 1, "get--user-participants", "/user/participants"], [32, 1, 1, "post--user-participants", "/user/participants"], [32, 0, 1, "get--user-participants-online", "/user/participants/online"], [32, 2, 1, "delete--user-projectaccess", "/user/projectaccess"], [32, 0, 1, "get--user-projectaccess", "/user/projectaccess"], [32, 1, 1, "post--user-projectaccess", "/user/projectaccess"], [32, 2, 1, "delete--user-projects", "/user/projects"], [32, 0, 1, "get--user-projects", "/user/projects"], [32, 1, 1, "post--user-projects", "/user/projects"], [32, 0, 1, "get--user-refresh_token", "/user/refresh_token"], [32, 0, 1, "get--user-server-settings", "/user/server/settings"], [32, 2, 1, "delete--user-services", "/user/services"], [32, 0, 1, "get--user-services", "/user/services"], [32, 1, 1, "post--user-services", "/user/services"], [32, 2, 1, "delete--user-services-access", "/user/services/access"], [32, 0, 1, "get--user-services-access", "/user/services/access"], [32, 1, 1, "post--user-services-access", "/user/services/access"], [32, 2, 1, "delete--user-services-configs", "/user/services/configs"], [32, 0, 1, "get--user-services-configs", "/user/services/configs"], [32, 1, 1, "post--user-services-configs", "/user/services/configs"], [32, 2, 1, "delete--user-services-projects", "/user/services/projects"], [32, 0, 1, "get--user-services-projects", "/user/services/projects"], [32, 1, 1, "post--user-services-projects", "/user/services/projects"], [32, 2, 1, "delete--user-services-roles", "/user/services/roles"], [32, 0, 1, "get--user-services-roles", "/user/services/roles"], [32, 1, 1, "post--user-services-roles", "/user/services/roles"], [32, 2, 1, "delete--user-services-sites", "/user/services/sites"], [32, 0, 1, "get--user-services-sites", "/user/services/sites"], [32, 1, 1, "post--user-services-sites", "/user/services/sites"], [32, 2, 1, "delete--user-sessions", "/user/sessions"], [32, 0, 1, "get--user-sessions", "/user/sessions"], [32, 1, 1, "post--user-sessions", "/user/sessions"], [32, 2, 1, "delete--user-sessions-events", "/user/sessions/events"], [32, 0, 1, "get--user-sessions-events", "/user/sessions/events"], [32, 1, 1, "post--user-sessions-events", "/user/sessions/events"], [32, 1, 1, "post--user-sessions-manager", "/user/sessions/manager"], [32, 2, 1, "delete--user-sessiontypes", "/user/sessiontypes"], [32, 0, 1, "get--user-sessiontypes", "/user/sessiontypes"], [32, 1, 1, "post--user-sessiontypes", "/user/sessiontypes"], [32, 2, 1, "delete--user-sessiontypes-projects", "/user/sessiontypes/projects"], [32, 0, 1, "get--user-sessiontypes-projects", "/user/sessiontypes/projects"], [32, 1, 1, "post--user-sessiontypes-projects", "/user/sessiontypes/projects"], [32, 2, 1, "delete--user-sessiontypes-sites", "/user/sessiontypes/sites"], [32, 0, 1, "get--user-sessiontypes-sites", "/user/sessiontypes/sites"], [32, 1, 1, "post--user-sessiontypes-sites", "/user/sessiontypes/sites"], [32, 2, 1, "delete--user-siteaccess", "/user/siteaccess"], [32, 0, 1, "get--user-siteaccess", "/user/siteaccess"], [32, 1, 1, "post--user-siteaccess", "/user/siteaccess"], [32, 2, 1, "delete--user-sites", "/user/sites"], [32, 0, 1, "get--user-sites", "/user/sites"], [32, 1, 1, "post--user-sites", "/user/sites"], [32, 0, 1, "get--user-stats", "/user/stats"], [32, 2, 1, "delete--user-tests", "/user/tests"], [32, 0, 1, "get--user-tests", "/user/tests"], [32, 1, 1, "post--user-tests", "/user/tests"], [32, 2, 1, "delete--user-testtypes", "/user/testtypes"], [32, 0, 1, "get--user-testtypes", "/user/testtypes"], [32, 1, 1, "post--user-testtypes", "/user/testtypes"], [32, 2, 1, "delete--user-testtypes-projects", "/user/testtypes/projects"], [32, 0, 1, "get--user-testtypes-projects", "/user/testtypes/projects"], [32, 1, 1, "post--user-testtypes-projects", "/user/testtypes/projects"], [32, 2, 1, "delete--user-testtypes-sites", "/user/testtypes/sites"], [32, 0, 1, "get--user-testtypes-sites", "/user/testtypes/sites"], [32, 1, 1, "post--user-testtypes-sites", "/user/testtypes/sites"], [32, 2, 1, "delete--user-usergroups", "/user/usergroups"], [32, 0, 1, "get--user-usergroups", "/user/usergroups"], [32, 1, 1, "post--user-usergroups", "/user/usergroups"], [32, 2, 1, "delete--user-users", "/user/users"], [32, 0, 1, "get--user-users", "/user/users"], [32, 1, 1, "post--user-users", "/user/users"], [32, 0, 1, "get--user-users-online", "/user/users/online"], [32, 0, 1, "get--user-users-preferences", "/user/users/preferences"], [32, 1, 1, "post--user-users-preferences", "/user/users/preferences"], [32, 2, 1, "delete--user-users-usergroups", "/user/users/usergroups"], [32, 0, 1, "get--user-users-usergroups", "/user/users/usergroups"], [32, 1, 1, "post--user-users-usergroups", "/user/users/usergroups"], [32, 0, 1, "get--user-versions", "/user/versions"], [32, 1, 1, "post--user-versions", "/user/versions"]]}, "objnames": {"0": ["http", "get", "HTTP get"], "1": ["http", "post", "HTTP post"], "2": ["http", "delete", "HTTP delete"]}, "objtypes": {"0": "http:get", "1": "http:post", "2": "http:delete"}, "terms": {"": [4, 6, 12, 15, 17, 18, 19, 31, 32], "0": [1, 3, 9, 22, 23, 24, 27, 31, 32, 33], "04": 6, "1": [1, 10, 11, 12, 14, 16, 23, 24, 27, 29, 31, 33], "10": [6, 13, 21, 31], "10gb": 9, "11": 6, "12": [3, 22], "127": [1, 23, 24, 27, 31, 33], "128": 4, "13": [10, 11, 12], "19": [3, 22], "2": [1, 3, 9, 10, 11, 12, 16, 22, 23, 29, 30, 32], "20": 6, "200": 32, "2022": [3, 22], "2023": [3, 22], "3": [3, 6, 10, 11, 12, 22, 29], "4": [8, 10, 11, 12, 29, 31], "400": 32, "400075": [24, 33], "40075": [1, 9, 10, 11, 12, 23, 27, 31, 33], "401": 32, "403": 32, "4040": [1, 33], "4041": 24, "4042": 23, "4070": 27, "409": 32, "49152": 6, "5": [10, 11, 12], "500": 32, "501": 32, "5349": 6, "5432": 1, "5433": 9, "5497": [3, 22], "5678": 9, "583": [3, 22], "596": [3, 22], "6": [10, 11, 12], "60": [4, 16, 21], "6379": 1, "6380": 9, "65535": 6, "8": [3, 10, 11, 12, 22], "80": 6, "8081": 27, "830387": 9, "91": [3, 22], "A": [0, 3, 5, 6, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 22, 25, 27, 29, 31, 32], "And": 4, "As": [0, 4, 8, 10, 15, 21, 23, 24, 27, 29, 31], "At": [7, 9, 14, 32], "Be": 32, "By": [0, 1, 4, 8, 10, 14, 15, 18, 20, 23, 24, 27, 33], "For": [0, 1, 8, 9, 15, 16, 23, 27, 29, 31, 32], "If": [4, 6, 8, 9, 10, 11, 12, 14, 15, 16, 18, 19, 21, 23, 27, 30, 32], "In": [0, 1, 3, 8, 10, 11, 12, 14, 15, 16, 22, 27, 31], "It": [0, 1, 9, 13, 14, 16, 18, 20, 24, 25, 27, 30, 33], "Its": 27, "NOT": 14, "No": [23, 29, 32], "Not": 32, "Of": [19, 29], "On": [1, 8, 10, 11, 12, 26], "Such": [3, 4, 22], "THE": 6, "TO": 6, "That": [8, 10, 11, 12, 16, 25], "The": [0, 1, 3, 4, 6, 7, 8, 9, 10, 11, 12, 14, 15, 16, 17, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33], "Their": 8, "There": [4, 6, 8, 12, 16, 19, 31], "To": [3, 8, 10, 11, 12, 14, 16, 18, 19, 21, 22, 23, 27, 31, 32], "WITH": 6, "Will": [7, 23, 24, 32, 33], "With": [3, 9, 22, 32], "_": 8, "_name": 16, "_order": 14, "_uuid": 16, "abl": [9, 10, 11, 12, 16, 29, 31], "about": [7, 8, 9, 10, 11, 12, 16, 32, 33], "abov": [4, 8, 10, 11, 12, 15, 16], "accept": [4, 9, 20], "access": [0, 1, 6, 16, 19, 21, 24, 25, 27, 31, 32, 33], "accord": [1, 6, 21, 25, 29], "accordingli": [10, 11, 12, 14, 19, 20], "act": [0, 4, 24, 30], "actimetri": [3, 22], "action": [31, 32], "activ": [3, 22, 27, 30], "actual": 18, "ad": [0, 4, 8, 14, 18, 27, 32], "adapt": [0, 3, 22, 26, 27], "add": [9, 17, 19, 23, 24, 26, 27, 31, 32], "addit": [8, 26, 30], "address": [0, 3, 4, 6, 17, 22, 25], "adher": 29, "adjust": [1, 6, 8, 10, 11, 12, 19], "admin": [8, 9, 26, 29, 32], "administr": 9, "advanc": 4, "advantag": 20, "after": [6, 16, 18, 32], "again": [6, 9, 10, 11, 12, 14, 21], "against": [4, 31], "agent": 6, "agewel": [3, 22], "aim": 18, "al": [3, 22], "alchemi": 13, "alemb": [7, 8], "alia": 32, "all": [0, 4, 6, 8, 9, 10, 11, 12, 14, 16, 17, 18, 20, 21, 29, 31, 32], "allow": [0, 3, 4, 8, 9, 13, 14, 15, 16, 17, 19, 21, 22, 25, 26, 27, 31, 32], "almost": 8, "alon": [0, 7, 8, 19], "alreadi": [1, 11, 32], "also": [0, 2, 3, 4, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 24, 25, 27, 31, 32], "alter": 6, "altern": [9, 10, 11], "alwai": [6, 8, 15, 16, 18, 21, 29], "an": [0, 1, 3, 4, 8, 9, 11, 12, 14, 15, 16, 17, 18, 20, 21, 22, 26, 27, 29, 30, 31, 32, 33], "analysi": [3, 8, 22], "anew": 4, "angular": 19, "ani": [3, 4, 8, 10, 11, 12, 13, 14, 15, 16, 17, 19, 20, 22, 23, 25, 27, 29, 30, 31, 32], "anoth": [4, 7, 8, 15, 17, 18, 27, 32], "answer": 8, "antoin": [3, 22], "anyth": [1, 14, 24], "apach": [3, 22], "api": [1, 7, 8, 9, 14, 15, 18, 19, 20, 21, 25, 29, 30, 33], "app": 11, "app_tag": 32, "appear": 30, "append": [14, 16, 31], "appli": [3, 19, 22, 27], "applic": [0, 3, 8, 9, 16, 20, 22, 23, 31, 32], "approach": [4, 31], "appropri": [0, 6, 8, 13, 16, 23, 27, 31], "apt": [6, 10], "ar": [0, 1, 3, 4, 6, 8, 9, 10, 11, 12, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 25, 26, 27, 28, 29, 30, 31, 32, 33], "architectur": [3, 7, 19, 22, 25, 26, 31], "archiv": [12, 17, 32], "arg": 15, "argument": [14, 15], "arrai": [14, 15, 32], "arsenault": [3, 22], "asset": [3, 7, 8, 22, 23, 25, 27, 29, 32], "asset_nam": 23, "asset_uuid": 32, "assign": [6, 8, 19, 29, 31], "assist": [3, 22], "associ": [1, 8, 20, 21, 29, 30, 32], "assum": 9, "asynchron": [16, 23, 24, 27], "attach": [8, 9, 23, 26], "attempt": 24, "attribut": 9, "audio": [4, 14], "audioinput": 14, "authent": [0, 4, 6, 19, 21, 29, 31], "authentif": 32, "author": [4, 15, 16, 23], "auto": [10, 11, 12], "autom": [13, 18], "automat": [0, 6, 8, 9, 16, 20, 21, 23, 24, 27, 29, 31], "avail": [0, 3, 6, 8, 9, 10, 14, 15, 16, 22, 23, 24, 25, 27, 28, 29, 30, 31, 32, 33], "aw": [3, 22], "azur": [3, 22], "b": [10, 11, 12], "babel": 20, "back": [14, 18], "backend": [3, 10, 11, 12, 13, 22], "bad": 32, "badli": [21, 32], "balanc": [4, 13], "bar": [10, 11, 12], "base": [0, 1, 3, 4, 6, 7, 11, 12, 13, 16, 17, 18, 19, 20, 21, 22, 25, 27, 28, 29, 31, 32], "basemodel": 8, "baseus": 6, "baseuserapitest": 18, "bash": 10, "basic": [0, 6, 8, 14, 23, 24, 25, 27, 32], "bat": 12, "batch": 12, "batteri": [17, 30], "becaus": [9, 18, 27], "becom": 4, "been": [4, 10, 11, 12, 15, 16, 20, 21], "befor": [3, 4, 6, 10, 11, 12, 14, 16, 18, 22, 27, 31, 32], "beforehand": [10, 11, 12, 23], "behavior": [8, 32], "behind": [19, 23], "being": [10, 11, 12, 13, 16, 17, 18, 31], "below": [0, 6, 7, 8, 12, 14, 16, 17, 24, 27, 28, 29, 31], "best": [3, 22], "better": [3, 22, 31], "between": [0, 3, 4, 8, 13, 15, 17, 22, 31, 32], "beyond": [18, 25, 31], "bidirect": 21, "bin": 6, "bit": 4, "block": [15, 19], "bodi": [23, 32], "bool": [15, 30], "boolean": [14, 32], "box": 14, "branch": [10, 11, 12], "breach": 4, "breakpoint": 9, "brew": 11, "brief": 4, "bring": 13, "bri\u00e8r": [3, 22], "brows": [8, 9], "browser": [4, 9, 10, 11, 12, 20, 27], "bsd": [3, 22], "buffer": [17, 21], "build": [0, 8, 10, 11, 12, 13, 19], "builder": 12, "built": [0, 3, 4, 12, 22], "busi": [0, 17, 30, 32], "busy_devic": 30, "busy_particip": 30, "busy_us": 30, "by_us": 32, "byte": 15, "c": 12, "cach": 9, "call": [0, 3, 14, 16, 17, 22, 23, 25, 30, 31], "call_servic": 15, "caller": 15, "camera": 8, "can": [0, 1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 23, 24, 25, 26, 27, 29, 30, 31, 32, 33], "cannot": [4, 28, 31, 33], "capabl": 25, "captur": [3, 22], "care": [3, 22, 32], "case": [4, 8, 15, 16, 25, 26, 29, 31], "cast": 17, "categor": 8, "caus": 9, "cd": [6, 10, 11, 12], "cdrv": [3, 22], "central": [0, 24, 30], "cert": 6, "certain": 29, "certbot": 6, "certif": [0, 1, 7, 9, 10, 11, 12, 21, 31, 32], "challeng": [3, 22], "chang": [1, 4, 6, 9, 10, 11, 12, 14, 15, 17, 18, 20, 27, 29, 31], "channel": [0, 17, 21], "charg": 0, "check": [0, 14, 16, 31, 32], "checkbox": [8, 14], "checklist": 14, "child": 8, "choic": [6, 13, 19], "choos": [10, 11, 12], "chooser": 14, "circular": 8, "class": [7, 15, 16, 18, 21], "clean": 16, "clean_valu": 8, "click": [9, 10, 11, 12, 18, 23], "client": [3, 4, 7, 8, 14, 16, 17, 21, 22, 25, 27, 31, 33], "client_descript": 32, "client_documentation_url": 32, "client_linux_download_url": 32, "client_mac_download_url": 32, "client_nam": 32, "client_vers": 32, "client_windows_download_url": 32, "clientvers": 32, "clinician": [3, 22], "clone": [6, 9, 10, 11, 12], "close": [4, 6, 16, 21], "cloud": [3, 22], "cmake": [6, 9, 12, 13, 20], "cmakefil": 12, "code": [3, 6, 8, 10, 11, 12, 20, 22, 27, 30, 31, 32], "codebas": 18, "collabor": [3, 22], "collect": [3, 8, 22], "color": 14, "column": 8, "com": [6, 9, 10, 11, 12], "combin": [4, 14, 31, 32], "combobox": 8, "come": [0, 8, 16, 31], "command": [6, 9, 10, 11, 12, 18, 27], "comment": [3, 15, 22], "commit": 8, "common": [3, 7, 8, 13, 17, 22, 25, 31], "commun": [0, 3, 7, 10, 11, 12, 16, 17, 19, 22, 23, 24, 27, 30], "compar": 14, "compil": [0, 9], "complet": [5, 15, 31], "complex": [9, 13, 26], "complic": 14, "compon": [0, 4, 8, 9, 10, 11, 12, 18, 23], "compos": [2, 8, 13, 14], "compromis": 4, "comput": [4, 8, 14], "concept": [4, 16], "conda": 6, "conf": [6, 12], "conferenc": 25, "config": [1, 7, 8, 9, 10, 12, 19, 25, 32], "configur": [0, 3, 4, 5, 8, 10, 11, 12, 22, 26, 29, 31, 32], "confirm": 14, "conflict": [15, 32], "congratul": 9, "connect": [0, 1, 3, 4, 6, 8, 15, 16, 22, 27, 30], "connexion": 9, "consid": [8, 12, 18, 25], "consider": 4, "consol": [6, 10, 11, 12, 18], "constraint": 19, "contain": [1, 7, 8, 9, 14, 16, 17, 19, 20, 23, 27, 30, 31, 32], "content": [6, 17, 31], "context": [8, 14, 25, 32], "contextu": 18, "contribut": 27, "control": [3, 8, 22, 27, 31], "convent": 31, "copi": [6, 9, 14], "core": [8, 15, 18, 19, 20, 25, 29, 33], "correct": [6, 10, 11, 12, 16, 19, 21, 27, 31], "correctli": [20, 32], "correspond": [9, 14, 31], "coturn": 6, "could": [1, 3, 4, 8, 10, 11, 12, 13, 14, 15, 17, 20, 22, 23, 25, 27, 31], "cours": [19, 29], "cover": 18, "covid": [3, 22], "creat": [0, 1, 4, 6, 7, 8, 9, 14, 17, 23, 25, 26, 27, 29, 31, 32], "createscertif": [10, 11, 12], "creation": [0, 26, 31], "creator": 13, "cred": 6, "credenti": 16, "cross": [13, 18], "csr": [16, 32], "current": [0, 1, 3, 8, 13, 14, 15, 16, 17, 22, 23, 24, 25, 27, 29, 30, 31, 32], "custom": [8, 27], "cynthia": [3, 22], "c\u00e9dric": [3, 22], "d": [3, 6, 22], "dashboard": [3, 22], "data": [3, 4, 7, 8, 9, 14, 15, 18, 19, 21, 22, 23, 31, 32], "databas": [4, 6, 7, 13, 14, 15, 16, 17, 18, 25, 26, 27, 29, 31, 32], "date": [14, 32], "datetim": 14, "db": 1, "db_type": 1, "de": [3, 22], "debug": 15, "debug_mod": 1, "debugg": 9, "decid": [9, 20], "decim": 14, "decor": 16, "decrypt": 4, "dedic": [3, 22], "default": [1, 6, 8, 9, 10, 11, 12, 14, 20, 21, 25, 31, 32], "defin": [0, 4, 8, 9, 14, 15, 16, 17, 21, 25, 26, 27, 29], "definit": [10, 11, 12, 14, 16, 30, 31], "delet": [8, 17, 18, 29, 32], "deni": [0, 16], "depend": [0, 6, 8, 14, 15, 16, 18, 21, 23, 25, 26, 29, 30, 31], "deploi": [1, 7, 16, 18, 25], "deploy": [1, 3, 22, 27], "deprec": 1, "describ": [0, 1, 6, 14, 17, 23, 25, 31, 33], "descript": [6, 9, 32], "deseri": 8, "design": [3, 4, 8, 16, 18, 22], "desir": 23, "desk": [3, 22], "desktop": [3, 12, 22], "dest": 17, "detail": [1, 3, 22, 32], "detect": [8, 17, 20, 21], "dev": [10, 11, 12, 13], "develop": [2, 3, 4, 7, 8, 18, 19, 22, 25, 27, 31], "devic": [0, 3, 7, 8, 10, 11, 12, 15, 21, 22, 25, 26, 27, 30, 31], "device_certif": 32, "device_config": 32, "device_en": [16, 32], "device_info": 32, "device_lastonlin": 32, "device_nam": 32, "device_not": 32, "device_onlin": 32, "device_particip": 32, "device_project": 32, "device_register_kei": 32, "device_sit": 32, "device_subtyp": 32, "device_subtype_nam": 32, "device_token": 32, "device_typ": 32, "device_type_kei": 32, "device_type_nam": 32, "device_uuid": [15, 30, 32], "deviceev": 30, "deviceeventmanag": 21, "devicesubtyp": 32, "devicetyp": 32, "diagram": 0, "dialog": [10, 11, 12], "dict": [8, 27], "dictionari": [20, 21, 27, 30, 31], "didn": 15, "differ": [1, 3, 4, 6, 8, 10, 11, 12, 15, 21, 22, 24, 26, 27, 33], "direct": 21, "directli": [0, 8, 10, 11, 12, 14, 21, 29], "directori": [9, 10, 11, 12, 27], "disabl": [10, 16, 25, 28], "disadvantag": 20, "disconnect": 32, "disk": 9, "displai": [1, 7, 8, 14, 18, 23, 24, 31, 33], "dissemin": [3, 22], "distro": 13, "dn": [1, 6], "do": [0, 6, 8, 9, 15, 18, 19, 23, 29, 31, 32], "doc": [1, 3, 7, 9, 22, 23, 24, 31, 33], "docker": [2, 7, 13], "document": [1, 6, 7, 9, 15, 18, 21, 23, 24, 33], "doe": 18, "doesn": [4, 8, 12, 16, 19, 27, 29, 32], "domin": [3, 22, 32], "don": [6, 10, 11, 12, 29, 32], "done": [0, 3, 4, 6, 10, 11, 12, 15, 16, 20, 22, 29, 31], "doumdi": [3, 22], "down": 14, "download": [0, 6, 9, 10, 11, 12, 32, 33], "drop": 14, "dump": 31, "duplic": 15, "durat": 14, "dynam": [4, 14, 15, 16, 27, 31], "e": 32, "each": [0, 1, 4, 6, 7, 8, 10, 11, 12, 14, 15, 16, 17, 18, 20, 21, 23, 25, 26, 27, 30, 31, 32], "eas": [3, 4, 8, 10, 11, 12, 14, 15, 19, 20, 22], "easi": [1, 3, 12, 22, 31], "easier": [9, 10, 11, 12, 17, 20], "easili": [4, 31], "easyrtc": [0, 6, 7, 10, 11, 12, 27], "ecolog": [3, 22], "edit": [6, 8, 14, 32], "editor": [10, 11, 12, 20], "effect": 4, "effort": [3, 18, 22], "either": [0, 6, 8, 14, 15, 26, 32], "elderli": [3, 22], "electron": 4, "element": [1, 4, 14, 32], "els": [6, 19], "embed": [3, 22], "emerg": [3, 22], "empti": [1, 14, 32], "emr": 4, "en": 20, "enabl": [6, 16, 21, 28, 31, 32, 33], "enable_doc": 1, "encapsul": [17, 20], "encourag": 18, "encrypt": [0, 1, 4, 6, 16, 21], "end": [0, 4, 8, 10, 11, 12, 14, 16, 19, 20, 23, 24, 31, 32], "end_dat": 32, "endpoint": [19, 31, 32], "engin": [0, 1, 21], "english": 20, "enough": [9, 32], "ensur": [0, 1, 6, 8, 12, 14, 18, 21, 27, 31], "enter": [10, 11, 12, 14], "entri": [4, 8, 14, 29], "env": [6, 7, 10, 11, 12], "environ": [3, 4, 7, 13, 22, 23, 27, 30], "equal": 14, "equat": 14, "error": [1, 24, 27, 32], "error_text": 27, "especi": [0, 1, 4, 13], "essenc": [3, 22], "establish": [8, 16, 27, 30], "et": [3, 22], "etc": [6, 8], "even": [4, 8, 16, 18, 31], "event": [0, 8, 15, 16, 21, 24, 29, 32], "everi": [0, 8, 12, 16, 18, 31], "everyth": 31, "ex": [10, 12, 23], "exact": [14, 31], "exampl": [4, 6, 7, 8, 9, 10, 11, 12, 15, 16, 18, 19, 25, 26, 27, 29, 30, 31], "except": [1, 4, 28], "exchang": [4, 15, 19], "exclud": 23, "execstart": 6, "execut": [6, 8, 10, 11, 12, 15, 18, 27], "exist": [9, 10, 11, 12, 18, 20, 23, 32, 33], "expand": [10, 11, 12, 18, 32], "expir": [0, 16], "explanatori": [1, 17], "explicitli": [13, 15, 17], "expos": [0, 13, 15, 19, 26, 27, 29, 31], "express": 27, "extens": [0, 25], "extern": [1, 6, 7, 12, 13, 15, 17, 18, 27, 32], "external_port": 27, "external_servic": 6, "extract": [12, 20], "facil": [3, 22], "facilit": 19, "fact": [4, 16], "factori": 0, "fail": [8, 18], "fallback": 20, "fals": [1, 16], "favorit": [9, 10], "featur": [0, 3, 8, 18, 22, 25, 28, 31], "feed": 8, "fetch": 6, "few": [6, 8, 18], "field": [3, 4, 8, 14, 17, 20, 22, 29, 32], "file": [4, 7, 8, 9, 10, 11, 12, 15, 19, 20, 24, 25, 27, 28, 33], "filenam": 23, "files_directori": 23, "filetransf": 25, "filetransferservic": [6, 23], "fill": [10, 11, 12, 14], "filter": [0, 4, 8, 14, 21, 29, 31, 32], "find": [14, 31], "firewal": 6, "first": [4, 9, 10, 11, 12, 14], "fit": 5, "flag": [12, 14, 32], "flask": [0, 3, 18, 19, 20, 22, 31], "float": [14, 15], "fly": 31, "focus": [3, 22], "folder": [1, 6, 8, 10, 11, 12, 14, 18, 19, 20], "follow": [0, 1, 3, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 18, 19, 22, 25, 26, 27, 30, 31, 32], "forbidden": 32, "forget": [6, 10, 11, 12], "form": [3, 8, 22, 23, 27, 29, 31, 32], "format": [1, 8, 14, 15, 21, 25, 27, 30, 31], "forward": 15, "found": [0, 1, 14, 19, 20, 30, 32], "fr": 20, "frame": 21, "framework": [0, 3, 19, 22, 25, 27], "fran\u00e7oi": [3, 22], "free": 9, "freedom": 25, "french": 20, "friendli": 9, "from": [0, 1, 3, 4, 6, 7, 8, 9, 10, 11, 12, 14, 15, 18, 20, 21, 22, 23, 27, 31, 32], "from_device_uuid": 32, "from_json": 8, "from_participant_uuid": 32, "from_user_uuid": 32, "front": [0, 8, 19, 23, 24], "frontend": [3, 22], "full": [1, 4, 6, 9, 16, 18, 23, 31, 32], "fulli": [0, 31], "function": [0, 8, 16, 18, 20, 27], "function_nam": 15, "further": [0, 4, 12, 16, 26], "furthermor": [4, 14], "futur": [3, 22, 27, 29], "fwlink": 9, "g": [6, 32], "gener": [0, 1, 4, 6, 7, 8, 9, 10, 11, 12, 16, 19], "get": [6, 13, 16, 21, 32], "get_count": 8, "gettext": 20, "git": [6, 9, 12], "github": [3, 5, 6, 9, 10, 11, 12, 18, 22], "give": [9, 32], "global": [0, 25, 32], "go": [4, 9, 17], "godin": [3, 22], "goe": [25, 31], "googl": 6, "grant": 8, "graphic": 9, "group": [3, 6, 8, 10, 11, 12, 22, 26, 29, 32], "gui": 9, "guidelin": 18, "ha": [0, 1, 8, 14, 15, 16, 20, 21, 29, 30, 31, 32], "hack": 4, "hacker": 4, "handl": [0, 15], "happen": [4, 8, 15], "hard": 18, "hardwar": [8, 25], "hasn": 30, "have": [3, 4, 6, 8, 9, 10, 11, 12, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 25, 26, 29, 31, 32], "header": [16, 17, 20, 23, 32], "health": [3, 22], "help": [14, 15, 18], "helper": [8, 12], "here": [0, 1, 6, 9, 10, 11, 14, 21, 25, 27, 30, 31, 32, 33], "hidden": 14, "high": [4, 8], "higher": 8, "hint": 0, "hold": 7, "home": [3, 6, 12, 22], "hook": 14, "host": [1, 4, 6, 9], "hostnam": [1, 6, 27], "hour": 16, "hover": 9, "how": [1, 21, 27], "howev": [1, 10, 11, 12, 18, 20, 23, 24, 27], "http": [1, 3, 6, 9, 10, 11, 12, 22, 23, 24, 27, 31, 32, 33], "httpauth": 32, "i": [0, 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, 29, 30, 31, 32, 33], "id": [4, 8, 10, 11, 12, 13, 14, 15, 18, 25, 27, 31, 32], "id_": [8, 31], "id_asset": 32, "id_creator_devic": 32, "id_creator_particip": 32, "id_creator_servic": 32, "id_creator_us": [27, 32], "id_devic": 32, "id_device_nam": 32, "id_device_particip": 32, "id_device_project": 32, "id_device_sit": 32, "id_device_subtyp": 32, "id_device_typ": 32, "id_group": 32, "id_particip": 32, "id_participant_group": 32, "id_project": [31, 32], "id_servic": 32, "id_service_access": 32, "id_service_config": 32, "id_service_rol": 32, "id_service_sit": 32, "id_sess": [23, 27, 32], "id_session_ev": 32, "id_session_event_typ": 32, "id_session_typ": [27, 32], "id_session_type_project": 32, "id_session_type_sit": 32, "id_sit": [31, 32], "id_specif": 32, "id_test": 32, "id_test_typ": 32, "id_test_type_project": 32, "id_test_type_sit": 32, "id_us": 32, "id_user_group": 32, "id_user_prefer": 32, "id_user_user_group": 32, "identif": 32, "identifi": [8, 16, 17, 25], "ignor": 32, "ignore_field": 8, "imag": [8, 9], "impact": [4, 18], "implement": [0, 4, 8, 14, 15, 16, 17, 23, 25, 26, 27, 30, 31, 32], "import": [7, 12, 16, 19, 23, 27], "impos": 19, "imposs": 4, "improb": 4, "inact": 21, "includ": [0, 1, 3, 6, 8, 10, 11, 12, 14, 16, 22, 24, 26, 27, 31, 32, 33], "incom": 15, "independ": 25, "index": [0, 1, 32], "indic": [14, 17, 30, 31, 32], "individu": [4, 9, 31], "inerti": [3, 22], "info": 32, "inform": [0, 1, 3, 4, 7, 8, 9, 10, 11, 12, 16, 21, 22, 27, 29, 31, 32], "ing": [3, 22], "inherit": [8, 18], "ini": 6, "init": 6, "initi": [1, 6, 16, 18, 31], "input": [14, 27, 30, 32], "insert": 8, "insid": 8, "inspect": 9, "instal": [2, 8], "instanc": [6, 10, 11, 12, 15, 18], "instanti": 15, "instead": [8, 15, 16, 23, 26, 32], "instruct": [1, 6, 10, 11, 13], "instrument": [3, 22], "int": [15, 27, 30], "integ": 32, "integr": [8, 11, 20], "intellisens": 9, "inter": [3, 16, 22], "interact": [0, 8, 9, 18, 19, 31], "interest": 1, "interfac": [0, 3, 9, 10, 11, 12, 22, 27], "intern": [0, 1, 4, 7, 10, 11, 12, 21, 25, 27, 32], "interpret": [10, 11, 12], "introlab": [3, 6, 10, 11, 12, 22], "invalid": [0, 15, 32], "invit": [4, 17], "invite": [4, 8, 27], "involv": [4, 8, 29], "io": [3, 22], "ip": 6, "isn": [4, 10, 32], "isol": 27, "issu": [3, 4, 22], "issuperadmin": 32, "item": [0, 32], "its": [3, 8, 9, 10, 11, 12, 16, 18, 20, 22, 23, 25, 26, 27, 29, 32], "itself": [0, 1, 4, 6, 10, 11, 12, 18, 23, 29, 31, 32], "j": [0, 3, 10, 11, 12, 22, 27], "javascript": 27, "join": [4, 8, 17, 31], "joinsessionev": 30, "joinsessionreplyev": [27, 30], "journal": [3, 22], "json": [1, 6, 8, 9, 14, 15, 25, 27, 30, 31, 32], "just": [4, 12], "justmycod": 9, "keep": 0, "kei": [4, 6, 14, 15, 20, 23, 30, 31, 32], "keystor": 16, "keyword": [1, 20], "killmod": 6, "killsign": 6, "kind": 8, "know": [4, 15, 16], "knowledg": 2, "known": [17, 21], "label": 14, "laboratori": [3, 22], "languag": [13, 14, 17, 20, 23, 25], "larg": 18, "larger": 18, "largest": 31, "last": 4, "latest": 11, "launch": [0, 9, 12, 23, 24, 27, 33], "layer": [4, 8], "layout": 8, "lead": 8, "leak": [4, 31], "learn": 9, "least": [8, 14, 16, 31, 32], "leav": [3, 8, 17, 22], "leavesessionev": 30, "left": [1, 6, 10, 11, 12, 17], "legend": 29, "less": [16, 31], "level": [0, 8, 16, 17, 24, 29, 30], "lib": 6, "librari": [3, 8, 22, 23], "light": 12, "like": [3, 9, 10, 11, 12, 13, 22, 29], "limit": [3, 4, 8, 16, 22, 26, 27, 29, 31, 32], "line": [6, 9, 10, 11, 12, 14], "link": [4, 6, 7, 8, 12, 14, 26, 27, 29, 32], "linkid": 9, "linux": [2, 7, 13], "list": [0, 6, 8, 14, 15, 21, 27, 29, 30, 31, 32], "listen": [1, 4, 6, 19, 23, 24, 27, 33], "littl": 16, "live": 30, "ll": 13, "ln": 6, "load": [4, 10, 11, 12, 13, 27, 32], "local": [1, 4, 18, 19, 20, 27, 31], "local_base_port": 27, "localhost": [1, 9, 10, 11, 12], "localroot": 9, "locat": [1, 6, 18, 31], "log": [4, 6, 10, 11, 12, 16, 17, 23, 25, 28, 29, 31, 32], "logev": 24, "logger": [24, 29], "loggingservic": [6, 24], "logic": [7, 8, 14], "login": [10, 11, 12, 15, 17, 21, 23, 24, 29, 31, 32], "login_requir": 16, "logout": [29, 31, 32], "logtofil": 9, "long": [13, 16, 19], "longer": 14, "longtext": 14, "look": [10, 11, 12, 31], "lot": 4, "lower": [8, 14], "lt": 6, "lucki": 4, "l\u00e9tourneau": [3, 22], "m": [3, 22], "mac": 13, "machin": [6, 8, 9], "made": [13, 15, 16, 18, 21], "maheux": [3, 22], "mai": [15, 16, 31], "main": [0, 1, 6, 7, 8, 15, 19, 25, 26, 31], "maintain": [4, 13], "mainten": 4, "make": [4, 6, 8, 9, 10, 11, 12, 14, 16, 17, 20, 23, 31], "manag": [0, 1, 3, 9, 10, 12, 13, 15, 16, 17, 22, 23, 25, 27, 29, 32, 33], "mandatori": [14, 23, 25], "mani": [0, 4, 14, 19, 32], "manipul": 8, "manner": [3, 22], "manual": [10, 11, 12, 20, 23], "map": 9, "mapper": 8, "marc": [3, 22], "markdown": 9, "mask": 14, "mass": 31, "match": [1, 4, 32], "max": 6, "max_sess": 27, "maximum": [27, 32], "me": 12, "mean": [1, 31], "meant": 4, "measur": [3, 22], "mech": 6, "mechan": [0, 13, 15, 17, 19, 21, 26, 29], "medic": 4, "meet": [4, 8], "mental": [3, 22], "menu": 18, "merg": 18, "messag": [0, 7, 15, 16, 20, 21, 27, 30], "met": 14, "michaud": [3, 22], "michel": [3, 22], "micro": [3, 22, 25, 31], "microservic": [3, 22], "microsoft": 9, "might": [0, 1, 4, 8, 9, 16, 19, 27, 31], "min": 6, "miniconda": 13, "miniconda3": [11, 12], "minilogg": [3, 22], "minim": [4, 31, 32], "minimum": 23, "minut": [9, 31], "mismatch": 32, "miss": 32, "mit": [3, 22], "mo": 20, "mobil": [3, 22], "mode": 15, "model": [7, 16, 17, 18, 25, 26, 27, 29, 31], "model_nam": 8, "modif": 18, "modifi": [5, 14, 18, 19, 29, 32], "modul": [1, 4, 7, 8, 13, 16, 21, 24, 29, 31, 33], "modular": [0, 3, 4, 22], "module_nam": 15, "moment": 9, "monitor": [0, 3, 22, 30], "more": [0, 1, 2, 4, 6, 8, 9, 15, 18, 20, 21, 26, 27, 29, 31, 32], "most": [4, 14, 31, 32], "mount": 9, "movit": [3, 22], "much": [3, 22], "multi": [6, 9, 14], "multipl": [1, 8, 9, 13, 14, 16, 17], "must": [8, 9, 11, 16, 21, 31, 32], "mysql": 13, "name": [0, 1, 6, 9, 10, 11, 12, 14, 17, 23, 25, 31, 32], "nano": 6, "nativ": [2, 3, 22], "natur": 13, "necessari": 19, "need": [0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 24, 25, 27, 28, 30, 32], "network": [6, 9], "never": [4, 25], "new": [0, 4, 7, 8, 9, 16, 18, 25, 26, 27, 31, 32], "next": [10, 11, 12], "nginx": [0, 4, 7, 9, 13, 23, 27], "no_group": 32, "node": [0, 3, 10, 11, 12, 22, 27], "nodej": 6, "non": [15, 23, 24, 27, 33], "none": [15, 23, 24], "note": [12, 16, 32], "noth": 6, "now": [1, 10, 11, 12, 15, 17, 27, 29, 31, 32], "nowadai": 4, "npm": [6, 10, 11, 12], "nssm": 12, "null": [14, 32], "number": [8, 14, 17, 23, 27, 32], "numer": 14, "o": 13, "object": [0, 14, 16, 17, 18, 20, 21, 29, 30, 31, 32], "objecttyp": 14, "obtain": [16, 23], "occur": [1, 4, 13, 15, 16, 17, 20, 21, 27, 31, 32], "octet": [31, 32], "offlin": [15, 17, 32], "offset": 32, "ofth": 32, "ok": [27, 32], "old": 32, "onc": [16, 18, 32], "one": [0, 8, 13, 14, 15, 17, 20, 24, 27, 31, 32], "oneach": 32, "ones": [6, 8, 18, 31], "ongo": 4, "onli": [0, 1, 3, 4, 6, 8, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 21, 22, 23, 26, 27, 29, 30, 31, 32], "onlin": [0, 4, 6, 15, 16, 17, 29, 30, 32], "online_devic": 30, "online_particip": 30, "online_us": 30, "onto": 0, "op": 14, "open": [0, 10, 11, 12, 13, 16, 23, 27, 31], "openimu": [3, 22], "openssl": 12, "opentera": [2, 4, 7, 8, 13, 14, 15, 16, 18, 19, 20, 21, 23, 24, 27, 28, 29, 31, 32, 33], "openterafil": [6, 10, 11, 12], "openteralog": [6, 10, 11, 12], "openteraplu": [3, 10, 11, 12, 22, 33], "openteraserv": [6, 9], "oper": [3, 4, 8, 9, 14, 22, 31], "oppos": 4, "option": [6, 7, 8, 10, 11, 12, 16, 18, 19, 26, 27], "orchestr": 9, "order": [14, 31, 32], "orderby_rec": 32, "organ": [7, 8, 14], "organiz": 8, "origin": 15, "orm": 8, "osx": 11, "other": [0, 1, 4, 6, 8, 10, 11, 12, 13, 14, 15, 16, 18, 20, 23, 25, 29, 31], "otherwis": [10, 11, 12, 16, 27, 31, 32], "out": [4, 8, 14, 15, 16, 17, 31], "over": [4, 13, 16, 17], "overal": 27, "overcom": 8, "overrid": 25, "overriden": 25, "overview": [4, 8, 25], "overwritten": 32, "own": [8, 10, 11, 12, 18, 19, 23, 25, 26, 29, 31, 32], "owner": [6, 10, 11, 12], "p": [3, 12, 22], "packag": [6, 10, 16, 19, 23], "page": [1, 4, 7, 10, 11, 12, 23, 24, 31, 33], "panchea": [3, 22], "parallel": 27, "paramet": [1, 6, 8, 16, 21, 31, 32], "pars": 15, "part": [4, 7, 8, 12, 14, 17, 18, 23, 31, 32], "parti": [4, 12], "partial": 32, "particip": [0, 3, 4, 8, 15, 21, 22, 25, 26, 27, 30, 31], "participant_email": 32, "participant_en": 32, "participant_group": 32, "participant_group_nam": 32, "participant_lastonlin": 32, "participant_login_en": [16, 32], "participant_multi_auth": 16, "participant_nam": 32, "participant_password": 32, "participant_token": 32, "participant_token_en": [16, 32], "participant_usernam": 32, "participant_uuid": [15, 30, 32], "participantev": 30, "participanteventmanag": 21, "particular": [4, 8, 14, 29], "pass": [27, 32], "password": [1, 6, 9, 10, 11, 12, 14, 16, 32], "path": [1, 6, 10, 12, 18, 20, 23, 27], "pathmap": 9, "pathsepar": 9, "patient": [3, 4, 22], "payload": 23, "pc": 25, "peer": 4, "peopl": [3, 22], "per": 31, "perfect": 4, "perform": [9, 14, 18], "perman": 16, "permiss": 32, "persist": [18, 30], "pgadmin": [6, 10, 11, 12], "ph": [3, 22], "philipp": [3, 22], "pht": [3, 22], "physic": [3, 4, 6, 8, 22], "pi": [3, 22], "pictur": 8, "ping": 21, "place": [1, 4, 16], "plan": [10, 11, 12], "platform": [0, 4, 7, 8, 13, 17, 24, 27, 33], "pleas": [1, 12, 32, 33], "plugin": 6, "po": 20, "poedit": 20, "point": [4, 6, 14], "port": [0, 1, 4, 6, 9, 12, 13, 19], "portabl": [3, 20, 22], "posit": 30, "possibl": [2, 3, 4, 9, 14, 16, 18, 20, 22, 32, 33], "post": 32, "postgr": [6, 9], "postgresql": [1, 3, 8, 9, 13, 22], "postgressql": 9, "potenti": [4, 15], "power": [3, 22], "practic": [3, 22], "prefer": [8, 32], "prefix": 8, "presenc": [3, 22], "present": [0, 1, 4, 8, 19], "prevent": [4, 6, 8, 15, 18, 31], "previou": [8, 31], "previous": [6, 23], "primarili": [3, 22], "print": 23, "privat": 6, "privileg": [10, 11, 12], "probabl": [15, 31], "probuf": 17, "proce": [6, 9, 16], "procedur": [9, 11, 12, 17, 23], "process": [0, 4, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16, 19, 20, 21, 23, 27, 31], "product": [1, 4, 5, 9, 18], "profession": 4, "program": [23, 25], "progress": [8, 27], "project": [0, 6, 7, 8, 9, 10, 11, 12, 13, 18, 19, 25, 29, 31, 32], "project_access": 32, "project_descript": 32, "project_en": 32, "project_nam": [31, 32], "projectaccess": 32, "promot": 32, "properli": [0, 4, 10, 11, 12, 14, 15, 25, 27, 31], "properti": [8, 31], "protect": 6, "proto": 17, "protobuf": [17, 21], "protocol": [0, 17, 21], "prototyp": [3, 22], "provid": [0, 3, 4, 5, 6, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 19, 22, 23, 25, 27, 28, 29, 30, 32], "proxi": 9, "psfl": [3, 22], "psql": 6, "public": [6, 19], "publish": [0, 9, 13, 21], "purpos": [0, 1, 4, 14, 15, 16, 17, 31], "put": [0, 1, 4, 6, 9, 12, 18, 25, 31], "py": [0, 6, 10, 11, 12, 23, 24, 27, 33], "pybabel": 20, "pycharm": [10, 11, 12, 13, 18], "pypi": [16, 19], "pytest": 18, "python": [0, 3, 7, 9, 10, 11, 12, 13, 18, 19, 22], "python3": 6, "pythonpath": 6, "q": 6, "qt": [3, 13, 22], "qualiti": 18, "queri": [0, 1, 8, 9, 14, 16, 21, 29, 30, 31, 32], "question": 8, "quickli": 0, "quit": [6, 12, 16, 17, 29], "rang": 27, "rapid": [3, 22], "rare": 4, "raspberri": [3, 22], "rate": [31, 32], "rb": 23, "re": [8, 10, 11, 12], "reach": 27, "react": 19, "read": [14, 15, 29], "read_onli": 14, "readabl": [8, 20], "readi": [10, 11, 12], "realm": 6, "reason": [15, 31, 32], "reboot": 6, "receiv": [4, 8, 15, 16, 17, 21, 32], "recent": 32, "recogn": [3, 22], "recommand": 6, "recommend": [1, 2, 6, 10, 11, 12, 13, 15, 16, 18], "record": [4, 8, 24], "recreat": 18, "recurs": [6, 7, 10, 11, 12], "redi": [3, 13, 15, 18, 22], "redirect": [13, 27], "rediscli": 15, "redisclientrpc": 15, "redisvar": 15, "redo": 20, "reduc": [3, 22], "redund": 4, "refer": [8, 16, 20, 23, 25, 31], "referenc": 0, "refin": 26, "refresh": 32, "refresh_token": [31, 32], "refreshtoken": 16, "refus": 4, "regard": [8, 16], "regist": [16, 31, 32], "registr": 32, "registri": [0, 30], "rehab": [4, 7, 27], "rehabilib": [3, 22], "rehabilit": [0, 3, 22, 25, 27], "rel": 23, "relai": [4, 6], "relat": [0, 2, 8, 14, 18, 20, 29, 30, 31, 32], "relationship": [8, 26, 32], "releas": [9, 18], "relev": 14, "reli": 27, "rememb": 18, "remot": [0, 3, 9, 17, 22], "remoteroot": 9, "remov": [1, 6, 8, 32], "repeat": [10, 11, 12], "replac": [6, 8, 10, 11, 12, 32], "repli": [15, 16, 17, 21, 27, 31, 32], "reply_cod": 27, "reply_msg": 27, "report": [3, 8, 22], "repositori": [0, 10, 17, 23], "repres": [0, 8, 14, 15], "request": [0, 4, 6, 8, 9, 13, 14, 15, 20, 21, 27, 29, 32], "requir": [0, 1, 2, 4, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16, 18, 19, 20, 25, 27, 29, 31, 32], "requirepass": 6, "research": [3, 4, 22], "reset": 32, "resourc": 4, "respect": [8, 16, 31], "respond": 1, "respons": [20, 23], "rest": [1, 16, 19, 21, 29, 30, 33], "restart": 6, "restartsec": 6, "restrain": 8, "restrict": [0, 16, 32], "restx": 31, "result": [8, 10, 11, 12, 32], "resum": 29, "return": [0, 8, 15, 16, 21, 30, 31, 32], "reus": [0, 3, 17, 22], "revers": 9, "right": [1, 9, 10, 11, 12, 18, 32], "risk": [9, 16], "rm": 6, "ro": [3, 22], "robot": 8, "robust": 18, "role": [0, 4, 8, 10, 11, 12, 16, 27, 32, 33], "room": 4, "root": [9, 24, 33], "rout": [0, 1, 10, 11, 12, 27], "router": [0, 4, 10, 11, 12, 23, 27], "rpc": [0, 17], "rpcmessag": 15, "rule": [1, 6, 27], "run": [0, 1, 4, 6, 8, 9, 15, 20, 23, 24, 27, 33], "safe": [8, 16], "same": [4, 6, 8, 12, 15, 16, 17, 18, 27, 29, 31, 32], "sampl": [5, 7, 9], "save": [6, 10, 11, 12, 32], "sbrier": [3, 22], "sc": [3, 22], "scenario": 1, "schema": 25, "scheme": [0, 16, 31], "scope": [18, 25, 31], "script": [0, 7, 10, 11, 12, 20], "second": [4, 8, 16, 21], "secret": 32, "section": [4, 6, 9, 10, 11, 12, 13, 25], "secur": [0, 3, 6, 9, 16, 22, 27, 31, 32], "see": [0, 1, 4, 7, 8, 10, 11, 12, 13, 14, 16, 17, 21, 24, 27, 29, 31], "select": [9, 10, 11, 12, 18, 23], "self": [1, 4, 9, 10, 11, 12, 17, 21, 29, 32], "send": [0, 14, 15, 16, 17, 21, 23, 27, 32], "sens": [8, 17], "sensit": 4, "sensor": 8, "sent": [4, 8, 14, 15, 16, 17, 21, 27], "separ": [0, 1, 4, 16, 25, 31], "seq": 17, "sequenc": [0, 17], "serial": [8, 14, 17, 21], "serv": [0, 18, 19, 31], "server": [0, 2, 4, 7, 8, 13, 14, 15, 16, 17, 18, 20, 21, 23, 24, 25, 26, 27, 31, 32, 33], "server_url": 1, "servic": [3, 4, 7, 8, 9, 13, 18, 20, 21, 22, 31], "service_access": 32, "service_clientendpoint": 32, "service_config": 32, "service_config_config": 32, "service_default_config": 32, "service_editable_config": 32, "service_en": [16, 32], "service_endpoint": 32, "service_endpoint_devic": 32, "service_endpoint_particip": 32, "service_endpoint_us": 32, "service_hostnam": 32, "service_kei": [15, 32], "service_nam": 32, "service_port": 32, "service_project": 32, "service_rol": 32, "service_role_nam": 32, "service_sit": 32, "service_system": 32, "service_uuid": 32, "serviceaccess": 32, "session": [0, 3, 8, 15, 21, 22, 23, 26, 27, 29, 30, 32], "session_com": 32, "session_devic": [27, 32], "session_dur": 32, "session_ev": 32, "session_event_context": 32, "session_event_datetim": 32, "session_event_text": 32, "session_manag": 32, "session_nam": 32, "session_paramet": 32, "session_particip": [27, 32], "session_participants_id": 32, "session_start_datetim": 32, "session_statu": 32, "session_typ": 32, "session_type_categori": 32, "session_type_color": 32, "session_type_config": 32, "session_type_nam": 32, "session_type_onlin": 32, "session_type_project": 32, "session_type_sit": 32, "session_url_devic": 27, "session_url_particip": 27, "session_url_us": 27, "session_us": [27, 32], "session_users_id": 32, "session_uuid": 32, "sessiontyp": 32, "set": [0, 1, 6, 9, 10, 11, 12, 14, 16, 18, 20, 23, 27, 31, 32], "setup": [4, 6, 18, 25], "sever": [3, 9, 22], "sh": [10, 11], "share": [0, 8, 9], "shell": [6, 10, 11], "sherbrook": [3, 22], "short": 14, "should": [1, 4, 6, 8, 9, 10, 11, 12, 14, 15, 16, 18, 19, 25, 27, 28, 31, 32], "shouldn": 6, "show": [8, 10, 11, 12, 29], "showserv": 9, "side": [4, 10, 11, 12, 14], "sigint": 6, "sign": [4, 7, 9, 10, 11, 12, 16], "signal": [4, 27], "similar": [4, 8, 16, 23, 24, 27], "similarli": [29, 31], "simon": [3, 22], "simpl": [6, 9, 12, 17], "simpler": 29, "simpli": [0, 8, 10, 11, 12, 15, 18], "simplifi": [9, 13], "sinc": [1, 4, 8, 16, 17, 19, 27, 29, 31], "singl": [0, 4, 9, 10, 11, 12, 17, 26, 31], "singular": 4, "site": [3, 6, 8, 22, 25, 29, 31, 32], "site_access": 32, "site_nam": 32, "siteaccess": 32, "situat": 18, "smart": [3, 22], "snapshot": 31, "so": [0, 6, 8, 18, 19, 20, 30, 32], "social": [3, 22], "softwar": [0, 4, 6, 8, 12, 25], "solut": [3, 22, 25], "some": [7, 8, 12, 13, 15, 16, 17, 18, 19, 20, 26, 32], "somehow": [15, 31], "someth": [6, 15, 19], "somewher": [16, 32], "soon": 1, "sourc": [0, 8, 9, 17, 19], "space": [8, 9], "spawn": 27, "special": [4, 14], "specif": [0, 1, 3, 4, 6, 8, 12, 13, 14, 15, 16, 18, 20, 21, 22, 23, 24, 25, 26, 28, 29, 30, 31, 32], "specifi": [8, 9, 10, 11, 12, 14, 15, 23, 25, 27, 31, 32], "split": 1, "sql": [1, 8, 13], "sqlalchemi": [3, 8, 22], "sqllite": [1, 18], "ssh": 6, "ssl": [1, 16, 21, 23, 24, 27, 33], "ssl_certif": [1, 6], "ssl_certificate_kei": [1, 6], "ssl_client_certif": [1, 6], "ssl_path": 1, "stabl": [10, 11, 12], "stack": 12, "stage": 9, "stamp": 8, "stand": [0, 7, 8, 19], "standalon": [6, 25], "standard": [0, 3, 4, 8, 13, 14, 16, 17, 22, 31, 32], "standarderror": 6, "standardoutput": 6, "start": [0, 2, 4, 6, 8, 9, 13, 29, 32], "start_dat": 32, "start_nginx": [10, 11], "stat": 32, "state": [0, 14, 17], "stateless": 16, "static": [4, 7, 15, 16, 31], "statist": 29, "statu": [0, 15, 17, 27, 30, 32], "status_devic": 30, "status_particip": 30, "status_us": 30, "step": [6, 10, 11, 12], "still": [1, 16, 18, 29], "stop": [8, 12, 27, 29], "stopsessionev": 30, "storag": [0, 4, 8, 13], "store": [1, 3, 4, 7, 8, 9, 11, 14, 15, 16, 22, 23, 25, 26], "str": [15, 30, 32], "straightforward": 12, "stream": [31, 32], "string": [8, 14, 20, 27, 30, 31, 32], "strongli": 6, "structur": [0, 3, 9, 10, 11, 12, 15, 22, 27], "struggl": 31, "sub": 20, "subitem": 32, "submodul": [6, 12], "subscrib": [0, 9, 13, 21], "subsect": 1, "subsystem": 7, "subtyp": [8, 32], "subtype_nam": 32, "succeed": 32, "success": [17, 32], "successfulli": 18, "sudo": [6, 10], "suffici": [12, 16], "suggest": [13, 20], "suit": 9, "summar": 16, "super": [29, 32], "superadmin": 32, "support": [0, 3, 10, 11, 12, 13, 14, 15, 16, 22, 31, 32], "suppos": 6, "sure": [6, 10, 11, 12, 23], "swagger": 31, "symbol": 6, "synchron": 25, "syslog": 6, "system": [1, 2, 6, 7, 8, 9, 10, 11, 12, 13, 15, 16, 18, 21, 23, 24, 26, 27, 28, 29, 30, 31, 32, 33], "systemctl": 6, "systemd": 6, "t": [4, 6, 8, 10, 11, 12, 14, 15, 16, 19, 27, 29, 30, 31, 32], "t_": 8, "tab": [10, 11, 12], "tabl": [8, 9, 29], "tag": [10, 11, 12, 32], "tailor": [3, 22], "take": [9, 27, 31], "taken": 32, "tamper": 4, "target": [6, 10, 11, 12, 20], "task": 9, "team": 8, "technic": [19, 25], "technol": [3, 22], "technologi": [3, 13, 22], "tele": [3, 22], "telehealth": 4, "teleoper": [3, 22], "templat": 7, "temporari": 0, "tera": [8, 10, 11, 12], "teraag": [6, 10, 11, 12], "teradevic": 16, "teraform": 14, "teraparticip": 16, "teraserv": [1, 6, 9, 10, 11, 12, 19, 20, 26, 28, 29], "teraserverconfig": 6, "teraservic": [16, 25], "teraserviceaccess": 26, "teraserviceconfig": 25, "teraserviceproject": 26, "teraservicerol": 26, "term": [13, 31], "termin": [11, 17], "test": [1, 2, 7, 8, 9, 14, 24, 31, 33], "test_typ": 32, "test_type_descript": 32, "test_type_has_json_format": 32, "test_type_has_web_editor": 32, "test_type_has_web_format": 32, "test_type_kei": 32, "test_type_nam": 32, "test_type_project": 32, "test_type_sit": 32, "test_type_uuid": 32, "test_uuid": 32, "testtyp": 32, "text": [8, 10, 11, 12, 14, 20, 23], "textual": 20, "than": [18, 29, 31], "thei": [0, 4, 8, 16, 18, 23, 28, 29], "them": [0, 1, 4, 6, 8, 12, 14, 26, 29, 32], "theori": [10, 11, 12, 13, 15, 27], "thi": [0, 1, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 29, 30, 31, 32, 33], "third": [4, 12], "those": [0, 1, 3, 4, 6, 8, 9, 10, 11, 12, 14, 15, 17, 19, 21, 22, 25, 26, 27, 29, 30, 31], "though": [8, 10, 11, 12, 27, 31], "through": [15, 17], "throughout": 20, "thu": [4, 8, 13, 15, 16, 29, 31], "ti": [4, 25], "time": [3, 4, 8, 9, 10, 11, 12, 14, 15, 21, 22, 30, 31, 32], "timestamp": [8, 30, 32], "tl": 6, "to_json": 8, "toggl": 0, "token": [0, 4, 23, 31, 32], "too": 32, "tool": [2, 3, 6, 7, 9, 10, 11, 12, 13, 20, 22], "topic": [0, 9, 17], "total": 27, "tousign": [3, 22], "trace": 15, "transfer": [3, 4, 6, 10, 11, 12, 22, 25, 28], "transit": 4, "translat": [7, 10, 11, 12, 13, 14], "transmit": 21, "tree": [10, 11, 12], "tri": 32, "trigger": 14, "true": [1, 4, 9], "try": [4, 17], "tunnel": 6, "turn": 4, "turnadmin": 6, "turtoisegit": 12, "twist": [0, 3, 21, 22], "two": [15, 19], "txredisapi": [3, 22], "txt": 7, "type": [0, 1, 8, 9, 13, 15, 16, 17, 21, 23, 26, 27, 29, 30, 31, 32], "type_kei": 32, "typeproject": 32, "typethepasswordher": 6, "typeuserpasswordher": 6, "typic": [1, 4, 6, 8, 14, 15, 25, 29], "u": [3, 6, 22], "ubuntu": [6, 13], "udp": 6, "ui": [10, 11, 12, 25, 31], "unabl": 32, "unauthor": 32, "under": [3, 10, 11, 12, 22], "underli": [8, 20], "understand": [1, 9], "unencrypt": 16, "unexpect": 18, "unidirect": 21, "uniqu": [4, 17, 25, 32], "unit": [1, 3, 6, 7, 8, 22], "unittest": 18, "universit\u00e9": [3, 22], "unknown": 32, "unless": [1, 4, 6, 16, 25], "unsupport": 32, "until": 15, "unus": 1, "unwant": 18, "up": [0, 6, 9, 10, 11, 12, 13, 14, 16, 31], "updat": [0, 4, 8, 11, 14, 15, 17, 18, 20, 23, 27, 29, 30, 31, 32], "update_device_statu": 30, "upgrad": [7, 8], "upload": [0, 32], "url": [1, 4, 9, 14, 16, 19, 21, 31, 32], "us": [0, 1, 2, 3, 4, 7, 8, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 24, 25, 26, 27, 29, 30, 31, 32, 33], "usag": [0, 3, 22, 27], "usedwith": 32, "user": [0, 1, 3, 4, 6, 8, 9, 14, 15, 18, 19, 21, 22, 25, 26, 27, 31, 33], "user_email": 32, "user_en": 32, "user_firstnam": 32, "user_group": 32, "user_group_nam": 32, "user_lastnam": 32, "user_lastonlin": 32, "user_not": 32, "user_password": 32, "user_prefer": 32, "user_preference_app_tag": 32, "user_preference_prefer": 32, "user_profil": 32, "user_superadmin": 32, "user_user_group": 32, "user_usernam": 32, "user_uuid": [15, 30, 32], "userev": 30, "usereventmanag": 21, "usergroup": 32, "usermanagermodul": 32, "usernam": [1, 12, 16, 32], "usertyp": 29, "usual": [1, 8, 19, 31], "util": [8, 20], "uuid": [21, 27, 30, 32], "uuid_servic": 32, "uuid_sess": 32, "uuid_us": 32, "valid": [0, 4, 14, 15, 16, 20, 21, 25], "valu": [0, 1, 6, 8, 9, 15, 16, 18, 20, 25, 31, 32], "vari": [16, 31], "variabl": [4, 9, 15, 23], "variou": [0, 1, 4, 7, 8, 14, 15, 17, 18, 20, 25, 26, 29, 30, 31], "ve": 6, "verbos": 1, "veri": [1, 4, 8, 10, 11, 12, 28, 31], "version": [7, 9, 11, 12, 32, 33], "version_id": 8, "video": [7, 8, 14, 25, 27], "videoconfer": [3, 22], "videoconferenc": [0, 4, 26], "videoinput": 14, "videorehab": [6, 8, 10, 11, 12, 25, 28], "videorehabservic": [6, 27], "view": 9, "vilanova": [3, 22], "virtual": [6, 10, 11, 12], "virtualenv": [10, 11, 12], "visit": [9, 11], "visual": [3, 8, 22], "vol": [3, 22], "volatil": 4, "volum": 9, "vscode": 9, "wa": [3, 4, 8, 10, 11, 12, 14, 15, 17, 20, 22, 27, 29, 30, 31], "wai": [0, 3, 4, 6, 8, 12, 14, 15, 16, 17, 19, 22, 25], "want": [9, 15, 23], "wantedbi": 6, "warn": 32, "watch": [3, 22], "we": [3, 9, 22, 27], "web": [0, 3, 4, 7, 8, 19, 20, 22, 31], "webport": [3, 22], "webrtc": [0, 3, 4, 6, 7, 22], "websit": 12, "websocket": [15, 16, 17, 30, 32], "websocket_url": 16, "welcom": [3, 4, 22], "well": [10, 11, 12], "went": [10, 11, 12], "were": [10, 11, 12, 27], "what": [4, 15, 29, 31], "whatev": [8, 13], "wheelchair": [3, 22], "when": [0, 1, 6, 7, 8, 9, 10, 11, 12, 14, 15, 16, 17, 20, 23, 24, 27, 30, 31, 32], "where": [1, 3, 4, 15, 16, 22, 29], "whether": [0, 8, 19], "which": [0, 1, 3, 8, 14, 15, 18, 19, 22, 23, 25, 27, 29, 30, 31, 32], "while": [0, 1, 3, 4, 8, 10, 11, 12, 13, 15, 16, 17, 18, 19, 20, 21, 22, 23, 27, 29], "who": [8, 15, 17, 32], "wiki": 15, "window": [10, 13, 16], "with_": 31, "with_base_url": 32, "with_config": 32, "with_devic": 32, "with_device_asset": 32, "with_device_subtyp": 32, "with_device_typ": 32, "with_empti": 32, "with_ev": 32, "with_nam": 32, "with_only_token": 32, "with_particip": 32, "with_project": 32, "with_rol": 32, "with_servic": 32, "with_session_typ": 32, "with_sit": 32, "with_statu": 32, "with_test_typ": 32, "with_url": 32, "with_us": 32, "with_usergroup": 32, "with_warn": 32, "with_websocket": [16, 21, 32], "within": [0, 21], "without": [4, 8, 9, 12, 16, 17, 19, 20, 32, 33], "won": [29, 31], "word": 14, "work": [6, 10, 11, 12, 16, 31], "working_directori": 27, "workingdirectori": 6, "workspacefold": 9, "would": [4, 10, 11, 12, 14, 16, 18, 31], "wrap": [0, 17], "wrapper": 16, "write": [15, 20, 29], "written": [0, 25], "wrong": 32, "x": 6, "x509": 16, "xxxx": 25, "yaml": 9, "ye": 7, "year": [3, 22], "yml": 9, "you": [1, 5, 6, 9, 10, 11, 12, 13, 19, 23], "your": [1, 3, 5, 6, 10, 11, 12, 13, 19, 22], "your_host_nam": 6, "yourself": [1, 10, 11, 12], "zip": 23}, "titles": ["OpenTera Architecture Overview", "Configuration Files", "Deployment Notes", "About OpenTera", "Security", "Deploying with Docker on Linux Servers", "Deploying OpenTera on a Linux Server", "Code structure", "Database Structure", "Setup a dev Environment with Docker-Compose on Mac/Linux/Windows", "Getting Started for Developers - Ubuntu-based Linux distros", "Getting Started for Developers - Mac OS", "Getting Started for Developers - Windows 10", "Developers setup guide", "Internal Form Structure", "Inter-service communication", "Login & Authentication", "Internal messages structure", "Unit Tests", "Creating a new service", "Translations", "Websockets communication", "About OpenTera", "File Transfer Service", "Logging Service", "OpenTera Services Structure", "Services Access Roles", "VideoRehab Service", "Core Services", "Access Roles", "User Manager Module", "REST API", "API Documentation", "TeraServer Service"], "titleterms": {"": [3, 22], "10": 12, "In": 4, "On": 31, "about": [3, 22], "access": [4, 8, 26, 29], "action": 27, "advanc": 9, "api": [0, 16, 23, 24, 27, 31, 32], "architectur": 0, "argument": 16, "associ": 26, "asynchron": 15, "auth": 16, "authent": 16, "author": [3, 22], "automat": 18, "backend": 19, "base": [8, 9, 10], "basi": 31, "basic": [15, 16, 19, 31], "bearer": 16, "build": [6, 9], "call": 15, "callabl": 15, "can": [3, 22], "certif": [4, 6, 16], "client": [0, 20], "clinic": [3, 22], "cmake": [10, 11], "code": [7, 9, 23], "commun": [4, 15, 21, 25], "compil": 20, "compos": 9, "conclus": 4, "condit": 14, "conf": 1, "config": [6, 23], "configur": [1, 6, 9, 19, 23, 24, 25, 27, 33], "conflict": 8, "connect": [9, 21], "conquer": 4, "contain": 18, "contributor": [3, 22], "convent": [8, 15], "core": [0, 1, 28], "creat": [10, 11, 12, 18, 19, 20], "creation": 19, "creator": [10, 11, 12], "data": 29, "databas": [0, 1, 8, 9, 10, 11, 12], "databaseev": 17, "debug": 9, "declar": 15, "default": [23, 24, 27, 33], "definit": 25, "delet": [23, 31], "depend": [3, 22], "deploi": [5, 6], "deploy": 2, "descript": 27, "desktop": 9, "dev": 9, "develop": [9, 10, 11, 12, 13], "devic": [16, 17, 29, 32], "deviceev": 17, "distro": 10, "divid": 4, "do": [3, 22], "docker": [5, 9], "document": [3, 22, 31, 32], "download": 23, "edit": 20, "environ": [6, 9, 10, 11, 12, 18], "establish": 21, "event": 17, "exampl": 23, "explan": 31, "extens": 9, "extern": 0, "featur": [15, 29], "field": 27, "file": [0, 1, 6, 23], "file_asset": 23, "filetransf": 23, "folder": [7, 9], "form": 14, "format": 23, "frontend": [19, 23, 24, 27], "function": [15, 30, 31], "further": 31, "gener": [3, 17, 20, 22, 23, 25, 31], "get": [3, 10, 11, 12, 15, 22, 23, 31], "git": [10, 11], "guid": 13, "hierarchi": 14, "homebrew": 11, "http": 16, "inform": 30, "instal": [6, 9, 10, 11, 12], "inter": 15, "intern": [14, 15, 17], "invit": 27, "invite_repli": 27, "item": 14, "joinsessionev": 17, "joinsessionreplyev": 17, "json": 23, "know": 31, "leavesessionev": 17, "letsencrypt": 6, "level": 31, "licens": [3, 22], "linux": [5, 6, 9, 10], "local": [6, 9], "locat": [23, 24, 27, 33], "log": [0, 24], "logev": 17, "login": [0, 4, 16], "loginev": 17, "logout": 16, "mac": [9, 11], "main": [10, 11, 12, 23, 24, 27, 33], "manag": [8, 11, 21, 30], "manual": 18, "mechan": 25, "messag": 17, "miniconda": [6, 10, 11, 12], "model": 8, "modul": [0, 15, 17, 30], "name": [8, 15], "need": 31, "new": 19, "nginx": [1, 6, 10, 11, 12, 19], "nodej": [10, 11], "note": 2, "o": 11, "object": 8, "open": [3, 9, 22], "opentera": [0, 1, 3, 6, 9, 10, 11, 12, 17, 22, 25, 26], "openteraplu": 9, "option": 9, "over": 21, "overview": 0, "packag": 11, "paramet": 27, "particip": [16, 17, 29, 32], "participantev": 17, "pgadmin": 9, "platform": [3, 22], "port": [23, 24, 27, 33], "post": [6, 23, 31], "postgresql": [6, 10, 11, 12], "postman": 23, "pre": [6, 10, 11, 12], "procedur": 15, "project": [3, 22, 26], "public": [3, 22], "publish": 15, "pull": 18, "python": [6, 23], "qt": [10, 11, 12], "queri": 23, "redi": [1, 6, 9, 10, 11, 12], "relat": [3, 22], "remot": 15, "remov": 27, "request": [16, 18, 23, 31], "requir": 9, "requisit": [6, 10, 11, 12], "rest": [0, 23, 24, 27, 31], "return": 27, "robot": [3, 22], "role": [26, 29], "root": 7, "rpc": [15, 23, 24, 27, 30], "rpcmessag": 17, "run": [10, 11, 12, 18], "schema": 8, "scheme": 15, "script": [23, 24, 27, 33], "section": [1, 14, 23, 24, 27], "secur": 4, "select": 20, "self": 18, "server": [1, 5, 6, 9, 10, 11, 12], "servic": [0, 1, 6, 10, 11, 12, 15, 16, 17, 19, 23, 24, 25, 26, 27, 28, 29, 32, 33], "session": [4, 17], "session_manag": 27, "set": 15, "setup": [9, 10, 11, 12, 13, 27], "site": 26, "snippet": 23, "softwar": [3, 22], "some": 31, "sourc": [3, 7, 22], "specif": [17, 27, 33], "ssl": [4, 6], "start": [3, 10, 11, 12, 22, 27], "state": 30, "step": 19, "stopsessionev": 17, "structur": [7, 8, 14, 17, 19, 25, 31], "studio": 9, "stun": 6, "subscrib": 15, "synchron": 15, "system": [0, 4, 17, 25], "telehealth": [3, 22], "teraev": 17, "teramessag": 17, "teramodulemessag": 17, "teraserv": [0, 7, 25, 33], "test": [18, 23, 32], "token": 16, "topic": [15, 33], "track": 30, "transfer": [0, 23], "translat": 20, "turn": 6, "type": 14, "ubuntu": 10, "unit": 18, "upload": 23, "url": [23, 24, 27, 33], "us": [6, 9, 23], "user": [10, 11, 12, 16, 17, 29, 30, 32], "userev": 17, "usermanag": 0, "v": 9, "valu": [14, 27], "verif": 8, "version": 8, "video": [3, 4, 22], "videorehab": [0, 27], "visual": 9, "warn": 9, "web": [23, 24, 27, 33], "webrtc": 27, "websocket": [0, 4, 21], "what": [3, 22], "window": [9, 12], "wrapper": 17, "xcode": 11, "you": [3, 22], "your": 9}}) \ No newline at end of file diff --git a/services/FileTransfer-Service.html b/services/FileTransfer-Service.html index 42b49894..86e2ee5b 100644 --- a/services/FileTransfer-Service.html +++ b/services/FileTransfer-Service.html @@ -4,7 +4,7 @@ - File Transfer Service — OpenTera 1.2.5 documentation + File Transfer Service — OpenTera 1.2.6 documentation @@ -15,8 +15,8 @@ - - + + @@ -38,7 +38,7 @@
- 1.2.5 + 1.2.6
diff --git a/services/Logging-Service.html b/services/Logging-Service.html index cac69585..d5427a63 100644 --- a/services/Logging-Service.html +++ b/services/Logging-Service.html @@ -4,7 +4,7 @@ - Logging Service — OpenTera 1.2.5 documentation + Logging Service — OpenTera 1.2.6 documentation @@ -15,8 +15,8 @@ - - + + @@ -38,7 +38,7 @@
- 1.2.5 + 1.2.6
diff --git a/services/OpenTera_Services.html b/services/OpenTera_Services.html index 0564bfb0..6b50da21 100644 --- a/services/OpenTera_Services.html +++ b/services/OpenTera_Services.html @@ -4,7 +4,7 @@ - OpenTera Services Structure — OpenTera 1.2.5 documentation + OpenTera Services Structure — OpenTera 1.2.6 documentation @@ -15,8 +15,8 @@ - - + + @@ -38,7 +38,7 @@
- 1.2.5 + 1.2.6
diff --git a/services/Services-Access.html b/services/Services-Access.html index 7a84a34b..c5ebc0df 100644 --- a/services/Services-Access.html +++ b/services/Services-Access.html @@ -4,7 +4,7 @@ - Services Access Roles — OpenTera 1.2.5 documentation + Services Access Roles — OpenTera 1.2.6 documentation @@ -15,8 +15,8 @@ - - + + @@ -38,7 +38,7 @@
- 1.2.5 + 1.2.6
diff --git a/services/Videorehab-Service.html b/services/Videorehab-Service.html index 8289fdb7..83a42c95 100644 --- a/services/Videorehab-Service.html +++ b/services/Videorehab-Service.html @@ -4,7 +4,7 @@ - VideoRehab Service — OpenTera 1.2.5 documentation + VideoRehab Service — OpenTera 1.2.6 documentation @@ -15,8 +15,8 @@ - - + + @@ -38,7 +38,7 @@
- 1.2.5 + 1.2.6
diff --git a/services/services.html b/services/services.html index cca2d255..29d5b8e9 100644 --- a/services/services.html +++ b/services/services.html @@ -4,7 +4,7 @@ - Core Services — OpenTera 1.2.5 documentation + Core Services — OpenTera 1.2.6 documentation @@ -15,8 +15,8 @@ - - + + @@ -38,7 +38,7 @@
- 1.2.5 + 1.2.6
diff --git a/services/teraserver/OpenTera_AccessRoles.html b/services/teraserver/OpenTera_AccessRoles.html index 62d6026a..a64fad1c 100644 --- a/services/teraserver/OpenTera_AccessRoles.html +++ b/services/teraserver/OpenTera_AccessRoles.html @@ -4,7 +4,7 @@ - Access Roles — OpenTera 1.2.5 documentation + Access Roles — OpenTera 1.2.6 documentation @@ -15,8 +15,8 @@ - - + + @@ -38,7 +38,7 @@
- 1.2.5 + 1.2.6
diff --git a/services/teraserver/UserManager-module.html b/services/teraserver/UserManager-module.html index 2257384b..6dd6df82 100644 --- a/services/teraserver/UserManager-module.html +++ b/services/teraserver/UserManager-module.html @@ -4,7 +4,7 @@ - User Manager Module — OpenTera 1.2.5 documentation + User Manager Module — OpenTera 1.2.6 documentation @@ -15,8 +15,8 @@ - - + + @@ -38,7 +38,7 @@
- 1.2.5 + 1.2.6
diff --git a/services/teraserver/api/API.html b/services/teraserver/api/API.html index 3f4d0a45..80acf770 100644 --- a/services/teraserver/api/API.html +++ b/services/teraserver/api/API.html @@ -4,7 +4,7 @@ - REST API — OpenTera 1.2.5 documentation + REST API — OpenTera 1.2.6 documentation @@ -15,8 +15,8 @@ - - + + @@ -38,7 +38,7 @@
- 1.2.5 + 1.2.6
diff --git a/services/teraserver/api/api_doc.html b/services/teraserver/api/api_doc.html index ec0a9a4e..375aeaaa 100644 --- a/services/teraserver/api/api_doc.html +++ b/services/teraserver/api/api_doc.html @@ -4,7 +4,7 @@ - API Documentation — OpenTera 1.2.5 documentation + API Documentation — OpenTera 1.2.6 documentation @@ -15,8 +15,8 @@ - - + + @@ -38,7 +38,7 @@
- 1.2.5 + 1.2.6
@@ -157,24 +157,6 @@

user< -
-
-DELETE /user/assets
-

Delete asset.

-
-
Query Parameters:
-
    -
  • token (string) – Secret token

  • -
-
-
Status Codes:
-
-
-
-
-
GET /user/assets
@@ -209,61 +191,80 @@

user<

-
-
-POST /user/devices
-

Create / update devices. id_device must be set to “0” to create a new device. Only superadmins can create new devices, site admin can update and project admin can modify config and notes.

+
+
+DELETE /user/assets
+

Delete asset.

Query Parameters:
  • token (string) – Secret token

-
Request JSON Object:
+
Status Codes:
    -
  • device.device_certificate (string) –

  • -
  • device.device_config (string) –

  • -
  • device.device_enabled (boolean) –

  • -
  • device.device_infos (string) –

  • -
  • device.device_lastonline (string) –

  • -
  • device.device_name (string) –

  • -
  • device.device_notes (string) –

  • -
  • device.device_onlineable (boolean) –

  • -
  • device.device_token (string) –

  • -
  • device.device_uuid (string) –

  • -
  • device.id_device (integer) –

  • -
  • device.id_device_subtype (integer) –

  • -
  • device.id_device_type (integer) –

  • +
  • 501 Not Implemented – Unable to delete asset information from here

-
Status Codes:
+
+
+ +
+
+GET /user/assets/archive
+

Get asset archive. Only one of the ID parameter is supported at once.

+
+
Query Parameters:
    -
  • 200 OK – Success

  • -
  • 400 Bad Request – Badly formed JSON or missing fields(id_device) in the JSON body

  • -
  • 403 Forbidden – Logged user can’t create/update the specified device

  • -
  • 500 Internal Server Error – Internal error occurred when saving device

  • +
  • id_participant (integer) – ID of the participant from which to request all associated assets

  • +
  • id_project (integer) – ID of the project from which to request all associated assets

  • +
  • id_session (integer) – ID of the session from which to request all associated assets

  • +
  • token (string) – Secret token

  • +
+
+
Status Codes:
+
    +
  • 200 OK – Success - returns list of assets

  • +
  • 400 Bad Request – Required parameter is missing

  • +
  • 403 Forbidden – Logged user doesn’t have permission to access the requested data

-
-
-DELETE /user/devices
-

Delete a specific device

+
+
+POST /user/devices
+

Create / update devices. id_device must be set to “0” to create a new device. Only superadmins can create new devices, site admin can update and project admin can modify config and notes.

Query Parameters:
    -
  • id (integer) – Device ID to delete

  • token (string) – Secret token

-
Status Codes:
+
Request JSON Object:
    +
  • device.device_certificate (string)

  • +
  • device.device_config (string)

  • +
  • device.device_enabled (boolean)

  • +
  • device.device_infos (string)

  • +
  • device.device_lastonline (string)

  • +
  • device.device_name (string)

  • +
  • device.device_notes (string)

  • +
  • device.device_onlineable (boolean)

  • +
  • device.device_token (string)

  • +
  • device.device_uuid (string)

  • +
  • device.id_device (integer)

  • +
  • device.id_device_subtype (integer)

  • +
  • device.id_device_type (integer)

  • +
+
+
Status Codes:
+
@@ -305,6 +306,28 @@

user<

+
+
+DELETE /user/devices
+

Delete a specific device

+
+
Query Parameters:
+
    +
  • id (integer) – Device ID to delete

  • +
  • token (string) – Secret token

  • +
+
+
Status Codes:
+
+
+
+
+
GET /user/devices/online
@@ -335,9 +358,9 @@

user<

Request JSON Object:
    -
  • device_participant.id_device (integer) –

  • -
  • device_participant.id_device_participant (integer) –

  • -
  • device_participant.id_participant (integer) –

  • +
  • device_participant.id_device (integer)

  • +
  • device_participant.id_device_participant (integer)

  • +
  • device_participant.id_participant (integer)

Status Codes:
@@ -351,27 +374,6 @@

user<

-
-
-DELETE /user/devices/participants
-

Delete a specific device-participant association.

-
-
Query Parameters:
-
    -
  • id (integer) – Specific device-participant association ID to delete. Be careful: this is not the device or the participant ID, but the ID of the association itself!

  • -
  • token (string) – Secret token

  • -
-
-
Status Codes:
-
-
-
-
-
GET /user/devices/participants
@@ -397,50 +399,50 @@

user<

-
-
-POST /user/devices/projects
-

Create/update devices associated with a project.

+
+
+DELETE /user/devices/participants
+

Delete a specific device-participant association.

Query Parameters:
    +
  • id (integer) – Specific device-participant association ID to delete. Be careful: this is not the device or the participant ID, but the ID of the association itself!

  • token (string) – Secret token

-
Request JSON Object:
+
Status Codes:
    -
  • device_project.id_device (integer) –

  • -
  • device_project.id_device_project (integer) –

  • -
  • device_project.id_project (integer) –

  • -
-
-
Status Codes:
-
  • 200 OK – Success

  • -
  • 400 Bad Request – Badly formed JSON or missing fields(id_project or id_device) in the JSON body

  • -
  • 403 Forbidden – Logged user can’t modify device association - the user isn’t admin of the project or current user can’t access the device.

  • -
  • 500 Internal Server Error – Internal error occured when saving device association

  • +
  • 403 Forbidden – Logged user can’t delete device association

  • +
  • 500 Internal Server Error – Device-participant association not found or database error.

-
-
-DELETE /user/devices/projects
-

Delete a specific device-project association.

+
+
+POST /user/devices/projects
+

Create/update devices associated with a project.

Query Parameters:
    -
  • id (integer) – Specific device-project association ID to delete. Be careful: this is not the device or the project ID, but the ID of the association itself!

  • token (string) – Secret token

-
Status Codes:
+
Request JSON Object:
    +
  • device_project.id_device (integer)

  • +
  • device_project.id_device_project (integer)

  • +
  • device_project.id_project (integer)

  • +
+
+
Status Codes:
+
  • 200 OK – Success

  • -
  • 403 Forbidden – Logged user can’t delete device association (no admin access to project or one of the device’s site)

  • -
  • 500 Internal Server Error – Device-project association not found or database error.

  • +
  • 400 Bad Request – Badly formed JSON or missing fields(id_project or id_device) in the JSON body

  • +
  • 403 Forbidden – Logged user can’t modify device association - the user isn’t admin of the project or current user can’t access the device.

  • +
  • 500 Internal Server Error – Internal error occured when saving device association

@@ -472,50 +474,50 @@

user<

-
-
-POST /user/devices/sites
-

Create/update devices associated with a site.

+
+
+DELETE /user/devices/projects
+

Delete a specific device-project association.

Query Parameters:
    +
  • id (integer) – Specific device-project association ID to delete. Be careful: this is not the device or the project ID, but the ID of the association itself!

  • token (string) – Secret token

-
Request JSON Object:
+
Status Codes:
    -
  • device_site.id_device (integer) –

  • -
  • device_site.id_device_site (integer) –

  • -
  • device_site.id_site (integer) –

  • -
-
-
Status Codes:
-
-
-
-DELETE /user/devices/sites
-

Delete a specific device-site association.

+
+
+POST /user/devices/sites
+

Create/update devices associated with a site.

Query Parameters:
    -
  • id (integer) – Specific device-site association ID to delete. Be careful: this is not the device or the site ID, but the ID of the association itself!

  • token (string) – Secret token

-
Status Codes:
+
Request JSON Object:
    +
  • device_site.id_device (integer)

  • +
  • device_site.id_device_site (integer)

  • +
  • device_site.id_site (integer)

  • +
+
+
Status Codes:
+
@@ -546,6 +548,27 @@

user<

+
+
+DELETE /user/devices/sites
+

Delete a specific device-site association.

+
+
Query Parameters:
+
    +
  • id (integer) – Specific device-site association ID to delete. Be careful: this is not the device or the site ID, but the ID of the association itself!

  • +
  • token (string) – Secret token

  • +
+
+
Status Codes:
+
+
+
+
+
POST /user/devicesubtypes
@@ -558,9 +581,9 @@

user<

Request JSON Object:
    -
  • device_subtype.device_subtype_name (string) –

  • -
  • device_subtype.id_device_subtype (integer) –

  • -
  • device_subtype.id_device_type (integer) –

  • +
  • device_subtype.device_subtype_name (string)

  • +
  • device_subtype.id_device_subtype (integer)

  • +
  • device_subtype.id_device_type (integer)

Status Codes:
@@ -574,46 +597,46 @@

user<

-
-
-DELETE /user/devicesubtypes
-

Delete a specific device subtype

+
+
+GET /user/devicesubtypes
+

Get devices subtypes. Only one of the ID parameter is supported at once.

Query Parameters:
    -
  • id (integer) – Device subtype ID to delete

  • +
  • id_device_subtype (integer) – ID of the device subtype to query

  • +
  • id_device_type (integer) – ID of the device type from which to get all subtypes

  • +
  • list (boolean) – Return minimal information

  • token (string) – Secret token

Status Codes:
-
-
-GET /user/devicesubtypes
-

Get devices subtypes. Only one of the ID parameter is supported at once.

+
+
+DELETE /user/devicesubtypes
+

Delete a specific device subtype

Query Parameters:
    -
  • id_device_subtype (integer) – ID of the device subtype to query

  • -
  • id_device_type (integer) – ID of the device type from which to get all subtypes

  • -
  • list (boolean) – Return minimal information

  • +
  • id (integer) – Device subtype ID to delete

  • token (string) – Secret token

Status Codes:
@@ -631,9 +654,9 @@

user<

Request JSON Object:
    -
  • device_type.device_type_key (string) –

  • -
  • device_type.device_type_name (string) –

  • -
  • device_type.id_device_type (integer) –

  • +
  • device_type.device_type_key (string)

  • +
  • device_type.device_type_name (string)

  • +
  • device_type.id_device_type (integer)

Status Codes:
@@ -647,48 +670,48 @@

user<

-
-
-DELETE /user/devicetypes
-

Delete a specific device type

-
+
+
+GET /user/devicetypes
+

Get devices types. Only one of the ID parameter is supported at once. The ID is dominant on the device_type_key

+
Query Parameters:
    -
  • id (integer) – Device type ID to delete

  • -
  • device_type_key (string) – Unique device key to delete

  • +
  • id_device_type (integer) – ID of the device type

  • +
  • device_type_key (string) – Key of the device type

  • +
  • list (boolean) – List of all device types

  • token (string) – Secret token

Status Codes:
-
-
-GET /user/devicetypes
-

Get devices types. Only one of the ID parameter is supported at once. The ID is dominant on the device_type_key

+
+
+DELETE /user/devicetypes
+

Delete a specific device type

Query Parameters:
    -
  • id_device_type (integer) – ID of the device type

  • -
  • device_type_key (string) – Key of the device type

  • -
  • list (boolean) – List of all device types

  • +
  • id (integer) – Device type ID to delete

  • +
  • device_type_key (string) – Unique device key to delete

  • token (string) – Secret token

Status Codes:
@@ -728,11 +751,9 @@

user<
Query Parameters:
    -
  • type (string) –

    -
    Data type of the required form. Currently, the following data types are supported:

    device

    -
    -
    -

    device_type +

  • type (string) – Data type of the required form. Currently, the following data types are supported: +device +device_type device_subtype group participant @@ -746,8 +767,7 @@

    user< test_type user user_group -versions

    -

  • +versions

  • id (integer) – Specific id of subitem to query. Used to provide context to the returned form.

  • id_project (integer) – Specific id_project used to limit arrays list in some forms

  • id_site (integer) – Specific id_site used to limit arrays list in some forms

  • @@ -777,9 +797,9 @@

    user<

Request JSON Object:
    -
  • participant_group.id_participant_group (integer) –

  • -
  • participant_group.id_project (integer) –

  • -
  • participant_group.participant_group_name (string) –

  • +
  • participant_group.id_participant_group (integer)

  • +
  • participant_group.id_project (integer)

  • +
  • participant_group.participant_group_name (string)

Status Codes:
@@ -793,45 +813,45 @@

user<

-
-
-DELETE /user/groups
-

Delete a specific participant group

+
+
+GET /user/groups
+

Get participant groups information. Only one of the ID parameter is supported at once. If no ID is specified, returns all accessible groups for the logged user

Query Parameters:
    -
  • id (integer) – Participant Group ID to delete

  • +
  • id_group (integer) – ID of the participant group to query

  • +
  • id_project (integer) – ID of the project from which to get all participant groups

  • +
  • id (integer) – Alias for “id_group”

  • +
  • list (boolean) – Flag that limits the returned data to minimal information

  • token (string) – Secret token

Status Codes:
-
-
-GET /user/groups
-

Get participant groups information. Only one of the ID parameter is supported at once. If no ID is specified, returns all accessible groups for the logged user

+
+
+DELETE /user/groups
+

Delete a specific participant group

Query Parameters:
    -
  • id_group (integer) – ID of the participant group to query

  • -
  • id_project (integer) – ID of the project from which to get all participant groups

  • -
  • id (integer) – Alias for “id_group”

  • -
  • list (boolean) – Flag that limits the returned data to minimal information

  • +
  • id (integer) – Participant Group ID to delete

  • token (string) – Secret token

Status Codes:
@@ -885,19 +905,19 @@

user<

Request JSON Object:
    -
  • participant.id_participant (integer) –

  • -
  • participant.id_participant_group (integer) –

  • -
  • participant.id_project (integer) –

  • -
  • participant.participant_email (string) –

  • -
  • participant.participant_enabled (boolean) –

  • -
  • participant.participant_lastonline (string) –

  • -
  • participant.participant_login_enabled (boolean) –

  • -
  • participant.participant_name (string) –

  • -
  • participant.participant_password (string) –

  • -
  • participant.participant_token (string) –

  • -
  • participant.participant_token_enabled (boolean) –

  • -
  • participant.participant_username (string) –

  • -
  • participant.participant_uuid (string) –

  • +
  • participant.id_participant (integer)

  • +
  • participant.id_participant_group (integer)

  • +
  • participant.id_project (integer)

  • +
  • participant.participant_email (string)

  • +
  • participant.participant_enabled (boolean)

  • +
  • participant.participant_lastonline (string)

  • +
  • participant.participant_login_enabled (boolean)

  • +
  • participant.participant_name (string)

  • +
  • participant.participant_password (string)

  • +
  • participant.participant_token (string)

  • +
  • participant.participant_token_enabled (boolean)

  • +
  • participant.participant_username (string)

  • +
  • participant.participant_uuid (string)

Status Codes:
@@ -911,27 +931,6 @@

user<

-
-
-DELETE /user/participants
-

Delete a specific participant

-
-
Query Parameters:
-
    -
  • id (integer) – Participant ID to delete

  • -
  • token (string) – Secret token

  • -
-
-
Status Codes:
-
-
-
-
-
GET /user/participants
@@ -969,6 +968,27 @@

user<

+
+
+DELETE /user/participants
+

Delete a specific participant

+
+
Query Parameters:
+
    +
  • id (integer) – Participant ID to delete

  • +
  • token (string) – Secret token

  • +
+
+
Status Codes:
+
+
+
+
+
GET /user/participants/online
@@ -1001,7 +1021,7 @@

user<

Request JSON Object:
    -
  • project_access (any) –

  • +
  • project_access (any)

Status Codes:
@@ -1015,27 +1035,6 @@

user<

-
-
-DELETE /user/projectaccess
-

Delete a specific project access

-
-
Query Parameters:
-
    -
  • id (integer) – Project Access ID to delete

  • -
  • token (string) – Secret token

  • -
-
-
Status Codes:
-
-
-
-
-
GET /user/projectaccess
@@ -1063,52 +1062,52 @@

user<

-
-
-POST /user/projects
-

Create / update projects. id_project must be set to “0” to create a new project. A project can be created/modified if the user has admin rights to the related site.

+
+
+DELETE /user/projectaccess
+

Delete a specific project access

Query Parameters:
    +
  • id (integer) – Project Access ID to delete

  • token (string) – Secret token

-
Request JSON Object:
+
Status Codes:
    -
  • project.id_project (integer) –

  • -
  • project.id_site (integer) –

  • -
  • project.project_description (string) –

  • -
  • project.project_enabled (boolean) –

  • -
  • project.project_name (string) –

  • -
-
-
Status Codes:
-
-
-
-DELETE /user/projects
-

Delete a specific project

+
+
+POST /user/projects
+

Create / update projects. id_project must be set to “0” to create a new project. A project can be created/modified if the user has admin rights to the related site.

Query Parameters:
    -
  • id (integer) – Project ID to delete

  • token (string) – Secret token

-
Status Codes:
+
Request JSON Object:
    +
  • project.id_project (integer)

  • +
  • project.id_site (integer)

  • +
  • project.project_description (string)

  • +
  • project.project_enabled (boolean)

  • +
  • project.project_name (string)

  • +
+
+
Status Codes:
+
@@ -1141,6 +1140,27 @@

user<

+
+
+DELETE /user/projects
+

Delete a specific project

+
+
Query Parameters:
+
    +
  • id (integer) – Project ID to delete

  • +
  • token (string) – Secret token

  • +
+
+
Status Codes:
+
+
+
+
+
GET /user/refresh_token
@@ -1194,21 +1214,21 @@

user<

Request JSON Object:
    -
  • service.id_service (integer) –

  • -
  • service.service_clientendpoint (string) –

  • -
  • service.service_default_config (string) –

  • -
  • service.service_editable_config (boolean) –

  • -
  • service.service_enabled (boolean) –

  • -
  • service.service_endpoint (string) –

  • -
  • service.service_endpoint_device (string) –

  • -
  • service.service_endpoint_participant (string) –

  • -
  • service.service_endpoint_user (string) –

  • -
  • service.service_hostname (string) –

  • -
  • service.service_key (string) –

  • -
  • service.service_name (string) –

  • -
  • service.service_port (integer) –

  • -
  • service.service_system (boolean) –

  • -
  • service.service_uuid (string) –

  • +
  • service.id_service (integer)

  • +
  • service.service_clientendpoint (string)

  • +
  • service.service_default_config (string)

  • +
  • service.service_editable_config (boolean)

  • +
  • service.service_enabled (boolean)

  • +
  • service.service_endpoint (string)

  • +
  • service.service_endpoint_device (string)

  • +
  • service.service_endpoint_participant (string)

  • +
  • service.service_endpoint_user (string)

  • +
  • service.service_hostname (string)

  • +
  • service.service_key (string)

  • +
  • service.service_name (string)

  • +
  • service.service_port (integer)

  • +
  • service.service_system (boolean)

  • +
  • service.service_uuid (string)

Status Codes:
@@ -1222,28 +1242,6 @@

user<

-
-
-DELETE /user/services
-

Delete a specific service

-
-
Query Parameters:
-
    -
  • id (integer) – Service ID to delete

  • -
  • token (string) – Secret token

  • -
-
-
Status Codes:
-
-
-
-
-
GET /user/services
@@ -1273,6 +1271,28 @@

user<

+
+
+DELETE /user/services
+

Delete a specific service

+
+
Query Parameters:
+
    +
  • id (integer) – Service ID to delete

  • +
  • token (string) – Secret token

  • +
+
+
Status Codes:
+
+
+
+
+
POST /user/services/access
@@ -1285,11 +1305,11 @@

user<
Request JSON Object:
    -
  • service_access.id_device (integer) –

  • -
  • service_access.id_participant_group (integer) –

  • -
  • service_access.id_service_access (integer) –

  • -
  • service_access.id_service_role (integer) –

  • -
  • service_access.id_user_group (integer) –

  • +
  • service_access.id_device (integer)

  • +
  • service_access.id_participant_group (integer)

  • +
  • service_access.id_service_access (integer)

  • +
  • service_access.id_service_role (integer)

  • +
  • service_access.id_user_group (integer)

Status Codes:
@@ -1303,47 +1323,47 @@

user<

-
-
-DELETE /user/services/access
-

Delete a specific service access.

+
+
+GET /user/services/access
+

Get access roles for a specific items. Only one “ID” parameter required and supported at once.

Query Parameters:
    -
  • id (integer) – Specific service access ID to delete. Be careful: this is not the service or service role ID, but the ID of the association itself!

  • -
  • token (string) – Secret token

  • -
+
  • id_user_group (integer) – Usergroup ID to query service access

  • +
  • id_user (integer) – User ID to query service access

  • +
  • id_participant_group (integer) – Participant group ID to query service access

  • +
  • id_device (integer) – Device ID to query service access

  • +
  • id_service (integer) – Service ID to query associated access from

  • +
  • token (string) – Secret token

  • +
    Status Codes:
    -
    -
    -GET /user/services/access
    -

    Get access roles for a specific items. Only one “ID” parameter required and supported at once.

    +
    +
    +DELETE /user/services/access
    +

    Delete a specific service access.

    Query Parameters:
      -
    • id_user_group (integer) – Usergroup ID to query service access

    • -
    • id_user (integer) – User ID to query service access

    • -
    • id_participant_group (integer) – Participant group ID to query service access

    • -
    • id_device (integer) – Device ID to query service access

    • -
    • id_service (integer) – Service ID to query associated access from

    • +
    • id (integer) – Specific service access ID to delete. Be careful: this is not the service or service role ID, but the ID of the association itself!

    • token (string) – Secret token

    Status Codes:
    @@ -1361,12 +1381,12 @@

    user<

    Request JSON Object:
      -
    • service_config.id_device (integer) –

    • -
    • service_config.id_participant (integer) –

    • -
    • service_config.id_service (integer) –

    • -
    • service_config.id_service_config (integer) –

    • -
    • service_config.id_user (integer) –

    • -
    • service_config.service_config_config (string) –

    • +
    • service_config.id_device (integer)

    • +
    • service_config.id_participant (integer)

    • +
    • service_config.id_service (integer)

    • +
    • service_config.id_service_config (integer)

    • +
    • service_config.id_user (integer)

    • +
    • service_config.service_config_config (string)

    Status Codes:
    @@ -1380,27 +1400,6 @@

    user<

    -
    -
    -DELETE /user/services/configs
    -

    Delete a specific session

    -
    -
    Query Parameters:
    -
      -
    • id (integer) – Service config ID to delete

    • -
    • token (string) – Secret token

    • -
    -
    -
    Status Codes:
    -
      -
    • 200 OK – Success

    • -
    • 403 Forbidden – Logged user can’t delete config (must have admin access to the related object - user,device or participant, or be its own config)

    • -
    • 500 Internal Server Error – Database error.

    • -
    -
    -
    -
    -
    GET /user/services/configs
    @@ -1429,52 +1428,52 @@

    user<

    -
    -
    -POST /user/services/projects
    -

    Create/update service - project association. If a “service” json is received, the list of “projects” is replaced. If a “project” json is received, the list of “services” is replaced.If a “service_project” is received, each of the item in the list is added.

    +
    +
    +DELETE /user/services/configs
    +

    Delete a specific session

    Query Parameters:
      +
    • id (integer) – Service config ID to delete

    • token (string) – Secret token

    -
    Request JSON Object:
    +
    Status Codes:
      -
    • project.id_project (integer) –

    • -
    • project.id_site (integer) –

    • -
    • project.project_description (string) –

    • -
    • project.project_enabled (boolean) –

    • -
    • project.project_name (string) –

    • -
    -
    -
    Status Codes:
    -
    • 200 OK – Success

    • -
    • 400 Bad Request – Badly formed JSON or missing fields(id_project or id_service) in the JSON body

    • -
    • 403 Forbidden – Logged user can’t modify association (only site admin can modify association)

    • -
    • 500 Internal Server Error – Internal error occurred when saving association

    • +
    • 403 Forbidden – Logged user can’t delete config (must have admin access to the related object - user,device or participant, or be its own config)

    • +
    • 500 Internal Server Error – Database error.

    -
    -
    -DELETE /user/services/projects
    -

    Delete a specific service - project association.

    +
    +
    +POST /user/services/projects
    +

    Create/update service - project association. If a “service” json is received, the list of “projects” is replaced. If a “project” json is received, the list of “services” is replaced.If a “service_project” is received, each of the item in the list is added.

    Query Parameters:
      -
    • id (integer) – Specific service - project association ID to delete. Be careful: this is not the service or project ID, but the ID of the association itself!

    • token (string) – Secret token

    -
    Status Codes:
    +
    Request JSON Object:
      +
    • project.id_project (integer)

    • +
    • project.id_site (integer)

    • +
    • project.project_description (string)

    • +
    • project.project_enabled (boolean)

    • +
    • project.project_name (string)

    • +
    +
    +
    Status Codes:
    +
    @@ -1507,6 +1506,27 @@

    user<

    +
    +
    +DELETE /user/services/projects
    +

    Delete a specific service - project association.

    +
    +
    Query Parameters:
    +
      +
    • id (integer) – Specific service - project association ID to delete. Be careful: this is not the service or project ID, but the ID of the association itself!

    • +
    • token (string) – Secret token

    • +
    +
    +
    Status Codes:
    +
    +
    +
    +
    +
    POST /user/services/roles
    @@ -1519,11 +1539,11 @@

    user<

    Request JSON Object:
      -
    • service_role.id_project (integer) –

    • -
    • service_role.id_service (integer) –

    • -
    • service_role.id_service_role (integer) –

    • -
    • service_role.id_site (integer) –

    • -
    • service_role.service_role_name (string) –

    • +
    • service_role.id_project (integer)

    • +
    • service_role.id_service (integer)

    • +
    • service_role.id_service_role (integer)

    • +
    • service_role.id_site (integer)

    • +
    • service_role.service_role_name (string)

    Status Codes:
    @@ -1537,44 +1557,44 @@

    user<

    -
    -
    -DELETE /user/services/roles
    -

    Delete a specific service role.

    +
    +
    +GET /user/services/roles
    +

    Get service roles for either a specific service or for all available services.

    Query Parameters:
      -
    • id (integer) – Specific service role ID to delete.

    • +
    • id_service (integer) – Specific service ID to query roles for

    • +
    • globals (boolean) – Only return global roles, e.g. not related to a site or a project

    • +
    • list (boolean) – Return minimal information about the roles

    • token (string) – Secret token

    Status Codes:
    -
    -
    -GET /user/services/roles
    -

    Get service roles for either a specific service or for all available services.

    +
    +
    +DELETE /user/services/roles
    +

    Delete a specific service role.

    Query Parameters:
      -
    • id_service (integer) – Specific service ID to query roles for

    • -
    • globals (boolean) – Only return global roles, e.g. not related to a site or a project

    • -
    • list (boolean) – Return minimal information about the roles

    • +
    • id (integer) – Specific service role ID to delete.

    • token (string) – Secret token

    Status Codes:
    @@ -1592,9 +1612,9 @@

    user<

    Request JSON Object:
      -
    • service_site.id_service (integer) –

    • -
    • service_site.id_service_site (integer) –

    • -
    • service_site.id_site (integer) –

    • +
    • service_site.id_service (integer)

    • +
    • service_site.id_service_site (integer)

    • +
    • service_site.id_site (integer)

    Status Codes:
    @@ -1608,27 +1628,6 @@

    user<

    -
    -
    -DELETE /user/services/sites
    -

    Delete a specific service - site association.

    -
    -
    Query Parameters:
    -
      -
    • id (integer) – Specific service - site association ID to delete. Be careful: this is not the service or site ID, but the ID of the association itself!

    • -
    • token (string) – Secret token

    • -
    -
    -
    Status Codes:
    -
    -
    -
    -
    -
    GET /user/services/sites
    @@ -1655,60 +1654,60 @@

    user<

    -
    -
    -POST /user/sessions
    -

    Create / update session. id_session must be set to “0” to create a new session. A session can be created/modified if the user has access to all participants and users in the session.

    +
    +
    +DELETE /user/services/sites
    +

    Delete a specific service - site association.

    Query Parameters:
      +
    • id (integer) – Specific service - site association ID to delete. Be careful: this is not the service or site ID, but the ID of the association itself!

    • token (string) – Secret token

    -
    Request JSON Object:
    +
    Status Codes:
      -
    • session.id_creator_device (integer) –

    • -
    • session.id_creator_participant (integer) –

    • -
    • session.id_creator_service (integer) –

    • -
    • session.id_creator_user (integer) –

    • -
    • session.id_session (integer) –

    • -
    • session.id_session_type (integer) –

    • -
    • session.session_comments (string) –

    • -
    • session.session_duration (integer) –

    • -
    • session.session_name (string) –

    • -
    • session.session_parameters (string) –

    • -
    • session.session_start_datetime (string) –

    • -
    • session.session_status (integer) –

    • -
    • session.session_uuid (string) –

    • -
    -
    -
    Status Codes:
    -
    -
    -
    -DELETE /user/sessions
    -

    Delete a specific session

    +
    +
    +POST /user/sessions
    +

    Create / update session. id_session must be set to “0” to create a new session. A session can be created/modified if the user has access to all participants and users in the session.

    Query Parameters:
      -
    • id (integer) – Session ID to delete

    • token (string) – Secret token

    -
    Status Codes:
    +
    Request JSON Object:
      +
    • session.id_creator_device (integer)

    • +
    • session.id_creator_participant (integer)

    • +
    • session.id_creator_service (integer)

    • +
    • session.id_creator_user (integer)

    • +
    • session.id_session (integer)

    • +
    • session.id_session_type (integer)

    • +
    • session.session_comments (string)

    • +
    • session.session_duration (integer)

    • +
    • session.session_name (string)

    • +
    • session.session_parameters (string)

    • +
    • session.session_start_datetime (string)

    • +
    • session.session_status (integer)

    • +
    • session.session_uuid (string)

    • +
    +
    +
    Status Codes:
    +
    • 200 OK – Success

    • -
    • 403 Forbidden – Logged user can’t delete session (must have access to all participants and users in the session to delete)

    • -
    • 500 Internal Server Error – Database error.

    • +
    • 400 Bad Request – Badly formed JSON or missing fields(session, id_session, session_participants_ids and/or session_users_ids[for new sessions]) in the JSON body

    • +
    • 403 Forbidden – Logged user can’t create/update the specified session

    • +
    • 500 Internal Server Error – Internal error when saving session

    @@ -1746,6 +1745,27 @@

    user<

    +
    +
    +DELETE /user/sessions
    +

    Delete a specific session

    +
    +
    Query Parameters:
    +
      +
    • id (integer) – Session ID to delete

    • +
    • token (string) – Secret token

    • +
    +
    +
    Status Codes:
    +
    +
    +
    +
    +
    POST /user/sessions/events
    @@ -1758,12 +1778,12 @@

    user<

    Request JSON Object:
      -
    • session_event.id_session (integer) –

    • -
    • session_event.id_session_event (integer) –

    • -
    • session_event.id_session_event_type (integer) –

    • -
    • session_event.session_event_context (string) –

    • -
    • session_event.session_event_datetime (string) –

    • -
    • session_event.session_event_text (string) –

    • +
    • session_event.id_session (integer)

    • +
    • session_event.id_session_event (integer)

    • +
    • session_event.id_session_event_type (integer)

    • +
    • session_event.session_event_context (string)

    • +
    • session_event.session_event_datetime (string)

    • +
    • session_event.session_event_text (string)

    Status Codes:
    @@ -1777,43 +1797,43 @@

    user<

    -
    -
    -DELETE /user/sessions/events
    -

    Delete a specific session event

    +
    +
    +GET /user/sessions/events
    +

    Get events for a specific session

    Query Parameters:
      -
    • id (integer) – Session event ID to delete

    • +
    • id_session (integer) – ID of the session to query events for

    • token (string) – Secret token

    Status Codes:
    -
    -
    -GET /user/sessions/events
    -

    Get events for a specific session

    +
    +
    +DELETE /user/sessions/events
    +

    Delete a specific session event

    Query Parameters:
      -
    • id_session (integer) – ID of the session to query events for

    • +
    • id (integer) – Session event ID to delete

    • token (string) – Secret token

    Status Codes:
    @@ -1832,18 +1852,18 @@

    user<
    Request JSON Object:
    • session_manage.action (string) – (required)

    • -
    • session_manage.id_creator_device (integer) –

    • -
    • session_manage.id_creator_participant (integer) –

    • -
    • session_manage.id_creator_service (integer) –

    • -
    • session_manage.id_creator_user (integer) –

    • -
    • session_manage.id_service (integer) –

    • -
    • session_manage.id_session (integer) –

    • -
    • session_manage.id_session_type (integer) –

    • -
    • session_manage.parameters (object) –

    • -
    • session_manage.session_devices[] (string) –

    • -
    • session_manage.session_participants[] (string) –

    • -
    • session_manage.session_users[] (string) –

    • -
    • session_manage.session_uuid (str) –

    • +
    • session_manage.id_creator_device (integer)

    • +
    • session_manage.id_creator_participant (integer)

    • +
    • session_manage.id_creator_service (integer)

    • +
    • session_manage.id_creator_user (integer)

    • +
    • session_manage.id_service (integer)

    • +
    • session_manage.id_session (integer)

    • +
    • session_manage.id_session_type (integer)

    • +
    • session_manage.parameters (object)

    • +
    • session_manage.session_devices[] (string)

    • +
    • session_manage.session_participants[] (string)

    • +
    • session_manage.session_users[] (string)

    • +
    • session_manage.session_uuid (str)

    Status Codes:
    @@ -1870,13 +1890,13 @@

    user<

    Request JSON Object:
      -
    • session_type.id_service (integer) –

    • -
    • session_type.id_session_type (integer) –

    • -
    • session_type.session_type_category (integer) –

    • -
    • session_type.session_type_color (string) –

    • -
    • session_type.session_type_config (string) –

    • -
    • session_type.session_type_name (string) –

    • -
    • session_type.session_type_online (boolean) –

    • +
    • session_type.id_service (integer)

    • +
    • session_type.id_session_type (integer)

    • +
    • session_type.session_type_category (integer)

    • +
    • session_type.session_type_color (string)

    • +
    • session_type.session_type_config (string)

    • +
    • session_type.session_type_name (string)

    • +
    • session_type.session_type_online (boolean)

    Status Codes:
    @@ -1890,45 +1910,45 @@

    user<

    -
    -
    -DELETE /user/sessiontypes
    -

    Delete a specific session type

    +
    +
    +GET /user/sessiontypes
    +

    Get session type information. If no id_session_type specified, returns all available session types

    Query Parameters:
      -
    • id (integer) – Session type ID to delete

    • +
    • id_session_type (integer) – ID of the session type to query

    • +
    • id_project (integer) – ID of the project to get session type for

    • +
    • id_site (integer) – ID of the site to get session types for

    • +
    • list (boolean) – Flag that limits the returned data to minimal information

    • token (string) – Secret token

    Status Codes:
    -
    -
    -GET /user/sessiontypes
    -

    Get session type information. If no id_session_type specified, returns all available session types

    +
    +
    +DELETE /user/sessiontypes
    +

    Delete a specific session type

    Query Parameters:
      -
    • id_session_type (integer) – ID of the session type to query

    • -
    • id_project (integer) – ID of the project to get session type for

    • -
    • id_site (integer) – ID of the site to get session types for

    • -
    • list (boolean) – Flag that limits the returned data to minimal information

    • +
    • id (integer) – Session type ID to delete

    • token (string) – Secret token

    Status Codes:
    @@ -1946,9 +1966,9 @@

    user<

    Request JSON Object:
      -
    • session_type_project.id_project (integer) –

    • -
    • session_type_project.id_session_type (integer) –

    • -
    • session_type_project.id_session_type_project (integer) –

    • +
    • session_type_project.id_project (integer)

    • +
    • session_type_project.id_session_type (integer)

    • +
    • session_type_project.id_session_type_project (integer)

    Status Codes:
    @@ -1962,48 +1982,48 @@

    user<

    -
    -
    -DELETE /user/sessiontypes/projects
    -

    Delete a specific session-type - project association.

    +
    +
    +GET /user/sessiontypes/projects
    +

    Get devices types that are associated with a project. Only one “ID” parameter required and supported at once.

    Query Parameters:
      -
    • id (integer) – Specific device-type - project association ID to delete. Be careful: this is not the session-type or project ID, but the ID of the association itself!

    • +
    • id_project (integer) – Project ID to query associated session types from

    • +
    • id_session_type (integer) – Session type ID to query associated projects from

    • +
    • with_projects (boolean) – Used with id_session_type. Also return projects that don’t have any association with that type

    • +
    • with_session_type (boolean) – Used with id_project. Also return types that don’t have any association with that project

    • +
    • with_sites (boolean) – Used with id_session_type. Also return site information of the returned projects.

    • +
    • list (boolean) – Flag that limits the returned data to minimal information (ids only)

    • token (string) – Secret token

    Status Codes:
    - -
    -
    -GET /user/sessiontypes/projects
    -

    Get devices types that are associated with a project. Only one “ID” parameter required and supported at once.

    + +
    +
    +DELETE /user/sessiontypes/projects
    +

    Delete a specific session-type - project association.

    Query Parameters:
      -
    • id_project (integer) – Project ID to query associated session types from

    • -
    • id_session_type (integer) – Session type ID to query associated projects from

    • -
    • with_projects (boolean) – Used with id_session_type. Also return projects that don’t have any association with that type

    • -
    • with_session_type (boolean) – Used with id_project. Also return types that don’t have any association with that project

    • -
    • with_sites (boolean) – Used with id_session_type. Also return site information of the returned projects.

    • -
    • list (boolean) – Flag that limits the returned data to minimal information (ids only)

    • +
    • id (integer) – Specific device-type - project association ID to delete. Be careful: this is not the session-type or project ID, but the ID of the association itself!

    • token (string) – Secret token

    Status Codes:
    @@ -2021,9 +2041,9 @@

    user<

    Request JSON Object:
      -
    • session_type_site.id_session_type (integer) –

    • -
    • session_type_site.id_session_type_site (integer) –

    • -
    • session_type_site.id_site (integer) –

    • +
    • session_type_site.id_session_type (integer)

    • +
    • session_type_site.id_session_type_site (integer)

    • +
    • session_type_site.id_site (integer)

    Status Codes:
    @@ -2037,27 +2057,6 @@

    user<

    -
    -
    -DELETE /user/sessiontypes/sites
    -

    Delete a specific session type-site association.

    -
    -
    Query Parameters:
    -
      -
    • id (integer) – Specific session type-site association ID to delete. Be careful: this is not the session type or the site ID, but the ID of the association itself!

    • -
    • token (string) – Secret token

    • -
    -
    -
    Status Codes:
    -
    -
    -
    -
    -
    GET /user/sessiontypes/sites
    @@ -2083,48 +2082,48 @@

    user<

    -
    -
    -POST /user/siteaccess
    -

    Create/update site access for a user group.

    +
    +
    +DELETE /user/sessiontypes/sites
    +

    Delete a specific session type-site association.

    Query Parameters:
      +
    • id (integer) – Specific session type-site association ID to delete. Be careful: this is not the session type or the site ID, but the ID of the association itself!

    • token (string) – Secret token

    -
    Request JSON Object:
    +
    Status Codes:
      -
    • site_access (any) –

    • -
    -
    -
    Status Codes:
    -
    -
    -
    -DELETE /user/siteaccess
    -

    Delete a specific site access

    +
    +
    +POST /user/siteaccess
    +

    Create/update site access for a user group.

    Query Parameters:
      -
    • id (integer) – Site Access ID to delete

    • token (string) – Secret token

    -
    Status Codes:
    +
    Request JSON Object:
      +
    • site_access (any)

    • +
    +
    +
    Status Codes:
    +
    @@ -2157,6 +2156,27 @@

    user<

    +
    +
    +DELETE /user/siteaccess
    +

    Delete a specific site access

    +
    +
    Query Parameters:
    +
      +
    • id (integer) – Site Access ID to delete

    • +
    • token (string) – Secret token

    • +
    +
    +
    Status Codes:
    +
    +
    +
    +
    +
    POST /user/sites
    @@ -2169,8 +2189,8 @@

    user<

    Request JSON Object:
      -
    • site.id_site (integer) –

    • -
    • site.site_name (string) –

    • +
    • site.id_site (integer)

    • +
    • site.site_name (string)

    Status Codes:
    @@ -2184,46 +2204,46 @@

    user<

    -
    -
    -DELETE /user/sites
    -

    Delete a specific site

    +
    +
    +GET /user/sites
    +

    Get site information. Only one of the ID parameter is supported and required at once

    Query Parameters:
      -
    • id (integer) – Site ID to delete

    • +
    • id_site (integer) – ID of the site to query

    • +
    • id (integer) – Alias for “id_site”

    • +
    • id_device (integer) – ID of the device from which to get all related sites

    • +
    • user_uuid (string) – User UUID from which to get all sites that are accessible

    • +
    • name (string) – Site name to query

    • token (string) – Secret token

    Status Codes:
    -
    -
    -GET /user/sites
    -

    Get site information. Only one of the ID parameter is supported and required at once

    +
    +
    +DELETE /user/sites
    +

    Delete a specific site

    Query Parameters:
      -
    • id_site (integer) – ID of the site to query

    • -
    • id (integer) – Alias for “id_site”

    • -
    • id_device (integer) – ID of the device from which to get all related sites

    • -
    • user_uuid (string) – User UUID from which to get all sites that are accessible

    • -
    • name (string) – Site name to query

    • +
    • id (integer) – Site ID to delete

    • token (string) – Secret token

    Status Codes:
    @@ -2277,27 +2297,6 @@

    user<

    -
    -
    -DELETE /user/tests
    -

    Delete a specific test

    -
    -
    Query Parameters:
    -
      -
    • id (integer) – Test type ID to delete

    • -
    • token (string) – Secret token

    • -
    -
    -
    Status Codes:
    -
    -
    -
    -
    -
    GET /user/tests
    @@ -2327,56 +2326,56 @@

    user<

    -
    -
    -POST /user/testtypes
    -

    Create / update test type. id_test_type must be set to “0” to create a new type. A test type can be created/modified if the user has access to a related test typeproject.

    +
    +
    +DELETE /user/tests
    +

    Delete a specific test

    Query Parameters:
      +
    • id (integer) – Test type ID to delete

    • token (string) – Secret token

    -
    Request JSON Object:
    +
    Status Codes:
      -
    • test_type.id_service (integer) –

    • -
    • test_type.id_test_type (integer) –

    • -
    • test_type.test_type_description (string) –

    • -
    • test_type.test_type_has_json_format (boolean) –

    • -
    • test_type.test_type_has_web_editor (boolean) –

    • -
    • test_type.test_type_has_web_format (boolean) –

    • -
    • test_type.test_type_key (string) –

    • -
    • test_type.test_type_name (string) –

    • -
    • test_type.test_type_uuid (string) –

    • -
    -
    -
    Status Codes:
    -
    -
    -
    -DELETE /user/testtypes
    -

    Delete a specific test type

    +
    +
    +POST /user/testtypes
    +

    Create / update test type. id_test_type must be set to “0” to create a new type. A test type can be created/modified if the user has access to a related test typeproject.

    Query Parameters:
      -
    • id (integer) – Test type ID to delete

    • token (string) – Secret token

    -
    Status Codes:
    +
    Request JSON Object:
      +
    • test_type.id_service (integer)

    • +
    • test_type.id_test_type (integer)

    • +
    • test_type.test_type_description (string)

    • +
    • test_type.test_type_has_json_format (boolean)

    • +
    • test_type.test_type_has_web_editor (boolean)

    • +
    • test_type.test_type_has_web_format (boolean)

    • +
    • test_type.test_type_key (string)

    • +
    • test_type.test_type_name (string)

    • +
    • test_type.test_type_uuid (string)

    • +
    +
    +
    Status Codes:
    +
    @@ -2408,6 +2407,27 @@

    user<

    +
    +
    +DELETE /user/testtypes
    +

    Delete a specific test type

    +
    +
    Query Parameters:
    +
      +
    • id (integer) – Test type ID to delete

    • +
    • token (string) – Secret token

    • +
    +
    +
    Status Codes:
    +
      +
    • 200 OK – Success

    • +
    • 403 Forbidden – Logged user can’t delete test type (no admin access to project related to that type or tests of that type exists in the system somewhere)

    • +
    • 500 Internal Server Error – Database error.

    • +
    +
    +
    +
    +
    POST /user/testtypes/projects
    @@ -2420,9 +2440,9 @@

    user<

    Request JSON Object:
      -
    • test_type_project.id_project (integer) –

    • -
    • test_type_project.id_test_type (integer) –

    • -
    • test_type_project.id_test_type_project (integer) –

    • +
    • test_type_project.id_project (integer)

    • +
    • test_type_project.id_test_type (integer)

    • +
    • test_type_project.id_test_type_project (integer)

    Status Codes:
    @@ -2436,48 +2456,48 @@

    user<

    -
    -
    -DELETE /user/testtypes/projects
    -

    Delete a specific test-type - project association.

    +
    +
    +GET /user/testtypes/projects
    +

    Get test types that are associated with a project. Only one “ID” parameter required and supported at once.

    Query Parameters:
      -
    • id (integer) – Specific test type - project association ID to delete. Be careful: this is not the test-type or project ID, but the ID of the association itself!

    • +
    • id_project (integer) – Project ID to query associated test types from

    • +
    • id_test_type (integer) – Test type ID to query associated projects from

    • +
    • with_projects (boolean) – Used with id_test_type. Also return projects that don’t have any association with that type

    • +
    • with_test_types (boolean) – Used with id_project. Also return types that don’t have any association with that project

    • +
    • with_sites (boolean) – Used with id_test_type. Also return site information of the returned projects.

    • +
    • list (boolean) – Flag that limits the returned data to minimal information (ids only)

    • token (string) – Secret token

    Status Codes:
    -
    -
    -GET /user/testtypes/projects
    -

    Get test types that are associated with a project. Only one “ID” parameter required and supported at once.

    +
    +
    +DELETE /user/testtypes/projects
    +

    Delete a specific test-type - project association.

    Query Parameters:
      -
    • id_project (integer) – Project ID to query associated test types from

    • -
    • id_test_type (integer) – Test type ID to query associated projects from

    • -
    • with_projects (boolean) – Used with id_test_type. Also return projects that don’t have any association with that type

    • -
    • with_test_types (boolean) – Used with id_project. Also return types that don’t have any association with that project

    • -
    • with_sites (boolean) – Used with id_test_type. Also return site information of the returned projects.

    • -
    • list (boolean) – Flag that limits the returned data to minimal information (ids only)

    • +
    • id (integer) – Specific test type - project association ID to delete. Be careful: this is not the test-type or project ID, but the ID of the association itself!

    • token (string) – Secret token

    Status Codes:
    @@ -2495,9 +2515,9 @@

    user<

    Request JSON Object:
      -
    • test_type_site.id_site (integer) –

    • -
    • test_type_site.id_test_type (integer) –

    • -
    • test_type_site.id_test_type_site (integer) –

    • +
    • test_type_site.id_site (integer)

    • +
    • test_type_site.id_test_type (integer)

    • +
    • test_type_site.id_test_type_site (integer)

    Status Codes:
    @@ -2511,47 +2531,47 @@

    user<

    -
    -
    -DELETE /user/testtypes/sites
    -

    Delete a specific test type-site association.

    +
    +
    +GET /user/testtypes/sites
    +

    Get session types that are related to a site. Only one “ID” parameter required and supported at once.

    Query Parameters:
      -
    • id (integer) – Specific test type-site association ID to delete. Be careful: this is not the test type or the site ID, but the ID of the association itself!

    • +
    • id_test_type (integer) – ID of the test type from which to request all associated sites

    • +
    • id_site (integer) – ID of the site from which to get all associated test types

    • +
    • list (boolean) – Flag that limits the returned data to minimal information (ids only)

    • +
    • with_test_types (boolean) – Used with id_test_type. Also return test types that don’t have any association with that site

    • +
    • with_sites (boolean) – Used with id_site. Also return site information of the returned test types.

    • token (string) – Secret token

    Status Codes:
    -
    -
    -GET /user/testtypes/sites
    -

    Get session types that are related to a site. Only one “ID” parameter required and supported at once.

    +
    +
    +DELETE /user/testtypes/sites
    +

    Delete a specific test type-site association.

    Query Parameters:
      -
    • id_test_type (integer) – ID of the test type from which to request all associated sites

    • -
    • id_site (integer) – ID of the site from which to get all associated test types

    • -
    • list (boolean) – Flag that limits the returned data to minimal information (ids only)

    • -
    • with_test_types (boolean) – Used with id_test_type. Also return test types that don’t have any association with that site

    • -
    • with_sites (boolean) – Used with id_site. Also return site information of the returned test types.

    • +
    • id (integer) – Specific test type-site association ID to delete. Be careful: this is not the test type or the site ID, but the ID of the association itself!

    • token (string) – Secret token

    Status Codes:
    @@ -2569,8 +2589,8 @@

    user<

    Request JSON Object:
      -
    • user_group.id_user_group (integer) –

    • -
    • user_group.user_group_name (string) –

    • +
    • user_group.id_user_group (integer)

    • +
    • user_group.user_group_name (string)

    Status Codes:
    @@ -2584,45 +2604,45 @@

    user<

    -
    -
    -DELETE /user/usergroups
    -

    Delete a specific user group

    +
    +
    +GET /user/usergroups
    +

    Get user group information. If no id specified, returns all accessible users groups

    Query Parameters:
      -
    • id (integer) – User group ID to delete

    • +
    • id_user_group (integer) – ID of the user group to query

    • +
    • id_user (integer) – ID of the user to get all user groups

    • +
    • id_site (integer) – ID of the site to get all user groups with access in that site

    • +
    • list (boolean) – Flag that limits the returned data to minimal information

    • token (string) – Secret token

    Status Codes:
    -
    -
    -GET /user/usergroups
    -

    Get user group information. If no id specified, returns all accessible users groups

    +
    +
    +DELETE /user/usergroups
    +

    Delete a specific user group

    Query Parameters:
      -
    • id_user_group (integer) – ID of the user group to query

    • -
    • id_user (integer) – ID of the user to get all user groups

    • -
    • id_site (integer) – ID of the site to get all user groups with access in that site

    • -
    • list (boolean) – Flag that limits the returned data to minimal information

    • +
    • id (integer) – User group ID to delete

    • token (string) – Secret token

    Status Codes:
    @@ -2640,18 +2660,18 @@

    user<

    Request JSON Object:
      -
    • user.id_user (integer) –

    • -
    • user.user_email (string) –

    • -
    • user.user_enabled (boolean) –

    • -
    • user.user_firstname (string) –

    • -
    • user.user_lastname (string) –

    • -
    • user.user_lastonline (string) –

    • -
    • user.user_notes (string) –

    • -
    • user.user_password (string) –

    • -
    • user.user_profile (string) –

    • -
    • user.user_superadmin (boolean) –

    • -
    • user.user_username (string) –

    • -
    • user.user_uuid (string) –

    • +
    • user.id_user (integer)

    • +
    • user.user_email (string)

    • +
    • user.user_enabled (boolean)

    • +
    • user.user_firstname (string)

    • +
    • user.user_lastname (string)

    • +
    • user.user_lastonline (string)

    • +
    • user.user_notes (string)

    • +
    • user.user_password (string)

    • +
    • user.user_profile (string)

    • +
    • user.user_superadmin (boolean)

    • +
    • user.user_username (string)

    • +
    • user.user_uuid (string)

    Status Codes:
    @@ -2666,27 +2686,6 @@

    user<

    -
    -
    -DELETE /user/users
    -

    Delete a specific user

    -
    -
    Query Parameters:
    -
      -
    • id (integer) – User ID to delete

    • -
    • token (string) – Secret token

    • -
    -
    -
    Status Codes:
    -
    -
    -
    -
    -
    GET /user/users
    @@ -2718,6 +2717,27 @@

    user<

    +
    +
    +DELETE /user/users
    +

    Delete a specific user

    +
    +
    Query Parameters:
    +
      +
    • id (integer) – User ID to delete

    • +
    • token (string) – Secret token

    • +
    +
    +
    Status Codes:
    +
    +
    +
    +
    +
    GET /user/users/online
    @@ -2748,10 +2768,10 @@

    user<

    Request JSON Object:
      -
    • user_preference.id_user (integer) –

    • -
    • user_preference.id_user_preference (integer) –

    • -
    • user_preference.user_preference_app_tag (string) –

    • -
    • user_preference.user_preference_preference (string) –

    • +
    • user_preference.id_user (integer)

    • +
    • user_preference.id_user_preference (integer)

    • +
    • user_preference.user_preference_app_tag (string)

    • +
    • user_preference.user_preference_preference (string)

    Status Codes:
    @@ -2800,9 +2820,9 @@

    user<

    Request JSON Object:
      -
    • user_user_group.id_user (integer) –

    • -
    • user_user_group.id_user_group (integer) –

    • -
    • user_user_group.id_user_user_group (integer) –

    • +
    • user_user_group.id_user (integer)

    • +
    • user_user_group.id_user_group (integer)

    • +
    • user_user_group.id_user_user_group (integer)

    Status Codes:
    @@ -2816,45 +2836,45 @@

    user<

    -
    -
    -DELETE /user/users/usergroups
    -

    Delete a specific user - user group relationship

    +
    +
    +GET /user/users/usergroups
    +

    Get user - user group information. At least one “id” field must be specified

    Query Parameters:
      -
    • id (integer) – User - User group relationship ID to delete

    • +
    • id_user_group (integer) – ID of the user group to query

    • +
    • id_user (integer) – ID of the user to get all user groups

    • +
    • list (boolean) – Flag that limits the returned data to minimal information

    • +
    • with_empty (boolean) – Used with id_user, also returns users groups that the user is not part of. Used with id_user_group, also returns users not part of that user group.

    • token (string) – Secret token

    Status Codes:
    -
    -
    -GET /user/users/usergroups
    -

    Get user - user group information. At least one “id” field must be specified

    +
    +
    +DELETE /user/users/usergroups
    +

    Delete a specific user - user group relationship

    Query Parameters:
      -
    • id_user_group (integer) – ID of the user group to query

    • -
    • id_user (integer) – ID of the user to get all user groups

    • -
    • list (boolean) – Flag that limits the returned data to minimal information

    • -
    • with_empty (boolean) – Used with id_user, also returns users groups that the user is not part of. Used with id_user_group, also returns users not part of that user group.

    • +
    • id (integer) – User - User group relationship ID to delete

    • token (string) – Secret token

    Status Codes:
    @@ -2872,13 +2892,13 @@

    user<

    Request JSON Object:
      -
    • ClientVersions.client_description (string) –

    • -
    • ClientVersions.client_documentation_url (string) –

    • -
    • ClientVersions.client_linux_download_url (string) –

    • -
    • ClientVersions.client_mac_download_url (string) –

    • -
    • ClientVersions.client_name (string) –

    • -
    • ClientVersions.client_version (string) –

    • -
    • ClientVersions.client_windows_download_url (string) –

    • +
    • ClientVersions.client_description (string)

    • +
    • ClientVersions.client_documentation_url (string)

    • +
    • ClientVersions.client_linux_download_url (string)

    • +
    • ClientVersions.client_mac_download_url (string)

    • +
    • ClientVersions.client_name (string)

    • +
    • ClientVersions.client_version (string)

    • +
    • ClientVersions.client_windows_download_url (string)

    Status Codes:
    @@ -2917,12 +2937,13 @@

    device<
    GET /device/assets
    -

    Get device assets based on the ID or, if no parameters, get all assets

    +

    Get device assets based specified session or asset ID or, if no parameters, get all assets

    Query Parameters:
    @@ -3109,18 +3130,6 @@

    device<

    -
    -
    -DELETE /device/sessions
    -
    -
    Status Codes:
    -
    -
    -
    -
    -
    GET /device/sessions
    @@ -3141,6 +3150,18 @@

    device<

    +
    +
    +DELETE /device/sessions
    +
    +
    Status Codes:
    +
    +
    +
    +
    +
    POST /device/sessions/events
    @@ -3163,18 +3184,6 @@

    device<

    -
    -
    -DELETE /device/sessions/events
    -
    -
    Status Codes:
    -
    -
    -
    -
    -
    GET /device/sessions/events
    @@ -3194,6 +3203,18 @@

    device<

    +
    +
    +DELETE /device/sessions/events
    +
    +
    Status Codes:
    +
    +
    +
    +
    +
    POST /device/status
    @@ -3481,27 +3502,6 @@

    service

    -
    -
    -DELETE /service/assets
    -

    Delete a specific asset

    -
    -
    Query Parameters:
    -
      -
    • uuid (string) – Asset UUID to delete

    • -
    • token (string) – Secret token

    • -
    -
    -
    Status Codes:
    -
    -
    -
    -
    -
    GET /service/assets
    @@ -3535,6 +3535,27 @@

    service

    +
    +
    +DELETE /service/assets
    +

    Delete a specific asset

    +
    +
    Query Parameters:
    +
      +
    • uuid (string) – Asset UUID to delete

    • +
    • token (string) – Secret token

    • +
    +
    +
    Status Codes:
    +
    +
    +
    +
    +
    POST /service/devices
    @@ -3547,19 +3568,19 @@

    service
    Request JSON Object:
      -
    • device.device_certificate (string) –

    • -
    • device.device_config (string) –

    • -
    • device.device_enabled (boolean) –

    • -
    • device.device_infos (string) –

    • -
    • device.device_lastonline (string) –

    • -
    • device.device_name (string) –

    • -
    • device.device_notes (string) –

    • -
    • device.device_onlineable (boolean) –

    • -
    • device.device_token (string) –

    • -
    • device.device_uuid (string) –

    • -
    • device.id_device (integer) –

    • -
    • device.id_device_subtype (integer) –

    • -
    • device.id_device_type (integer) –

    • +
    • device.device_certificate (string)

    • +
    • device.device_config (string)

    • +
    • device.device_enabled (boolean)

    • +
    • device.device_infos (string)

    • +
    • device.device_lastonline (string)

    • +
    • device.device_name (string)

    • +
    • device.device_notes (string)

    • +
    • device.device_onlineable (boolean)

    • +
    • device.device_token (string)

    • +
    • device.device_uuid (string)

    • +
    • device.id_device (integer)

    • +
    • device.id_device_subtype (integer)

    • +
    • device.id_device_type (integer)

    Status Codes:
    @@ -3637,9 +3658,9 @@

    service
    Request JSON Object:
      -
    • participant_group.id_participant_group (integer) –

    • -
    • participant_group.id_project (integer) –

    • -
    • participant_group.participant_group_name (string) –

    • +
    • participant_group.id_participant_group (integer)

    • +
    • participant_group.id_project (integer)

    • +
    • participant_group.participant_group_name (string)

    Status Codes:
    @@ -3653,45 +3674,45 @@

    service

    -
    -
    -DELETE /service/groups
    -

    Delete a specific participant group.

    +
    +
    +GET /service/groups
    +

    Return participant group information.

    Query Parameters:
      -
    • id (integer) – ID to delete

    • +
    • id_participant_group (integer) – ID to query

    • +
    • id_project (integer) – ID project to query information

    • token (string) – Secret token

    Status Codes:
    -
    -
    -GET /service/groups
    -

    Return participant group information.

    +
    +
    +DELETE /service/groups
    +

    Delete a specific participant group.

    Query Parameters:
      -
    • id_participant_group (integer) – ID to query

    • -
    • id_project (integer) – ID project to query information

    • +
    • id (integer) – ID to delete

    • token (string) – Secret token

    Status Codes:
    @@ -3763,11 +3784,11 @@

    service

    Request JSON Object:
      -
    • project.id_project (integer) –

    • -
    • project.id_site (integer) –

    • -
    • project.project_description (string) –

    • -
    • project.project_enabled (boolean) –

    • -
    • project.project_name (string) –

    • +
    • project.id_project (integer)

    • +
    • project.id_site (integer)

    • +
    • project.project_description (string)

    • +
    • project.project_enabled (boolean)

    • +
    • project.project_name (string)

    Status Codes:
    @@ -3781,45 +3802,45 @@

    service

    -
    -
    -DELETE /service/projects
    -

    Delete a specific project

    +
    +
    +GET /service/projects
    +

    Return projects information.

    Query Parameters:
      -
    • id (integer) – Project ID to delete

    • +
    • id_project (integer) – ID of the project to query

    • +
    • id_site (integer) – ID of the site to query projects for

    • token (string) – Secret token

    Status Codes:
    -
    -
    -GET /service/projects
    -

    Return projects information.

    +
    +
    +DELETE /service/projects
    +

    Delete a specific project

    Query Parameters:
      -
    • id_project (integer) – ID of the project to query

    • -
    • id_site (integer) – ID of the site to query projects for

    • +
    • id (integer) – Project ID to delete

    • token (string) – Secret token

    Status Codes:
    @@ -3837,11 +3858,11 @@

    service

    Request JSON Object:
      -
    • service_role.id_project (integer) –

    • -
    • service_role.id_service (integer) –

    • -
    • service_role.id_service_role (integer) –

    • -
    • service_role.id_site (integer) –

    • -
    • service_role.service_role_name (string) –

    • +
    • service_role.id_project (integer)

    • +
    • service_role.id_service (integer)

    • +
    • service_role.id_service_role (integer)

    • +
    • service_role.id_site (integer)

    • +
    • service_role.service_role_name (string)

    Status Codes:
    @@ -3854,41 +3875,41 @@

    service

    -
    -
    -DELETE /service/roles
    -

    Delete a specific service role.

    +
    +
    +GET /service/roles
    +

    Get service roles for that service

    Query Parameters:
      -
    • id (integer) – Service role to delete

    • token (string) – Secret token

    Status Codes:
    -
    -
    -GET /service/roles
    -

    Get service roles for that service

    +
    +
    +DELETE /service/roles
    +

    Delete a specific service role.

    Query Parameters:
      +
    • id (integer) – Service role to delete

    • token (string) – Secret token

    Status Codes:
    @@ -3906,11 +3927,11 @@

    service

    Request JSON Object:
      -
    • service_access.id_device (integer) –

    • -
    • service_access.id_participant_group (integer) –

    • -
    • service_access.id_service_access (integer) –

    • -
    • service_access.id_service_role (integer) –

    • -
    • service_access.id_user_group (integer) –

    • +
    • service_access.id_device (integer)

    • +
    • service_access.id_participant_group (integer)

    • +
    • service_access.id_service_access (integer)

    • +
    • service_access.id_service_role (integer)

    • +
    • service_access.id_user_group (integer)

    Status Codes:
    @@ -3924,43 +3945,43 @@

    service

    -
    -
    -DELETE /service/serviceaccess
    -

    Delete a specific service access.

    +
    +
    +GET /service/serviceaccess
    +

    Get access roles for a specific items. Only one “ID” parameter required and supported at once.

    Query Parameters:
      -
    • id (integer) – Specific service access ID to delete. Be careful: this is not the service or service role ID, but the ID of the association itself!

    • +
    • id_user_group (integer) – Usergroup ID to query service access

    • token (string) – Secret token

    Status Codes:
    -
    -
    -GET /service/serviceaccess
    -

    Get access roles for a specific items. Only one “ID” parameter required and supported at once.

    +
    +
    +DELETE /service/serviceaccess
    +

    Delete a specific service access.

    Query Parameters:
      -
    • id_user_group (integer) – Usergroup ID to query service access

    • +
    • id (integer) – Specific service access ID to delete. Be careful: this is not the service or service role ID, but the ID of the association itself!

    • token (string) – Secret token

    Status Codes:
    @@ -4003,19 +4024,19 @@

    service

    Request JSON Object:
      -
    • session.id_creator_device (integer) –

    • -
    • session.id_creator_participant (integer) –

    • -
    • session.id_creator_service (integer) –

    • -
    • session.id_creator_user (integer) –

    • -
    • session.id_session (integer) –

    • -
    • session.id_session_type (integer) –

    • -
    • session.session_comments (string) –

    • -
    • session.session_duration (integer) –

    • -
    • session.session_name (string) –

    • -
    • session.session_parameters (string) –

    • -
    • session.session_start_datetime (string) –

    • -
    • session.session_status (integer) –

    • -
    • session.session_uuid (string) –

    • +
    • session.id_creator_device (integer)

    • +
    • session.id_creator_participant (integer)

    • +
    • session.id_creator_service (integer)

    • +
    • session.id_creator_user (integer)

    • +
    • session.id_session (integer)

    • +
    • session.id_session_type (integer)

    • +
    • session.session_comments (string)

    • +
    • session.session_duration (integer)

    • +
    • session.session_name (string)

    • +
    • session.session_parameters (string)

    • +
    • session.session_start_datetime (string)

    • +
    • session.session_status (integer)

    • +
    • session.session_uuid (string)

    Status Codes:
    @@ -4075,12 +4096,12 @@

    service

    Request JSON Object:
      -
    • session_event.id_session (integer) –

    • -
    • session_event.id_session_event (integer) –

    • -
    • session_event.id_session_event_type (integer) –

    • -
    • session_event.session_event_context (string) –

    • -
    • session_event.session_event_datetime (string) –

    • -
    • session_event.session_event_text (string) –

    • +
    • session_event.id_session (integer)

    • +
    • session_event.id_session_event (integer)

    • +
    • session_event.id_session_event_type (integer)

    • +
    • session_event.session_event_context (string)

    • +
    • session_event.session_event_datetime (string)

    • +
    • session_event.session_event_text (string)

    Status Codes:
    @@ -4129,18 +4150,18 @@

    service
    Request JSON Object:
    • session_manage.action (string) – (required)

    • -
    • session_manage.id_creator_device (integer) –

    • -
    • session_manage.id_creator_participant (integer) –

    • -
    • session_manage.id_creator_service (integer) –

    • -
    • session_manage.id_creator_user (integer) –

    • -
    • session_manage.id_service (integer) –

    • -
    • session_manage.id_session (integer) –

    • -
    • session_manage.id_session_type (integer) –

    • -
    • session_manage.parameters (object) –

    • -
    • session_manage.session_devices[] (string) –

    • -
    • session_manage.session_participants[] (string) –

    • -
    • session_manage.session_users[] (string) –

    • -
    • session_manage.session_uuid (str) –

    • +
    • session_manage.id_creator_device (integer)

    • +
    • session_manage.id_creator_participant (integer)

    • +
    • session_manage.id_creator_service (integer)

    • +
    • session_manage.id_creator_user (integer)

    • +
    • session_manage.id_service (integer)

    • +
    • session_manage.id_session (integer)

    • +
    • session_manage.id_session_type (integer)

    • +
    • session_manage.parameters (object)

    • +
    • session_manage.session_devices[] (string)

    • +
    • session_manage.session_participants[] (string)

    • +
    • session_manage.session_users[] (string)

    • +
    • session_manage.session_uuid (str)

    Status Codes:
    @@ -4224,27 +4245,6 @@

    service

    -
    -
    -DELETE /service/tests
    -

    Delete a specific test

    -
    -
    Query Parameters:
    -
      -
    • uuid (string) – Test UUID to delete

    • -
    • token (string) – Secret token

    • -
    -
    -
    Status Codes:
    -
    -
    -
    -
    -
    GET /service/tests
    @@ -4274,6 +4274,27 @@

    service

    +
    +
    +DELETE /service/tests
    +

    Delete a specific test

    +
    +
    Query Parameters:
    +
      +
    • uuid (string) – Test UUID to delete

    • +
    • token (string) – Secret token

    • +
    +
    +
    Status Codes:
    +
    +
    +
    +
    +
    POST /service/testtypes
    @@ -4286,15 +4307,15 @@

    service

    Request JSON Object:
      -
    • test_type.id_service (integer) –

    • -
    • test_type.id_test_type (integer) –

    • -
    • test_type.test_type_description (string) –

    • -
    • test_type.test_type_has_json_format (boolean) –

    • -
    • test_type.test_type_has_web_editor (boolean) –

    • -
    • test_type.test_type_has_web_format (boolean) –

    • -
    • test_type.test_type_key (string) –

    • -
    • test_type.test_type_name (string) –

    • -
    • test_type.test_type_uuid (string) –

    • +
    • test_type.id_service (integer)

    • +
    • test_type.id_test_type (integer)

    • +
    • test_type.test_type_description (string)

    • +
    • test_type.test_type_has_json_format (boolean)

    • +
    • test_type.test_type_has_web_editor (boolean)

    • +
    • test_type.test_type_has_web_format (boolean)

    • +
    • test_type.test_type_key (string)

    • +
    • test_type.test_type_name (string)

    • +
    • test_type.test_type_uuid (string)

    Status Codes:
    @@ -4308,48 +4329,48 @@

    service

    -
    -
    -DELETE /service/testtypes
    -

    Delete a specific test type

    +
    +
    +GET /service/testtypes
    +

    Return test types information for the current service

    Query Parameters:
      -
    • uuid (string) – Test type UUID to delete

    • +
    • id_site (integer) – ID of the site to query test types for

    • +
    • id_project (integer) – ID of the project to query test types for

    • +
    • id_participant (integer) – ID of the participant to query types for

    • +
    • test_type_key (string) – Test type key to query for

    • +
    • id_test_type (integer) – ID of the test type to query for

    • token (string) – Secret token

    Status Codes:
    -
    -
    -GET /service/testtypes
    -

    Return test types information for the current service

    +
    +
    +DELETE /service/testtypes
    +

    Delete a specific test type

    Query Parameters:
      -
    • id_site (integer) – ID of the site to query test types for

    • -
    • id_project (integer) – ID of the project to query test types for

    • -
    • id_participant (integer) – ID of the participant to query types for

    • -
    • test_type_key (string) – Test type key to query for

    • -
    • id_test_type (integer) – ID of the test type to query for

    • +
    • uuid (string) – Test type UUID to delete

    • token (string) – Secret token

    Status Codes:
    @@ -4367,9 +4388,9 @@

    service

    Request JSON Object:
      -
    • test_type_project.id_project (integer) –

    • -
    • test_type_project.id_test_type (integer) –

    • -
    • test_type_project.id_test_type_project (integer) –

    • +
    • test_type_project.id_project (integer)

    • +
    • test_type_project.id_test_type (integer)

    • +
    • test_type_project.id_test_type_project (integer)

    Status Codes:
    @@ -4383,45 +4404,45 @@

    service

    -
    -
    -DELETE /service/testtypes/projects
    -

    Delete a specific test-type - project association.

    +
    +
    +GET /service/testtypes/projects
    +

    Get test types that are associated with a project. Only one “ID” parameter required and supported at once.

    Query Parameters:
      -
    • id (integer) – Specific test type - project association ID to delete. Be careful: this is not the test-type or project ID, but the ID of the association itself!

    • +
    • id_project (integer) – Project ID to query associated test types from

    • +
    • id_test_type (integer) – Test type ID to query associated projects from

    • +
    • with_sites (boolean) – Used with id_test_type. Also return site information of the returned projects.

    • token (string) – Secret token

    Status Codes:
    -
    -
    -GET /service/testtypes/projects
    -

    Get test types that are associated with a project. Only one “ID” parameter required and supported at once.

    +
    +
    +DELETE /service/testtypes/projects
    +

    Delete a specific test-type - project association.

    Query Parameters:
      -
    • id_project (integer) – Project ID to query associated test types from

    • -
    • id_test_type (integer) – Test type ID to query associated projects from

    • -
    • with_sites (boolean) – Used with id_test_type. Also return site information of the returned projects.

    • +
    • id (integer) – Specific test type - project association ID to delete. Be careful: this is not the test-type or project ID, but the ID of the association itself!

    • token (string) – Secret token

    Status Codes:
    @@ -4439,8 +4460,8 @@

    service

    Request JSON Object:
      -
    • user_group.id_user_group (integer) –

    • -
    • user_group.user_group_name (string) –

    • +
    • user_group.id_user_group (integer)

    • +
    • user_group.user_group_name (string)

    Status Codes:
    @@ -4454,44 +4475,44 @@

    service

    -
    -
    -DELETE /service/usergroups
    -

    Delete a specific user group

    +
    +
    +GET /service/usergroups
    +

    Get user group information. If no id specified, returns all accessible users groups

    Query Parameters:
      -
    • id (integer) – User group ID to delete

    • +
    • id_user_group (integer) – ID of the user group to query

    • +
    • id_project (integer) – ID of the project to query user group with access to

    • +
    • id_site (integer) – ID of the site to query user group with access to

    • token (string) – Secret token

    Status Codes:
    -
    -
    -GET /service/usergroups
    -

    Get user group information. If no id specified, returns all accessible users groups

    +
    +
    +DELETE /service/usergroups
    +

    Delete a specific user group

    Query Parameters:
      -
    • id_user_group (integer) – ID of the user group to query

    • -
    • id_project (integer) – ID of the project to query user group with access to

    • -
    • id_site (integer) – ID of the site to query user group with access to

    • +
    • id (integer) – User group ID to delete

    • token (string) – Secret token

    Status Codes:
    diff --git a/services/teraserver/teraserver.html b/services/teraserver/teraserver.html index e3cbb63b..e13502ec 100644 --- a/services/teraserver/teraserver.html +++ b/services/teraserver/teraserver.html @@ -4,7 +4,7 @@ - TeraServer Service — OpenTera 1.2.5 documentation + TeraServer Service — OpenTera 1.2.6 documentation @@ -15,8 +15,8 @@ - - + + @@ -38,7 +38,7 @@
    - 1.2.5 + 1.2.6