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