1 /*
2  * SessionOptions.gen.hpp
3  *
4  * Copyright (C) 2021 by RStudio, PBC
5  *
6  * Unless you have received this program directly from RStudio pursuant
7  * to the terms of a commercial license agreement with RStudio, then
8  * this program is licensed to you under the terms of version 3 of the
9  * GNU Affero General Public License. This program is distributed WITHOUT
10  * ANY EXPRESS OR IMPLIED WARRANTY, INCLUDING THOSE OF NON-INFRINGEMENT,
11  * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Please refer to the
12  * AGPL (http://www.gnu.org/licenses/agpl-3.0.txt) for more details.
13  *
14  */
15 
16 // THIS FILE WAS AUTOMATICALLY GENERATED BY A TOOL - DO NOT HAND EDIT IT
17 
18 #ifndef SESSION_SESSION_OPTIONS_GEN_HPP
19 #define SESSION_SESSION_OPTIONS_GEN_HPP
20 
21 #include <string>
22 #include <map>
23 #include <shared_core/FilePath.hpp>
24 #include <core/ProgramOptions.hpp>
25 #include <core/system/Xdg.hpp>
26 #include <session/SessionConstants.hpp>
27 #include <core/http/Request.hpp>
28 #include <core/http/Cookie.hpp>
29 
30 
31 namespace rstudio {
32 namespace session {
33 
34 class GeneratedOptions
35 {
36 public:
~GeneratedOptions()37    virtual ~GeneratedOptions() {}
38    virtual core::ProgramStatus read(int argc,
39                                     char * const argv[],
40                                     std::ostream& osWarnings) = 0;
41 
42 protected:
43    rstudio::core::program_options::OptionsDescription
buildOptions(boost::program_options::options_description * pTests,boost::program_options::options_description * pScript,boost::program_options::options_description * pVerify,boost::program_options::options_description * pVersion,boost::program_options::options_description * pProgram,boost::program_options::options_description * pLog,boost::program_options::options_description * pDocs,boost::program_options::options_description * pWww,boost::program_options::options_description * pSession,boost::program_options::options_description * pAllow,boost::program_options::options_description * pR,boost::program_options::options_description * pLimits,boost::program_options::options_description * pExternal,boost::program_options::options_description * pGit,boost::program_options::options_description * pUser,boost::program_options::options_description * pMisc,std::string * pSaveActionDefault,int * wwwSameSite)44    buildOptions(boost::program_options::options_description* pTests,
45                 boost::program_options::options_description* pScript,
46                 boost::program_options::options_description* pVerify,
47                 boost::program_options::options_description* pVersion,
48                 boost::program_options::options_description* pProgram,
49                 boost::program_options::options_description* pLog,
50                 boost::program_options::options_description* pDocs,
51                 boost::program_options::options_description* pWww,
52                 boost::program_options::options_description* pSession,
53                 boost::program_options::options_description* pAllow,
54                 boost::program_options::options_description* pR,
55                 boost::program_options::options_description* pLimits,
56                 boost::program_options::options_description* pExternal,
57                 boost::program_options::options_description* pGit,
58                 boost::program_options::options_description* pUser,
59                 boost::program_options::options_description* pMisc,
60                 std::string* pSaveActionDefault,
61                 int* wwwSameSite)
62 {
63    using namespace rstudio::core;
64    using namespace boost::program_options;
65 
66    pTests->add_options()
67       (kRunTestsSessionOption,
68       value<bool>(&runTests_)->default_value(false)->implicit_value(true),
69       "Runs unit tests and exits.");
70 
71    pScript->add_options()
72       (kRunScriptSessionOption,
73       value<std::string>(&runScript_)->default_value(std::string()),
74       "Runs an R script and exits.");
75 
76    pVerify->add_options()
77       (kVerifyInstallationSessionOption,
78       value<bool>(&verifyInstallation_)->default_value(false),
79       "Verifies that the session installation is working correctly and exits.");
80 
81    pVersion->add_options()
82       (kVersionSessionOption,
83       value<bool>(&version_)->default_value(false)->implicit_value(true),
84       "Prints the version number and exits.");
85 
86    pProgram->add_options()
87       (kProgramModeSessionOption,
88       value<std::string>(&programMode_)->default_value("server"),
89       "The program mode the session is running in (desktop or server).");
90 
91    pLog->add_options()
92       ("log-stderr",
93       value<bool>(&logStderr_)->default_value(false),
94       "Writes log entries to stderr in addition to any other configured log destinations.");
95 
96    pDocs->add_options()
97       ("docs-url",
98       value<std::string>(&docsURL_)->default_value(std::string()),
99       "If specified, overrides the URL to navigate to when a user clicks on the RStudio help link.");
100 
101    pWww->add_options()
102       ("www-local-path",
103       value<std::string>(&wwwLocalPath_)->default_value("www"),
104       "The relative path from the RStudio installation directory, or absolute path where web assets are stored.")
105       ("www-symbol-maps-path",
106       value<std::string>(&wwwSymbolMapsPath_)->default_value("www-symbolmaps"),
107       "The relative path from the RStudio installation directory, or absolute path, where symbol maps are stored.")
108       (kWwwPortSessionOption,
109       value<std::string>(&wwwPort_)->default_value("8787"),
110       "The HTTP port to listen on for incoming connections. This is generally only used with Launcher sessions.")
111       (kWwwAddressSessionOption,
112       value<std::string>(&wwwAddress_)->default_value("127.0.0.1"),
113       "The address to listen on for incoming connections. This is generally only used with Launcher sessions.")
114       (kStandaloneSessionOption,
115       value<bool>(&standalone_)->default_value(false),
116       "Runs the session in standalone mode, indicating we should use HTTP communication. This is generally only used with Launcher sessions.")
117       (kVerifySignaturesSessionOption,
118       value<bool>(&verifySignatures_)->default_value(false),
119       "Indicates whether or not to verify signatures on incoming requests. This is generally only used with Launcher sessions.")
120       (kWwwResusePorts,
121       value<bool>(&wwwReusePorts_)->default_value(false),
122       "Whether or not to reuse last used bound ports when restarting a Launcher session.");
123 
124    pSession->add_options()
125       (kTimeoutSessionOption,
126       value<int>(&timeoutMinutes_)->default_value(120),
127       "The amount of minutes before a session times out, at which point the session will either suspend or exit.")
128       (kTimeoutSuspendSessionOption,
129       value<bool>(&timeoutSuspend_)->default_value(true),
130       "Indicates whether or not to suspend the session after the timeout has elapsed. Setting this to `false` will cause the session to quit instead of suspending to disk when the session times out.")
131       (kDisconnectedTimeoutSessionOption,
132       value<int>(&disconnectedTimeoutMinutes_)->default_value(0),
133       "If set, causes the session to time out after not receiving any new connections within the specified minutes. This behavior is generally not needed, and you should instead use session-timeout-minutes")
134       ("session-preflight-script",
135       value<std::string>(&preflightScriptPath_)->default_value(std::string()),
136       "Sets a script to be run on startup before any R initialization has occurred.")
137       ("session-create-public-folder",
138       value<bool>(&createPublicFolder_)->default_value(false),
139       "Indicates whether or not to create a `Public` folder for the user whenever the session starts. This folder will have global read permissions, and can be used as a simple means for users to share files. It is recommended you do not use this feature, and instead use the more advanced Project Sharing features.")
140       ("session-create-profile",
141       value<bool>(&createProfile_)->default_value(false),
142       "Indicates whether or not to create a default empty .Rprofile script within the user's home directory, which can be altered to perform any desired common startup tasks.")
143       ("session-rprofile-on-resume-default",
144       value<bool>(&rProfileOnResumeDefault_)->default_value(false),
145       "Specifies the default user setting for running the Rprofile when sessions are resumed.")
146       ("session-save-action-default",
147       value<std::string>(pSaveActionDefault)->default_value(std::string()),
148       "Specifies the default save action (yes, no, or ask).")
149       ("session-default-working-dir",
150       value<std::string>(&defaultWorkingDir_)->default_value(std::string()),
151       "Specifies the default working directory to use for new sessions.")
152       ("session-default-new-project-dir",
153       value<std::string>(&deprecatedDefaultProjectDir_)->default_value("~"),
154       "Specifies the default directory to use for new projects.")
155       ("show-help-home",
156       value<bool>(&showHelpHome_)->default_value(false),
157       "Indicates whether or not to show the help home page on startup.")
158       ("session-default-console-term",
159       value<std::string>(&defaultConsoleTerm_)->default_value("xterm-256color"),
160       "Specifies the default TERM setting for the R console.")
161       ("session-default-clicolor-force",
162       value<bool>(&defaultCliColorForce_)->default_value(true),
163       "Specifies the default CLICOLOR_FORCE setting for the R console.")
164       ("session-quit-child-processes-on-exit",
165       value<bool>(&quitChildProcessesOnExit_)->default_value(false),
166       "Indicates whether or not to quit child processes of the session on exit. If unset, child processes created by forking or parallel processing may continue to run in the background after the session is terminated.")
167       ("session-first-project-template-path",
168       value<std::string>(&firstProjectTemplatePath_)->default_value(std::string()),
169       "Specifies the path to a first project template which will be copied into new users' home directories and opened the first time they run a session. The template can optionally be configured with `DefaultOpenDocs` to cause documents to automatically be opened for the first project.")
170       ("default-rsconnect-server",
171       value<std::string>(&defaultRSConnectServer_)->default_value(std::string()),
172       "Specifies the default RStudio Connect server URL.")
173       (kTerminalPortOption,
174       value<std::string>(&terminalPort_)->default_value(std::string()),
175       "If specified, sets the port to bind the terminal server to. This should generally only be set for containerized Launcher sessions, where the port must be known.")
176       (kWebSocketPingInterval,
177       value<int>(&webSocketPingSeconds_)->default_value(10),
178       "Specifies the WebSocket keep-alive ping interval for session terminals.")
179       (kWebSocketConnectTimeout,
180       value<int>(&webSocketConnectTimeout_)->default_value(3),
181       "Specifies the WebSocket initial connection timeout in seconds for session terminals.")
182       (kWebSocketLogLevel,
183       value<int>(&webSocketLogLevel_)->default_value(0),
184       "Specifies the WebSocket log level for session terminals ((0=none, 1=errors, 2=activity, 3=all).")
185       (kWebSocketHandshakeTimeout,
186       value<int>(&webSocketHandshakeTimeoutMs_)->default_value(5000),
187       "Specifies the WebSocket protocol handshake timeout for session terminals in milliseconds.")
188       (kPackageOutputInPackageFolder,
189       value<bool>(&packageOutputToPackageFolder_)->default_value(false),
190       "Specifies whether or not package builds output to the package project folder.")
191       (kRootPathSessionOption,
192       value<std::string>(&rootPath_)->default_value(kRequestDefaultRootPath),
193       "The path prefix added by a proxy to the incoming RStudio URL. This setting is used so RStudio Server knows what path it is being served from. If running RStudio Server behind a path-modifying proxy, this should be changed to match the base RStudio Server URL.")
194       (kUseSecureCookiesSessionOption,
195       value<bool>(&useSecureCookies_)->default_value(false),
196       "Indicates whether or not to mark cookies as secure.")
197       (kSameSiteSessionOption,
198       value<int>(wwwSameSite)->default_value(0),
199       "The value of the SameSite attribute used in cookie issued by the session.")
200       ("restrict-directory-view",
201       value<bool>(&restrictDirectoryView_)->default_value(false),
202       "Indicates whether or not to restrict the directories that can be viewed within the IDE.")
203       ("directory-view-allow-list",
204       value<std::string>(&directoryViewAllowList_)->default_value(std::string()),
205       "Specifies a list of directories exempt from directory view restrictions, separated by a colon character (:).")
206       (kSessionEphemeralEnvVars,
207       value<std::string>(&ephemeralEnvVars_)->default_value(std::string()),
208       "Specifies a list of environment variables that will not be saved when sessions suspend, separated by a colon character (:).")
209       (kSessionSuspendOnIncompleteStatement,
210       value<bool>(&suspendOnIncompleteStatement_)->default_value(false),
211       "Specifies whether the session should be allowed to suspend when a user has entered a partial R statement.")
212       (kSessionAsyncRpcEnabled,
213       value<bool>(&asyncRpcEnabled_)->default_value(true),
214       "Enables async responses to rpc requests to prevent connection logjams in the browser, allowing interrupt of busy sessions")
215       (kSessionAsyncRpcTimeoutMs,
216       value<int>(&asyncRpcTimeoutMs_)->default_value(200),
217       "Duration in millis before requests are converted to async - i.e. how fast will the server free up connections when it's busy")
218       (kSessionHandleOfflineEnabled,
219       value<bool>(&handleOfflineEnabled_)->default_value(true),
220       "Enables offline request handling. When the R session is busy, some requests are allowed to run")
221       (kSessionHandleOfflineTimeoutMs,
222       value<int>(&handleOfflineTimeoutMs_)->default_value(200),
223       "Duration in millis before requests that can be handled offline are processed by the offline handler thread.");
224 
225    pAllow->add_options()
226       ("allow-vcs-executable-edit",
227       value<bool>(&allowVcsExecutableEdit_)->default_value(true),
228       "Indicates whether or not to allow editing of VCS (Version Control Systems) executables.")
229       ("allow-r-cran-repos-edit",
230       value<bool>(&allowCRANReposEdit_)->default_value(true),
231       "Indicates whether or not to allow editing of CRAN repositories.")
232       ("allow-vcs",
233       value<bool>(&allowVcs_)->default_value(true),
234       "Indicates whether or not to allow the use of version control features.")
235       ("allow-package-installation",
236       value<bool>(&allowPackageInstallation_)->default_value(true),
237       "Indicates whether or not to allow installation of packages from the packages pane.")
238       ("allow-shell",
239       value<bool>(&allowShell_)->default_value(true),
240       "Indicates whether or not to allow access to the shell dialog.")
241       ("allow-terminal-websockets",
242       value<bool>(&allowTerminalWebsockets_)->default_value(true),
243       "Indicates whether or not to allow connections to terminal sessions with websockets.")
244       ("allow-file-downloads",
245       value<bool>(&allowFileDownloads_)->default_value(true),
246       "Indicates whether or not to allow file downloads from the files pane.")
247       ("allow-file-uploads",
248       value<bool>(&allowFileUploads_)->default_value(true),
249       "Indicates whether or not to allow file uploads from the files pane.")
250       ("allow-remove-public-folder",
251       value<bool>(&allowRemovePublicFolder_)->default_value(true),
252       "Indicates whether or not to allow removal of the user public folder.")
253       ("allow-rpubs-publish",
254       value<bool>(&allowRpubsPublish_)->default_value(true),
255       "Indicates whether or not to allow publishing of content to external services.")
256       ("allow-external-publish",
257       value<bool>(&allowExternalPublish_)->default_value(true),
258       "Indicates whether or not to allow publishing of content to external services.")
259       ("allow-publish",
260       value<bool>(&allowPublish_)->default_value(true),
261       "Indicates whether or not to allow publishing of content.")
262       ("allow-presentation-commands",
263       value<bool>(&allowPresentationCommands_)->default_value(false),
264       "Indicates whether or not to allow presentation commands.")
265       ("allow-full-ui",
266       value<bool>(&allowFullUI_)->default_value(true),
267       "Indicates whether or not to allow full standalone UI mode.")
268       ("allow-launcher-jobs",
269       value<bool>(&allowLauncherJobs_)->default_value(true),
270       "Indicates whether or not to allow running jobs via the Launcher.");
271 
272    pR->add_options()
273       ("r-core-source",
274       value<std::string>(&coreRSourcePath_)->default_value("R"),
275       "Specifies the Core R source path.")
276       ("r-modules-source",
277       value<std::string>(&modulesRSourcePath_)->default_value("R/modules"),
278       "Specifies the Modules R source path.")
279       ("r-session-library",
280       value<std::string>(&sessionLibraryPath_)->default_value("R/library"),
281       "Specifies the R library path.")
282       ("r-session-package-archives",
283       value<std::string>(&sessionPackageArchivesPath_)->default_value("R/packages"),
284       "Specifies the R package archives path.")
285       ("r-libs-user",
286       value<std::string>(&rLibsUser_)->default_value(""),
287       "Specifies the R user library path.")
288       ("r-cran-repos",
289       value<std::string>(&rCRANUrl_)->default_value(""),
290       "Specifies the default CRAN repository.")
291       ("r-cran-repos-file",
292       value<std::string>(&rCRANReposFile_)->default_value(core::system::xdg::systemConfigFile("repos.conf").getAbsolutePath()),
293       "Specifies the path to a configuration file which contains default CRAN repositories.")
294       ("r-cran-repos-url",
295       value<std::string>(&rCRANReposUrl_)->default_value(""),
296       "Specifies the URL to a configuration file which contains optional CRAN repositories.")
297       ("r-auto-reload-source",
298       value<bool>(&autoReloadSource_)->default_value(false),
299       "Indicates whether or not to automatically reload R source if it changes during the session.")
300       ("r-compatible-graphics-engine-version",
301       value<int>(&rCompatibleGraphicsEngineVersion_)->default_value(14),
302       "Specifies the maximum graphics engine version that this version of RStudio is compatible with.")
303       ("r-resources-path",
304       value<std::string>(&rResourcesPath_)->default_value("resources"),
305       "Specifies the directory containing external resources.")
306       ("r-shell-escape",
307       value<bool>(&deprecatedRShellEscape_)->default_value(false),
308       "Indicates whether or not to support shell escape.")
309       ("r-home-dir-override",
310       value<std::string>(&rHomeDirOverride_)->default_value(""),
311       "Specifies the override for R_HOME (used for debug configurations).")
312       ("r-doc-dir-override",
313       value<std::string>(&rDocDirOverride_)->default_value(""),
314       "Specifies the override for R_DOC_DIR (used for debug configurations).")
315       ("r-restore-workspace",
316       value<int>(&rRestoreWorkspace_)->default_value(kRestoreWorkspaceDefault),
317       "If set, overrides the user/project restore workspace setting. Can be 0 (No), 1 (Yes), or 2 (Default).")
318       ("r-run-rprofile",
319       value<int>(&rRunRprofile_)->default_value(kRunRprofileDefault),
320       "If set, overrides the user/project .Rprofile run setting. Can be 0 (No), 1 (Yes), or 2 (Default).");
321 
322    pLimits->add_options()
323       ("limit-file-upload-size-mb",
324       value<int>(&limitFileUploadSizeMb_)->default_value(0),
325       "Sets a size limit in megabytes on files that are uploaded via the files pane.")
326       ("limit-cpu-time-minutes",
327       value<int>(&limitCpuTimeMinutes_)->default_value(0),
328       "Sets a limit in minutes for the amount of time top level R computations may run before being interrupted.")
329       ("limit-xfs-disk-quota",
330       value<bool>(&limitXfsDiskQuota_)->default_value(false),
331       "Indicates whether or not XFS quotas should be enforced when performing file operations via the files pane.");
332 
333    pExternal->add_options()
334       ("external-rpostback-path",
335       value<std::string>(&rpostbackPath_)->default_value(kDefaultPostbackPath),
336       "Specifies the path to the rpostback executable.")
337       ("external-consoleio-path",
338       value<std::string>(&consoleIoPath_)->default_value("bin/consoleio.exe"),
339       "Specifies the path to the consoleio executable (Windows-only).")
340       ("external-gnudiff-path",
341       value<std::string>(&gnudiffPath_)->default_value("bin/gnudiff"),
342       "Specifies the path to gnudiff utilities (Windows-only).")
343       ("external-gnugrep-path",
344       value<std::string>(&gnugrepPath_)->default_value("bin/gnugrep"),
345       "Specifies the path to gnugrep utilities (Windows-only).")
346       ("external-msysssh-path",
347       value<std::string>(&msysSshPath_)->default_value("bin/msys-ssh-1000-18"),
348       "Specifies the path to msys_ssh utilities (Windows-only).")
349       ("external-sumatra-path",
350       value<std::string>(&sumatraPath_)->default_value("bin/sumatra"),
351       "Specifies the path to SumatraPDF (Windows-only).")
352       ("external-winutils-path",
353       value<std::string>(&winutilsPath_)->default_value("bin/winutils"),
354       "Specifies the path to Hadoop Winutils (Windows-only).")
355       ("external-hunspell-dictionaries-path",
356       value<std::string>(&hunspellDictionariesPath_)->default_value("resources/dictionaries"),
357       "Specifies the path to hunspell dictionaries.")
358       ("external-mathjax-path",
359       value<std::string>(&mathjaxPath_)->default_value("resources/mathjax-27"),
360       "Specifies the path to the mathjax library.")
361       ("external-pandoc-path",
362       value<std::string>(&pandocPath_)->default_value(kDefaultPandocPath),
363       "Specifies the path to pandoc binaries.")
364       ("external-libclang-path",
365       value<std::string>(&libclangPath_)->default_value(kDefaultRsclangPath),
366       "Specifies the path to the libclang shared library")
367       ("external-libclang-headers-path",
368       value<std::string>(&libclangHeadersPath_)->default_value("resources/libclang/builtin-headers"),
369       "Specifies the path to the libclang builtin headers.")
370       ("external-winpty-path",
371       value<std::string>(&winptyPath_)->default_value("bin"),
372       "Specifies the path to winpty binaries.");
373 
374    pGit->add_options()
375       ("git-commit-large-file-size",
376       value<int>(&gitCommitLargeFileSize_)->default_value(5242880),
377       "Warns when attempting to commit files larger than this size (in bytes; set 0 to disable).");
378 
379    pUser->add_options()
380       (kUserIdentitySessionOption "," kUserIdentitySessionOptionShort,
381       value<std::string>(&userIdentity_)->default_value(core::system::username()),
382       "The user identity for the session.")
383       (kShowUserIdentitySessionOption,
384       value<bool>(&showUserIdentity_)->default_value(true),
385       "Indicates whether or not to show the user identity in the session UI.")
386       (kProjectSessionOption "," kProjectSessionOptionShort,
387       value<std::string>(&projectId_)->default_value(""),
388       "Specifies the active project.")
389       (kScopeSessionOption "," kScopeSessionOptionShort,
390       value<std::string>(&scopeId_)->default_value(""),
391       "Specifies the session identifier.")
392       ("launcher-token",
393       value<std::string>(&launcherToken_)->default_value(""),
394       "Specifies the token identifying the session launcher.");
395 
396    pMisc->add_options();
397 
398    FilePath defaultConfigPath = core::system::xdg::findSystemConfigFile("rsession configuration", "rsession.conf");
399    std::string configFile = defaultConfigPath.exists() ?
400       defaultConfigPath.getAbsolutePath() : "";
401    return program_options::OptionsDescription("rsession", configFile);
402 }
403 
404 public:
runTests() const405    bool runTests() const { return runTests_; }
runScript() const406    std::string runScript() const { return runScript_; }
verifyInstallation() const407    bool verifyInstallation() const { return verifyInstallation_; }
version() const408    bool version() const { return version_; }
programMode() const409    std::string programMode() const { return programMode_; }
logStderr() const410    bool logStderr() const { return logStderr_; }
docsURL() const411    std::string docsURL() const { return docsURL_; }
wwwLocalPath() const412    std::string wwwLocalPath() const { return wwwLocalPath_; }
wwwSymbolMapsPath() const413    core::FilePath wwwSymbolMapsPath() const { return core::FilePath(wwwSymbolMapsPath_); }
wwwPort() const414    std::string wwwPort() const { return wwwPort_; }
wwwAddress() const415    std::string wwwAddress() const { return wwwAddress_; }
standalone() const416    bool standalone() const { return standalone_; }
verifySignatures() const417    bool verifySignatures() const { return verifySignatures_; }
wwwReusePorts() const418    bool wwwReusePorts() const { return wwwReusePorts_; }
timeoutMinutes() const419    int timeoutMinutes() const { return timeoutMinutes_; }
timeoutSuspend() const420    bool timeoutSuspend() const { return timeoutSuspend_; }
disconnectedTimeoutMinutes() const421    int disconnectedTimeoutMinutes() const { return disconnectedTimeoutMinutes_; }
preflightScriptPath() const422    core::FilePath preflightScriptPath() const { return core::FilePath(preflightScriptPath_); }
createPublicFolder() const423    bool createPublicFolder() const { return createPublicFolder_; }
createProfile() const424    bool createProfile() const { return createProfile_; }
rProfileOnResumeDefault() const425    bool rProfileOnResumeDefault() const { return rProfileOnResumeDefault_; }
saveActionDefault() const426    int saveActionDefault() const { return saveActionDefault_; }
defaultWorkingDir() const427    std::string defaultWorkingDir() const { return defaultWorkingDir_; }
deprecatedDefaultProjectDir() const428    std::string deprecatedDefaultProjectDir() const { return deprecatedDefaultProjectDir_; }
showHelpHome() const429    bool showHelpHome() const { return showHelpHome_; }
defaultConsoleTerm() const430    std::string defaultConsoleTerm() const { return defaultConsoleTerm_; }
defaultCliColorForce() const431    bool defaultCliColorForce() const { return defaultCliColorForce_; }
quitChildProcessesOnExit() const432    bool quitChildProcessesOnExit() const { return quitChildProcessesOnExit_; }
firstProjectTemplatePath() const433    std::string firstProjectTemplatePath() const { return firstProjectTemplatePath_; }
defaultRSConnectServer() const434    std::string defaultRSConnectServer() const { return defaultRSConnectServer_; }
terminalPort() const435    std::string terminalPort() const { return terminalPort_; }
webSocketPingInterval() const436    int webSocketPingInterval() const { return webSocketPingSeconds_; }
webSocketConnectTimeout() const437    int webSocketConnectTimeout() const { return webSocketConnectTimeout_; }
webSocketLogLevel() const438    int webSocketLogLevel() const { return webSocketLogLevel_; }
webSocketHandshakeTimeoutMs() const439    int webSocketHandshakeTimeoutMs() const { return webSocketHandshakeTimeoutMs_; }
packageOutputInPackageFolder() const440    bool packageOutputInPackageFolder() const { return packageOutputToPackageFolder_; }
rootPath() const441    std::string rootPath() const { return rootPath_; }
useSecureCookies() const442    bool useSecureCookies() const { return useSecureCookies_; }
sameSite() const443    rstudio::core::http::Cookie::SameSite sameSite() const { return sameSite_; }
restrictDirectoryView() const444    bool restrictDirectoryView() const { return restrictDirectoryView_; }
directoryViewAllowList() const445    std::string directoryViewAllowList() const { return directoryViewAllowList_; }
ephemeralEnvVars() const446    std::string ephemeralEnvVars() const { return ephemeralEnvVars_; }
suspendOnIncompleteStatement() const447    bool suspendOnIncompleteStatement() const { return suspendOnIncompleteStatement_; }
asyncRpcEnabled() const448    bool asyncRpcEnabled() const { return asyncRpcEnabled_; }
asyncRpcTimeoutMs() const449    int asyncRpcTimeoutMs() const { return asyncRpcTimeoutMs_; }
handleOfflineEnabled() const450    bool handleOfflineEnabled() const { return handleOfflineEnabled_; }
handleOfflineTimeoutMs() const451    int handleOfflineTimeoutMs() const { return handleOfflineTimeoutMs_; }
allowVcsExecutableEdit() const452    bool allowVcsExecutableEdit() const { return allowVcsExecutableEdit_; }
allowCRANReposEdit() const453    bool allowCRANReposEdit() const { return allowCRANReposEdit_; }
allowVcs() const454    bool allowVcs() const { return allowVcs_; }
allowPackageInstallation() const455    bool allowPackageInstallation() const { return allowPackageInstallation_; }
allowShell() const456    bool allowShell() const { return allowShell_; }
allowTerminalWebsockets() const457    bool allowTerminalWebsockets() const { return allowTerminalWebsockets_; }
allowFileDownloads() const458    bool allowFileDownloads() const { return allowFileDownloads_; }
allowFileUploads() const459    bool allowFileUploads() const { return allowFileUploads_; }
allowRemovePublicFolder() const460    bool allowRemovePublicFolder() const { return allowRemovePublicFolder_; }
allowRpubsPublish() const461    bool allowRpubsPublish() const { return allowRpubsPublish_; }
allowExternalPublish() const462    bool allowExternalPublish() const { return allowExternalPublish_; }
allowPublish() const463    bool allowPublish() const { return allowPublish_; }
allowPresentationCommands() const464    bool allowPresentationCommands() const { return allowPresentationCommands_; }
allowFullUI() const465    bool allowFullUI() const { return allowFullUI_; }
allowLauncherJobs() const466    bool allowLauncherJobs() const { return allowLauncherJobs_; }
coreRSourcePath() const467    core::FilePath coreRSourcePath() const { return core::FilePath(coreRSourcePath_); }
modulesRSourcePath() const468    core::FilePath modulesRSourcePath() const { return core::FilePath(modulesRSourcePath_); }
sessionLibraryPath() const469    core::FilePath sessionLibraryPath() const { return core::FilePath(sessionLibraryPath_); }
sessionPackageArchivesPath() const470    core::FilePath sessionPackageArchivesPath() const { return core::FilePath(sessionPackageArchivesPath_); }
rLibsUser() const471    std::string rLibsUser() const { return rLibsUser_; }
rCRANUrl() const472    std::string rCRANUrl() const { return rCRANUrl_; }
rCRANReposFile() const473    std::string rCRANReposFile() const { return rCRANReposFile_; }
rCRANReposUrl() const474    std::string rCRANReposUrl() const { return rCRANReposUrl_; }
autoReloadSource() const475    bool autoReloadSource() const { return autoReloadSource_; }
rCompatibleGraphicsEngineVersion() const476    int rCompatibleGraphicsEngineVersion() const { return rCompatibleGraphicsEngineVersion_; }
rResourcesPath() const477    core::FilePath rResourcesPath() const { return core::FilePath(rResourcesPath_); }
deprecatedRShellEscape() const478    bool deprecatedRShellEscape() const { return deprecatedRShellEscape_; }
rHomeDirOverride() const479    std::string rHomeDirOverride() const { return rHomeDirOverride_; }
rDocDirOverride() const480    std::string rDocDirOverride() const { return rDocDirOverride_; }
rRestoreWorkspace() const481    int rRestoreWorkspace() const { return rRestoreWorkspace_; }
rRunRprofile() const482    int rRunRprofile() const { return rRunRprofile_; }
limitFileUploadSizeMb() const483    int limitFileUploadSizeMb() const { return limitFileUploadSizeMb_; }
limitCpuTimeMinutes() const484    int limitCpuTimeMinutes() const { return limitCpuTimeMinutes_; }
limitXfsDiskQuota() const485    bool limitXfsDiskQuota() const { return limitXfsDiskQuota_; }
rpostbackPath() const486    core::FilePath rpostbackPath() const { return core::FilePath(rpostbackPath_); }
consoleIoPath() const487    core::FilePath consoleIoPath() const { return core::FilePath(consoleIoPath_); }
gnudiffPath() const488    core::FilePath gnudiffPath() const { return core::FilePath(gnudiffPath_); }
gnugrepPath() const489    core::FilePath gnugrepPath() const { return core::FilePath(gnugrepPath_); }
msysSshPath() const490    core::FilePath msysSshPath() const { return core::FilePath(msysSshPath_); }
sumatraPath() const491    core::FilePath sumatraPath() const { return core::FilePath(sumatraPath_); }
winutilsPath() const492    core::FilePath winutilsPath() const { return core::FilePath(winutilsPath_); }
hunspellDictionariesPath() const493    core::FilePath hunspellDictionariesPath() const { return core::FilePath(hunspellDictionariesPath_); }
mathjaxPath() const494    core::FilePath mathjaxPath() const { return core::FilePath(mathjaxPath_); }
pandocPath() const495    core::FilePath pandocPath() const { return core::FilePath(pandocPath_); }
libclangPath() const496    core::FilePath libclangPath() const { return core::FilePath(libclangPath_); }
libclangHeadersPath() const497    core::FilePath libclangHeadersPath() const { return core::FilePath(libclangHeadersPath_); }
winptyPath() const498    core::FilePath winptyPath() const { return core::FilePath(winptyPath_); }
gitCommitLargeFileSize() const499    int gitCommitLargeFileSize() const { return gitCommitLargeFileSize_; }
userIdentity() const500    std::string userIdentity() const { return userIdentity_; }
showUserIdentity() const501    bool showUserIdentity() const { return showUserIdentity_; }
launcherToken() const502    std::string launcherToken() const { return launcherToken_; }
503 
504 
505 protected:
506    bool runTests_;
507    std::string runScript_;
508    bool verifyInstallation_;
509    bool version_;
510    std::string programMode_;
511    bool logStderr_;
512    std::string docsURL_;
513    std::string wwwLocalPath_;
514    std::string wwwSymbolMapsPath_;
515    std::string wwwPort_;
516    std::string wwwAddress_;
517    bool standalone_;
518    bool verifySignatures_;
519    bool wwwReusePorts_;
520    int timeoutMinutes_;
521    bool timeoutSuspend_;
522    int disconnectedTimeoutMinutes_;
523    std::string preflightScriptPath_;
524    bool createPublicFolder_;
525    bool createProfile_;
526    bool rProfileOnResumeDefault_;
527    int saveActionDefault_;
528    std::string defaultWorkingDir_;
529    std::string deprecatedDefaultProjectDir_;
530    bool showHelpHome_;
531    std::string defaultConsoleTerm_;
532    bool defaultCliColorForce_;
533    bool quitChildProcessesOnExit_;
534    std::string firstProjectTemplatePath_;
535    std::string defaultRSConnectServer_;
536    std::string terminalPort_;
537    int webSocketPingSeconds_;
538    int webSocketConnectTimeout_;
539    int webSocketLogLevel_;
540    int webSocketHandshakeTimeoutMs_;
541    bool packageOutputToPackageFolder_;
542    std::string rootPath_;
543    bool useSecureCookies_;
544    rstudio::core::http::Cookie::SameSite sameSite_;
545    bool restrictDirectoryView_;
546    std::string directoryViewAllowList_;
547    std::string ephemeralEnvVars_;
548    bool suspendOnIncompleteStatement_;
549    bool asyncRpcEnabled_;
550    int asyncRpcTimeoutMs_;
551    bool handleOfflineEnabled_;
552    int handleOfflineTimeoutMs_;
553    bool allowVcsExecutableEdit_;
554    bool allowCRANReposEdit_;
555    bool allowVcs_;
556    bool allowPackageInstallation_;
557    bool allowShell_;
558    bool allowTerminalWebsockets_;
559    bool allowFileDownloads_;
560    bool allowFileUploads_;
561    bool allowRemovePublicFolder_;
562    bool allowRpubsPublish_;
563    bool allowExternalPublish_;
564    bool allowPublish_;
565    bool allowPresentationCommands_;
566    bool allowFullUI_;
567    bool allowLauncherJobs_;
568    std::string coreRSourcePath_;
569    std::string modulesRSourcePath_;
570    std::string sessionLibraryPath_;
571    std::string sessionPackageArchivesPath_;
572    std::string rLibsUser_;
573    std::string rCRANUrl_;
574    std::string rCRANReposFile_;
575    std::string rCRANReposUrl_;
576    bool autoReloadSource_;
577    int rCompatibleGraphicsEngineVersion_;
578    std::string rResourcesPath_;
579    bool deprecatedRShellEscape_;
580    std::string rHomeDirOverride_;
581    std::string rDocDirOverride_;
582    int rRestoreWorkspace_;
583    int rRunRprofile_;
584    int limitFileUploadSizeMb_;
585    int limitCpuTimeMinutes_;
586    bool limitXfsDiskQuota_;
587    std::string rpostbackPath_;
588    std::string consoleIoPath_;
589    std::string gnudiffPath_;
590    std::string gnugrepPath_;
591    std::string msysSshPath_;
592    std::string sumatraPath_;
593    std::string winutilsPath_;
594    std::string hunspellDictionariesPath_;
595    std::string mathjaxPath_;
596    std::string pandocPath_;
597    std::string libclangPath_;
598    std::string libclangHeadersPath_;
599    std::string winptyPath_;
600    int gitCommitLargeFileSize_;
601    std::string userIdentity_;
602    bool showUserIdentity_;
603    std::string projectId_;
604    std::string scopeId_;
605    std::string launcherToken_;
606 };
607 
608 } // namespace session
609 } // namespace rstudio
610 
611 
612 #endif // SESSION_SESSION_OPTIONS_GEN_HPP
613