diff --git a/client/src/schema/schema.ts b/client/src/schema/schema.ts index 1c594f34f6ac..b8487baeb185 100644 --- a/client/src/schema/schema.ts +++ b/client/src/schema/schema.ts @@ -4502,6 +4502,8 @@ export interface components { * @description Activation grace period (in hours). Activation is not forced (login is not * disabled) until grace period has passed. Users under grace period can't run * jobs. Enter 0 to disable grace period. + * + * @default 3 */ activation_grace_period?: number; /** @@ -4509,6 +4511,8 @@ export interface components { * @description Set path to the additional tool preferences from Galaxy admins. * It has two blocks. One for listing deprecated tools which will be removed from the recommendations and * another is for adding additional tools to be recommended along side those from the deep learning model. + * + * @default tool_recommendations_overwrite.yml */ admin_tool_recommendations_path?: string; /** @@ -4519,7 +4523,7 @@ export interface components { * libraries, and more. For more information, see: * https://galaxyproject.org/admin/ */ - admin_users?: string; + admin_users: string; /** * Allow Path Paste * @description Allow admins to paste filesystem paths during upload. For libraries this @@ -4529,12 +4533,16 @@ export interface components { * (i.e. prefixed with file://). Set to true to enable. Please note the security * implication that this will give Galaxy Admins access to anything your Galaxy * user has access to. + * + * @default false */ allow_path_paste?: boolean; /** * Allow User Creation * @description Allow unregistered users to create new accounts (otherwise, they will have to * be created by an admin). + * + * @default true */ allow_user_creation?: boolean; /** @@ -4542,16 +4550,22 @@ export interface components { * @description Allow users to remove their datasets from disk immediately (otherwise, * datasets will be removed after a time period specified by an administrator in * the cleanup scripts run via cron) + * + * @default true */ allow_user_dataset_purge?: boolean; /** * Allow User Deletion * @description Allow administrators to delete accounts. + * + * @default false */ allow_user_deletion?: boolean; /** * Allow User Impersonation * @description Allow administrators to log in as other users (useful for debugging). + * + * @default false */ allow_user_impersonation?: boolean; /** @@ -4563,7 +4577,7 @@ export interface components { * E.g. mysite.com,google.com,usegalaxy.org,/^[\w\.]*example\.com/ * See: https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS */ - allowed_origin_hostnames?: string; + allowed_origin_hostnames: string; /** * Amqp Internal Connection * @description Galaxy uses AMQP internally for communicating between processes. For @@ -4576,6 +4590,8 @@ export interface components { * specified database_connection above. If that's not specified either, Galaxy * will automatically create and use a separate sqlite database located in your * /database folder (indicated in the commented out line below). + * + * @default sqlalchemy+sqlite:///./database/control.sqlite?isolation_level=IMMEDIATE */ amqp_internal_connection?: string; /** @@ -4585,6 +4601,8 @@ export interface components { * * Apache can handle file downloads (Galaxy-to-user) via mod_xsendfile. Set * this to true to inform Galaxy that mod_xsendfile is enabled upstream. + * + * @default false */ apache_xsendfile?: boolean; /** @@ -4592,18 +4610,22 @@ export interface components { * @description Optional list of email addresses of API users who can make calls on behalf of * other users. */ - api_allow_run_as?: string; + api_allow_run_as: string; /** * Auth Config File * @description XML config file that allows the use of different authentication providers * (e.g. LDAP) instead or in addition to local authentication (.sample is used * if default does not exist). + * + * @default auth_conf.xml */ auth_config_file?: string; /** * Auto Configure Logging * @description If true, Galaxy will attempt to configure a simple root logger if a * "loggers" section does not appear in this configuration file. + * + * @default true */ auto_configure_logging?: boolean; /** @@ -4611,6 +4633,8 @@ export interface components { * @description This flag enables an AWS cost estimate for every job based on their runtime matrices. * CPU, RAM and runtime usage is mapped against AWS pricing table. * Please note, that those numbers are only estimates. + * + * @default false */ aws_estimate?: boolean; /** @@ -4618,17 +4642,21 @@ export interface components { * @description Point Galaxy at a repository consisting of a copy of the bio.tools database (e.g. * https://github.com/bio-tools/content/) to resolve bio.tools data for tool metadata. */ - biotools_content_directory?: string; + biotools_content_directory: string; /** * Biotools Service Cache Data Dir * @description bio.tools web service request related caching. The data directory to point * beaker cache at. + * + * @default biotools/data */ biotools_service_cache_data_dir?: string; /** * Biotools Service Cache Lock Dir * @description bio.tools web service request related caching. The lock directory to point * beaker cache at. + * + * @default biotools/locks */ biotools_service_cache_lock_dir?: string; /** @@ -4637,17 +4665,21 @@ export interface components { * the database table name used by beaker for * bio.tools web service request related caching. */ - biotools_service_cache_schema_name?: string; + biotools_service_cache_schema_name: string; /** * Biotools Service Cache Table Name * @description When biotools_service_cache_type = ext:database, this is * the database table name used by beaker for * bio.tools web service request related caching. + * + * @default beaker_cache */ biotools_service_cache_table_name?: string; /** * Biotools Service Cache Type * @description bio.tools web service request related caching. The type of beaker cache used. + * + * @default file */ biotools_service_cache_type?: string; /** @@ -4658,11 +4690,13 @@ export interface components { * The application config code will set it to the * value of database_connection if this is not set. */ - biotools_service_cache_url?: string; + biotools_service_cache_url: string; /** * Biotools Use Api * @description Set this to true to attempt to resolve bio.tools metadata for tools for tool not * resovled via biotools_content_directory. + * + * @default false */ biotools_use_api?: boolean; /** @@ -4673,16 +4707,18 @@ export interface components { * a real admin user account via API. * You should probably not set this on a production server. */ - bootstrap_admin_api_key?: string; + bootstrap_admin_api_key: string; /** * Brand * @description Append "{brand}" text to the masthead. */ - brand?: string; + brand: string; /** * Build Sites Config File * @description File that defines the builds (dbkeys) available at sites used by display applications * and the URL to those sites. + * + * @default build_sites.yml */ build_sites_config_file?: string; /** @@ -4690,12 +4726,16 @@ export interface components { * @description File containing old-style genome builds. * * The value of this option will be resolved with respect to . + * + * @default shared/ucsc/builds.txt */ builds_file_path?: string; /** * Cache Dir * @description Top level cache directory. Any other cache directories (tool_cache_data_dir, * template_cache_path, etc.) should be subdirectories. + * + * @default cache */ cache_dir?: string; /** @@ -4708,6 +4748,8 @@ export interface components { * Although better for performance due to reduced queries, the trade-off is a * greater possibility that jobs will be dispatched past the configured limits * if running many handlers. + * + * @default false */ cache_user_job_count?: boolean; /** @@ -4718,6 +4760,8 @@ export interface components { * the United States Environmental Protection Agency (EPA). * Visit https://www.green-algorithms.org/ and https://www.epa.gov/energy/greenhouse-gas-equivalencies-calculator. * for more detals. + * + * @default true */ carbon_emission_estimates?: boolean; /** @@ -4734,28 +4778,43 @@ export interface components { * (Other tasks cannot be disabled on a per-task basis at this time.) * * For details, see Celery documentation at https://docs.celeryq.dev/en/stable/userguide/configuration.html. + * + * @default { + * "task_routes": { + * "galaxy.fetch_data": "galaxy.external", + * "galaxy.set_job_metadata": "galaxy.external" + * } + * } */ celery_conf?: Record; /** * Celery User Rate Limit * @description If set to a non-0 value, upper limit on number of * tasks that can be executed per user per second. + * + * @default 0 */ celery_user_rate_limit?: number; /** * Check Job Script Integrity * @description Set to false to disable various checks Galaxy will do to ensure it * can run job scripts before attempting to execute or submit them. + * + * @default true */ check_job_script_integrity?: boolean; /** * Check Job Script Integrity Count * @description Number of checks to execute if check_job_script_integrity is enabled. + * + * @default 35 */ check_job_script_integrity_count?: number; /** * Check Job Script Integrity Sleep * @description Time to sleep between checks if check_job_script_integrity is enabled (in seconds). + * + * @default 0.25 */ check_job_script_integrity_sleep?: number; /** @@ -4763,6 +4822,8 @@ export interface components { * @description Galaxy can upload user files in chunks without using nginx. Enable the chunk * uploader by specifying a chunk size larger than 0. The chunk size is specified * in bytes (default: 10MB). + * + * @default 10485760 */ chunk_upload_size?: number; /** @@ -4770,6 +4831,8 @@ export interface components { * @description Citation related caching. Tool citations information maybe fetched from * external sources such as https://doi.org/ by Galaxy - the following * parameters can be used to control the caching used to store this information. + * + * @default citations/data */ citation_cache_data_dir?: string; /** @@ -4777,6 +4840,8 @@ export interface components { * @description Citation related caching. Tool citations information maybe fetched from * external sources such as https://doi.org/ by Galaxy - the following * parameters can be used to control the caching used to store this information. + * + * @default citations/locks */ citation_cache_lock_dir?: string; /** @@ -4785,12 +4850,14 @@ export interface components { * the database schema name of the table used by beaker for * citation related caching. */ - citation_cache_schema_name?: string; + citation_cache_schema_name: string; /** * Citation Cache Table Name * @description When citation_cache_type = ext:database, this is * the database table name used by beaker for * citation related caching. + * + * @default beaker_cache */ citation_cache_table_name?: string; /** @@ -4798,6 +4865,8 @@ export interface components { * @description Citation related caching. Tool citations information maybe fetched from * external sources such as https://doi.org/ by Galaxy - the following * parameters can be used to control the caching used to store this information. + * + * @default file */ citation_cache_type?: string; /** @@ -4807,15 +4876,19 @@ export interface components { * caching. The application config code will set it to the * value of database_connection if this is not set. */ - citation_cache_url?: string; + citation_cache_url: string; /** * Citation Url * @description The URL linked by the "How to Cite Galaxy" link in the "Help" menu. + * + * @default https://galaxyproject.org/citing-galaxy */ citation_url?: string; /** * Citations Export Message Html * @description Message to display on the export citations tool page + * + * @default When writing up your analysis, remember to include all references that should be cited in order to completely describe your work. Also, please remember to cite Galaxy. */ citations_export_message_html?: string; /** @@ -4824,18 +4897,24 @@ export interface components { * bits include the job working directory, external metadata temporary files, * and DRM stdout and stderr files (if using a DRM). Possible values are: * always, onsuccess, never + * + * @default always */ cleanup_job?: string; /** * Conda Auto Init * @description Set to true to instruct Galaxy to install Conda from the web automatically * if it cannot find a local copy and conda_exec is not configured. + * + * @default true */ conda_auto_init?: boolean; /** * Conda Auto Install * @description Set to true to instruct Galaxy to look for and install missing tool * dependencies before each job runs. + * + * @default false */ conda_auto_install?: boolean; /** @@ -4845,17 +4924,23 @@ export interface components { * Conda will copy packages content instead of creating hardlinks or symlinks. * This will prevent problems with some specific packages (perl, R), at the cost * of extra disk space usage and extra time spent copying packages. + * + * @default false */ conda_copy_dependencies?: boolean; /** * Conda Debug * @description Pass debug flag to conda commands. + * + * @default false */ conda_debug?: boolean; /** * Conda Ensure Channels * @description conda channels to enable by default * (https://conda.io/docs/user-guide/tasks/manage-channels.html) + * + * @default conda-forge,bioconda,defaults */ conda_ensure_channels?: string; /** @@ -4863,7 +4948,7 @@ export interface components { * @description Override the Conda executable to use, it will default to the one on the * PATH (if available) and then to /bin/conda */ - conda_exec?: string; + conda_exec: string; /** * Conda Prefix * @description conda_prefix is the location on the filesystem where Conda packages and environments are @@ -4871,10 +4956,12 @@ export interface components { * * Sample default '/_conda' */ - conda_prefix?: string; + conda_prefix: string; /** * Conda Use Local * @description Use locally-built conda packages. + * + * @default false */ conda_use_local?: boolean; /** @@ -4883,7 +4970,7 @@ export interface components { * other Galaxy config files (e.g. datatypes_config_file). Defaults to the * directory in which galaxy.yml is located. */ - config_dir?: string; + config_dir: string; /** * Container Resolvers * @description Rather than specifying a container_resolvers_config_file, the definition of the @@ -4891,7 +4978,7 @@ export interface components { * This has no effect if a container_resolvers_config_file is used. * Takes the same options that can be set in container_resolvers_config_file. */ - container_resolvers?: Record[]; + container_resolvers: Record[]; /** * Container Resolvers Config File * @description Container resolvers configuration. Set up a file describing @@ -4900,7 +4987,7 @@ export interface components { * determined by enable_mulled_containers. * For available options see https://docs.galaxyproject.org/en/master/admin/container_resolvers.html */ - container_resolvers_config_file?: string; + container_resolvers_config_file: string; /** * Cookie Domain * @description Tell Galaxy that multiple domains sharing the same root are associated @@ -4910,13 +4997,13 @@ export interface components { * This root domain will be written in the unique session cookie shared * by all subdomains. */ - cookie_domain?: string; + cookie_domain: string; /** * Custom Activation Email Message * @description This text will be inserted at the end of the activation email's message, before * the 'Your Galaxy Team' signature. */ - custom_activation_email_message?: string; + custom_activation_email_message: string; /** * Data Dir * @description The directory that will be prepended to relative paths in options specifying @@ -4924,11 +5011,13 @@ export interface components { * file_path, etc.). Defaults to `database/` if running Galaxy from source or * `/data` otherwise. */ - data_dir?: string; + data_dir: string; /** * Data Manager Config File * @description File where Data Managers are configured (.sample used if default does not * exist). + * + * @default data_manager_conf.xml */ data_manager_config_file?: string; /** @@ -4936,6 +5025,8 @@ export interface components { * @description Setting the following option to true will cause Galaxy to automatically * migrate the database forward after updates. This is not recommended for production * use. + * + * @default false */ database_auto_migrate?: boolean; /** @@ -4956,15 +5047,19 @@ export interface components { * For more options, please check SQLAlchemy's documentation at * https://docs.sqlalchemy.org/en/14/core/engines.html?highlight=create_engine#sqlalchemy.create_engine */ - database_connection?: string; + database_connection: string; /** * Database Engine Option Echo * @description Print database operations to the server log (warning, quite verbose!). + * + * @default false */ database_engine_option_echo?: boolean; /** * Database Engine Option Echo Pool * @description Print database pool operations to the server log (warning, quite verbose!). + * + * @default false */ database_engine_option_echo_pool?: boolean; /** @@ -4972,12 +5067,16 @@ export interface components { * @description If the server logs errors about not having enough database pool connections, * you will want to increase these values, or consider running more Galaxy * processes. + * + * @default 10 */ database_engine_option_max_overflow?: number; /** * Database Engine Option Pool Recycle * @description If using MySQL and the server logs the error "MySQL server has gone away", * you will want to set this to some positive value (7200 should work). + * + * @default -1 */ database_engine_option_pool_recycle?: number; /** @@ -4985,6 +5084,8 @@ export interface components { * @description If the server logs errors about not having enough database pool connections, * you will want to increase these values, or consider running more Galaxy * processes. + * + * @default 5 */ database_engine_option_pool_size?: number; /** @@ -4992,6 +5093,8 @@ export interface components { * @description If large database query results are causing memory or response time issues in * the Galaxy process, leave the result on the server instead. This option is * only available for PostgreSQL and is highly recommended. + * + * @default false */ database_engine_option_server_side_cursors?: boolean; /** @@ -5002,6 +5105,8 @@ export interface components { * running this in production. This is useful information for optimizing database interaction * performance. Similar information can be obtained on a per-request basis by enabling the * sql_debug middleware and adding sql_debug=1 to a request string. + * + * @default false */ database_log_query_counts?: boolean; /** @@ -5009,6 +5114,8 @@ export interface components { * @description Log all database transactions, can be useful for debugging and performance * profiling. Logging is done via Python's 'logging' module under the qualname * 'galaxy.model.orm.logging_connection_proxy' + * + * @default false */ database_query_profiling_proxy?: boolean; /** @@ -5017,20 +5124,26 @@ export interface components { * template database. This will set that. This is probably only useful for testing but * documentation is included here for completeness. */ - database_template?: string; + database_template: string; /** * Database Wait * @description Wait for database to become available instead of failing immediately. + * + * @default false */ database_wait?: boolean; /** * Database Wait Attempts * @description Number of attempts before failing if database_wait is enabled. + * + * @default 60 */ database_wait_attempts?: number; /** * Database Wait Sleep * @description Time to sleep between attempts if database_wait is enabled (in seconds). + * + * @default 1 */ database_wait_sleep?: number; /** @@ -5039,11 +5152,15 @@ export interface components { * Galaxy (.sample is used if default does not exist). If a datatype appears in * multiple files, the last definition is used (though the first sniffer is used * so limit sniffer definitions to one file). + * + * @default datatypes_conf.xml */ datatypes_config_file?: string; /** * Datatypes Disable Auto * @description Disable the 'Auto-detect' option for file uploads + * + * @default false */ datatypes_disable_auto?: boolean; /** @@ -5052,6 +5169,8 @@ export interface components { * and debugging: use_lint, use_profile, and use_printdebug. It also * causes the files used by PBS/SGE (submission script, output, and error) * to remain on disk after the job is complete. + * + * @default false */ debug?: boolean; /** @@ -5069,7 +5188,7 @@ export interface components { * commented out default below results in no default job resubmission condition, * failing jobs are just failed outright. */ - default_job_resubmission_condition?: string; + default_job_resubmission_condition: string; /** * Default Job Shell * @description Set the default shell used by non-containerized jobs Galaxy-wide. This @@ -5078,6 +5197,8 @@ export interface components { * so if this is switched to /bin/sh for instance - conda resolution * should be disabled. Containerized jobs always use /bin/sh - so more maximum * portability tool authors should assume generated commands run in sh. + * + * @default /bin/bash */ default_job_shell?: string; /** @@ -5088,6 +5209,8 @@ export interface components { * the user's navigator language. * Users can override this settings in their user preferences if the localization * settings are enabled in user_preferences_extra_conf.yml + * + * @default auto */ default_locale?: string; /** @@ -5096,12 +5219,16 @@ export interface components { * a panel view defined using the panel_views or panel_views_dir configuration options or an * EDAM panel view. The default panel view is simply called `default` and refers to the tool * panel state defined by the integrated tool panel. + * + * @default default */ default_panel_view?: string; /** * Default Workflow Export Format * @description Default format for the export of workflows. Possible values are 'ga' * or 'format2'. + * + * @default ga */ default_workflow_export_format?: string; /** @@ -5109,6 +5236,8 @@ export interface components { * @description Set this to true to delay parsing of tool inputs and outputs until they are needed. * This results in faster startup times but uses more memory when using forked Galaxy * processes. + * + * @default false */ delay_tool_initialization?: boolean; /** @@ -5118,7 +5247,7 @@ export interface components { * configuration of dependency resolution from one application that uses a DependencyManager * to another. */ - dependency_resolution?: Record; + dependency_resolution: Record; /** * Dependency Resolvers * @description Rather than specifying a dependency_resolvers_config_file, the definition of the @@ -5130,12 +5259,14 @@ export interface components { * * https://docs.galaxyproject.org/en/master/admin/dependency_resolvers.html */ - dependency_resolvers?: Record[]; + dependency_resolvers: Record[]; /** * Dependency Resolvers Config File * @description Specifies the path to the standalone dependency resolvers configuration file. This * configuration can now be specified directly in the Galaxy configuration, see the * description of the 'dependency_resolvers' option for details. + * + * @default dependency_resolvers_conf.xml */ dependency_resolvers_config_file?: string; /** @@ -5146,21 +5277,26 @@ export interface components { * Specific formats can be disabled with this option, separate more than one * format with commas. Available formats are currently 'zip', 'gz', and 'bz2'. */ - disable_library_comptypes?: string; + disable_library_comptypes: string; /** * Display Builtin Converters * @description Display built-in converters in the tool panel. + * @default true */ display_builtin_converters?: boolean; /** * Display Chunk Size * @description Incremental Display Options + * + * @default 65536 */ display_chunk_size?: number; /** * Display Galaxy Brand * @description This option has been deprecated, use the `logo_src` instead to change the * default logo including the galaxy brand title. + * + * @default true */ display_galaxy_brand?: boolean; /** @@ -5181,6 +5317,8 @@ export interface components { * Archaea browsers, but the default if left commented is to not allow any * display sites to bypass security (you must uncomment the line below to allow * them). + * + * @default hgw1.cse.ucsc.edu,hgw2.cse.ucsc.edu,hgw3.cse.ucsc.edu,hgw4.cse.ucsc.edu,hgw5.cse.ucsc.edu,hgw6.cse.ucsc.edu,hgw7.cse.ucsc.edu,hgw8.cse.ucsc.edu,lowepub.cse.ucsc.edu */ display_servers?: string; /** @@ -5192,7 +5330,7 @@ export interface components { * * Example value 'sudo -E scripts/drmaa_external_killer.py' */ - drmaa_external_killjob_script?: string; + drmaa_external_killjob_script: string; /** * Drmaa External Runjob Script * @description When running DRMAA jobs as the Galaxy user @@ -5201,35 +5339,45 @@ export interface components { * * Example value 'sudo -E scripts/drmaa_external_runner.py --assign_all_groups' */ - drmaa_external_runjob_script?: string; + drmaa_external_runjob_script: string; /** * Dynamic Proxy * @description As of 16.04 Galaxy supports multiple proxy types. The original NodeJS * implementation, alongside a new Golang single-binary-no-dependencies * version. Valid values are (node, golang) + * + * @default node */ dynamic_proxy?: string; /** * Dynamic Proxy Bind Ip * @description Set the port and IP for the dynamic proxy to bind to, this must match * the external configuration if dynamic_proxy_manage is set to false. + * + * @default 0.0.0.0 */ dynamic_proxy_bind_ip?: string; /** * Dynamic Proxy Bind Port * @description Set the port and IP for the dynamic proxy to bind to, this must match * the external configuration if dynamic_proxy_manage is set to false. + * + * @default 8800 */ dynamic_proxy_bind_port?: number; /** * Dynamic Proxy Debug * @description Enable verbose debugging of Galaxy-managed dynamic proxy. + * + * @default false */ dynamic_proxy_debug?: boolean; /** * Dynamic Proxy External Proxy * @description The dynamic proxy is proxied by an external proxy (e.g. apache frontend to * nodejs to wrap connections in SSL). + * + * @default false */ dynamic_proxy_external_proxy?: boolean; /** @@ -5239,18 +5387,22 @@ export interface components { * be set randomly for you. You should set this if you are managing the proxy * manually. */ - dynamic_proxy_golang_api_key?: string; + dynamic_proxy_golang_api_key: string; /** * Dynamic Proxy Golang Clean Interval * @description In order to kill containers, the golang proxy has to check at some interval * for possibly dead containers. This is exposed as a configurable parameter, * but the default value is probably fine. + * + * @default 10 */ dynamic_proxy_golang_clean_interval?: number; /** * Dynamic Proxy Golang Docker Address * @description The golang proxy needs to know how to talk to your docker daemon. Currently * TLS is not supported, that will come in an update. + * + * @default unix:///var/run/docker.sock */ dynamic_proxy_golang_docker_address?: string; /** @@ -5258,6 +5410,8 @@ export interface components { * @description This attribute governs the minimum length of time between consecutive HTTP/WS * requests through the proxy, before the proxy considers a container as being * inactive and kills it. + * + * @default 60 */ dynamic_proxy_golang_noaccess?: number; /** @@ -5268,6 +5422,8 @@ export interface components { * `lib/galaxy/web/proxy/js`. It is generally more robust to configure this * externally, managing it in the same way Galaxy itself is managed. If true, Galaxy will only * launch the proxy if it is actually going to be used (e.g. for Jupyter). + * + * @default true */ dynamic_proxy_manage?: boolean; /** @@ -5276,12 +5432,16 @@ export interface components { * want to specify a prefixed URL so both Galaxy and the proxy reside under the * same path that your cookies are under. This will result in a url like * https://FQDN/galaxy-prefix/gie_proxy for proxying + * + * @default gie_proxy */ dynamic_proxy_prefix?: string; /** * Dynamic Proxy Session Map * @description The NodeJS dynamic proxy can use an SQLite database or a JSON file for IPC, * set that here. + * + * @default session_map.sqlite */ dynamic_proxy_session_map?: string; /** @@ -5289,11 +5449,15 @@ export interface components { * @description Comma-separated list of the EDAM panel views to load - choose from merged, operations, topics. * Set to empty string to disable EDAM all together. Set default_panel_view to 'ontology:edam_topics' * to override default tool panel to use an EDAM view. + * + * @default operations,topics */ edam_panel_views?: string; /** * Edam Toolbox Ontology Path * @description Sets the path to EDAM ontology file - if the path doesn't exist PyPI package data will be loaded. + * + * @default EDAM.tsv */ edam_toolbox_ontology_path?: string; /** @@ -5311,7 +5475,7 @@ export interface components { * * The value of this option will be resolved with respect to . */ - email_domain_allowlist_file?: string; + email_domain_allowlist_file: string; /** * Email Domain Blocklist File * @description E-mail domains blocklist is used for filtering out users that are using @@ -5323,7 +5487,7 @@ export interface components { * * The value of this option will be resolved with respect to . */ - email_domain_blocklist_file?: string; + email_domain_blocklist_file: string; /** * Email From * @description Email address to use in the 'From' field when sending emails for @@ -5332,16 +5496,20 @@ export interface components { * Galaxy Project . * If not configured, '' will be used. */ - email_from?: string; + email_from: string; /** * Enable Account Interface * @description Allow users to manage their account data, change passwords or delete their * accounts. + * + * @default true */ enable_account_interface?: boolean; /** * Enable Beacon Integration * @description Enables user preferences and api endpoint for the beacon integration. + * + * @default false */ enable_beacon_integration?: boolean; /** @@ -5360,6 +5528,8 @@ export interface components { * * Please read the GDPR section under the special topics area of the * admin documentation. + * + * @default false */ enable_beta_gdpr?: boolean; /** @@ -5367,6 +5537,8 @@ export interface components { * @description Enable export of Galaxy Markdown documents (pages and workflow reports) * to PDF. Requires manual installation and setup of weasyprint (latest version * available for Python 2.7 is 0.42). + * + * @default false */ enable_beta_markdown_export?: boolean; /** @@ -5374,6 +5546,8 @@ export interface components { * @description Enable beta workflow modules that should not yet be considered part of Galaxy's * stable API. (The module state definitions may change and workflows built using * these modules may not function in the future.) + * + * @default false */ enable_beta_workflow_modules?: boolean; /** @@ -5381,16 +5555,22 @@ export interface components { * @description Offload long-running tasks to a Celery task queue. * Activate this only if you have setup a Celery worker for Galaxy. * For details, see https://docs.galaxyproject.org/en/master/admin/production.html + * + * @default false */ enable_celery_tasks?: boolean; /** * Enable Data Manager User View * @description Allow non-admin users to view available Data Manager options. + * + * @default false */ enable_data_manager_user_view?: boolean; /** * Enable Legacy Sample Tracking Api * @description Enable the API for sample tracking + * + * @default false */ enable_legacy_sample_tracking_api?: boolean; /** @@ -5400,6 +5580,8 @@ export interface components { * available) have been generated using mulled - https://github.com/mulled. * Container availability will vary by tool, this option will only be used * for job destinations with Docker or Singularity enabled. + * + * @default true */ enable_mulled_containers?: boolean; /** @@ -5411,11 +5593,15 @@ export interface components { * The system allows notification scheduling and expiration, and users can opt-out of specific notification categories or channels. * * Admins can schedule and broadcast notifications that will be visible to all users, including special server-wide announcements such as scheduled maintenance, high load warnings, and event announcements, to name a few examples. + * + * @default false */ enable_notification_system?: boolean; /** * Enable Oidc * @description Enables and disables OpenID Connect (OIDC) support. + * + * @default false */ enable_oidc?: boolean; /** @@ -5429,6 +5615,8 @@ export interface components { * where a malicious party could provide a link that appears to reference the * Galaxy server, but contains a redirect to a third-party server, tricking a * Galaxy user to access said site. + * + * @default true */ enable_old_display_applications?: boolean; /** @@ -5437,11 +5625,15 @@ export interface components { * append ?sql_debug=1 to web request URLs to enable detailed logging on * the backend of SQL queries generated during that request. This is * useful for debugging slow endpoints during development. + * + * @default false */ enable_per_request_sql_debugging?: boolean; /** * Enable Quotas * @description Enable enforcement of quotas. Quotas can be set from the Admin interface. + * + * @default false */ enable_quotas?: boolean; /** @@ -5451,12 +5643,16 @@ export interface components { * times. The tool cache is backed by a SQLite database, which cannot * be stored on certain network disks. The cache location is configurable * using the ``tool_cache_data_dir`` setting, but can be disabled completely here. + * + * @default false */ enable_tool_document_cache?: boolean; /** * Enable Tool Recommendations * @description Allow the display of tool recommendations in workflow editor and after tool execution. * If it is enabled and set to true, please enable 'tool_recommendation_model_path' as well + * + * @default false */ enable_tool_recommendations?: boolean; /** @@ -5465,6 +5661,8 @@ export interface components { * are available for installed repositories. Ideally only one Galaxy * server process should be able to check for repository updates. The * setting for hours_between_check should be an integer between 1 and 24. + * + * @default false */ enable_tool_shed_check?: boolean; /** @@ -5474,6 +5672,8 @@ export interface components { * wrappers installed on this Galaxy server. If you have only installed tool * wrappers from public tool sheds and tools shipped with Galaxy there you * can enable this option. + * + * @default false */ enable_tool_source_display?: boolean; /** @@ -5481,6 +5681,8 @@ export interface components { * @description Enable tool tags (associating tools with tags). This has its own option * since its implementation has a few performance implications on startup for * large servers. + * + * @default false */ enable_tool_tags?: boolean; /** @@ -5491,6 +5693,8 @@ export interface components { * compatible datasets in the history. * When false, the most recently added compatible item in the history will * be used for each "Set at Runtime" input, independent of others in the workflow. + * + * @default false */ enable_unique_workflow_defaults?: boolean; /** @@ -5505,7 +5709,7 @@ export interface components { * the actual user, to remove the need to configure each user's environment * individually. */ - environment_setup_file?: string; + environment_setup_file: string; /** * Error Email To * @description Datasets in an error state include a link to report the error. Those reports @@ -5513,15 +5717,19 @@ export interface components { * set. Also this email is shown as a contact to user in case of Galaxy * misconfiguration and other events user may encounter. */ - error_email_to?: string; + error_email_to: string; /** * Error Report File * @description Path to error reports configuration file. + * + * @default error_report.yml */ error_report_file?: string; /** * Expired Notifications Cleanup Interval * @description The interval in seconds between attempts to delete all expired notifications from the database (every 24 hours by default). Runs in a Celery task. + * + * @default 86400 */ expired_notifications_cleanup_interval?: number; /** @@ -5529,12 +5737,16 @@ export interface components { * @description This option allows users to see the full path of datasets via the "View * Details" option in the history. This option also exposes the command line to * non-administrative users. Administrators can always see dataset paths. + * + * @default false */ expose_dataset_path?: boolean; /** * Expose Potentially Sensitive Job Metrics * @description This option allows users to see the job metrics (except for environment * variables). + * + * @default false */ expose_potentially_sensitive_job_metrics?: boolean; /** @@ -5548,6 +5760,8 @@ export interface components { * * If enable_beta_gdpr is set to true, then this option will be * overridden and set to false. + * + * @default false */ expose_user_email?: boolean; /** @@ -5561,6 +5775,8 @@ export interface components { * * If enable_beta_gdpr is set to true, then this option will be * overridden and set to false. + * + * @default false */ expose_user_name?: boolean; /** @@ -5572,7 +5788,7 @@ export interface components { * * Example value 'sudo -E scripts/external_chown_script.py' */ - external_chown_script?: string; + external_chown_script: string; /** * Fetch Url Allowlist * @description List of allowed local network addresses for "Upload from URL" dialog. @@ -5583,41 +5799,51 @@ export interface components { * It should be a comma-separated list of IP addresses or IP address/mask, e.g. * 10.10.10.10,10.0.1.0/24,fd00::/8 */ - fetch_url_allowlist?: string; + fetch_url_allowlist: string; /** * File Path * @description Where dataset files are stored. It must be accessible at the same path on any cluster * nodes that will run Galaxy jobs, unless using Pulsar. The default value has been changed * from 'files' to 'objects' as of 20.05; however, Galaxy will first check if the 'files' * directory exists before using 'objects' as the default. + * + * @default objects */ file_path?: string; /** * File Sources * @description FileSource plugins described embedded into Galaxy's config. */ - file_sources?: Record[]; + file_sources: Record[]; /** * File Sources Config File * @description Configured FileSource plugins. + * + * @default file_sources_conf.yml */ file_sources_config_file?: string; /** * Fluent Host * @description Fluentd configuration. Various events can be logged to the fluentd instance * configured below by enabling fluent_log. + * + * @default localhost */ fluent_host?: string; /** * Fluent Log * @description Fluentd configuration. Various events can be logged to the fluentd instance * configured below by enabling fluent_log. + * + * @default false */ fluent_log?: boolean; /** * Fluent Port * @description Fluentd configuration. Various events can be logged to the fluentd instance * configured below by enabling fluent_log. + * + * @default 24224 */ fluent_port?: number; /** @@ -5626,6 +5852,8 @@ export interface components { * This affects tools that create many output datasets. * Higher values will lead to fewer database flushes and faster execution, but require * more memory. Set to -1 to disable creating datasets in batches. + * + * @default 1000 */ flush_per_n_datasets?: number; /** @@ -5633,13 +5861,15 @@ export interface components { * @description This should point to a directory containing subdirectories matching users' * identifier (defaults to e-mail), where Galaxy will look for files. */ - ftp_upload_dir?: string; + ftp_upload_dir: string; /** * Ftp Upload Dir Identifier * @description User attribute to use as subdirectory in calculating default ftp_upload_dir * pattern. By default this will be email so a user's FTP upload directory will be * ${ftp_upload_dir}/${user.email}. Can set this to other attributes such as id or * username though. + * + * @default email */ ftp_upload_dir_identifier?: string; /** @@ -5649,11 +5879,13 @@ export interface components { * * Defaults to '${ftp_upload_dir}/${ftp_upload_dir_identifier}'. */ - ftp_upload_dir_template?: string; + ftp_upload_dir_template: string; /** * Ftp Upload Purge * @description Set to false to prevent Galaxy from deleting uploaded FTP files * as it imports them. + * + * @default true */ ftp_upload_purge?: boolean; /** @@ -5664,7 +5896,7 @@ export interface components { * This will be provided to users in the help text as 'log in to the FTP * server at '. Thus, it should be the hostname of your FTP server. */ - ftp_upload_site?: string; + ftp_upload_site: string; /** * Ga4Gh Service Environment * @description Service environment (exposed via the service-info endpoint for the Galaxy DRS API) for @@ -5676,7 +5908,7 @@ export interface components { * https://github.com/ga4gh-discovery/ga4gh-service-registry * and https://editor.swagger.io/?url=https://raw.githubusercontent.com/ga4gh-discovery/ga4gh-service-registry/develop/service-registry.yaml */ - ga4gh_service_environment?: string; + ga4gh_service_environment: string; /** * Ga4Gh Service Id * @description Service ID for GA4GH services (exposed via the service-info endpoint for the Galaxy DRS API). @@ -5692,7 +5924,7 @@ export interface components { * service "id" (available via the DRS API) for the above configuration value would be * org.usegalaxy.drs. */ - ga4gh_service_id?: string; + ga4gh_service_id: string; /** * Ga4Gh Service Organization Name * @description Service name for host organization (exposed via the service-info endpoint for the Galaxy DRS API). @@ -5702,7 +5934,7 @@ export interface components { * https://github.com/ga4gh-discovery/ga4gh-service-registry * and https://editor.swagger.io/?url=https://raw.githubusercontent.com/ga4gh-discovery/ga4gh-service-registry/develop/service-registry.yaml */ - ga4gh_service_organization_name?: string; + ga4gh_service_organization_name: string; /** * Ga4Gh Service Organization Url * @description Organization URL for host organization (exposed via the service-info endpoint for the Galaxy DRS API). @@ -5712,19 +5944,19 @@ export interface components { * https://github.com/ga4gh-discovery/ga4gh-service-registry * and https://editor.swagger.io/?url=https://raw.githubusercontent.com/ga4gh-discovery/ga4gh-service-registry/develop/service-registry.yaml */ - ga4gh_service_organization_url?: string; + ga4gh_service_organization_url: string; /** * Ga Code * @description You can enter tracking code here to track visitor's behavior * through your Google Analytics account. Example: UA-XXXXXXXX-Y */ - ga_code?: string; + ga_code: string; /** * Galaxy Data Manager Data Path * @description Directory to store Data Manager based tool-data. Defaults to the value of the * option. */ - galaxy_data_manager_data_path?: string; + galaxy_data_manager_data_path: string; /** * Galaxy Infrastructure Url * @description URL (with schema http/https) of the Galaxy instance as accessible @@ -5734,6 +5966,8 @@ export interface components { * * If you plan to run Interactive Tools make sure the docker container * can reach this URL. + * + * @default http://localhost:8080 */ galaxy_infrastructure_url?: string; /** @@ -5745,12 +5979,16 @@ export interface components { * Python processes directly and this should be set to 80 or 443, etc... If * unset this file will be read for a server block defining a port corresponding * to the webapp. + * + * @default 8080 */ galaxy_infrastructure_web_port?: number; /** * Galaxy Url Prefix * @description URL prefix for Galaxy application. If Galaxy should be served under a prefix set this to * the desired prefix value. + * + * @default / */ galaxy_url_prefix?: string; /** @@ -5760,6 +5998,8 @@ export interface components { * carbon intensity values used in the estimate calculation. This defaults to "GLOBAL" if not set or the * `geographical_server_location_code` value is invalid or unsupported. To see a full list of supported locations, * visit https://galaxyproject.org/admin/carbon_emissions + * + * @default GLOBAL */ geographical_server_location_code?: string; /** @@ -5767,11 +6007,15 @@ export interface components { * @description Control the period (in seconds) between dumps. Use -1 to disable. Regardless * of this setting, if use_heartbeat is enabled, you can send a Galaxy process * SIGUSR1 (`kill -USR1`) to force a dump. + * + * @default 20 */ heartbeat_interval?: number; /** * Heartbeat Log * @description Heartbeat log filename. Can accept the template variables {server_name} and {pid} + * + * @default heartbeat_{server_name}.log */ heartbeat_log?: string; /** @@ -5785,11 +6029,15 @@ export interface components { * History Audit Table Prune Interval * @description Time (in seconds) between attempts to remove old rows from the history_audit database table. * Set to 0 to disable pruning. + * + * @default 3600 */ history_audit_table_prune_interval?: number; /** * History Local Serial Workflow Scheduling * @description Force serial scheduling of workflows within the context of a particular history + * + * @default false */ history_local_serial_workflow_scheduling?: boolean; /** @@ -5798,6 +6046,8 @@ export interface components { * are available for installed repositories. Ideally only one Galaxy * server process should be able to check for repository updates. The * setting for hours_between_check should be an integer between 1 and 24. + * + * @default 12 */ hours_between_check?: number; /** @@ -5808,12 +6058,16 @@ export interface components { * string with a length between 5 and 56 bytes. * One simple way to generate a value for this is with the shell command: * python -c 'from __future__ import print_function; import time; print(time.time())' | md5sum | cut -f 1 -d ' ' + * + * @default USING THE DEFAULT IS NOT SECURE! */ id_secret?: string; /** * Inactivity Box Content * @description Shown in warning box to users that were not activated yet. * In use only if activation_grace_period is set. + * + * @default Your account has not been activated yet. Feel free to browse around and see what's available, but you won't be able to upload data or run jobs until you have verified your email address. */ inactivity_box_content?: string; /** @@ -5827,7 +6081,7 @@ export interface components { * * Defaults to the value of the 'database_connection' option. */ - install_database_connection?: string; + install_database_connection: string; /** * Instance Resource Url * @description URL of the support resource for the galaxy instance. Used in activation @@ -5835,7 +6089,7 @@ export interface components { * * Example value 'https://galaxyproject.org/' */ - instance_resource_url?: string; + instance_resource_url: string; /** * Integrated Tool Panel Config * @description File that contains the XML section and tool tags from all tool panel config @@ -5844,26 +6098,36 @@ export interface components { * tool panel. If not present, Galaxy will create it. * * The value of this option will be resolved with respect to . + * + * @default integrated_tool_panel.xml */ integrated_tool_panel_config?: string; /** * Interactivetools Base Path * @description Base path for interactive tools running at a subpath without a subdomain. Defaults to "/". + * + * @default / */ interactivetools_base_path?: string; /** * Interactivetools Enable * @description Enable InteractiveTools. + * + * @default false */ interactivetools_enable?: boolean; /** * Interactivetools Map * @description Map for interactivetool proxy. + * + * @default interactivetools_map.sqlite */ interactivetools_map?: string; /** * Interactivetools Prefix * @description Prefix to use in the formation of the subdomain or path for interactive tools + * + * @default interactivetool */ interactivetools_prefix?: string; /** @@ -5871,23 +6135,28 @@ export interface components { * @description Hostname and port of Interactive tools proxy. It is assumed to be hosted on the same hostname and port as * Galaxy by default. */ - interactivetools_proxy_host?: string; + interactivetools_proxy_host: string; /** * Interactivetools Shorten Url * @description Shorten the uuid portion of the subdomain or path for interactive tools. * Especially useful for avoiding the need for wildcard certificates by keeping * subdomain under 63 chars + * + * @default false */ interactivetools_shorten_url?: boolean; /** * Interactivetools Upstream Proxy * @description Set this to false to redirect users of Interactive tools directly to the Interactive tools proxy. `interactivetools_upstream_proxy` should only be set to false in development. + * @default true */ interactivetools_upstream_proxy?: boolean; /** * Involucro Auto Init * @description Install involucro as needed to build Docker or Singularity containers for tools. Ignored if * relevant container resolver is not used. + * + * @default true */ involucro_auto_init?: boolean; /** @@ -5897,13 +6166,15 @@ export interface components { * the location of involucro on the Galaxy host. This is ignored if the relevant * container resolver isn't enabled, and will install on demand unless * involucro_auto_init is set to false. + * + * @default involucro */ involucro_path?: string; /** * Job Config * @description Description of job running configuration, can be embedded into Galaxy configuration or loaded from an additional file with the job_config_file option. */ - job_config?: Record; + job_config: Record; /** * Job Config File * @description To increase performance of job execution and the web interface, you can @@ -5916,6 +6187,8 @@ export interface components { * notifies itself of new jobs via in-memory queues. Jobs are run locally on * the system on which Galaxy is started. Advanced job running capabilities can * be configured through the job configuration file or the option. + * + * @default job_conf.yml */ job_config_file?: string; /** @@ -5925,11 +6198,15 @@ export interface components { * number of seconds at the end of each iteration. This can be decreased if extremely high * job throughput is necessary, but doing so can increase CPU usage of handler processes. * Float values are allowed. + * + * @default 1 */ job_handler_monitor_sleep?: number; /** * Job Metrics Config File * @description XML config file that contains the job metric collection configuration. + * + * @default job_metrics_conf.xml */ job_metrics_config_file?: string; /** @@ -5938,6 +6215,8 @@ export interface components { * These fields will be presented to users in the tool forms and allow them to * overwrite default job resources such as number of processors, memory and * walltime. + * + * @default job_resource_params_conf.xml */ job_resource_params_file?: string; /** @@ -5947,6 +6226,8 @@ export interface components { * sleeps for the given number of seconds at the end of each iteration. This can be * decreased if extremely high job throughput is necessary, but doing so can increase CPU * usage of handler processes. Float values are allowed. + * + * @default 1 */ job_runner_monitor_sleep?: number; /** @@ -5956,6 +6237,8 @@ export interface components { * created. * * The value of this option will be resolved with respect to . + * + * @default jobs_directory */ job_working_directory?: string; /** @@ -5963,6 +6246,8 @@ export interface components { * @description Directory where chrom len files are kept, currently mainly used by trackster. * * The value of this option will be resolved with respect to . + * + * @default shared/ucsc/chrom */ len_file_path?: string; /** @@ -5970,11 +6255,13 @@ export interface components { * @description Add an option to the library upload form which allows administrators to * upload a directory of files. */ - library_import_dir?: string; + library_import_dir: string; /** * Local Conda Mapping File * @description Path to a file that provides a mapping from abstract packages to concrete conda packages. * See `config/local_conda_mapping.yml.sample` for examples. + * + * @default local_conda_mapping.yml */ local_conda_mapping_file?: string; /** @@ -5982,6 +6269,8 @@ export interface components { * @description This enables splitting of jobs into tasks, if specified by the particular tool * config. * This is a new feature and not recommended for production servers yet. + * + * @default 2 */ local_task_queue_workers?: number; /** @@ -5989,6 +6278,8 @@ export interface components { * @description Turn on logging of user actions to the database. Actions currently logged * are grid views, tool searches, and use of "recently" used tools menu. The * log_events and log_actions functionality will eventually be merged. + * + * @default false */ log_actions?: boolean; /** @@ -5996,11 +6287,15 @@ export interface components { * @description Log destination, defaults to special value "stdout" that logs to standard output. If set to anything else, * then it will be interpreted as a path that will be used as the log file, and logging to stdout will be * disabled. + * + * @default stdout */ log_destination?: string; /** * Log Events * @description Turn on logging of application events and some user events to the database. + * + * @default false */ log_events?: boolean; /** @@ -6008,6 +6303,8 @@ export interface components { * @description Verbosity of console log messages. Acceptable values can be found here: * https://docs.python.org/library/logging.html#logging-levels * A custom debug level of "TRACE" is available for even more verbosity. + * + * @default DEBUG */ log_level?: string; /** @@ -6016,6 +6313,8 @@ export interface components { * https://docs.python.org/library/logging.handlers.html#logging.handlers.RotatingFileHandler * Any additional rotated log files will automatically be pruned. If log_rotate_size is not also set, no log * rotation will be performed. A value of 0 (the default) means no rotation. + * + * @default 0 */ log_rotate_count?: number; /** @@ -6024,6 +6323,8 @@ export interface components { * https://docs.python.org/library/logging.handlers.html#logging.handlers.RotatingFileHandler * If log_rotate_count is not also set, no log rotation will be performed. A value of 0 (the default) means no * rotation. Size can be a number of bytes or a human-friendly representation like "100 MB" or "1G". + * + * @default 0 */ log_rotate_size?: string; /** @@ -6032,20 +6333,24 @@ export interface components { * options. Configuration is described in the documentation at: * https://docs.galaxyproject.org/en/master/admin/config_logging.html */ - logging?: Record; + logging: Record; /** * Logo Src * @description The brand image source. + * + * @default /static/favicon.svg */ logo_src?: string; /** * Logo Src Secondary * @description The custom brand image source. */ - logo_src_secondary?: string; + logo_src_secondary: string; /** * Logo Url * @description The URL linked by the "Galaxy/brand" text. + * + * @default / */ logo_url?: string; /** @@ -6056,17 +6361,21 @@ export interface components { * * Example value 'galaxy-announce-join@lists.galaxyproject.org' */ - mailing_join_addr?: string; + mailing_join_addr: string; /** * Mailing Join Body * @description The body of the email sent to the mailing list join address. See the * `mailing_join_addr` option for more information. + * + * @default Join Mailing List */ mailing_join_body?: string; /** * Mailing Join Subject * @description The subject of the email sent to the mailing list join address. See the * `mailing_join_addr` option for more information. + * + * @default Join Mailing List */ mailing_join_subject?: string; /** @@ -6076,11 +6385,13 @@ export interface components { * writable by the user running Galaxy. Defaults to `/` if running * Galaxy from source or `/config` otherwise. */ - managed_config_dir?: string; + managed_config_dir: string; /** * Markdown Export Css * @description CSS file to apply to all Markdown exports to PDF - currently used by * WeasyPrint during rendering an HTML export of the document to PDF. + * + * @default markdown_export.css */ markdown_export_css?: string; /** @@ -6088,6 +6399,8 @@ export interface components { * @description CSS file to apply to invocation report exports to PDF. Generally prefer * markdown_export_css, but this is here for deployments that * would like to tailor different kinds of exports. + * + * @default markdown_export_invocation_reports.css */ markdown_export_css_invocation_reports?: string; /** @@ -6095,40 +6408,54 @@ export interface components { * @description CSS file to apply to "Galaxy Page" exports to PDF. Generally prefer * markdown_export_css, but this is here for deployments that * would like to tailor different kinds of exports. + * + * @default markdown_export_pages.css */ markdown_export_css_pages?: string; /** * Markdown Export Epilogue * @description Prologue Markdown/HTML to apply to markdown exports to PDF. Allowing * branded footers. + * + * @default */ markdown_export_epilogue?: string; /** * Markdown Export Epilogue Invocation Reports * @description Alternative to markdown_export_epilogue that applies just to invocation report * exports. + * + * @default */ markdown_export_epilogue_invocation_reports?: string; /** * Markdown Export Epilogue Pages * @description Alternative to markdown_export_epilogue that applies just to page exports. + * + * @default */ markdown_export_epilogue_pages?: string; /** * Markdown Export Prologue * @description Prologue Markdown/HTML to apply to markdown exports to PDF. Allowing * branded headers. + * + * @default */ markdown_export_prologue?: string; /** * Markdown Export Prologue Invocation Reports * @description Alternative to markdown_export_prologue that applies just to invocation report * exports. + * + * @default */ markdown_export_prologue_invocation_reports?: string; /** * Markdown Export Prologue Pages * @description Alternative to markdown_export_prologue that applies just to page exports. + * + * @default */ markdown_export_prologue_pages?: string; /** @@ -6136,19 +6463,21 @@ export interface components { * @description Please enter the URL for the Matomo server (including https) so this can be used for tracking * with Matomo (https://matomo.org/). */ - matomo_server?: string; + matomo_server: string; /** * Matomo Site Id * @description Please enter the site ID for the Matomo server so this can be used for tracking * with Matomo (https://matomo.org/). */ - matomo_site_id?: string; + matomo_site_id: string; /** * Max Discovered Files * @description Set this to a positive integer value to limit the number of datasets that can be discovered by * a single job. This prevents accidentally creating large numbers of datasets when running tools * that create a potentially unlimited number of output datasets, such as tools that split a file * into a collection of datasets for each line in an input dataset. + * + * @default 10000 */ max_discovered_files?: number; /** @@ -6158,12 +6487,16 @@ export interface components { * result database value size) Galaxy will attempt to save with a dataset. Use * 0 to disable this feature. The default is 5MB, but as low as 1MB seems to be * a reasonable size. + * + * @default 5242880 */ max_metadata_value_size?: number; /** * Maximum Upload File Size * @description Maximum size of uploadable files, specified in bytes (default: 100GB). * This value is ignored if an external upload server is configured. + * + * @default 107374182400 */ maximum_upload_file_size?: number; /** @@ -6171,6 +6504,8 @@ export interface components { * @description This is the maximum amount of time a workflow invocation may stay in an active * scheduling state in seconds. Set to -1 to disable this maximum and allow any workflow * invocation to schedule indefinitely. The default corresponds to 1 month. + * + * @default 2678400 */ maximum_workflow_invocation_duration?: number; /** @@ -6181,22 +6516,28 @@ export interface components { * scheduling workflows at the expense of increased total DB traffic because model objects * are expunged from the SQL alchemy session between workflow invocation scheduling iterations. * Set to -1 to disable any such maximum. + * + * @default 1000 */ maximum_workflow_jobs_per_scheduling_iteration?: number; /** * Message Box Class * @description Class of the message box under the masthead. Possible values are: * 'info' (the default), 'warning', 'error', 'done'. + * + * @default info */ message_box_class?: string; /** * Message Box Content * @description Show a message box under the masthead. */ - message_box_content?: string; + message_box_content: string; /** * Message Box Visible * @description Show a message box under the masthead. + * + * @default false */ message_box_visible?: boolean; /** @@ -6209,6 +6550,8 @@ export interface components { * output discovery (e.g. discovered datasets , unpopulated collections, * etc) happens as part of the job. In `directory_celery` and `extended_celery` metadata * will be set within a celery task. + * + * @default directory */ metadata_strategy?: string; /** @@ -6217,12 +6560,16 @@ export interface components { * In previous releases this file was maintained by tool migration scripts that are no * longer part of the code base. The option remains as a placeholder for deployments where * these scripts were previously run and such a file exists. + * + * @default migrated_tools_conf.xml */ migrated_tools_config?: string; /** * Modules Mapping Files * @description Path to a file that provides a mapping from abstract packages to locally installed modules. * See `config/environment_modules_mapping.yml.sample` for examples. + * + * @default environment_modules_mapping.yml */ modules_mapping_files?: string; /** @@ -6234,26 +6581,36 @@ export interface components { * jobs, and which can cause job errors if not shut down cleanly. If using * supervisord, consider also increasing the value of `stopwaitsecs`. See the * Galaxy Admin Documentation for more. + * + * @default 30 */ monitor_thread_join_timeout?: number; /** * Mulled Channels * @description Conda channels to use when building Docker or Singularity containers using involucro. + * + * @default conda-forge,bioconda */ mulled_channels?: string; /** * Mulled Resolution Cache Data Dir * @description Data directory used by beaker for caching mulled resolution requests. + * + * @default mulled/data */ mulled_resolution_cache_data_dir?: string; /** * Mulled Resolution Cache Expire * @description Seconds until the beaker cache is considered old and a new value is created. + * + * @default 3600 */ mulled_resolution_cache_expire?: number; /** * Mulled Resolution Cache Lock Dir * @description Lock directory used by beaker for caching mulled resolution requests. + * + * @default mulled/locks */ mulled_resolution_cache_lock_dir?: string; /** @@ -6262,18 +6619,22 @@ export interface components { * the database schema name of the table used by beaker for * caching mulled resolution requests. */ - mulled_resolution_cache_schema_name?: string; + mulled_resolution_cache_schema_name: string; /** * Mulled Resolution Cache Table Name * @description When mulled_resolution_cache_type = ext:database, this is * the database table name used by beaker for * caching mulled resolution requests. + * + * @default beaker_cache */ mulled_resolution_cache_table_name?: string; /** * Mulled Resolution Cache Type * @description Mulled resolution caching. Mulled resolution uses external APIs of quay.io, these * requests are caching using this and the following parameters + * + * @default file */ mulled_resolution_cache_type?: string; /** @@ -6283,11 +6644,13 @@ export interface components { * requests. The application config code will set it to the * value of database_connection if this is not set. */ - mulled_resolution_cache_url?: string; + mulled_resolution_cache_url: string; /** * New File Path * @description Where temporary files are stored. It must be accessible at the same path on any cluster * nodes that will run Galaxy jobs, unless using Pulsar. + * + * @default tmp */ new_file_path?: string; /** @@ -6296,6 +6659,8 @@ export interface components { * it to be private. Does not affect existing users and data, only ones created * after this option is set. Users may still change their default back to * public. + * + * @default false */ new_user_dataset_access_role_default_private?: boolean; /** @@ -6305,7 +6670,7 @@ export interface components { * operations on the remote end. See the Galaxy nginx documentation for the * corresponding nginx configuration. */ - nginx_upload_job_files_path?: string; + nginx_upload_job_files_path: string; /** * Nginx Upload Job Files Store * @description Galaxy can also use nginx_upload_module to receive files staged out upon job @@ -6313,14 +6678,14 @@ export interface components { * operations on the remote end. See the Galaxy nginx documentation for the * corresponding nginx configuration. */ - nginx_upload_job_files_store?: string; + nginx_upload_job_files_store: string; /** * Nginx Upload Path * @description This value overrides the action set on the file upload form, e.g. the web * path where the nginx_upload_module has been configured to intercept upload * requests. */ - nginx_upload_path?: string; + nginx_upload_path: string; /** * Nginx Upload Store * @description nginx can also handle file uploads (user-to-Galaxy) via nginx_upload_module. @@ -6328,19 +6693,21 @@ export interface components { * documentation linked above. The upload store is a temporary directory in * which files uploaded by the upload module will be placed. */ - nginx_upload_store?: string; + nginx_upload_store: string; /** * Nginx X Accel Redirect Base * @description The same download handling can be done by nginx using X-Accel-Redirect. This * should be set to the path defined in the nginx config as an internal redirect * with access to Galaxy's data files (see documentation linked above). */ - nginx_x_accel_redirect_base?: string; + nginx_x_accel_redirect_base: string; /** * Normalize Remote User Email * @description If your proxy and/or authentication source does not normalize e-mail * addresses or user names being passed to Galaxy - set this option * to true to force these to lower case. + * + * @default false */ normalize_remote_user_email?: boolean; /** @@ -6356,6 +6723,8 @@ export interface components { * This option serves as the default for all object stores and can be overridden * on a per object store basis (but don't - just setup tmpwatch for all relevant * cache paths). + * + * @default auto */ object_store_cache_monitor_driver?: string; /** @@ -6365,24 +6734,32 @@ export interface components { * recommend you do not use) and by the celery task if it is configured (by setting * enable_celery_tasks to true and not setting object_store_cache_monitor_driver to * external). + * + * @default 600 */ object_store_cache_monitor_interval?: number; /** * Object Store Cache Path * @description Default cache path for caching object stores if cache not configured for * that object store entry. + * + * @default object_store_cache */ object_store_cache_path?: string; /** * Object Store Cache Size * @description Default cache size for caching object stores if cache not configured for * that object store entry. + * + * @default -1 */ object_store_cache_size?: number; /** * Object Store Config File * @description Configuration file for the object store * If this is set and exists, it overrides any other objectstore settings. + * + * @default object_store_conf.xml */ object_store_config_file?: string; /** @@ -6394,15 +6771,19 @@ export interface components { * if the name of the directory set in is `objects`, the default will be set * to 'uuid', otherwise it will be 'id'. */ - object_store_store_by?: string; + object_store_store_by: string; /** * Oidc Backends Config File * @description Sets the path to OIDC backends configuration file. + * + * @default oidc_backends_config.xml */ oidc_backends_config_file?: string; /** * Oidc Config File * @description Sets the path to OIDC configuration file. + * + * @default oidc_config.xml */ oidc_config_file?: string; /** @@ -6414,6 +6795,8 @@ export interface components { * on a cluster and datasets can not be created by the user running the jobs (e.g. * if the filesystem is mounted read-only or the jobs are run by a different * user than the galaxy user). + * + * @default false */ outputs_to_working_directory?: boolean; /** @@ -6421,6 +6804,8 @@ export interface components { * @description Overwrite or append to the tool recommendations by the deep learning model. When set to true, all the recommendations by the deep learning model * are overwritten by the recommendations set by an admin in a config file 'tool_recommendations_overwrite.yml'. When set to false, the recommended tools * by admins and predicted by the deep learning model are shown. + * + * @default false */ overwrite_model_recommendations?: boolean; /** @@ -6428,12 +6813,14 @@ export interface components { * @description Definitions of static toolbox panel views embedded directly in the config instead of reading * YAML from directory with panel_views_dir. */ - panel_views?: Record[]; + panel_views: Record[]; /** * Panel Views Dir * @description Directory to check out for toolbox tool panel views. The path is relative to the * Galaxy root dir. To use an absolute path begin the path with '/'. This is a * comma-separated list. + * + * @default config/plugins/activities */ panel_views_dir?: string; /** @@ -6441,6 +6828,8 @@ export interface components { * @description If multiple job handlers are enabled, allow Galaxy to schedule workflow invocations * in multiple handlers simultaneously. This is discouraged because it results in a * less predictable order of workflow datasets within in histories. + * + * @default false */ parallelize_workflow_scheduling_within_histories?: boolean; /** @@ -6449,6 +6838,8 @@ export interface components { * password every x days. Users will be redirected to the change password * screen when they log in after their password expires. Enter 0 to disable * password expiration. + * + * @default 0 */ password_expiration_period?: number; /** @@ -6456,16 +6847,18 @@ export interface components { * @description Please enter the URL for the Galaxy server so this can be used for tracking * with Plausible (https://plausible.io/). */ - plausible_domain?: string; + plausible_domain: string; /** * Plausible Server * @description Please enter the URL for the Plausible server (including https) so this can be used for tracking * with Plausible (https://plausible.io/). */ - plausible_server?: string; + plausible_server: string; /** * Post User Logout Href * @description This is the default url to which users are redirected after they log out. + * + * @default /root/login?is_logout_redirect=true */ post_user_logout_href?: string; /** @@ -6474,6 +6867,8 @@ export interface components { * instance is running on. This can make carbon emissions estimates more accurate. * For more information on how to calculate a PUE value, visit * https://en.wikipedia.org/wiki/Power_usage_effectiveness + * + * @default 1.67 */ power_usage_effectiveness?: number; /** @@ -6481,11 +6876,15 @@ export interface components { * @description By default, when using a cached dependency manager, the dependencies are cached * when installing new tools and when using tools for the first time. * Set this to false if you prefer dependencies to be cached only when installing new tools. + * + * @default true */ precache_dependencies?: boolean; /** * Prefer Custos Login * @description Controls the order of the login page to prefer Custos-based login and registration. + * + * @default false */ prefer_custos_login?: boolean; /** @@ -6500,6 +6899,8 @@ export interface components { * tools). Set this to legacy_and_local to preserve the environment for legacy * tools and locally managed tools (this might be useful for instance if you are * installing software into Galaxy's virtualenv for tool development). + * + * @default legacy_only */ preserve_python_environment?: string; /** @@ -6511,11 +6912,15 @@ export interface components { * - $locale (complete format string for the server locale), * - $iso8601 (complete format string as specified by ISO 8601 international * standard). + * + * @default $locale (UTC) */ pretty_datetime_format?: string; /** * Quota Url * @description The URL linked for quota information in the UI. + * + * @default https://galaxyproject.org/support/account-quotas/ */ quota_url?: string; /** @@ -6530,23 +6935,29 @@ export interface components { * who can run every job being submitted. This user should not be the same user * running the galaxy system. * Possible values are user_email (default), username or + * + * @default user_email */ real_system_username?: string; /** * Refgenie Config File * @description File containing refgenie configuration, e.g. /path/to/genome_config.yaml. Can be used by refgenie backed tool data tables. */ - refgenie_config_file?: string; + refgenie_config_file: string; /** * Registration Warning Message * @description Registration warning message is used to discourage people from registering * multiple accounts. Applies mostly for the main Galaxy instance. * If no message specified the warning box will not be shown. + * + * @default Please register only one account - we provide this service free of charge and have limited computational resources. Multi-accounts are tracked and will be subjected to account termination and data deletion. */ registration_warning_message?: string; /** * Release Doc Base Url * @description The URL linked by the "Galaxy Version" link in the "Help" menu. + * + * @default https://docs.galaxyproject.org/en/release_ */ release_doc_base_url?: string; /** @@ -6556,6 +6967,8 @@ export interface components { * by WSGI). This option allows you to change the header. Note, you still need * to prepend ``HTTP_`` to the header in this option, but your proxy server should * *not* include ``HTTP_`` at the beginning of the header name. + * + * @default HTTP_REMOTE_USER */ remote_user_header?: string; /** @@ -6563,14 +6976,14 @@ export interface components { * @description If use_remote_user is enabled, you can set this to a URL that will log your * users out. */ - remote_user_logout_href?: string; + remote_user_logout_href: string; /** * Remote User Maildomain * @description If use_remote_user is enabled and your external authentication * method just returns bare usernames, set a default mail domain to be appended * to usernames, to become your Galaxy usernames (email addresses). */ - remote_user_maildomain?: string; + remote_user_maildomain: string; /** * Remote User Secret * @description If use_remote_user is enabled, anyone who can log in to the Galaxy host may @@ -6579,11 +6992,15 @@ export interface components { * If anyone other than the Galaxy user is using the server, then apache/nginx * should pass a value in the header 'GX_SECRET' that is identical to the one * below. + * + * @default USING THE DEFAULT IS NOT SECURE! */ remote_user_secret?: string; /** * Require Login * @description Force everyone to log in (disable anonymous access). + * + * @default false */ require_login?: boolean; /** @@ -6593,6 +7010,8 @@ export interface components { * steps. In such a case it may be desirable to set metadata on job outputs * internally (in the Galaxy job handler process). The default is is the value of * `retry_metadata_internally`, which defaults to `true`. + * + * @default true */ retry_interactivetool_metadata_internally?: boolean; /** @@ -6602,6 +7021,8 @@ export interface components { * these files. The job runner will retry the number of times specified below, * waiting 1 second between tries. For NFS, you may want to try the -noac mount * option (Linux) or -actimeo=0 (Solaris). + * + * @default 0 */ retry_job_output_collection?: number; /** @@ -6611,6 +7032,8 @@ export interface components { * a failed state (since retrying internally may cause the Galaxy process to be * unresponsive). If this option is set to false, the user will be given the * option to retry externally, or set metadata manually (when possible). + * + * @default true */ retry_metadata_internally?: boolean; /** @@ -6619,6 +7042,8 @@ export interface components { * 'text/html' will be sanitized thoroughly. This can be disabled if you have * special tools that require unaltered output. WARNING: disabling this does * make the Galaxy instance susceptible to XSS attacks initiated by your users. + * + * @default true */ sanitize_all_html?: boolean; /** @@ -6628,11 +7053,15 @@ export interface components { * through the Admin control panel -- see "Manage Allowlist" * * The value of this option will be resolved with respect to . + * + * @default sanitize_allowlist.txt */ sanitize_allowlist_file?: string; /** * Screencasts Url * @description The URL linked by the "Videos" link in the "Help" menu. + * + * @default https://www.youtube.com/c/galaxyproject */ screencasts_url?: string; /** @@ -6642,6 +7071,8 @@ export interface components { * use 0 in order to always use select2 fields, * use -1 (default) in order to always use the regular select fields, * use any other positive number as threshold (above threshold: regular select fields will be used) + * + * @default -1 */ select_type_workflow_threshold?: number; /** @@ -6649,7 +7080,7 @@ export interface components { * @description Use this option to provide the path to location of the CA (Certificate Authority) * certificate file if the sentry server uses a self-signed certificate. */ - sentry_ca_certs?: string; + sentry_ca_certs: string; /** * Sentry Dsn * @description Log to Sentry @@ -6658,11 +7089,13 @@ export interface components { * indicated sentry instance. This connection string is available in your * sentry instance under -> Settings -> API Keys. */ - sentry_dsn?: string; + sentry_dsn: string; /** * Sentry Event Level * @description Determines the minimum log level that will be sent as an event to Sentry. * Possible values are DEBUG, INFO, WARNING, ERROR or CRITICAL. + * + * @default ERROR */ sentry_event_level?: string; /** @@ -6670,6 +7103,8 @@ export interface components { * @description Set to a number between 0 and 1. With this option set, every transaction created * will have that percentage chance of being sent to Sentry. A value higher than 0 * is required to analyze performance. + * + * @default 0 */ sentry_traces_sample_rate?: number; /** @@ -6678,6 +7113,8 @@ export interface components { * contain browser executable JavaScript content as plain text. This will for * instance cause SVG datasets to not render properly and so may be disabled * by setting this option to true. + * + * @default false */ serve_xss_vulnerable_mimetypes?: boolean; /** @@ -6685,12 +7122,16 @@ export interface components { * @description Galaxy Session Timeout * This provides a timeout (in minutes) after which a user will have to log back in. * A duration of 0 disables this feature. + * + * @default 0 */ session_duration?: number; /** * Shed Data Manager Config File * @description File where Tool Shed based Data Managers are configured. This file will be created * automatically upon data manager installation. + * + * @default shed_data_manager_conf.xml */ shed_data_manager_config_file?: string; /** @@ -6704,6 +7145,8 @@ export interface components { * preferable. This file will be created automatically upon tool * installation, whereas Galaxy will fail to start if any files in * tool_config_file cannot be read. + * + * @default shed_tool_conf.xml */ shed_tool_config_file?: string; /** @@ -6711,7 +7154,7 @@ export interface components { * @description Directory where Tool Data Table related files will be placed when installed from a * ToolShed. Defaults to the value of the 'tool_data_path' option. */ - shed_tool_data_path?: string; + shed_tool_data_path: string; /** * Shed Tool Data Table Config * @description XML config file that contains additional data table entries for the @@ -6720,18 +7163,24 @@ export interface components { * tool_data_table_conf.xml.sample files. At the time of installation, these * entries are automatically added to the following file, which is parsed and * applied to the ToolDataTableManager at server start up. + * + * @default shed_tool_data_table_conf.xml */ shed_tool_data_table_config?: string; /** * Short Term Storage Cleanup Interval * @description How many seconds between instances of short term storage being cleaned up in default * Celery task configuration. + * + * @default 3600 */ short_term_storage_cleanup_interval?: number; /** * Short Term Storage Default Duration * @description Default duration before short term web storage files will be cleaned up by Galaxy * tasks (in seconds). The default duration is 1 day. + * + * @default 86400 */ short_term_storage_default_duration?: number; /** @@ -6742,24 +7191,32 @@ export interface components { * and that directory should be monitored by a tool such as tmpwatch in production * environments. short_term_storage_dir on the other hand is monitored by Galaxy's task * framework and should not require such external tooling. + * + * @default short_term_web_storage */ short_term_storage_dir?: string; /** * Short Term Storage Maximum Duration * @description The maximum duration short term storage files can hosted before they will be marked for * clean up. The default setting of 0 indicates no limit here. + * + * @default 0 */ short_term_storage_maximum_duration?: number; /** * Show User Prepopulate Form * @description When using LDAP for authentication, allow administrators to pre-populate users * using an additional form on 'Create new user' + * + * @default false */ show_user_prepopulate_form?: boolean; /** * Show Welcome With Login * @description Show the site's welcome page (see welcome_url) alongside the login page * (even if require_login is true). + * + * @default false */ show_welcome_with_login?: boolean; /** @@ -6771,12 +7228,16 @@ export interface components { * runtime inputs and not replacement parameters within tool steps). In the * future 'force' may be added an option for Galaskio-style servers that should * only render simplified workflows. + * + * @default prefer */ simplified_workflow_run_ui?: string; /** * Simplified Workflow Run Ui Job Cache * @description When the simplified workflow run form is rendered, should the invocation use job * caching. This isn't a boolean so an option for 'show-selection' can be added later. + * + * @default off */ simplified_workflow_run_ui_job_cache?: string; /** @@ -6787,6 +7248,8 @@ export interface components { * a runtime setting with the corresponding default. The default is to provide the * user this option and default it to the current history (the traditional behavior * of Galaxy for years) - this corresponds to the setting 'prefer_current'. + * + * @default prefer_current */ simplified_workflow_run_ui_target_history?: string; /** @@ -6797,12 +7260,14 @@ export interface components { * login or external proxy required. Such applications should not be exposed to * the world. */ - single_user?: string; + single_user: string; /** * Slow Query Log Threshold * @description Slow query logging. Queries slower than the threshold indicated below will * be logged to debug. A value of '0' is disabled. For example, you would set * this to .005 to log all queries taking longer than 5 milliseconds. + * + * @default 0 */ slow_query_log_threshold?: number; /** @@ -6811,7 +7276,7 @@ export interface components { * here (password in cleartext here, but if your server supports STARTTLS it * will be sent over the network encrypted). */ - smtp_password?: string; + smtp_password: string; /** * Smtp Server * @description Galaxy sends mail for various things: subscribing users to the mailing list @@ -6820,10 +7285,12 @@ export interface components { * which you may define here (host:port). * Galaxy will automatically try STARTTLS but will continue upon failure. */ - smtp_server?: string; + smtp_server: string; /** * Smtp Ssl * @description If your SMTP server requires SSL from the beginning of the connection + * + * @default false */ smtp_ssl?: boolean; /** @@ -6832,13 +7299,15 @@ export interface components { * here (password in cleartext here, but if your server supports STARTTLS it * will be sent over the network encrypted). */ - smtp_username?: string; + smtp_username: string; /** * Sniff Compressed Dynamic Datatypes Default * @description Enable sniffing of compressed datatypes. This can be configured/overridden * on a per-datatype basis in the datatypes_conf.xml file. * With this option set to false the compressed datatypes will be unpacked * before sniffing. + * + * @default true */ sniff_compressed_dynamic_datatypes_default?: boolean; /** @@ -6847,6 +7316,8 @@ export interface components { * proxy server. These options should be self explanatory and so are not * documented individually. You can use these paths (or ones in the proxy * server) to point to your own styles. + * + * @default 360 */ static_cache_time?: number; /** @@ -6855,6 +7326,8 @@ export interface components { * proxy server. These options should be self explanatory and so are not * documented individually. You can use these paths (or ones in the proxy * server) to point to your own styles. + * + * @default static/ */ static_dir?: string; /** @@ -6863,6 +7336,8 @@ export interface components { * proxy server. These options should be self explanatory and so are not * documented individually. You can use these paths (or ones in the proxy * server) to point to your own styles. + * + * @default true */ static_enabled?: boolean; /** @@ -6871,6 +7346,8 @@ export interface components { * proxy server. These options should be self explanatory and so are not * documented individually. You can use these paths (or ones in the proxy * server) to point to your own styles. + * + * @default static/favicon.ico */ static_favicon_dir?: string; /** @@ -6879,6 +7356,8 @@ export interface components { * proxy server. These options should be self explanatory and so are not * documented individually. You can use these paths (or ones in the proxy * server) to point to your own styles. + * + * @default static/images */ static_images_dir?: string; /** @@ -6887,6 +7366,8 @@ export interface components { * proxy server. These options should be self explanatory and so are not * documented individually. You can use these paths (or ones in the proxy * server) to point to your own styles. + * + * @default static/robots.txt */ static_robots_txt?: string; /** @@ -6895,6 +7376,8 @@ export interface components { * proxy server. These options should be self explanatory and so are not * documented individually. You can use these paths (or ones in the proxy * server) to point to your own styles. + * + * @default static/scripts/ */ static_scripts_dir?: string; /** @@ -6903,6 +7386,8 @@ export interface components { * proxy server. These options should be self explanatory and so are not * documented individually. You can use these paths (or ones in the proxy * server) to point to your own styles. + * + * @default static/style */ static_style_dir?: string; /** @@ -6914,19 +7399,23 @@ export interface components { * useful if you are running multiple Galaxy instances and want to segment * statistics between them within the same aggregator. */ - statsd_host?: string; + statsd_host: string; /** * Statsd Influxdb * @description If you are using telegraf to collect these metrics and then sending * them to InfluxDB, Galaxy can provide more nicely tagged metrics. * Instead of sending prefix + dot-separated-path, Galaxy will send * prefix with a tag path set to the page url + * + * @default false */ statsd_influxdb?: boolean; /** * Statsd Mock Calls * @description Mock out statsd client calls - only used by testing infrastructure really. * Do not set this in production environments. + * + * @default false */ statsd_mock_calls?: boolean; /** @@ -6937,6 +7426,8 @@ export interface components { * other statistics to the configured statsd instance. The statsd_prefix is * useful if you are running multiple Galaxy instances and want to segment * statistics between them within the same aggregator. + * + * @default 8125 */ statsd_port?: number; /** @@ -6947,22 +7438,30 @@ export interface components { * other statistics to the configured statsd instance. The statsd_prefix is * useful if you are running multiple Galaxy instances and want to segment * statistics between them within the same aggregator. + * + * @default galaxy */ statsd_prefix?: string; /** * Support Url * @description The URL linked by the "Support" link in the "Help" menu. + * + * @default https://galaxyproject.org/support/ */ support_url?: string; /** * Template Cache Path * @description Mako templates are compiled as needed and cached for reuse, this directory is * used for the cache + * + * @default compiled_templates */ template_cache_path?: string; /** * Templates Dir * @description The directory containing custom templates for Galaxy, such as HTML/text email templates. Defaults to 'templates'. Default templates can be found in the Galaxy root under config/templates. These can be copied to if you wish to customize them. + * + * @default templates */ templates_dir?: string; /** @@ -6970,11 +7469,13 @@ export interface components { * @description The URL linked by the "Terms and Conditions" link in the "Help" menu, as well * as on the user registration and login forms and in the activation emails. */ - terms_url?: string; + terms_url: string; /** * Themes Config File * @description Optional file containing one or more themes for galaxy. If several themes * are defined, users can choose their preferred theme in the client. + * + * @default themes_conf.yml */ themes_config_file?: string; /** @@ -6982,6 +7483,8 @@ export interface components { * @description Tool related caching. Fully expanded tools and metadata will be stored at this path. * Per tool_conf cache locations can be configured in (``shed_``)tool_conf.xml files using * the tool_cache_data_dir attribute. + * + * @default tool_cache */ tool_cache_data_dir?: string; /** @@ -6991,6 +7494,8 @@ export interface components { * (config/tool_conf.xml.sample will be used if left unset and * config/tool_conf.xml does not exist). Can be a single file, a list of * files, or (for backwards compatibility) a comma-separated list of files. + * + * @default tool_conf.xml */ tool_config_file?: Record; /** @@ -6998,6 +7503,8 @@ export interface components { * @description Directory where data used by tools is located. See the samples in that * directory and the Galaxy Community Hub for help: * https://galaxyproject.org/admin/data-integration + * + * @default tool-data */ tool_data_path?: string; /** @@ -7005,6 +7512,8 @@ export interface components { * @description XML config file that contains data table entries for the * ToolDataTableManager. This file is manually # maintained by the Galaxy * administrator (.sample used if default does not exist). + * + * @default tool_data_table_conf.xml */ tool_data_table_config_path?: string; /** @@ -7014,7 +7523,7 @@ export interface components { * * Sample default '/_cache' */ - tool_dependency_cache_dir?: string; + tool_dependency_cache_dir: string; /** * Tool Dependency Dir * @description Various dependency resolver configuration parameters will have defaults set relative @@ -7024,17 +7533,23 @@ export interface components { * Set the string to null to explicitly disable tool dependency handling. * If this option is set to none or an invalid path, installing tools with dependencies * from the Tool Shed or in Conda will fail. + * + * @default dependencies */ tool_dependency_dir?: string; /** * Tool Description Boost * @description In tool search, a query match against a tool's description text will * receive this score multiplier. + * + * @default 8 */ tool_description_boost?: number; /** * Tool Destinations Config File * @description Path to dynamic tool destinations configuration file. + * + * @default tool_destinations.yml */ tool_destinations_config_file?: string; /** @@ -7044,6 +7559,8 @@ export interface components { * search results tolerant for spelling mistakes in the query, and will * also match query substrings e.g. "genome" will match "genomics" or * "metagenome". + * + * @default true */ tool_enable_ngram_search?: boolean; /** @@ -7054,6 +7571,8 @@ export interface components { * submitted job. Note that ``remote`` is a beta setting that will be useful for materializing * deferred datasets as part of the submitted job. Note also that you have to set ``metadata_strategy`` * to ``extended`` if you set this option to ``remote``. + * + * @default local */ tool_evaluation_strategy?: string; /** @@ -7061,7 +7580,7 @@ export interface components { * @description Define toolbox filters (https://galaxyproject.org/user-defined-toolbox-filters/) * that admins may use to restrict the tools to display. */ - tool_filters?: string; + tool_filters: string; /** * Tool Help Bm25F K1 * @description The lower this parameter, the greater the diminishing reward for @@ -7069,12 +7588,16 @@ export interface components { * of reward for additional occurences of a term. The default value will * provide a slight increase in score for the first, second and third * occurrence and little reward thereafter. + * + * @default 0.5 */ tool_help_bm25f_k1?: number; /** * Tool Help Boost * @description In tool search, a query match against a tool's help text will receive * this score multiplier. + * + * @default 1 */ tool_help_boost?: number; /** @@ -7082,12 +7605,16 @@ export interface components { * @description In tool search, a query match against a tool's ID text will receive * this score multiplier. The query must be an exact match against ID * in order to be counted as a match. + * + * @default 20 */ tool_id_boost?: number; /** * Tool Label Boost * @description In tool search, a query match against a tool's label text will * receive this score multiplier. + * + * @default 1 */ tool_label_boost?: number; /** @@ -7095,33 +7622,43 @@ export interface components { * @description Define toolbox filters (https://galaxyproject.org/user-defined-toolbox-filters/) * that admins may use to restrict the tool labels to display. */ - tool_label_filters?: string; + tool_label_filters: string; /** * Tool Name Boost * @description In tool search, a query match against a tool's name text will receive * this score multiplier. + * + * @default 20 */ tool_name_boost?: number; /** * Tool Name Exact Multiplier * @description If a search query matches a tool name exactly, the score will be * multiplied by this factor. + * + * @default 10 */ tool_name_exact_multiplier?: number; /** * Tool Ngram Factor * @description Ngram matched scores will be multiplied by this factor. Should always * be below 1, because an ngram match is a partial match of a search term. + * + * @default 0.2 */ tool_ngram_factor?: number; /** * Tool Ngram Maxsize * @description Set maximum character length of ngrams + * + * @default 4 */ tool_ngram_maxsize?: number; /** * Tool Ngram Minsize * @description Set minimum character length of ngrams + * + * @default 3 */ tool_ngram_minsize?: number; /** @@ -7129,28 +7666,37 @@ export interface components { * @description Default path to the directory containing the tools defined in tool_conf.xml. * Other tool config files must include the tool_path as an attribute in the * tag. + * + * @default tools */ tool_path?: string; /** * Tool Recommendation Model Path * @description Set remote path of the trained model (HDF5 file) for tool recommendation. + * + * @default https://github.com/galaxyproject/galaxy-test-data/raw/master/tool_recommendation_model_v_0.2.hdf5 */ tool_recommendation_model_path?: string; /** * Tool Search Index Dir * @description Directory in which the toolbox search index is stored. + * @default tool_search_index */ tool_search_index_dir?: string; /** * Tool Search Limit * @description Limits the number of results in toolbox search. Use to set the * maximum number of tool search results to display. + * + * @default 20 */ tool_search_limit?: number; /** * Tool Section Boost * @description In tool search, a query match against a tool's section text will * receive this score multiplier. + * + * @default 3 */ tool_section_boost?: number; /** @@ -7158,11 +7704,13 @@ export interface components { * @description Define toolbox filters (https://galaxyproject.org/user-defined-toolbox-filters/) * that admins may use to restrict the tool sections to display. */ - tool_section_filters?: string; + tool_section_filters: string; /** * Tool Sheds Config File * @description File containing the Galaxy Tool Sheds that should be made available to * install from in the admin interface (.sample used if default does not exist). + * + * @default tool_sheds_conf.xml */ tool_sheds_config_file?: string; /** @@ -7170,6 +7718,8 @@ export interface components { * @description A stub is parsed from the GUID as "owner/repo/tool_id". * In tool search, a query match against a tool's stub text will receive * this score multiplier. + * + * @default 2 */ tool_stub_boost?: number; /** @@ -7180,6 +7730,8 @@ export interface components { * distributed with Galaxy but this is likely not appropriate for production systems. * Instead one can simply clone that repository directly and specify a path here * instead of a Git HTTP repository. + * + * @default test-data */ tool_test_data_directories?: string; /** @@ -7188,12 +7740,16 @@ export interface components { * When activated the following options also need to be set: * tool_training_recommendations_link, * tool_training_recommendations_api_url + * + * @default true */ tool_training_recommendations?: boolean; /** * Tool Training Recommendations Api Url * @description URL to API describing tutorials containing specific tools. * When CORS is used, make sure to add this host. + * + * @default https://training.galaxyproject.org/training-material/api/top-tools.json */ tool_training_recommendations_api_url?: string; /** @@ -7205,6 +7761,8 @@ export interface components { * {tool_id} * {training_tool_identifier} * {version} + * + * @default https://training.galaxyproject.org/training-material/by-tool/{training_tool_identifier}.html */ tool_training_recommendations_link?: string; /** @@ -7213,17 +7771,23 @@ export interface components { * This is useful for ensuring that tools are always displayed in the same * order in the UI. If false, the order of tools in the toolbox will be * preserved as they are loaded from the tool config files. + * + * @default true */ toolbox_auto_sort?: boolean; /** * Toolbox Filter Base Modules * @description The base module(s) that are searched for modules for toolbox filtering * (https://galaxyproject.org/user-defined-toolbox-filters/) functions. + * + * @default galaxy.tools.filters,galaxy.tools.toolbox.filters,galaxy.tool_util.toolbox.filters */ toolbox_filter_base_modules?: string; /** * Topk Recommendations * @description Set the number of predictions/recommendations to be made by the model + * + * @default 20 */ topk_recommendations?: number; /** @@ -7233,12 +7797,16 @@ export interface components { * directory with custom tours can be specified here. The path is relative to the * Galaxy root dir. To use an absolute path begin the path with '/'. This is a * comma-separated list. + * + * @default config/plugins/tours */ tour_config_dir?: string; /** * Track Jobs In Database * @description This option is deprecated, use the `mem-self` handler assignment option in the * job configuration instead. + * + * @default true */ track_jobs_in_database?: boolean; /** @@ -7250,6 +7818,8 @@ export interface components { * * If this is null (the default), a simple configuration containing * just Dockstore will be used. + * + * @default trs_servers_conf.yml */ trs_servers_config_file?: string; /** @@ -7259,6 +7829,8 @@ export interface components { * arbitrary code or serve arbitrary HTML. If enabled, Jupyter must be * available and on Galaxy's PATH, to do this run * `pip install jinja2 pygments jupyter` in Galaxy's virtualenv. + * + * @default false */ trust_jupyter_notebook_conversion?: boolean; /** @@ -7267,7 +7839,7 @@ export interface components { * tus middleware or server will be placed. * Defaults to new_file_path if not set. */ - tus_upload_store?: string; + tus_upload_store: string; /** * Upload From Form Button * @description If 'always-on', add another button to tool form data inputs that allow uploading @@ -7276,6 +7848,8 @@ export interface components { * * Avoiding making this a boolean because we may add options such as 'in-single-form-view' * or 'in-simplified-workflow-views'. https://github.com/galaxyproject/galaxy/pull/9809/files#r461889109 + * + * @default always-off */ upload_from_form_button?: string; /** @@ -7284,6 +7858,8 @@ export interface components { * gzipping of dataset collection and library archives, since the upstream server * will do it faster on the fly. To enable compression add ``application/zip`` * to the proxy's compressable mimetypes. + * + * @default false */ upstream_gzip?: boolean; /** @@ -7294,6 +7870,8 @@ export interface components { * Requires setting up internal nginx locations to all paths that can be archived. * See https://docs.galaxyproject.org/en/master/admin/nginx.html#creating-archives-with-mod-zip * for details. + * + * @default false */ upstream_mod_zip?: boolean; /** @@ -7308,6 +7886,8 @@ export interface components { * This only affects tools where some requirements can be resolved but not others, * most modern best practice tools can use prebuilt environments in the Conda * directory. + * + * @default false */ use_cached_dependency_manager?: boolean; /** @@ -7315,11 +7895,15 @@ export interface components { * @description Write thread status periodically to 'heartbeat.log', (careful, uses disk * space rapidly!). Useful to determine why your processes may be consuming a * lot of CPU. + * + * @default false */ use_heartbeat?: boolean; /** * Use Lint * @description Check for WSGI compliance. + * + * @default false */ use_lint?: boolean; /** @@ -7327,16 +7911,22 @@ export interface components { * @description Allow disabling pbkdf2 hashing of passwords for legacy situations. * This should normally be left enabled unless there is a specific * reason to disable it. + * + * @default true */ use_pbkdf2?: boolean; /** * Use Printdebug * @description Intercept print statements and show them on the returned page. + * + * @default true */ use_printdebug?: boolean; /** * Use Profile * @description Run the Python profiler on each request. + * + * @default false */ use_profile?: boolean; /** @@ -7345,6 +7935,8 @@ export interface components { * Apache). The upstream proxy should set a REMOTE_USER header in the request. * Enabling remote user disables regular logins. For more information, see: * https://docs.galaxyproject.org/en/master/admin/special_topics/apache.html + * + * @default false */ use_remote_user?: boolean; /** @@ -7352,6 +7944,8 @@ export interface components { * @description This enables splitting of jobs into tasks, if specified by the particular tool * config. * This is a new feature and not recommended for production servers yet. + * + * @default false */ use_tasked_jobs?: boolean; /** @@ -7360,6 +7954,8 @@ export interface components { * the Account activation configuration is ignored and user activation is * disabled (i.e. accounts are active since registration). * The activation is also not working in case the SMTP server is not defined. + * + * @default false */ user_activation_on?: boolean; /** @@ -7367,6 +7963,8 @@ export interface components { * @description In conjunction or alternatively, Galaxy can restrict user library imports to * those files that the user can read (by checking basic unix permissions). * For this to work, the username has to match the username on the filesystem. + * + * @default false */ user_library_import_check_permissions?: boolean; /** @@ -7377,11 +7975,13 @@ export interface components { * login ( email ). The non-admin user is restricted to uploading files or * sub-directories of files contained in their directory. */ - user_library_import_dir?: string; + user_library_import_dir: string; /** * User Library Import Dir Auto Creation * @description If user_library_import_dir is set, this option will auto create a library * import directory for every user (based on their email) upon login. + * + * @default false */ user_library_import_dir_auto_creation?: boolean; /** @@ -7393,33 +7993,43 @@ export interface components { * can import from anywhere in these directories (assuming they are able to * create symlinks to them). */ - user_library_import_symlink_allowlist?: string; + user_library_import_symlink_allowlist: string; /** * User Preferences Extra Conf Path * @description Location of the configuration file containing extra user preferences. + * + * @default user_preferences_extra_conf.yml */ user_preferences_extra_conf_path?: string; /** * User Tool Filters * @description Define toolbox filters (https://galaxyproject.org/user-defined-toolbox-filters/) * that users may use to restrict the tools to display. + * + * @default examples:restrict_upload_to_admins, examples:restrict_encode */ user_tool_filters?: string; /** * User Tool Label Filters * @description Define toolbox filters (https://galaxyproject.org/user-defined-toolbox-filters/) * that users may use to restrict the tool labels to display. + * + * @default examples:restrict_upload_to_admins, examples:restrict_encode */ user_tool_label_filters?: string; /** * User Tool Section Filters * @description Define toolbox filters (https://galaxyproject.org/user-defined-toolbox-filters/) * that users may use to restrict the tool sections to display. + * + * @default examples:restrict_text */ user_tool_section_filters?: string; /** * Vault Config File * @description Vault config file. + * + * @default vault_conf.yml */ vault_config_file?: string; /** @@ -7427,11 +8037,15 @@ export interface components { * @description Visualizations config directory: where to look for individual visualization * plugins. The path is relative to the Galaxy root dir. To use an absolute * path begin the path with '/'. This is a comma-separated list. + * + * @default config/plugins/visualizations */ visualization_plugins_directory?: string; /** * Visualizations Visible * @description Show visualization tab and list in masthead. + * + * @default true */ visualizations_visible?: boolean; /** @@ -7439,12 +8053,16 @@ export interface components { * @description Monitor a subset of options in the core configuration file (See RELOADABLE_CONFIG_OPTIONS * in lib/galaxy/config/__init__.py). If changes are found, modified options are * automatically reloaded. Takes the same values as the 'watch_tools' option. + * + * @default false */ watch_core_config?: string; /** * Watch Job Rules * @description Monitor dynamic job rules. If changes are found, rules are automatically reloaded. Takes * the same values as the 'watch_tools' option. + * + * @default false */ watch_job_rules?: string; /** @@ -7456,6 +8074,8 @@ export interface components { * library if it is available but won't fail to load Galaxy if it is not and 'polling' which * will use a less efficient monitoring scheme that may work in wider range of scenarios than * the watchdog default. + * + * @default false */ watch_tool_data_dir?: string; /** @@ -7467,6 +8087,8 @@ export interface components { * watchdog library is available but won't fail to load Galaxy if it is not and 'polling' * which will use a less efficient monitoring scheme that may work in wider range of * scenarios than the watchdog default. + * + * @default false */ watch_tools?: string; /** @@ -7474,6 +8096,8 @@ export interface components { * @description Monitor the interactive tours directory specified in the 'tour_config_dir' option. If * changes are found, modified tours are automatically reloaded. Takes the same values as the * 'watch_tools' option. + * + * @default false */ watch_tours?: string; /** @@ -7483,6 +8107,8 @@ export interface components { * demo webhooks. To use an absolute path begin the path with '/'. This is a * comma-separated list. Add test/functional/webhooks to this list to include the demo * webhooks used to test the webhook framework. + * + * @default config/plugins/webhooks */ webhooks_dir?: string; /** @@ -7490,17 +8116,23 @@ export interface components { * @description Location of New User Welcome data, a single directory containing the * images and JSON of Topics/Subtopics/Slides as export. This location * is relative to galaxy/static + * + * @default plugins/welcome_page/new_user/static/topics/ */ welcome_directory?: string; /** * Welcome Url * @description The URL of the page to display in Galaxy's middle pane when loaded. This can * be an absolute or relative URL. + * + * @default /static/welcome.html */ welcome_url?: string; /** * Wiki Url * @description The URL linked by the "Community Hub" link in the "Help" menu. + * + * @default https://galaxyproject.org/ */ wiki_url?: string; /** @@ -7510,6 +8142,8 @@ export interface components { * sleeps for the given number of seconds at the end of each iteration. This can be * decreased if extremely high job throughput is necessary, but doing so can increase CPU * usage of handler processes. Float values are allowed. + * + * @default 1 */ workflow_monitor_sleep?: number; /** @@ -7518,6 +8152,8 @@ export interface components { * influence scheduling of jobs within the workflow. This requires both a description * of the fields available (which defaults to the definitions in * job_resource_params_file if not set). + * + * @default workflow_resource_params_conf.xml */ workflow_resource_params_file?: string; /** @@ -7532,11 +8168,13 @@ export interface components { * * Sample default path 'config/workflow_resource_mapper_conf.yml.sample' */ - workflow_resource_params_mapper?: string; + workflow_resource_params_mapper: string; /** * Workflow Schedulers Config File * @description Optional configuration file similar to `job_config_file` to specify * which Galaxy processes should schedule workflows. + * + * @default workflow_schedulers_conf.xml */ workflow_schedulers_config_file?: string; /** @@ -7549,6 +8187,8 @@ export interface components { * proxy in front of Galaxy - please ensure this header remains intact * to protect your users. Uncomment and leave empty to not set the * `X-Frame-Options` header. + * + * @default SAMEORIGIN */ x_frame_options?: string; }; diff --git a/lib/galaxy/config/config_manage.py b/lib/galaxy/config/config_manage.py index e1d7a3cd6142..32914484427c 100644 --- a/lib/galaxy/config/config_manage.py +++ b/lib/galaxy/config/config_manage.py @@ -531,17 +531,19 @@ def _generate_api_models(args: Namespace, app_desc: App) -> None: schema = app_desc.schema f = StringIO() file_header = """ -# This file is auto-generated by the Galaxy configuration schema tool. -# Do not edit this file directly. +\"\"\"Contains models for Galaxy configuration options. + +These models are used to generate the OpenAPI and Configuration YAML schema for the Galaxy configuration. +\"\"\" from typing import ( Any, Dict, List, - Optional, ) from pydantic import Field +from typing_extensions import Annotated from galaxy.schema.schema import Model @@ -552,26 +554,25 @@ class GalaxyConfigModel(Model): f.write(file_header) for key, value in schema.app_schema.items(): - type = _get_schema_type(value) - required = value.get("required", False) - field_type = type if required else f"Optional[{type}]" - default = _get_field_default(value, type, required) + field_type = _get_schema_type(value) + default = _get_field_default(value, field_type) title = key.replace("_", " ").title() - description = value.get("desc") - field = f'{key}: {field_type} = Field({default}, title="{title}", description="""{description}""",)' + desc = value.get("desc") + description = desc.replace("\\", "\\\\") if desc else None + field = f'{key}: Annotated[{field_type}, Field(title="{title}", description="""{description}""",)]' + if default is not None: + field += f" = {default}" f.write(f" {field}\n") destination = os.path.join(args.galaxy_root, "lib", "galaxy", "schema", "configuration.py") _write_to_file(args, f, destination) -def _get_field_default(value, field_type, required): - default = None if "default" not in value or not required else value["default"] +def _get_field_default(value, field_type): + default = None if "default" not in value else value["default"] if default is not None: - if field_type == "bool": - default = default.title() - elif field_type == "str": - default = f'"{default}"' + if field_type == "str" or isinstance(default, str): + default = f"'{default}'" if '"' in default else f'"{default}"' return default diff --git a/lib/galaxy/schema/configuration.py b/lib/galaxy/schema/configuration.py index 91c2f14ad6be..99547ec95b26 100644 --- a/lib/galaxy/schema/configuration.py +++ b/lib/galaxy/schema/configuration.py @@ -1,14 +1,16 @@ -# This file is auto-generated by the Galaxy configuration schema tool. -# Do not edit this file directly. +"""Contains models for Galaxy configuration options. + +These models are used to generate the OpenAPI and Configuration YAML schema for the Galaxy configuration. +""" from typing import ( Any, Dict, List, - Optional, ) from pydantic import Field +from typing_extensions import Annotated from galaxy.schema.schema import Model @@ -16,49 +18,60 @@ class GalaxyConfigModel(Model): """Contains Galaxy configuration values.""" - config_dir: Optional[str] = Field( - None, - title="Config Dir", - description="""The directory that will be prepended to relative paths in options specifying + config_dir: Annotated[ + str, + Field( + title="Config Dir", + description="""The directory that will be prepended to relative paths in options specifying other Galaxy config files (e.g. datatypes_config_file). Defaults to the directory in which galaxy.yml is located. """, - ) - managed_config_dir: Optional[str] = Field( - None, - title="Managed Config Dir", - description="""The directory that will be prepended to relative paths in options specifying + ), + ] + managed_config_dir: Annotated[ + str, + Field( + title="Managed Config Dir", + description="""The directory that will be prepended to relative paths in options specifying config files controlled by Galaxy (such as shed_tool_config_file, etc.). Must be writable by the user running Galaxy. Defaults to `/` if running Galaxy from source or `/config` otherwise. """, - ) - data_dir: Optional[str] = Field( - None, - title="Data Dir", - description="""The directory that will be prepended to relative paths in options specifying + ), + ] + data_dir: Annotated[ + str, + Field( + title="Data Dir", + description="""The directory that will be prepended to relative paths in options specifying Galaxy data/cache directories and files (such as the default SQLite database, file_path, etc.). Defaults to `database/` if running Galaxy from source or `/data` otherwise. """, - ) - templates_dir: Optional[str] = Field( - None, - title="Templates Dir", - description="""The directory containing custom templates for Galaxy, such as HTML/text email templates. Defaults to 'templates'. Default templates can be found in the Galaxy root under config/templates. These can be copied to if you wish to customize them. -""", - ) - cache_dir: Optional[str] = Field( - None, - title="Cache Dir", - description="""Top level cache directory. Any other cache directories (tool_cache_data_dir, + ), + ] + templates_dir: Annotated[ + str, + Field( + title="Templates Dir", + description="""The directory containing custom templates for Galaxy, such as HTML/text email templates. Defaults to 'templates'. Default templates can be found in the Galaxy root under config/templates. These can be copied to if you wish to customize them. +""", + ), + ] = "templates" + cache_dir: Annotated[ + str, + Field( + title="Cache Dir", + description="""Top level cache directory. Any other cache directories (tool_cache_data_dir, template_cache_path, etc.) should be subdirectories. """, - ) - database_connection: Optional[str] = Field( - None, - title="Database Connection", - description="""By default, Galaxy uses a SQLite database at '/universe.sqlite'. You + ), + ] = "cache" + database_connection: Annotated[ + str, + Field( + title="Database Connection", + description="""By default, Galaxy uses a SQLite database at '/universe.sqlite'. You may use a SQLAlchemy connection string to specify an external database instead. Sample default 'sqlite:////universe.sqlite?isolation_level=IMMEDIATE' @@ -74,86 +87,106 @@ class GalaxyConfigModel(Model): For more options, please check SQLAlchemy's documentation at https://docs.sqlalchemy.org/en/14/core/engines.html?highlight=create_engine#sqlalchemy.create_engine """, - ) - database_engine_option_pool_size: Optional[int] = Field( - None, - title="Database Engine Option Pool Size", - description="""If the server logs errors about not having enough database pool connections, + ), + ] + database_engine_option_pool_size: Annotated[ + int, + Field( + title="Database Engine Option Pool Size", + description="""If the server logs errors about not having enough database pool connections, you will want to increase these values, or consider running more Galaxy processes. """, - ) - database_engine_option_max_overflow: Optional[int] = Field( - None, - title="Database Engine Option Max Overflow", - description="""If the server logs errors about not having enough database pool connections, + ), + ] = 5 + database_engine_option_max_overflow: Annotated[ + int, + Field( + title="Database Engine Option Max Overflow", + description="""If the server logs errors about not having enough database pool connections, you will want to increase these values, or consider running more Galaxy processes. """, - ) - database_engine_option_pool_recycle: Optional[int] = Field( - None, - title="Database Engine Option Pool Recycle", - description="""If using MySQL and the server logs the error "MySQL server has gone away", + ), + ] = 10 + database_engine_option_pool_recycle: Annotated[ + int, + Field( + title="Database Engine Option Pool Recycle", + description="""If using MySQL and the server logs the error "MySQL server has gone away", you will want to set this to some positive value (7200 should work). """, - ) - database_engine_option_server_side_cursors: Optional[bool] = Field( - None, - title="Database Engine Option Server Side Cursors", - description="""If large database query results are causing memory or response time issues in + ), + ] = -1 + database_engine_option_server_side_cursors: Annotated[ + bool, + Field( + title="Database Engine Option Server Side Cursors", + description="""If large database query results are causing memory or response time issues in the Galaxy process, leave the result on the server instead. This option is only available for PostgreSQL and is highly recommended. """, - ) - database_query_profiling_proxy: Optional[bool] = Field( - None, - title="Database Query Profiling Proxy", - description="""Log all database transactions, can be useful for debugging and performance + ), + ] = False + database_query_profiling_proxy: Annotated[ + bool, + Field( + title="Database Query Profiling Proxy", + description="""Log all database transactions, can be useful for debugging and performance profiling. Logging is done via Python's 'logging' module under the qualname 'galaxy.model.orm.logging_connection_proxy' """, - ) - database_template: Optional[str] = Field( - None, - title="Database Template", - description="""If auto-creating a postgres database on startup - it can be based on an existing + ), + ] = False + database_template: Annotated[ + str, + Field( + title="Database Template", + description="""If auto-creating a postgres database on startup - it can be based on an existing template database. This will set that. This is probably only useful for testing but documentation is included here for completeness. """, - ) - database_log_query_counts: Optional[bool] = Field( - None, - title="Database Log Query Counts", - description="""Log number of SQL queries executed and total time spent dispatching SQL statements for + ), + ] + database_log_query_counts: Annotated[ + bool, + Field( + title="Database Log Query Counts", + description="""Log number of SQL queries executed and total time spent dispatching SQL statements for each web request. If statsd is also enabled this information will be logged there as well. This should be considered somewhat experimental, we are unsure of the performance costs of running this in production. This is useful information for optimizing database interaction performance. Similar information can be obtained on a per-request basis by enabling the sql_debug middleware and adding sql_debug=1 to a request string. """, - ) - slow_query_log_threshold: Optional[float] = Field( - None, - title="Slow Query Log Threshold", - description="""Slow query logging. Queries slower than the threshold indicated below will + ), + ] = False + slow_query_log_threshold: Annotated[ + float, + Field( + title="Slow Query Log Threshold", + description="""Slow query logging. Queries slower than the threshold indicated below will be logged to debug. A value of '0' is disabled. For example, you would set this to .005 to log all queries taking longer than 5 milliseconds. """, - ) - enable_per_request_sql_debugging: Optional[bool] = Field( - None, - title="Enable Per Request Sql Debugging", - description="""Enables a per request sql debugging option. If this is set to true, + ), + ] = 0.0 + enable_per_request_sql_debugging: Annotated[ + bool, + Field( + title="Enable Per Request Sql Debugging", + description="""Enables a per request sql debugging option. If this is set to true, append ?sql_debug=1 to web request URLs to enable detailed logging on the backend of SQL queries generated during that request. This is useful for debugging slow endpoints during development. """, - ) - install_database_connection: Optional[str] = Field( - None, - title="Install Database Connection", - description="""By default, Galaxy will use the same database to track user data and + ), + ] = False + install_database_connection: Annotated[ + str, + Field( + title="Install Database Connection", + description="""By default, Galaxy will use the same database to track user data and tool shed install data. There are many situations in which it is valuable to separate these - for instance bootstrapping fresh Galaxy instances with pretested installs. The following option can be used to @@ -162,77 +195,97 @@ class GalaxyConfigModel(Model): Defaults to the value of the 'database_connection' option. """, - ) - database_auto_migrate: Optional[bool] = Field( - None, - title="Database Auto Migrate", - description="""Setting the following option to true will cause Galaxy to automatically + ), + ] + database_auto_migrate: Annotated[ + bool, + Field( + title="Database Auto Migrate", + description="""Setting the following option to true will cause Galaxy to automatically migrate the database forward after updates. This is not recommended for production use. """, - ) - database_wait: Optional[bool] = Field( - None, - title="Database Wait", - description="""Wait for database to become available instead of failing immediately. -""", - ) - database_wait_attempts: Optional[int] = Field( - None, - title="Database Wait Attempts", - description="""Number of attempts before failing if database_wait is enabled. -""", - ) - database_wait_sleep: Optional[float] = Field( - None, - title="Database Wait Sleep", - description="""Time to sleep between attempts if database_wait is enabled (in seconds). -""", - ) - history_audit_table_prune_interval: Optional[int] = Field( - None, - title="History Audit Table Prune Interval", - description="""Time (in seconds) between attempts to remove old rows from the history_audit database table. + ), + ] = False + database_wait: Annotated[ + bool, + Field( + title="Database Wait", + description="""Wait for database to become available instead of failing immediately. +""", + ), + ] = False + database_wait_attempts: Annotated[ + int, + Field( + title="Database Wait Attempts", + description="""Number of attempts before failing if database_wait is enabled. +""", + ), + ] = 60 + database_wait_sleep: Annotated[ + float, + Field( + title="Database Wait Sleep", + description="""Time to sleep between attempts if database_wait is enabled (in seconds). +""", + ), + ] = 1.0 + history_audit_table_prune_interval: Annotated[ + int, + Field( + title="History Audit Table Prune Interval", + description="""Time (in seconds) between attempts to remove old rows from the history_audit database table. Set to 0 to disable pruning. """, - ) - file_path: Optional[str] = Field( - None, - title="File Path", - description="""Where dataset files are stored. It must be accessible at the same path on any cluster + ), + ] = 3600 + file_path: Annotated[ + str, + Field( + title="File Path", + description="""Where dataset files are stored. It must be accessible at the same path on any cluster nodes that will run Galaxy jobs, unless using Pulsar. The default value has been changed from 'files' to 'objects' as of 20.05; however, Galaxy will first check if the 'files' directory exists before using 'objects' as the default. """, - ) - new_file_path: Optional[str] = Field( - None, - title="New File Path", - description="""Where temporary files are stored. It must be accessible at the same path on any cluster + ), + ] = "objects" + new_file_path: Annotated[ + str, + Field( + title="New File Path", + description="""Where temporary files are stored. It must be accessible at the same path on any cluster nodes that will run Galaxy jobs, unless using Pulsar. """, - ) - maximum_upload_file_size: Optional[int] = Field( - None, - title="Maximum Upload File Size", - description="""Maximum size of uploadable files, specified in bytes (default: 100GB). + ), + ] = "tmp" + maximum_upload_file_size: Annotated[ + int, + Field( + title="Maximum Upload File Size", + description="""Maximum size of uploadable files, specified in bytes (default: 100GB). This value is ignored if an external upload server is configured. """, - ) - tool_config_file: Optional[Any] = Field( - None, - title="Tool Config File", - description="""Tool config files, defines what tools are available in Galaxy. + ), + ] = 107374182400 + tool_config_file: Annotated[ + Any, + Field( + title="Tool Config File", + description="""Tool config files, defines what tools are available in Galaxy. Tools can be locally developed or installed from Galaxy tool sheds. (config/tool_conf.xml.sample will be used if left unset and config/tool_conf.xml does not exist). Can be a single file, a list of files, or (for backwards compatibility) a comma-separated list of files. """, - ) - shed_tool_config_file: Optional[str] = Field( - None, - title="Shed Tool Config File", - description="""Tool config file for tools installed from the Galaxy Tool Shed. Must + ), + ] = "tool_conf.xml" + shed_tool_config_file: Annotated[ + str, + Field( + title="Shed Tool Config File", + description="""Tool config file for tools installed from the Galaxy Tool Shed. Must be writable by Galaxy and generally should not be edited by hand. In older Galaxy releases, this file was part of the tool_config_file option. It is still possible to specify this file (and other @@ -242,39 +295,47 @@ class GalaxyConfigModel(Model): installation, whereas Galaxy will fail to start if any files in tool_config_file cannot be read. """, - ) - migrated_tools_config: Optional[str] = Field( - None, - title="Migrated Tools Config", - description="""This option is deprecated. + ), + ] = "shed_tool_conf.xml" + migrated_tools_config: Annotated[ + str, + Field( + title="Migrated Tools Config", + description="""This option is deprecated. In previous releases this file was maintained by tool migration scripts that are no longer part of the code base. The option remains as a placeholder for deployments where these scripts were previously run and such a file exists. """, - ) - integrated_tool_panel_config: Optional[str] = Field( - None, - title="Integrated Tool Panel Config", - description="""File that contains the XML section and tool tags from all tool panel config + ), + ] = "migrated_tools_conf.xml" + integrated_tool_panel_config: Annotated[ + str, + Field( + title="Integrated Tool Panel Config", + description="""File that contains the XML section and tool tags from all tool panel config files integrated into a single file that defines the tool panel layout. This file can be changed by the Galaxy administrator to alter the layout of the tool panel. If not present, Galaxy will create it. The value of this option will be resolved with respect to . """, - ) - tool_path: Optional[str] = Field( - None, - title="Tool Path", - description="""Default path to the directory containing the tools defined in tool_conf.xml. + ), + ] = "integrated_tool_panel.xml" + tool_path: Annotated[ + str, + Field( + title="Tool Path", + description="""Default path to the directory containing the tools defined in tool_conf.xml. Other tool config files must include the tool_path as an attribute in the tag. """, - ) - tool_dependency_dir: Optional[str] = Field( - None, - title="Tool Dependency Dir", - description="""Various dependency resolver configuration parameters will have defaults set relative + ), + ] = "tools" + tool_dependency_dir: Annotated[ + str, + Field( + title="Tool Dependency Dir", + description="""Various dependency resolver configuration parameters will have defaults set relative to this path, such as the default conda prefix, default Galaxy packages path, legacy tool shed dependencies path, and the dependency cache directory. @@ -282,92 +343,116 @@ class GalaxyConfigModel(Model): If this option is set to none or an invalid path, installing tools with dependencies from the Tool Shed or in Conda will fail. """, - ) - dependency_resolvers_config_file: Optional[str] = Field( - None, - title="Dependency Resolvers Config File", - description="""Specifies the path to the standalone dependency resolvers configuration file. This + ), + ] = "dependencies" + dependency_resolvers_config_file: Annotated[ + str, + Field( + title="Dependency Resolvers Config File", + description="""Specifies the path to the standalone dependency resolvers configuration file. This configuration can now be specified directly in the Galaxy configuration, see the description of the 'dependency_resolvers' option for details. """, - ) - conda_prefix: Optional[str] = Field( - None, - title="Conda Prefix", - description="""conda_prefix is the location on the filesystem where Conda packages and environments are + ), + ] = "dependency_resolvers_conf.xml" + conda_prefix: Annotated[ + str, + Field( + title="Conda Prefix", + description="""conda_prefix is the location on the filesystem where Conda packages and environments are installed. Sample default '/_conda' """, - ) - conda_exec: Optional[str] = Field( - None, - title="Conda Exec", - description="""Override the Conda executable to use, it will default to the one on the + ), + ] + conda_exec: Annotated[ + str, + Field( + title="Conda Exec", + description="""Override the Conda executable to use, it will default to the one on the PATH (if available) and then to /bin/conda """, - ) - conda_debug: Optional[bool] = Field( - None, - title="Conda Debug", - description="""Pass debug flag to conda commands. -""", - ) - conda_ensure_channels: Optional[str] = Field( - None, - title="Conda Ensure Channels", - description="""conda channels to enable by default + ), + ] + conda_debug: Annotated[ + bool, + Field( + title="Conda Debug", + description="""Pass debug flag to conda commands. +""", + ), + ] = False + conda_ensure_channels: Annotated[ + str, + Field( + title="Conda Ensure Channels", + description="""conda channels to enable by default (https://conda.io/docs/user-guide/tasks/manage-channels.html) """, - ) - conda_use_local: Optional[bool] = Field( - None, - title="Conda Use Local", - description="""Use locally-built conda packages. -""", - ) - conda_auto_install: Optional[bool] = Field( - None, - title="Conda Auto Install", - description="""Set to true to instruct Galaxy to look for and install missing tool + ), + ] = "conda-forge,bioconda,defaults" + conda_use_local: Annotated[ + bool, + Field( + title="Conda Use Local", + description="""Use locally-built conda packages. +""", + ), + ] = False + conda_auto_install: Annotated[ + bool, + Field( + title="Conda Auto Install", + description="""Set to true to instruct Galaxy to look for and install missing tool dependencies before each job runs. """, - ) - conda_auto_init: Optional[bool] = Field( - None, - title="Conda Auto Init", - description="""Set to true to instruct Galaxy to install Conda from the web automatically + ), + ] = False + conda_auto_init: Annotated[ + bool, + Field( + title="Conda Auto Init", + description="""Set to true to instruct Galaxy to install Conda from the web automatically if it cannot find a local copy and conda_exec is not configured. """, - ) - conda_copy_dependencies: Optional[bool] = Field( - None, - title="Conda Copy Dependencies", - description="""You must set this to true if conda_prefix and job_working_directory are not on the same + ), + ] = True + conda_copy_dependencies: Annotated[ + bool, + Field( + title="Conda Copy Dependencies", + description="""You must set this to true if conda_prefix and job_working_directory are not on the same volume, or some conda dependencies will fail to execute at job runtime. Conda will copy packages content instead of creating hardlinks or symlinks. This will prevent problems with some specific packages (perl, R), at the cost of extra disk space usage and extra time spent copying packages. """, - ) - local_conda_mapping_file: Optional[str] = Field( - None, - title="Local Conda Mapping File", - description="""Path to a file that provides a mapping from abstract packages to concrete conda packages. + ), + ] = False + local_conda_mapping_file: Annotated[ + str, + Field( + title="Local Conda Mapping File", + description="""Path to a file that provides a mapping from abstract packages to concrete conda packages. See `config/local_conda_mapping.yml.sample` for examples. """, - ) - modules_mapping_files: Optional[str] = Field( - None, - title="Modules Mapping Files", - description="""Path to a file that provides a mapping from abstract packages to locally installed modules. + ), + ] = "local_conda_mapping.yml" + modules_mapping_files: Annotated[ + str, + Field( + title="Modules Mapping Files", + description="""Path to a file that provides a mapping from abstract packages to locally installed modules. See `config/environment_modules_mapping.yml.sample` for examples. """, - ) - use_cached_dependency_manager: Optional[bool] = Field( - None, - title="Use Cached Dependency Manager", - description="""Certain dependency resolvers (namely Conda) take a considerable amount of + ), + ] = "environment_modules_mapping.yml" + use_cached_dependency_manager: Annotated[ + bool, + Field( + title="Use Cached Dependency Manager", + description="""Certain dependency resolvers (namely Conda) take a considerable amount of time to build an isolated job environment in the job_working_directory if the job working directory is on a network share. Set this option to true to cache the dependencies in a folder. This option is beta and should only be @@ -378,35 +463,43 @@ class GalaxyConfigModel(Model): most modern best practice tools can use prebuilt environments in the Conda directory. """, - ) - tool_dependency_cache_dir: Optional[str] = Field( - None, - title="Tool Dependency Cache Dir", - description="""By default the tool_dependency_cache_dir is the _cache directory + ), + ] = False + tool_dependency_cache_dir: Annotated[ + str, + Field( + title="Tool Dependency Cache Dir", + description="""By default the tool_dependency_cache_dir is the _cache directory of the tool dependency directory. Sample default '/_cache' """, - ) - precache_dependencies: Optional[bool] = Field( - None, - title="Precache Dependencies", - description="""By default, when using a cached dependency manager, the dependencies are cached + ), + ] + precache_dependencies: Annotated[ + bool, + Field( + title="Precache Dependencies", + description="""By default, when using a cached dependency manager, the dependencies are cached when installing new tools and when using tools for the first time. Set this to false if you prefer dependencies to be cached only when installing new tools. """, - ) - tool_sheds_config_file: Optional[str] = Field( - None, - title="Tool Sheds Config File", - description="""File containing the Galaxy Tool Sheds that should be made available to + ), + ] = True + tool_sheds_config_file: Annotated[ + str, + Field( + title="Tool Sheds Config File", + description="""File containing the Galaxy Tool Sheds that should be made available to install from in the admin interface (.sample used if default does not exist). """, - ) - watch_tools: Optional[str] = Field( - None, - title="Watch Tools", - description="""Monitor the tools and tool directories listed in any tool config file specified in + ), + ] = "tool_sheds_conf.xml" + watch_tools: Annotated[ + str, + Field( + title="Watch Tools", + description="""Monitor the tools and tool directories listed in any tool config file specified in tool_config_file option. If changes are found, tools are automatically reloaded. Watchdog ( https://pypi.org/project/watchdog/ ) must be installed and available to Galaxy to use this option. Other options include 'auto' which will attempt to watch tools if the @@ -414,182 +507,226 @@ class GalaxyConfigModel(Model): which will use a less efficient monitoring scheme that may work in wider range of scenarios than the watchdog default. """, - ) - watch_job_rules: Optional[str] = Field( - None, - title="Watch Job Rules", - description="""Monitor dynamic job rules. If changes are found, rules are automatically reloaded. Takes + ), + ] = "false" + watch_job_rules: Annotated[ + str, + Field( + title="Watch Job Rules", + description="""Monitor dynamic job rules. If changes are found, rules are automatically reloaded. Takes the same values as the 'watch_tools' option. """, - ) - watch_core_config: Optional[str] = Field( - None, - title="Watch Core Config", - description="""Monitor a subset of options in the core configuration file (See RELOADABLE_CONFIG_OPTIONS + ), + ] = "false" + watch_core_config: Annotated[ + str, + Field( + title="Watch Core Config", + description="""Monitor a subset of options in the core configuration file (See RELOADABLE_CONFIG_OPTIONS in lib/galaxy/config/__init__.py). If changes are found, modified options are automatically reloaded. Takes the same values as the 'watch_tools' option. """, - ) - watch_tours: Optional[str] = Field( - None, - title="Watch Tours", - description="""Monitor the interactive tours directory specified in the 'tour_config_dir' option. If + ), + ] = "false" + watch_tours: Annotated[ + str, + Field( + title="Watch Tours", + description="""Monitor the interactive tours directory specified in the 'tour_config_dir' option. If changes are found, modified tours are automatically reloaded. Takes the same values as the 'watch_tools' option. """, - ) - short_term_storage_dir: Optional[str] = Field( - None, - title="Short Term Storage Dir", - description="""Location of files available for a short time as downloads (short term storage). + ), + ] = "false" + short_term_storage_dir: Annotated[ + str, + Field( + title="Short Term Storage Dir", + description="""Location of files available for a short time as downloads (short term storage). This directory is exclusively used for serving dynamically generated downloadable content. Galaxy may uses the new_file_path parameter as a general temporary directory and that directory should be monitored by a tool such as tmpwatch in production environments. short_term_storage_dir on the other hand is monitored by Galaxy's task framework and should not require such external tooling. """, - ) - short_term_storage_default_duration: Optional[int] = Field( - None, - title="Short Term Storage Default Duration", - description="""Default duration before short term web storage files will be cleaned up by Galaxy + ), + ] = "short_term_web_storage" + short_term_storage_default_duration: Annotated[ + int, + Field( + title="Short Term Storage Default Duration", + description="""Default duration before short term web storage files will be cleaned up by Galaxy tasks (in seconds). The default duration is 1 day. """, - ) - short_term_storage_maximum_duration: Optional[int] = Field( - None, - title="Short Term Storage Maximum Duration", - description="""The maximum duration short term storage files can hosted before they will be marked for + ), + ] = 86400 + short_term_storage_maximum_duration: Annotated[ + int, + Field( + title="Short Term Storage Maximum Duration", + description="""The maximum duration short term storage files can hosted before they will be marked for clean up. The default setting of 0 indicates no limit here. """, - ) - short_term_storage_cleanup_interval: Optional[int] = Field( - None, - title="Short Term Storage Cleanup Interval", - description="""How many seconds between instances of short term storage being cleaned up in default + ), + ] = 0 + short_term_storage_cleanup_interval: Annotated[ + int, + Field( + title="Short Term Storage Cleanup Interval", + description="""How many seconds between instances of short term storage being cleaned up in default Celery task configuration. """, - ) - file_sources_config_file: Optional[str] = Field( - None, - title="File Sources Config File", - description="""Configured FileSource plugins. -""", - ) - file_sources: Optional[List[Any]] = Field( - None, - title="File Sources", - description="""FileSource plugins described embedded into Galaxy's config. -""", - ) - enable_mulled_containers: Optional[bool] = Field( - None, - title="Enable Mulled Containers", - description="""Enable Galaxy to fetch containers registered with quay.io generated + ), + ] = 3600 + file_sources_config_file: Annotated[ + str, + Field( + title="File Sources Config File", + description="""Configured FileSource plugins. +""", + ), + ] = "file_sources_conf.yml" + file_sources: Annotated[ + List[Any], + Field( + title="File Sources", + description="""FileSource plugins described embedded into Galaxy's config. +""", + ), + ] + enable_mulled_containers: Annotated[ + bool, + Field( + title="Enable Mulled Containers", + description="""Enable Galaxy to fetch containers registered with quay.io generated from tool requirements resolved through Conda. These containers (when available) have been generated using mulled - https://github.com/mulled. Container availability will vary by tool, this option will only be used for job destinations with Docker or Singularity enabled. """, - ) - container_resolvers_config_file: Optional[str] = Field( - None, - title="Container Resolvers Config File", - description="""Container resolvers configuration. Set up a file describing + ), + ] = True + container_resolvers_config_file: Annotated[ + str, + Field( + title="Container Resolvers Config File", + description="""Container resolvers configuration. Set up a file describing container resolvers to use when discovering containers for Galaxy. If this is set to None, the default container resolvers loaded is determined by enable_mulled_containers. For available options see https://docs.galaxyproject.org/en/master/admin/container_resolvers.html """, - ) - container_resolvers: Optional[List[Any]] = Field( - None, - title="Container Resolvers", - description="""Rather than specifying a container_resolvers_config_file, the definition of the + ), + ] + container_resolvers: Annotated[ + List[Any], + Field( + title="Container Resolvers", + description="""Rather than specifying a container_resolvers_config_file, the definition of the resolvers to enable can be embedded into Galaxy's config with this option. This has no effect if a container_resolvers_config_file is used. Takes the same options that can be set in container_resolvers_config_file. """, - ) - involucro_path: Optional[str] = Field( - None, - title="Involucro Path", - description="""involucro is a tool used to build Docker or Singularity containers for tools from Conda + ), + ] + involucro_path: Annotated[ + str, + Field( + title="Involucro Path", + description="""involucro is a tool used to build Docker or Singularity containers for tools from Conda dependencies referenced in tools as `requirement` s. The following path is the location of involucro on the Galaxy host. This is ignored if the relevant container resolver isn't enabled, and will install on demand unless involucro_auto_init is set to false. """, - ) - involucro_auto_init: Optional[bool] = Field( - None, - title="Involucro Auto Init", - description="""Install involucro as needed to build Docker or Singularity containers for tools. Ignored if + ), + ] = "involucro" + involucro_auto_init: Annotated[ + bool, + Field( + title="Involucro Auto Init", + description="""Install involucro as needed to build Docker or Singularity containers for tools. Ignored if relevant container resolver is not used. """, - ) - mulled_channels: Optional[str] = Field( - None, - title="Mulled Channels", - description="""Conda channels to use when building Docker or Singularity containers using involucro. -""", - ) - enable_tool_shed_check: Optional[bool] = Field( - None, - title="Enable Tool Shed Check", - description="""Enable automatic polling of relative tool sheds to see if any updates + ), + ] = True + mulled_channels: Annotated[ + str, + Field( + title="Mulled Channels", + description="""Conda channels to use when building Docker or Singularity containers using involucro. +""", + ), + ] = "conda-forge,bioconda" + enable_tool_shed_check: Annotated[ + bool, + Field( + title="Enable Tool Shed Check", + description="""Enable automatic polling of relative tool sheds to see if any updates are available for installed repositories. Ideally only one Galaxy server process should be able to check for repository updates. The setting for hours_between_check should be an integer between 1 and 24. """, - ) - hours_between_check: Optional[int] = Field( - None, - title="Hours Between Check", - description="""Enable automatic polling of relative tool sheds to see if any updates + ), + ] = False + hours_between_check: Annotated[ + int, + Field( + title="Hours Between Check", + description="""Enable automatic polling of relative tool sheds to see if any updates are available for installed repositories. Ideally only one Galaxy server process should be able to check for repository updates. The setting for hours_between_check should be an integer between 1 and 24. """, - ) - tool_data_table_config_path: Optional[str] = Field( - None, - title="Tool Data Table Config Path", - description="""XML config file that contains data table entries for the + ), + ] = 12 + tool_data_table_config_path: Annotated[ + str, + Field( + title="Tool Data Table Config Path", + description="""XML config file that contains data table entries for the ToolDataTableManager. This file is manually # maintained by the Galaxy administrator (.sample used if default does not exist). """, - ) - shed_tool_data_table_config: Optional[str] = Field( - None, - title="Shed Tool Data Table Config", - description="""XML config file that contains additional data table entries for the + ), + ] = "tool_data_table_conf.xml" + shed_tool_data_table_config: Annotated[ + str, + Field( + title="Shed Tool Data Table Config", + description="""XML config file that contains additional data table entries for the ToolDataTableManager. This file is automatically generated based on the current installed tool shed repositories that contain valid tool_data_table_conf.xml.sample files. At the time of installation, these entries are automatically added to the following file, which is parsed and applied to the ToolDataTableManager at server start up. """, - ) - tool_data_path: Optional[str] = Field( - None, - title="Tool Data Path", - description="""Directory where data used by tools is located. See the samples in that + ), + ] = "shed_tool_data_table_conf.xml" + tool_data_path: Annotated[ + str, + Field( + title="Tool Data Path", + description="""Directory where data used by tools is located. See the samples in that directory and the Galaxy Community Hub for help: https://galaxyproject.org/admin/data-integration """, - ) - shed_tool_data_path: Optional[str] = Field( - None, - title="Shed Tool Data Path", - description="""Directory where Tool Data Table related files will be placed when installed from a + ), + ] = "tool-data" + shed_tool_data_path: Annotated[ + str, + Field( + title="Shed Tool Data Path", + description="""Directory where Tool Data Table related files will be placed when installed from a ToolShed. Defaults to the value of the 'tool_data_path' option. """, - ) - watch_tool_data_dir: Optional[str] = Field( - None, - title="Watch Tool Data Dir", - description="""Monitor the tool_data and shed_tool_data_path directories. If changes in tool data table + ), + ] + watch_tool_data_dir: Annotated[ + str, + Field( + title="Watch Tool Data Dir", + description="""Monitor the tool_data and shed_tool_data_path directories. If changes in tool data table files are found, the tool data tables for that data manager are automatically reloaded. Watchdog ( https://pypi.org/project/watchdog/ ) must be installed and available to Galaxy to use this option. Other options include 'auto' which will attempt to use the watchdog @@ -597,336 +734,422 @@ class GalaxyConfigModel(Model): will use a less efficient monitoring scheme that may work in wider range of scenarios than the watchdog default. """, - ) - refgenie_config_file: Optional[str] = Field( - None, - title="Refgenie Config File", - description="""File containing refgenie configuration, e.g. /path/to/genome_config.yaml. Can be used by refgenie backed tool data tables. -""", - ) - build_sites_config_file: Optional[str] = Field( - None, - title="Build Sites Config File", - description="""File that defines the builds (dbkeys) available at sites used by display applications + ), + ] = "false" + refgenie_config_file: Annotated[ + str, + Field( + title="Refgenie Config File", + description="""File containing refgenie configuration, e.g. /path/to/genome_config.yaml. Can be used by refgenie backed tool data tables. +""", + ), + ] + build_sites_config_file: Annotated[ + str, + Field( + title="Build Sites Config File", + description="""File that defines the builds (dbkeys) available at sites used by display applications and the URL to those sites. """, - ) - builds_file_path: Optional[str] = Field( - None, - title="Builds File Path", - description="""File containing old-style genome builds. + ), + ] = "build_sites.yml" + builds_file_path: Annotated[ + str, + Field( + title="Builds File Path", + description="""File containing old-style genome builds. The value of this option will be resolved with respect to . """, - ) - len_file_path: Optional[str] = Field( - None, - title="Len File Path", - description="""Directory where chrom len files are kept, currently mainly used by trackster. + ), + ] = "shared/ucsc/builds.txt" + len_file_path: Annotated[ + str, + Field( + title="Len File Path", + description="""Directory where chrom len files are kept, currently mainly used by trackster. The value of this option will be resolved with respect to . """, - ) - datatypes_config_file: Optional[str] = Field( - None, - title="Datatypes Config File", - description="""Datatypes config file(s), defines what data (file) types are available in + ), + ] = "shared/ucsc/chrom" + datatypes_config_file: Annotated[ + str, + Field( + title="Datatypes Config File", + description="""Datatypes config file(s), defines what data (file) types are available in Galaxy (.sample is used if default does not exist). If a datatype appears in multiple files, the last definition is used (though the first sniffer is used so limit sniffer definitions to one file). """, - ) - sniff_compressed_dynamic_datatypes_default: Optional[bool] = Field( - None, - title="Sniff Compressed Dynamic Datatypes Default", - description="""Enable sniffing of compressed datatypes. This can be configured/overridden + ), + ] = "datatypes_conf.xml" + sniff_compressed_dynamic_datatypes_default: Annotated[ + bool, + Field( + title="Sniff Compressed Dynamic Datatypes Default", + description="""Enable sniffing of compressed datatypes. This can be configured/overridden on a per-datatype basis in the datatypes_conf.xml file. With this option set to false the compressed datatypes will be unpacked before sniffing. """, - ) - datatypes_disable_auto: Optional[bool] = Field( - None, - title="Datatypes Disable Auto", - description="""Disable the 'Auto-detect' option for file uploads -""", - ) - visualization_plugins_directory: Optional[str] = Field( - None, - title="Visualization Plugins Directory", - description="""Visualizations config directory: where to look for individual visualization + ), + ] = True + datatypes_disable_auto: Annotated[ + bool, + Field( + title="Datatypes Disable Auto", + description="""Disable the 'Auto-detect' option for file uploads +""", + ), + ] = False + visualization_plugins_directory: Annotated[ + str, + Field( + title="Visualization Plugins Directory", + description="""Visualizations config directory: where to look for individual visualization plugins. The path is relative to the Galaxy root dir. To use an absolute path begin the path with '/'. This is a comma-separated list. """, - ) - tour_config_dir: Optional[str] = Field( - None, - title="Tour Config Dir", - description="""Interactive tour directory: where to store interactive tour definition files. + ), + ] = "config/plugins/visualizations" + tour_config_dir: Annotated[ + str, + Field( + title="Tour Config Dir", + description="""Interactive tour directory: where to store interactive tour definition files. Galaxy ships with several basic interface tours enabled, though a different directory with custom tours can be specified here. The path is relative to the Galaxy root dir. To use an absolute path begin the path with '/'. This is a comma-separated list. """, - ) - webhooks_dir: Optional[str] = Field( - None, - title="Webhooks Dir", - description="""Webhooks directory: where to store webhooks - plugins to extend the Galaxy UI. + ), + ] = "config/plugins/tours" + webhooks_dir: Annotated[ + str, + Field( + title="Webhooks Dir", + description="""Webhooks directory: where to store webhooks - plugins to extend the Galaxy UI. By default none will be loaded. Set to config/plugins/webhooks/demo to load Galaxy's demo webhooks. To use an absolute path begin the path with '/'. This is a comma-separated list. Add test/functional/webhooks to this list to include the demo webhooks used to test the webhook framework. """, - ) - job_working_directory: Optional[str] = Field( - None, - title="Job Working Directory", - description="""Each job is given a unique empty directory as its current working directory. + ), + ] = "config/plugins/webhooks" + job_working_directory: Annotated[ + str, + Field( + title="Job Working Directory", + description="""Each job is given a unique empty directory as its current working directory. This option defines in what parent directory those directories will be created. The value of this option will be resolved with respect to . """, - ) - template_cache_path: Optional[str] = Field( - None, - title="Template Cache Path", - description="""Mako templates are compiled as needed and cached for reuse, this directory is + ), + ] = "jobs_directory" + template_cache_path: Annotated[ + str, + Field( + title="Template Cache Path", + description="""Mako templates are compiled as needed and cached for reuse, this directory is used for the cache """, - ) - check_job_script_integrity: Optional[bool] = Field( - None, - title="Check Job Script Integrity", - description="""Set to false to disable various checks Galaxy will do to ensure it + ), + ] = "compiled_templates" + check_job_script_integrity: Annotated[ + bool, + Field( + title="Check Job Script Integrity", + description="""Set to false to disable various checks Galaxy will do to ensure it can run job scripts before attempting to execute or submit them. """, - ) - check_job_script_integrity_count: Optional[int] = Field( - None, - title="Check Job Script Integrity Count", - description="""Number of checks to execute if check_job_script_integrity is enabled. -""", - ) - check_job_script_integrity_sleep: Optional[float] = Field( - None, - title="Check Job Script Integrity Sleep", - description="""Time to sleep between checks if check_job_script_integrity is enabled (in seconds). -""", - ) - default_job_shell: Optional[str] = Field( - None, - title="Default Job Shell", - description="""Set the default shell used by non-containerized jobs Galaxy-wide. This + ), + ] = True + check_job_script_integrity_count: Annotated[ + int, + Field( + title="Check Job Script Integrity Count", + description="""Number of checks to execute if check_job_script_integrity is enabled. +""", + ), + ] = 35 + check_job_script_integrity_sleep: Annotated[ + float, + Field( + title="Check Job Script Integrity Sleep", + description="""Time to sleep between checks if check_job_script_integrity is enabled (in seconds). +""", + ), + ] = 0.25 + default_job_shell: Annotated[ + str, + Field( + title="Default Job Shell", + description="""Set the default shell used by non-containerized jobs Galaxy-wide. This defaults to bash for all jobs and can be overridden at the destination level for heterogeneous clusters. conda job resolution requires bash or zsh so if this is switched to /bin/sh for instance - conda resolution should be disabled. Containerized jobs always use /bin/sh - so more maximum portability tool authors should assume generated commands run in sh. """, - ) - enable_tool_document_cache: Optional[bool] = Field( - None, - title="Enable Tool Document Cache", - description="""Whether to enable the tool document cache. This cache stores + ), + ] = "/bin/bash" + enable_tool_document_cache: Annotated[ + bool, + Field( + title="Enable Tool Document Cache", + description="""Whether to enable the tool document cache. This cache stores expanded XML strings. Enabling the tool cache results in slightly faster startup times. The tool cache is backed by a SQLite database, which cannot be stored on certain network disks. The cache location is configurable using the ``tool_cache_data_dir`` setting, but can be disabled completely here. """, - ) - tool_cache_data_dir: Optional[str] = Field( - None, - title="Tool Cache Data Dir", - description="""Tool related caching. Fully expanded tools and metadata will be stored at this path. + ), + ] = False + tool_cache_data_dir: Annotated[ + str, + Field( + title="Tool Cache Data Dir", + description="""Tool related caching. Fully expanded tools and metadata will be stored at this path. Per tool_conf cache locations can be configured in (``shed_``)tool_conf.xml files using the tool_cache_data_dir attribute. """, - ) - tool_search_index_dir: Optional[str] = Field( - None, - title="Tool Search Index Dir", - description="""Directory in which the toolbox search index is stored.""", - ) - delay_tool_initialization: Optional[bool] = Field( - None, - title="Delay Tool Initialization", - description="""Set this to true to delay parsing of tool inputs and outputs until they are needed. + ), + ] = "tool_cache" + tool_search_index_dir: Annotated[ + str, + Field( + title="Tool Search Index Dir", + description="""Directory in which the toolbox search index is stored.""", + ), + ] = "tool_search_index" + delay_tool_initialization: Annotated[ + bool, + Field( + title="Delay Tool Initialization", + description="""Set this to true to delay parsing of tool inputs and outputs until they are needed. This results in faster startup times but uses more memory when using forked Galaxy processes. """, - ) - biotools_content_directory: Optional[str] = Field( - None, - title="Biotools Content Directory", - description="""Point Galaxy at a repository consisting of a copy of the bio.tools database (e.g. + ), + ] = False + biotools_content_directory: Annotated[ + str, + Field( + title="Biotools Content Directory", + description="""Point Galaxy at a repository consisting of a copy of the bio.tools database (e.g. https://github.com/bio-tools/content/) to resolve bio.tools data for tool metadata. """, - ) - biotools_use_api: Optional[bool] = Field( - None, - title="Biotools Use Api", - description="""Set this to true to attempt to resolve bio.tools metadata for tools for tool not + ), + ] + biotools_use_api: Annotated[ + bool, + Field( + title="Biotools Use Api", + description="""Set this to true to attempt to resolve bio.tools metadata for tools for tool not resovled via biotools_content_directory. """, - ) - biotools_service_cache_type: Optional[str] = Field( - None, - title="Biotools Service Cache Type", - description="""bio.tools web service request related caching. The type of beaker cache used. -""", - ) - biotools_service_cache_data_dir: Optional[str] = Field( - None, - title="Biotools Service Cache Data Dir", - description="""bio.tools web service request related caching. The data directory to point + ), + ] = False + biotools_service_cache_type: Annotated[ + str, + Field( + title="Biotools Service Cache Type", + description="""bio.tools web service request related caching. The type of beaker cache used. +""", + ), + ] = "file" + biotools_service_cache_data_dir: Annotated[ + str, + Field( + title="Biotools Service Cache Data Dir", + description="""bio.tools web service request related caching. The data directory to point beaker cache at. """, - ) - biotools_service_cache_lock_dir: Optional[str] = Field( - None, - title="Biotools Service Cache Lock Dir", - description="""bio.tools web service request related caching. The lock directory to point + ), + ] = "biotools/data" + biotools_service_cache_lock_dir: Annotated[ + str, + Field( + title="Biotools Service Cache Lock Dir", + description="""bio.tools web service request related caching. The lock directory to point beaker cache at. """, - ) - biotools_service_cache_url: Optional[str] = Field( - None, - title="Biotools Service Cache Url", - description="""When biotools_service_cache_type = ext:database, this is + ), + ] = "biotools/locks" + biotools_service_cache_url: Annotated[ + str, + Field( + title="Biotools Service Cache Url", + description="""When biotools_service_cache_type = ext:database, this is the url of the database used by beaker for bio.tools web service request related caching. The application config code will set it to the value of database_connection if this is not set. """, - ) - biotools_service_cache_table_name: Optional[str] = Field( - None, - title="Biotools Service Cache Table Name", - description="""When biotools_service_cache_type = ext:database, this is + ), + ] + biotools_service_cache_table_name: Annotated[ + str, + Field( + title="Biotools Service Cache Table Name", + description="""When biotools_service_cache_type = ext:database, this is the database table name used by beaker for bio.tools web service request related caching. """, - ) - biotools_service_cache_schema_name: Optional[str] = Field( - None, - title="Biotools Service Cache Schema Name", - description="""When biotools_service_cache_type = ext:database, this is + ), + ] = "beaker_cache" + biotools_service_cache_schema_name: Annotated[ + str, + Field( + title="Biotools Service Cache Schema Name", + description="""When biotools_service_cache_type = ext:database, this is the database table name used by beaker for bio.tools web service request related caching. """, - ) - citation_cache_type: Optional[str] = Field( - None, - title="Citation Cache Type", - description="""Citation related caching. Tool citations information maybe fetched from + ), + ] + citation_cache_type: Annotated[ + str, + Field( + title="Citation Cache Type", + description="""Citation related caching. Tool citations information maybe fetched from external sources such as https://doi.org/ by Galaxy - the following parameters can be used to control the caching used to store this information. """, - ) - citation_cache_data_dir: Optional[str] = Field( - None, - title="Citation Cache Data Dir", - description="""Citation related caching. Tool citations information maybe fetched from + ), + ] = "file" + citation_cache_data_dir: Annotated[ + str, + Field( + title="Citation Cache Data Dir", + description="""Citation related caching. Tool citations information maybe fetched from external sources such as https://doi.org/ by Galaxy - the following parameters can be used to control the caching used to store this information. """, - ) - citation_cache_lock_dir: Optional[str] = Field( - None, - title="Citation Cache Lock Dir", - description="""Citation related caching. Tool citations information maybe fetched from + ), + ] = "citations/data" + citation_cache_lock_dir: Annotated[ + str, + Field( + title="Citation Cache Lock Dir", + description="""Citation related caching. Tool citations information maybe fetched from external sources such as https://doi.org/ by Galaxy - the following parameters can be used to control the caching used to store this information. """, - ) - citation_cache_url: Optional[str] = Field( - None, - title="Citation Cache Url", - description="""When citation_cache_type = ext:database, this is + ), + ] = "citations/locks" + citation_cache_url: Annotated[ + str, + Field( + title="Citation Cache Url", + description="""When citation_cache_type = ext:database, this is the url of the database used by beaker for citation caching. The application config code will set it to the value of database_connection if this is not set. """, - ) - citation_cache_table_name: Optional[str] = Field( - None, - title="Citation Cache Table Name", - description="""When citation_cache_type = ext:database, this is + ), + ] + citation_cache_table_name: Annotated[ + str, + Field( + title="Citation Cache Table Name", + description="""When citation_cache_type = ext:database, this is the database table name used by beaker for citation related caching. """, - ) - citation_cache_schema_name: Optional[str] = Field( - None, - title="Citation Cache Schema Name", - description="""When citation_cache_type = ext:database, this is + ), + ] = "beaker_cache" + citation_cache_schema_name: Annotated[ + str, + Field( + title="Citation Cache Schema Name", + description="""When citation_cache_type = ext:database, this is the database schema name of the table used by beaker for citation related caching. """, - ) - mulled_resolution_cache_type: Optional[str] = Field( - None, - title="Mulled Resolution Cache Type", - description="""Mulled resolution caching. Mulled resolution uses external APIs of quay.io, these + ), + ] + mulled_resolution_cache_type: Annotated[ + str, + Field( + title="Mulled Resolution Cache Type", + description="""Mulled resolution caching. Mulled resolution uses external APIs of quay.io, these requests are caching using this and the following parameters """, - ) - mulled_resolution_cache_data_dir: Optional[str] = Field( - None, - title="Mulled Resolution Cache Data Dir", - description="""Data directory used by beaker for caching mulled resolution requests. -""", - ) - mulled_resolution_cache_lock_dir: Optional[str] = Field( - None, - title="Mulled Resolution Cache Lock Dir", - description="""Lock directory used by beaker for caching mulled resolution requests. -""", - ) - mulled_resolution_cache_expire: Optional[int] = Field( - None, - title="Mulled Resolution Cache Expire", - description="""Seconds until the beaker cache is considered old and a new value is created. -""", - ) - mulled_resolution_cache_url: Optional[str] = Field( - None, - title="Mulled Resolution Cache Url", - description="""When mulled_resolution_cache_type = ext:database, this is + ), + ] = "file" + mulled_resolution_cache_data_dir: Annotated[ + str, + Field( + title="Mulled Resolution Cache Data Dir", + description="""Data directory used by beaker for caching mulled resolution requests. +""", + ), + ] = "mulled/data" + mulled_resolution_cache_lock_dir: Annotated[ + str, + Field( + title="Mulled Resolution Cache Lock Dir", + description="""Lock directory used by beaker for caching mulled resolution requests. +""", + ), + ] = "mulled/locks" + mulled_resolution_cache_expire: Annotated[ + int, + Field( + title="Mulled Resolution Cache Expire", + description="""Seconds until the beaker cache is considered old and a new value is created. +""", + ), + ] = 3600 + mulled_resolution_cache_url: Annotated[ + str, + Field( + title="Mulled Resolution Cache Url", + description="""When mulled_resolution_cache_type = ext:database, this is the url of the database used by beaker for caching mulled resolution requests. The application config code will set it to the value of database_connection if this is not set. """, - ) - mulled_resolution_cache_table_name: Optional[str] = Field( - None, - title="Mulled Resolution Cache Table Name", - description="""When mulled_resolution_cache_type = ext:database, this is + ), + ] + mulled_resolution_cache_table_name: Annotated[ + str, + Field( + title="Mulled Resolution Cache Table Name", + description="""When mulled_resolution_cache_type = ext:database, this is the database table name used by beaker for caching mulled resolution requests. """, - ) - mulled_resolution_cache_schema_name: Optional[str] = Field( - None, - title="Mulled Resolution Cache Schema Name", - description="""When mulled_resolution_cache_type = ext:database, this is + ), + ] = "beaker_cache" + mulled_resolution_cache_schema_name: Annotated[ + str, + Field( + title="Mulled Resolution Cache Schema Name", + description="""When mulled_resolution_cache_type = ext:database, this is the database schema name of the table used by beaker for caching mulled resolution requests. """, - ) - object_store_config_file: Optional[str] = Field( - None, - title="Object Store Config File", - description="""Configuration file for the object store + ), + ] + object_store_config_file: Annotated[ + str, + Field( + title="Object Store Config File", + description="""Configuration file for the object store If this is set and exists, it overrides any other objectstore settings. """, - ) - object_store_cache_monitor_driver: Optional[str] = Field( - None, - title="Object Store Cache Monitor Driver", - description="""Specify where cache monitoring is driven for caching object stores + ), + ] = "object_store_conf.xml" + object_store_cache_monitor_driver: Annotated[ + str, + Field( + title="Object Store Cache Monitor Driver", + description="""Specify where cache monitoring is driven for caching object stores such as S3, Azure, and iRODS. This option has no affect on disk object stores. For production instances, the cache should be monitored by external tools such as tmpwatch and this value should be set to 'external'. This will disable all @@ -938,137 +1161,169 @@ class GalaxyConfigModel(Model): on a per object store basis (but don't - just setup tmpwatch for all relevant cache paths). """, - ) - object_store_cache_monitor_interval: Optional[int] = Field( - None, - title="Object Store Cache Monitor Interval", - description="""For object store cache monitoring done by Galaxy, this is the interval between + ), + ] = "auto" + object_store_cache_monitor_interval: Annotated[ + int, + Field( + title="Object Store Cache Monitor Interval", + description="""For object store cache monitoring done by Galaxy, this is the interval between cache checking steps. This is used by both inprocess cache monitors (which we recommend you do not use) and by the celery task if it is configured (by setting enable_celery_tasks to true and not setting object_store_cache_monitor_driver to external). """, - ) - object_store_cache_path: Optional[str] = Field( - None, - title="Object Store Cache Path", - description="""Default cache path for caching object stores if cache not configured for + ), + ] = 600 + object_store_cache_path: Annotated[ + str, + Field( + title="Object Store Cache Path", + description="""Default cache path for caching object stores if cache not configured for that object store entry. """, - ) - object_store_cache_size: Optional[int] = Field( - None, - title="Object Store Cache Size", - description="""Default cache size for caching object stores if cache not configured for + ), + ] = "object_store_cache" + object_store_cache_size: Annotated[ + int, + Field( + title="Object Store Cache Size", + description="""Default cache size for caching object stores if cache not configured for that object store entry. """, - ) - object_store_store_by: Optional[str] = Field( - None, - title="Object Store Store By", - description="""What Dataset attribute is used to reference files in an ObjectStore implementation, + ), + ] = -1 + object_store_store_by: Annotated[ + str, + Field( + title="Object Store Store By", + description="""What Dataset attribute is used to reference files in an ObjectStore implementation, this can be 'uuid' or 'id'. The default will depend on how the object store is configured, starting with 20.05 Galaxy will try to default to 'uuid' if it can be sure this is a new Galaxy instance - but the default will be 'id' in many cases. In particular, if the name of the directory set in is `objects`, the default will be set to 'uuid', otherwise it will be 'id'. """, - ) - smtp_server: Optional[str] = Field( - None, - title="Smtp Server", - description="""Galaxy sends mail for various things: subscribing users to the mailing list + ), + ] + smtp_server: Annotated[ + str, + Field( + title="Smtp Server", + description="""Galaxy sends mail for various things: subscribing users to the mailing list if they request it, password resets, reporting dataset errors, and sending activation emails. To do this, it needs to send mail through an SMTP server, which you may define here (host:port). Galaxy will automatically try STARTTLS but will continue upon failure. """, - ) - smtp_username: Optional[str] = Field( - None, - title="Smtp Username", - description="""If your SMTP server requires a username and password, you can provide them + ), + ] + smtp_username: Annotated[ + str, + Field( + title="Smtp Username", + description="""If your SMTP server requires a username and password, you can provide them here (password in cleartext here, but if your server supports STARTTLS it will be sent over the network encrypted). """, - ) - smtp_password: Optional[str] = Field( - None, - title="Smtp Password", - description="""If your SMTP server requires a username and password, you can provide them + ), + ] + smtp_password: Annotated[ + str, + Field( + title="Smtp Password", + description="""If your SMTP server requires a username and password, you can provide them here (password in cleartext here, but if your server supports STARTTLS it will be sent over the network encrypted). """, - ) - smtp_ssl: Optional[bool] = Field( - None, - title="Smtp Ssl", - description="""If your SMTP server requires SSL from the beginning of the connection -""", - ) - mailing_join_addr: Optional[str] = Field( - None, - title="Mailing Join Addr", - description="""On the user registration form, users may choose to join a mailing list. This + ), + ] + smtp_ssl: Annotated[ + bool, + Field( + title="Smtp Ssl", + description="""If your SMTP server requires SSL from the beginning of the connection +""", + ), + ] = False + mailing_join_addr: Annotated[ + str, + Field( + title="Mailing Join Addr", + description="""On the user registration form, users may choose to join a mailing list. This is the address used to subscribe to the list. Uncomment and leave empty if you want to remove this option from the user registration form. Example value 'galaxy-announce-join@lists.galaxyproject.org' """, - ) - mailing_join_subject: Optional[str] = Field( - None, - title="Mailing Join Subject", - description="""The subject of the email sent to the mailing list join address. See the + ), + ] + mailing_join_subject: Annotated[ + str, + Field( + title="Mailing Join Subject", + description="""The subject of the email sent to the mailing list join address. See the `mailing_join_addr` option for more information. """, - ) - mailing_join_body: Optional[str] = Field( - None, - title="Mailing Join Body", - description="""The body of the email sent to the mailing list join address. See the + ), + ] = "Join Mailing List" + mailing_join_body: Annotated[ + str, + Field( + title="Mailing Join Body", + description="""The body of the email sent to the mailing list join address. See the `mailing_join_addr` option for more information. """, - ) - error_email_to: Optional[str] = Field( - None, - title="Error Email To", - description="""Datasets in an error state include a link to report the error. Those reports + ), + ] = "Join Mailing List" + error_email_to: Annotated[ + str, + Field( + title="Error Email To", + description="""Datasets in an error state include a link to report the error. Those reports will be sent to this address. Error reports are disabled if no address is set. Also this email is shown as a contact to user in case of Galaxy misconfiguration and other events user may encounter. """, - ) - email_from: Optional[str] = Field( - None, - title="Email From", - description="""Email address to use in the 'From' field when sending emails for + ), + ] + email_from: Annotated[ + str, + Field( + title="Email From", + description="""Email address to use in the 'From' field when sending emails for account activations, workflow step notifications, password resets, and tool error reports. We recommend using a string in the following format: Galaxy Project . If not configured, '' will be used. """, - ) - custom_activation_email_message: Optional[str] = Field( - None, - title="Custom Activation Email Message", - description="""This text will be inserted at the end of the activation email's message, before + ), + ] + custom_activation_email_message: Annotated[ + str, + Field( + title="Custom Activation Email Message", + description="""This text will be inserted at the end of the activation email's message, before the 'Your Galaxy Team' signature. """, - ) - instance_resource_url: Optional[str] = Field( - None, - title="Instance Resource Url", - description="""URL of the support resource for the galaxy instance. Used in activation + ), + ] + instance_resource_url: Annotated[ + str, + Field( + title="Instance Resource Url", + description="""URL of the support resource for the galaxy instance. Used in activation emails. Example value 'https://galaxyproject.org/' """, - ) - email_domain_blocklist_file: Optional[str] = Field( - None, - title="Email Domain Blocklist File", - description="""E-mail domains blocklist is used for filtering out users that are using + ), + ] + email_domain_blocklist_file: Annotated[ + str, + Field( + title="Email Domain Blocklist File", + description="""E-mail domains blocklist is used for filtering out users that are using disposable email addresses at registration. If their address's base domain matches any domain on the list, they are refused registration. Address subdomains are ignored (both 'name@spam.com' and 'name@foo.spam.com' will match 'spam.com'). @@ -1077,11 +1332,13 @@ class GalaxyConfigModel(Model): The value of this option will be resolved with respect to . """, - ) - email_domain_allowlist_file: Optional[str] = Field( - None, - title="Email Domain Allowlist File", - description="""E-mail domains allowlist is used to specify allowed email address domains. + ), + ] + email_domain_allowlist_file: Annotated[ + str, + Field( + title="Email Domain Allowlist File", + description="""E-mail domains allowlist is used to specify allowed email address domains. If the list is non-empty and a user attempts registration using an email address belonging to a domain that is not on the list, registration will be denied. Unlike which matches the address's @@ -1094,102 +1351,128 @@ class GalaxyConfigModel(Model): The value of this option will be resolved with respect to . """, - ) - registration_warning_message: Optional[str] = Field( - None, - title="Registration Warning Message", - description="""Registration warning message is used to discourage people from registering + ), + ] + registration_warning_message: Annotated[ + str, + Field( + title="Registration Warning Message", + description="""Registration warning message is used to discourage people from registering multiple accounts. Applies mostly for the main Galaxy instance. If no message specified the warning box will not be shown. """, - ) - user_activation_on: Optional[bool] = Field( - None, - title="User Activation On", - description="""User account activation feature global flag. If set to false, the rest of + ), + ] = "Please register only one account - we provide this service free of charge and have limited computational resources. Multi-accounts are tracked and will be subjected to account termination and data deletion." + user_activation_on: Annotated[ + bool, + Field( + title="User Activation On", + description="""User account activation feature global flag. If set to false, the rest of the Account activation configuration is ignored and user activation is disabled (i.e. accounts are active since registration). The activation is also not working in case the SMTP server is not defined. """, - ) - activation_grace_period: Optional[int] = Field( - None, - title="Activation Grace Period", - description="""Activation grace period (in hours). Activation is not forced (login is not + ), + ] = False + activation_grace_period: Annotated[ + int, + Field( + title="Activation Grace Period", + description="""Activation grace period (in hours). Activation is not forced (login is not disabled) until grace period has passed. Users under grace period can't run jobs. Enter 0 to disable grace period. """, - ) - inactivity_box_content: Optional[str] = Field( - None, - title="Inactivity Box Content", - description="""Shown in warning box to users that were not activated yet. + ), + ] = 3 + inactivity_box_content: Annotated[ + str, + Field( + title="Inactivity Box Content", + description="""Shown in warning box to users that were not activated yet. In use only if activation_grace_period is set. """, - ) - password_expiration_period: Optional[int] = Field( - None, - title="Password Expiration Period", - description="""Password expiration period (in days). Users are required to change their + ), + ] = "Your account has not been activated yet. Feel free to browse around and see what's available, but you won't be able to upload data or run jobs until you have verified your email address." + password_expiration_period: Annotated[ + int, + Field( + title="Password Expiration Period", + description="""Password expiration period (in days). Users are required to change their password every x days. Users will be redirected to the change password screen when they log in after their password expires. Enter 0 to disable password expiration. """, - ) - enable_account_interface: Optional[bool] = Field( - None, - title="Enable Account Interface", - description="""Allow users to manage their account data, change passwords or delete their + ), + ] = 0 + enable_account_interface: Annotated[ + bool, + Field( + title="Enable Account Interface", + description="""Allow users to manage their account data, change passwords or delete their accounts. """, - ) - session_duration: Optional[int] = Field( - None, - title="Session Duration", - description="""Galaxy Session Timeout + ), + ] = True + session_duration: Annotated[ + int, + Field( + title="Session Duration", + description="""Galaxy Session Timeout This provides a timeout (in minutes) after which a user will have to log back in. A duration of 0 disables this feature. """, - ) - ga_code: Optional[str] = Field( - None, - title="Ga Code", - description="""You can enter tracking code here to track visitor's behavior + ), + ] = 0 + ga_code: Annotated[ + str, + Field( + title="Ga Code", + description="""You can enter tracking code here to track visitor's behavior through your Google Analytics account. Example: UA-XXXXXXXX-Y """, - ) - plausible_server: Optional[str] = Field( - None, - title="Plausible Server", - description="""Please enter the URL for the Plausible server (including https) so this can be used for tracking + ), + ] + plausible_server: Annotated[ + str, + Field( + title="Plausible Server", + description="""Please enter the URL for the Plausible server (including https) so this can be used for tracking with Plausible (https://plausible.io/). """, - ) - plausible_domain: Optional[str] = Field( - None, - title="Plausible Domain", - description="""Please enter the URL for the Galaxy server so this can be used for tracking + ), + ] + plausible_domain: Annotated[ + str, + Field( + title="Plausible Domain", + description="""Please enter the URL for the Galaxy server so this can be used for tracking with Plausible (https://plausible.io/). """, - ) - matomo_server: Optional[str] = Field( - None, - title="Matomo Server", - description="""Please enter the URL for the Matomo server (including https) so this can be used for tracking + ), + ] + matomo_server: Annotated[ + str, + Field( + title="Matomo Server", + description="""Please enter the URL for the Matomo server (including https) so this can be used for tracking with Matomo (https://matomo.org/). """, - ) - matomo_site_id: Optional[str] = Field( - None, - title="Matomo Site Id", - description="""Please enter the site ID for the Matomo server so this can be used for tracking + ), + ] + matomo_site_id: Annotated[ + str, + Field( + title="Matomo Site Id", + description="""Please enter the site ID for the Matomo server so this can be used for tracking with Matomo (https://matomo.org/). """, - ) - display_servers: Optional[str] = Field( - None, - title="Display Servers", - description="""Galaxy can display data at various external browsers. These options specify + ), + ] + display_servers: Annotated[ + str, + Field( + title="Display Servers", + description="""Galaxy can display data at various external browsers. These options specify which browsers should be available. URLs and builds available at these browsers are defined in the specified files. @@ -1206,11 +1489,13 @@ class GalaxyConfigModel(Model): display sites to bypass security (you must uncomment the line below to allow them). """, - ) - enable_old_display_applications: Optional[bool] = Field( - None, - title="Enable Old Display Applications", - description="""Set this to false to disable the old-style display applications that + ), + ] = "hgw1.cse.ucsc.edu,hgw2.cse.ucsc.edu,hgw3.cse.ucsc.edu,hgw4.cse.ucsc.edu,hgw5.cse.ucsc.edu,hgw6.cse.ucsc.edu,hgw7.cse.ucsc.edu,hgw8.cse.ucsc.edu,lowepub.cse.ucsc.edu" + enable_old_display_applications: Annotated[ + bool, + Field( + title="Enable Old Display Applications", + description="""Set this to false to disable the old-style display applications that are hardcoded into datatype classes. This may be desirable due to using the new-style, XML-defined, display applications that have been defined for many of the datatypes that have the @@ -1220,141 +1505,179 @@ class GalaxyConfigModel(Model): Galaxy server, but contains a redirect to a third-party server, tricking a Galaxy user to access said site. """, - ) - aws_estimate: Optional[bool] = Field( - None, - title="Aws Estimate", - description="""This flag enables an AWS cost estimate for every job based on their runtime matrices. + ), + ] = True + aws_estimate: Annotated[ + bool, + Field( + title="Aws Estimate", + description="""This flag enables an AWS cost estimate for every job based on their runtime matrices. CPU, RAM and runtime usage is mapped against AWS pricing table. Please note, that those numbers are only estimates. """, - ) - carbon_emission_estimates: Optional[bool] = Field( - None, - title="Carbon Emission Estimates", - description="""This flag enables carbon emissions estimates for every job based on its runtime metrics. + ), + ] = False + carbon_emission_estimates: Annotated[ + bool, + Field( + title="Carbon Emission Estimates", + description="""This flag enables carbon emissions estimates for every job based on its runtime metrics. CPU and RAM usage and the total job runtime are used to determine an estimate value. These estimates and are based off of the work of the Green Algorithms Project and the United States Environmental Protection Agency (EPA). Visit https://www.green-algorithms.org/ and https://www.epa.gov/energy/greenhouse-gas-equivalencies-calculator. for more detals. """, - ) - geographical_server_location_code: Optional[str] = Field( - None, - title="Geographical Server Location Code", - description="""The estimated geographical location of the server hosting your galaxy instance given as an ISO 3166 code. + ), + ] = True + geographical_server_location_code: Annotated[ + str, + Field( + title="Geographical Server Location Code", + description="""The estimated geographical location of the server hosting your galaxy instance given as an ISO 3166 code. This is used to make carbon emissions estimates more accurate as the location effects the carbon intensity values used in the estimate calculation. This defaults to "GLOBAL" if not set or the `geographical_server_location_code` value is invalid or unsupported. To see a full list of supported locations, visit https://galaxyproject.org/admin/carbon_emissions """, - ) - power_usage_effectiveness: Optional[float] = Field( - None, - title="Power Usage Effectiveness", - description="""The estimated power usage effectiveness of the data centre housing the server your galaxy + ), + ] = "GLOBAL" + power_usage_effectiveness: Annotated[ + float, + Field( + title="Power Usage Effectiveness", + description="""The estimated power usage effectiveness of the data centre housing the server your galaxy instance is running on. This can make carbon emissions estimates more accurate. For more information on how to calculate a PUE value, visit https://en.wikipedia.org/wiki/Power_usage_effectiveness """, - ) - interactivetools_enable: Optional[bool] = Field( - None, - title="Interactivetools Enable", - description="""Enable InteractiveTools. -""", - ) - interactivetools_upstream_proxy: Optional[bool] = Field( - None, - title="Interactivetools Upstream Proxy", - description="""Set this to false to redirect users of Interactive tools directly to the Interactive tools proxy. `interactivetools_upstream_proxy` should only be set to false in development.""", - ) - interactivetools_proxy_host: Optional[str] = Field( - None, - title="Interactivetools Proxy Host", - description="""Hostname and port of Interactive tools proxy. It is assumed to be hosted on the same hostname and port as + ), + ] = 1.67 + interactivetools_enable: Annotated[ + bool, + Field( + title="Interactivetools Enable", + description="""Enable InteractiveTools. +""", + ), + ] = False + interactivetools_upstream_proxy: Annotated[ + bool, + Field( + title="Interactivetools Upstream Proxy", + description="""Set this to false to redirect users of Interactive tools directly to the Interactive tools proxy. `interactivetools_upstream_proxy` should only be set to false in development.""", + ), + ] = True + interactivetools_proxy_host: Annotated[ + str, + Field( + title="Interactivetools Proxy Host", + description="""Hostname and port of Interactive tools proxy. It is assumed to be hosted on the same hostname and port as Galaxy by default. """, - ) - interactivetools_base_path: Optional[str] = Field( - None, - title="Interactivetools Base Path", - description="""Base path for interactive tools running at a subpath without a subdomain. Defaults to "/". -""", - ) - interactivetools_map: Optional[str] = Field( - None, - title="Interactivetools Map", - description="""Map for interactivetool proxy. -""", - ) - interactivetools_prefix: Optional[str] = Field( - None, - title="Interactivetools Prefix", - description="""Prefix to use in the formation of the subdomain or path for interactive tools -""", - ) - interactivetools_shorten_url: Optional[bool] = Field( - None, - title="Interactivetools Shorten Url", - description="""Shorten the uuid portion of the subdomain or path for interactive tools. + ), + ] + interactivetools_base_path: Annotated[ + str, + Field( + title="Interactivetools Base Path", + description="""Base path for interactive tools running at a subpath without a subdomain. Defaults to "/". +""", + ), + ] = "/" + interactivetools_map: Annotated[ + str, + Field( + title="Interactivetools Map", + description="""Map for interactivetool proxy. +""", + ), + ] = "interactivetools_map.sqlite" + interactivetools_prefix: Annotated[ + str, + Field( + title="Interactivetools Prefix", + description="""Prefix to use in the formation of the subdomain or path for interactive tools +""", + ), + ] = "interactivetool" + interactivetools_shorten_url: Annotated[ + bool, + Field( + title="Interactivetools Shorten Url", + description="""Shorten the uuid portion of the subdomain or path for interactive tools. Especially useful for avoiding the need for wildcard certificates by keeping subdomain under 63 chars """, - ) - retry_interactivetool_metadata_internally: Optional[bool] = Field( - None, - title="Retry Interactivetool Metadata Internally", - description="""Galaxy Interactive Tools (GxITs) can be stopped from within the Galaxy + ), + ] = False + retry_interactivetool_metadata_internally: Annotated[ + bool, + Field( + title="Retry Interactivetool Metadata Internally", + description="""Galaxy Interactive Tools (GxITs) can be stopped from within the Galaxy interface, killing the GxIT job without completing its metadata setting post-job steps. In such a case it may be desirable to set metadata on job outputs internally (in the Galaxy job handler process). The default is is the value of `retry_metadata_internally`, which defaults to `true`. """, - ) - visualizations_visible: Optional[bool] = Field( - None, - title="Visualizations Visible", - description="""Show visualization tab and list in masthead. -""", - ) - message_box_visible: Optional[bool] = Field( - None, - title="Message Box Visible", - description="""Show a message box under the masthead. -""", - ) - message_box_content: Optional[str] = Field( - None, - title="Message Box Content", - description="""Show a message box under the masthead. -""", - ) - message_box_class: Optional[str] = Field( - None, - title="Message Box Class", - description="""Class of the message box under the masthead. Possible values are: + ), + ] = True + visualizations_visible: Annotated[ + bool, + Field( + title="Visualizations Visible", + description="""Show visualization tab and list in masthead. +""", + ), + ] = True + message_box_visible: Annotated[ + bool, + Field( + title="Message Box Visible", + description="""Show a message box under the masthead. +""", + ), + ] = False + message_box_content: Annotated[ + str, + Field( + title="Message Box Content", + description="""Show a message box under the masthead. +""", + ), + ] + message_box_class: Annotated[ + str, + Field( + title="Message Box Class", + description="""Class of the message box under the masthead. Possible values are: 'info' (the default), 'warning', 'error', 'done'. """, - ) - brand: Optional[str] = Field( - None, - title="Brand", - description="""Append "{brand}" text to the masthead. -""", - ) - display_galaxy_brand: Optional[bool] = Field( - None, - title="Display Galaxy Brand", - description="""This option has been deprecated, use the `logo_src` instead to change the + ), + ] = "info" + brand: Annotated[ + str, + Field( + title="Brand", + description="""Append "{brand}" text to the masthead. +""", + ), + ] + display_galaxy_brand: Annotated[ + bool, + Field( + title="Display Galaxy Brand", + description="""This option has been deprecated, use the `logo_src` instead to change the default logo including the galaxy brand title. """, - ) - pretty_datetime_format: Optional[str] = Field( - None, - title="Pretty Datetime Format", - description="""Format string used when showing date and time information. + ), + ] = True + pretty_datetime_format: Annotated[ + str, + Field( + title="Pretty Datetime Format", + description="""Format string used when showing date and time information. The string may contain: - the directives used by Python time.strftime() function (see https://docs.python.org/library/time.html#time.strftime), @@ -1362,11 +1685,13 @@ class GalaxyConfigModel(Model): - $iso8601 (complete format string as specified by ISO 8601 international standard). """, - ) - trs_servers_config_file: Optional[str] = Field( - None, - title="Trs Servers Config File", - description="""Allow import of workflows from the TRS servers configured in + ), + ] = "$locale (UTC)" + trs_servers_config_file: Annotated[ + str, + Field( + title="Trs Servers Config File", + description="""Allow import of workflows from the TRS servers configured in the specified YAML or JSON file. The file should be a list with 'id', 'label', and 'api_url' for each entry. Optionally, 'link_url' and 'doc' may be be specified as well for each entry. @@ -1374,35 +1699,43 @@ class GalaxyConfigModel(Model): If this is null (the default), a simple configuration containing just Dockstore will be used. """, - ) - user_preferences_extra_conf_path: Optional[str] = Field( - None, - title="User Preferences Extra Conf Path", - description="""Location of the configuration file containing extra user preferences. -""", - ) - default_locale: Optional[str] = Field( - None, - title="Default Locale", - description="""Default localization for Galaxy UI. + ), + ] = "trs_servers_conf.yml" + user_preferences_extra_conf_path: Annotated[ + str, + Field( + title="User Preferences Extra Conf Path", + description="""Location of the configuration file containing extra user preferences. +""", + ), + ] = "user_preferences_extra_conf.yml" + default_locale: Annotated[ + str, + Field( + title="Default Locale", + description="""Default localization for Galaxy UI. Allowed values are listed at the end of client/src/nls/locale.js. With the default value (auto), the locale will be automatically adjusted to the user's navigator language. Users can override this settings in their user preferences if the localization settings are enabled in user_preferences_extra_conf.yml """, - ) - galaxy_url_prefix: Optional[str] = Field( - None, - title="Galaxy Url Prefix", - description="""URL prefix for Galaxy application. If Galaxy should be served under a prefix set this to + ), + ] = "auto" + galaxy_url_prefix: Annotated[ + str, + Field( + title="Galaxy Url Prefix", + description="""URL prefix for Galaxy application. If Galaxy should be served under a prefix set this to the desired prefix value. """, - ) - galaxy_infrastructure_url: Optional[str] = Field( - None, - title="Galaxy Infrastructure Url", - description="""URL (with schema http/https) of the Galaxy instance as accessible + ), + ] = "/" + galaxy_infrastructure_url: Annotated[ + str, + Field( + title="Galaxy Infrastructure Url", + description="""URL (with schema http/https) of the Galaxy instance as accessible within your local network. This URL is used as a default by pulsar file staging and Interactive Tool containers for communicating back with Galaxy via the API. @@ -1410,11 +1743,13 @@ class GalaxyConfigModel(Model): If you plan to run Interactive Tools make sure the docker container can reach this URL. """, - ) - galaxy_infrastructure_web_port: Optional[int] = Field( - None, - title="Galaxy Infrastructure Web Port", - description="""If the above URL cannot be determined ahead of time in dynamic environments + ), + ] = "http://localhost:8080" + galaxy_infrastructure_web_port: Annotated[ + int, + Field( + title="Galaxy Infrastructure Web Port", + description="""If the above URL cannot be determined ahead of time in dynamic environments but the port which should be used to access Galaxy can be - this should be set to prevent Galaxy from having to guess. For example if Galaxy is sitting behind a proxy with REMOTE_USER enabled - infrastructure shouldn't talk to @@ -1422,201 +1757,253 @@ class GalaxyConfigModel(Model): unset this file will be read for a server block defining a port corresponding to the webapp. """, - ) - welcome_url: Optional[str] = Field( - None, - title="Welcome Url", - description="""The URL of the page to display in Galaxy's middle pane when loaded. This can + ), + ] = 8080 + welcome_url: Annotated[ + str, + Field( + title="Welcome Url", + description="""The URL of the page to display in Galaxy's middle pane when loaded. This can be an absolute or relative URL. """, - ) - logo_url: Optional[str] = Field( - None, - title="Logo Url", - description="""The URL linked by the "Galaxy/brand" text. -""", - ) - logo_src: Optional[str] = Field( - None, - title="Logo Src", - description="""The brand image source. -""", - ) - logo_src_secondary: Optional[str] = Field( - None, - title="Logo Src Secondary", - description="""The custom brand image source. -""", - ) - helpsite_url: str = Field( - "https://help.galaxyproject.org/", - title="Helpsite Url", - description="""The URL linked by the "Galaxy Help" link in the "Help" menu. -""", - ) - wiki_url: Optional[str] = Field( - None, - title="Wiki Url", - description="""The URL linked by the "Community Hub" link in the "Help" menu. -""", - ) - quota_url: Optional[str] = Field( - None, - title="Quota Url", - description="""The URL linked for quota information in the UI. -""", - ) - support_url: Optional[str] = Field( - None, - title="Support Url", - description="""The URL linked by the "Support" link in the "Help" menu. -""", - ) - citation_url: Optional[str] = Field( - None, - title="Citation Url", - description="""The URL linked by the "How to Cite Galaxy" link in the "Help" menu. -""", - ) - release_doc_base_url: Optional[str] = Field( - None, - title="Release Doc Base Url", - description="""The URL linked by the "Galaxy Version" link in the "Help" menu. -""", - ) - screencasts_url: Optional[str] = Field( - None, - title="Screencasts Url", - description="""The URL linked by the "Videos" link in the "Help" menu. -""", - ) - terms_url: Optional[str] = Field( - None, - title="Terms Url", - description="""The URL linked by the "Terms and Conditions" link in the "Help" menu, as well + ), + ] = "/static/welcome.html" + logo_url: Annotated[ + str, + Field( + title="Logo Url", + description="""The URL linked by the "Galaxy/brand" text. +""", + ), + ] = "/" + logo_src: Annotated[ + str, + Field( + title="Logo Src", + description="""The brand image source. +""", + ), + ] = "/static/favicon.svg" + logo_src_secondary: Annotated[ + str, + Field( + title="Logo Src Secondary", + description="""The custom brand image source. +""", + ), + ] + helpsite_url: Annotated[ + str, + Field( + title="Helpsite Url", + description="""The URL linked by the "Galaxy Help" link in the "Help" menu. +""", + ), + ] = "https://help.galaxyproject.org/" + wiki_url: Annotated[ + str, + Field( + title="Wiki Url", + description="""The URL linked by the "Community Hub" link in the "Help" menu. +""", + ), + ] = "https://galaxyproject.org/" + quota_url: Annotated[ + str, + Field( + title="Quota Url", + description="""The URL linked for quota information in the UI. +""", + ), + ] = "https://galaxyproject.org/support/account-quotas/" + support_url: Annotated[ + str, + Field( + title="Support Url", + description="""The URL linked by the "Support" link in the "Help" menu. +""", + ), + ] = "https://galaxyproject.org/support/" + citation_url: Annotated[ + str, + Field( + title="Citation Url", + description="""The URL linked by the "How to Cite Galaxy" link in the "Help" menu. +""", + ), + ] = "https://galaxyproject.org/citing-galaxy" + release_doc_base_url: Annotated[ + str, + Field( + title="Release Doc Base Url", + description="""The URL linked by the "Galaxy Version" link in the "Help" menu. +""", + ), + ] = "https://docs.galaxyproject.org/en/release_" + screencasts_url: Annotated[ + str, + Field( + title="Screencasts Url", + description="""The URL linked by the "Videos" link in the "Help" menu. +""", + ), + ] = "https://www.youtube.com/c/galaxyproject" + terms_url: Annotated[ + str, + Field( + title="Terms Url", + description="""The URL linked by the "Terms and Conditions" link in the "Help" menu, as well as on the user registration and login forms and in the activation emails. """, - ) - static_enabled: Optional[bool] = Field( - None, - title="Static Enabled", - description="""Serve static content, which must be enabled if you're not serving it via a + ), + ] + static_enabled: Annotated[ + bool, + Field( + title="Static Enabled", + description="""Serve static content, which must be enabled if you're not serving it via a proxy server. These options should be self explanatory and so are not documented individually. You can use these paths (or ones in the proxy server) to point to your own styles. """, - ) - static_cache_time: Optional[int] = Field( - None, - title="Static Cache Time", - description="""Serve static content, which must be enabled if you're not serving it via a + ), + ] = True + static_cache_time: Annotated[ + int, + Field( + title="Static Cache Time", + description="""Serve static content, which must be enabled if you're not serving it via a proxy server. These options should be self explanatory and so are not documented individually. You can use these paths (or ones in the proxy server) to point to your own styles. """, - ) - static_dir: Optional[str] = Field( - None, - title="Static Dir", - description="""Serve static content, which must be enabled if you're not serving it via a + ), + ] = 360 + static_dir: Annotated[ + str, + Field( + title="Static Dir", + description="""Serve static content, which must be enabled if you're not serving it via a proxy server. These options should be self explanatory and so are not documented individually. You can use these paths (or ones in the proxy server) to point to your own styles. """, - ) - static_images_dir: Optional[str] = Field( - None, - title="Static Images Dir", - description="""Serve static content, which must be enabled if you're not serving it via a + ), + ] = "static/" + static_images_dir: Annotated[ + str, + Field( + title="Static Images Dir", + description="""Serve static content, which must be enabled if you're not serving it via a proxy server. These options should be self explanatory and so are not documented individually. You can use these paths (or ones in the proxy server) to point to your own styles. """, - ) - static_favicon_dir: Optional[str] = Field( - None, - title="Static Favicon Dir", - description="""Serve static content, which must be enabled if you're not serving it via a + ), + ] = "static/images" + static_favicon_dir: Annotated[ + str, + Field( + title="Static Favicon Dir", + description="""Serve static content, which must be enabled if you're not serving it via a proxy server. These options should be self explanatory and so are not documented individually. You can use these paths (or ones in the proxy server) to point to your own styles. """, - ) - static_scripts_dir: Optional[str] = Field( - None, - title="Static Scripts Dir", - description="""Serve static content, which must be enabled if you're not serving it via a + ), + ] = "static/favicon.ico" + static_scripts_dir: Annotated[ + str, + Field( + title="Static Scripts Dir", + description="""Serve static content, which must be enabled if you're not serving it via a proxy server. These options should be self explanatory and so are not documented individually. You can use these paths (or ones in the proxy server) to point to your own styles. """, - ) - static_style_dir: Optional[str] = Field( - None, - title="Static Style Dir", - description="""Serve static content, which must be enabled if you're not serving it via a + ), + ] = "static/scripts/" + static_style_dir: Annotated[ + str, + Field( + title="Static Style Dir", + description="""Serve static content, which must be enabled if you're not serving it via a proxy server. These options should be self explanatory and so are not documented individually. You can use these paths (or ones in the proxy server) to point to your own styles. """, - ) - static_robots_txt: Optional[str] = Field( - None, - title="Static Robots Txt", - description="""Serve static content, which must be enabled if you're not serving it via a + ), + ] = "static/style" + static_robots_txt: Annotated[ + str, + Field( + title="Static Robots Txt", + description="""Serve static content, which must be enabled if you're not serving it via a proxy server. These options should be self explanatory and so are not documented individually. You can use these paths (or ones in the proxy server) to point to your own styles. """, - ) - display_chunk_size: Optional[int] = Field( - None, - title="Display Chunk Size", - description="""Incremental Display Options -""", - ) - apache_xsendfile: Optional[bool] = Field( - None, - title="Apache Xsendfile", - description="""For help on configuring the Advanced proxy features, see: + ), + ] = "static/robots.txt" + display_chunk_size: Annotated[ + int, + Field( + title="Display Chunk Size", + description="""Incremental Display Options +""", + ), + ] = 65536 + apache_xsendfile: Annotated[ + bool, + Field( + title="Apache Xsendfile", + description="""For help on configuring the Advanced proxy features, see: https://docs.galaxyproject.org/en/master/admin/production.html Apache can handle file downloads (Galaxy-to-user) via mod_xsendfile. Set this to true to inform Galaxy that mod_xsendfile is enabled upstream. """, - ) - nginx_x_accel_redirect_base: Optional[str] = Field( - None, - title="Nginx X Accel Redirect Base", - description="""The same download handling can be done by nginx using X-Accel-Redirect. This + ), + ] = False + nginx_x_accel_redirect_base: Annotated[ + str, + Field( + title="Nginx X Accel Redirect Base", + description="""The same download handling can be done by nginx using X-Accel-Redirect. This should be set to the path defined in the nginx config as an internal redirect with access to Galaxy's data files (see documentation linked above). """, - ) - upstream_gzip: Optional[bool] = Field( - None, - title="Upstream Gzip", - description="""If using compression in the upstream proxy server, use this option to disable + ), + ] + upstream_gzip: Annotated[ + bool, + Field( + title="Upstream Gzip", + description="""If using compression in the upstream proxy server, use this option to disable gzipping of dataset collection and library archives, since the upstream server will do it faster on the fly. To enable compression add ``application/zip`` to the proxy's compressable mimetypes. """, - ) - upstream_mod_zip: Optional[bool] = Field( - None, - title="Upstream Mod Zip", - description="""If using the mod-zip module in nginx, use this option to assemble + ), + ] = False + upstream_mod_zip: Annotated[ + bool, + Field( + title="Upstream Mod Zip", + description="""If using the mod-zip module in nginx, use this option to assemble zip archives in nginx. This is preferable over the upstream_gzip option as Galaxy does not need to serve the archive. Requires setting up internal nginx locations to all paths that can be archived. See https://docs.galaxyproject.org/en/master/admin/nginx.html#creating-archives-with-mod-zip for details. """, - ) - x_frame_options: Optional[str] = Field( - None, - title="X Frame Options", - description="""The following default adds a header to web request responses that + ), + ] = False + x_frame_options: Annotated[ + str, + Field( + title="X Frame Options", + description="""The following default adds a header to web request responses that will cause modern web browsers to not allow Galaxy to be embedded in the frames of web applications hosted at other hosts - this can help prevent a class of attack called clickjacking @@ -1625,328 +2012,410 @@ class GalaxyConfigModel(Model): to protect your users. Uncomment and leave empty to not set the `X-Frame-Options` header. """, - ) - nginx_upload_store: Optional[str] = Field( - None, - title="Nginx Upload Store", - description="""nginx can also handle file uploads (user-to-Galaxy) via nginx_upload_module. + ), + ] = "SAMEORIGIN" + nginx_upload_store: Annotated[ + str, + Field( + title="Nginx Upload Store", + description="""nginx can also handle file uploads (user-to-Galaxy) via nginx_upload_module. Configuration for this is complex and explained in detail in the documentation linked above. The upload store is a temporary directory in which files uploaded by the upload module will be placed. """, - ) - nginx_upload_path: Optional[str] = Field( - None, - title="Nginx Upload Path", - description="""This value overrides the action set on the file upload form, e.g. the web + ), + ] + nginx_upload_path: Annotated[ + str, + Field( + title="Nginx Upload Path", + description="""This value overrides the action set on the file upload form, e.g. the web path where the nginx_upload_module has been configured to intercept upload requests. """, - ) - nginx_upload_job_files_store: Optional[str] = Field( - None, - title="Nginx Upload Job Files Store", - description="""Galaxy can also use nginx_upload_module to receive files staged out upon job + ), + ] + nginx_upload_job_files_store: Annotated[ + str, + Field( + title="Nginx Upload Job Files Store", + description="""Galaxy can also use nginx_upload_module to receive files staged out upon job completion by remote job runners (i.e. Pulsar) that initiate staging operations on the remote end. See the Galaxy nginx documentation for the corresponding nginx configuration. """, - ) - nginx_upload_job_files_path: Optional[str] = Field( - None, - title="Nginx Upload Job Files Path", - description="""Galaxy can also use nginx_upload_module to receive files staged out upon job + ), + ] + nginx_upload_job_files_path: Annotated[ + str, + Field( + title="Nginx Upload Job Files Path", + description="""Galaxy can also use nginx_upload_module to receive files staged out upon job completion by remote job runners (i.e. Pulsar) that initiate staging operations on the remote end. See the Galaxy nginx documentation for the corresponding nginx configuration. """, - ) - tus_upload_store: Optional[str] = Field( - None, - title="Tus Upload Store", - description="""The upload store is a temporary directory in which files uploaded by the + ), + ] + tus_upload_store: Annotated[ + str, + Field( + title="Tus Upload Store", + description="""The upload store is a temporary directory in which files uploaded by the tus middleware or server will be placed. Defaults to new_file_path if not set. """, - ) - chunk_upload_size: Optional[int] = Field( - None, - title="Chunk Upload Size", - description="""Galaxy can upload user files in chunks without using nginx. Enable the chunk + ), + ] + chunk_upload_size: Annotated[ + int, + Field( + title="Chunk Upload Size", + description="""Galaxy can upload user files in chunks without using nginx. Enable the chunk uploader by specifying a chunk size larger than 0. The chunk size is specified in bytes (default: 10MB). """, - ) - dynamic_proxy_manage: Optional[bool] = Field( - None, - title="Dynamic Proxy Manage", - description="""Have Galaxy manage dynamic proxy component for routing requests to other + ), + ] = 10485760 + dynamic_proxy_manage: Annotated[ + bool, + Field( + title="Dynamic Proxy Manage", + description="""Have Galaxy manage dynamic proxy component for routing requests to other services based on Galaxy's session cookie. It will attempt to do this by default though you do need to install node+npm and do an npm install from `lib/galaxy/web/proxy/js`. It is generally more robust to configure this externally, managing it in the same way Galaxy itself is managed. If true, Galaxy will only launch the proxy if it is actually going to be used (e.g. for Jupyter). """, - ) - dynamic_proxy: Optional[str] = Field( - None, - title="Dynamic Proxy", - description="""As of 16.04 Galaxy supports multiple proxy types. The original NodeJS + ), + ] = True + dynamic_proxy: Annotated[ + str, + Field( + title="Dynamic Proxy", + description="""As of 16.04 Galaxy supports multiple proxy types. The original NodeJS implementation, alongside a new Golang single-binary-no-dependencies version. Valid values are (node, golang) """, - ) - dynamic_proxy_session_map: Optional[str] = Field( - None, - title="Dynamic Proxy Session Map", - description="""The NodeJS dynamic proxy can use an SQLite database or a JSON file for IPC, + ), + ] = "node" + dynamic_proxy_session_map: Annotated[ + str, + Field( + title="Dynamic Proxy Session Map", + description="""The NodeJS dynamic proxy can use an SQLite database or a JSON file for IPC, set that here. """, - ) - dynamic_proxy_bind_port: Optional[int] = Field( - None, - title="Dynamic Proxy Bind Port", - description="""Set the port and IP for the dynamic proxy to bind to, this must match + ), + ] = "session_map.sqlite" + dynamic_proxy_bind_port: Annotated[ + int, + Field( + title="Dynamic Proxy Bind Port", + description="""Set the port and IP for the dynamic proxy to bind to, this must match the external configuration if dynamic_proxy_manage is set to false. """, - ) - dynamic_proxy_bind_ip: Optional[str] = Field( - None, - title="Dynamic Proxy Bind Ip", - description="""Set the port and IP for the dynamic proxy to bind to, this must match + ), + ] = 8800 + dynamic_proxy_bind_ip: Annotated[ + str, + Field( + title="Dynamic Proxy Bind Ip", + description="""Set the port and IP for the dynamic proxy to bind to, this must match the external configuration if dynamic_proxy_manage is set to false. """, - ) - dynamic_proxy_debug: Optional[bool] = Field( - None, - title="Dynamic Proxy Debug", - description="""Enable verbose debugging of Galaxy-managed dynamic proxy. -""", - ) - dynamic_proxy_external_proxy: Optional[bool] = Field( - None, - title="Dynamic Proxy External Proxy", - description="""The dynamic proxy is proxied by an external proxy (e.g. apache frontend to + ), + ] = "0.0.0.0" + dynamic_proxy_debug: Annotated[ + bool, + Field( + title="Dynamic Proxy Debug", + description="""Enable verbose debugging of Galaxy-managed dynamic proxy. +""", + ), + ] = False + dynamic_proxy_external_proxy: Annotated[ + bool, + Field( + title="Dynamic Proxy External Proxy", + description="""The dynamic proxy is proxied by an external proxy (e.g. apache frontend to nodejs to wrap connections in SSL). """, - ) - dynamic_proxy_prefix: Optional[str] = Field( - None, - title="Dynamic Proxy Prefix", - description="""Additionally, when the dynamic proxy is proxied by an upstream server, you'll + ), + ] = False + dynamic_proxy_prefix: Annotated[ + str, + Field( + title="Dynamic Proxy Prefix", + description="""Additionally, when the dynamic proxy is proxied by an upstream server, you'll want to specify a prefixed URL so both Galaxy and the proxy reside under the same path that your cookies are under. This will result in a url like https://FQDN/galaxy-prefix/gie_proxy for proxying """, - ) - dynamic_proxy_golang_noaccess: Optional[int] = Field( - None, - title="Dynamic Proxy Golang Noaccess", - description="""This attribute governs the minimum length of time between consecutive HTTP/WS + ), + ] = "gie_proxy" + dynamic_proxy_golang_noaccess: Annotated[ + int, + Field( + title="Dynamic Proxy Golang Noaccess", + description="""This attribute governs the minimum length of time between consecutive HTTP/WS requests through the proxy, before the proxy considers a container as being inactive and kills it. """, - ) - dynamic_proxy_golang_clean_interval: Optional[int] = Field( - None, - title="Dynamic Proxy Golang Clean Interval", - description="""In order to kill containers, the golang proxy has to check at some interval + ), + ] = 60 + dynamic_proxy_golang_clean_interval: Annotated[ + int, + Field( + title="Dynamic Proxy Golang Clean Interval", + description="""In order to kill containers, the golang proxy has to check at some interval for possibly dead containers. This is exposed as a configurable parameter, but the default value is probably fine. """, - ) - dynamic_proxy_golang_docker_address: Optional[str] = Field( - None, - title="Dynamic Proxy Golang Docker Address", - description="""The golang proxy needs to know how to talk to your docker daemon. Currently + ), + ] = 10 + dynamic_proxy_golang_docker_address: Annotated[ + str, + Field( + title="Dynamic Proxy Golang Docker Address", + description="""The golang proxy needs to know how to talk to your docker daemon. Currently TLS is not supported, that will come in an update. """, - ) - dynamic_proxy_golang_api_key: Optional[str] = Field( - None, - title="Dynamic Proxy Golang Api Key", - description="""The golang proxy uses a RESTful HTTP API for communication with Galaxy + ), + ] = "unix:///var/run/docker.sock" + dynamic_proxy_golang_api_key: Annotated[ + str, + Field( + title="Dynamic Proxy Golang Api Key", + description="""The golang proxy uses a RESTful HTTP API for communication with Galaxy instead of a JSON or SQLite file for IPC. If you do not specify this, it will be set randomly for you. You should set this if you are managing the proxy manually. """, - ) - auto_configure_logging: Optional[bool] = Field( - None, - title="Auto Configure Logging", - description="""If true, Galaxy will attempt to configure a simple root logger if a + ), + ] + auto_configure_logging: Annotated[ + bool, + Field( + title="Auto Configure Logging", + description="""If true, Galaxy will attempt to configure a simple root logger if a "loggers" section does not appear in this configuration file. """, - ) - log_destination: Optional[str] = Field( - None, - title="Log Destination", - description="""Log destination, defaults to special value "stdout" that logs to standard output. If set to anything else, + ), + ] = True + log_destination: Annotated[ + str, + Field( + title="Log Destination", + description="""Log destination, defaults to special value "stdout" that logs to standard output. If set to anything else, then it will be interpreted as a path that will be used as the log file, and logging to stdout will be disabled. """, - ) - log_rotate_size: Optional[str] = Field( - None, - title="Log Rotate Size", - description="""Size of log file at which size it will be rotated as per the documentation in + ), + ] = "stdout" + log_rotate_size: Annotated[ + str, + Field( + title="Log Rotate Size", + description="""Size of log file at which size it will be rotated as per the documentation in https://docs.python.org/library/logging.handlers.html#logging.handlers.RotatingFileHandler If log_rotate_count is not also set, no log rotation will be performed. A value of 0 (the default) means no rotation. Size can be a number of bytes or a human-friendly representation like "100 MB" or "1G". """, - ) - log_rotate_count: Optional[int] = Field( - None, - title="Log Rotate Count", - description="""Number of log file backups to keep, per the documentation in + ), + ] = "0" + log_rotate_count: Annotated[ + int, + Field( + title="Log Rotate Count", + description="""Number of log file backups to keep, per the documentation in https://docs.python.org/library/logging.handlers.html#logging.handlers.RotatingFileHandler Any additional rotated log files will automatically be pruned. If log_rotate_size is not also set, no log rotation will be performed. A value of 0 (the default) means no rotation. """, - ) - log_level: Optional[str] = Field( - None, - title="Log Level", - description="""Verbosity of console log messages. Acceptable values can be found here: + ), + ] = 0 + log_level: Annotated[ + str, + Field( + title="Log Level", + description="""Verbosity of console log messages. Acceptable values can be found here: https://docs.python.org/library/logging.html#logging-levels A custom debug level of "TRACE" is available for even more verbosity. """, - ) - logging: Optional[Dict[str, Any]] = Field( - None, - title="Logging", - description="""Controls where and how the server logs messages. If set, overrides all settings in the log_* configuration + ), + ] = "DEBUG" + logging: Annotated[ + Dict[str, Any], + Field( + title="Logging", + description="""Controls where and how the server logs messages. If set, overrides all settings in the log_* configuration options. Configuration is described in the documentation at: https://docs.galaxyproject.org/en/master/admin/config_logging.html """, - ) - database_engine_option_echo: Optional[bool] = Field( - None, - title="Database Engine Option Echo", - description="""Print database operations to the server log (warning, quite verbose!). -""", - ) - database_engine_option_echo_pool: Optional[bool] = Field( - None, - title="Database Engine Option Echo Pool", - description="""Print database pool operations to the server log (warning, quite verbose!). -""", - ) - log_events: Optional[bool] = Field( - None, - title="Log Events", - description="""Turn on logging of application events and some user events to the database. -""", - ) - log_actions: Optional[bool] = Field( - None, - title="Log Actions", - description="""Turn on logging of user actions to the database. Actions currently logged + ), + ] + database_engine_option_echo: Annotated[ + bool, + Field( + title="Database Engine Option Echo", + description="""Print database operations to the server log (warning, quite verbose!). +""", + ), + ] = False + database_engine_option_echo_pool: Annotated[ + bool, + Field( + title="Database Engine Option Echo Pool", + description="""Print database pool operations to the server log (warning, quite verbose!). +""", + ), + ] = False + log_events: Annotated[ + bool, + Field( + title="Log Events", + description="""Turn on logging of application events and some user events to the database. +""", + ), + ] = False + log_actions: Annotated[ + bool, + Field( + title="Log Actions", + description="""Turn on logging of user actions to the database. Actions currently logged are grid views, tool searches, and use of "recently" used tools menu. The log_events and log_actions functionality will eventually be merged. """, - ) - fluent_log: Optional[bool] = Field( - None, - title="Fluent Log", - description="""Fluentd configuration. Various events can be logged to the fluentd instance + ), + ] = False + fluent_log: Annotated[ + bool, + Field( + title="Fluent Log", + description="""Fluentd configuration. Various events can be logged to the fluentd instance configured below by enabling fluent_log. """, - ) - fluent_host: Optional[str] = Field( - None, - title="Fluent Host", - description="""Fluentd configuration. Various events can be logged to the fluentd instance + ), + ] = False + fluent_host: Annotated[ + str, + Field( + title="Fluent Host", + description="""Fluentd configuration. Various events can be logged to the fluentd instance configured below by enabling fluent_log. """, - ) - fluent_port: Optional[int] = Field( - None, - title="Fluent Port", - description="""Fluentd configuration. Various events can be logged to the fluentd instance + ), + ] = "localhost" + fluent_port: Annotated[ + int, + Field( + title="Fluent Port", + description="""Fluentd configuration. Various events can be logged to the fluentd instance configured below by enabling fluent_log. """, - ) - sanitize_all_html: Optional[bool] = Field( - None, - title="Sanitize All Html", - description="""Sanitize all HTML tool output. By default, all tool output served as + ), + ] = 24224 + sanitize_all_html: Annotated[ + bool, + Field( + title="Sanitize All Html", + description="""Sanitize all HTML tool output. By default, all tool output served as 'text/html' will be sanitized thoroughly. This can be disabled if you have special tools that require unaltered output. WARNING: disabling this does make the Galaxy instance susceptible to XSS attacks initiated by your users. """, - ) - sanitize_allowlist_file: Optional[str] = Field( - None, - title="Sanitize Allowlist File", - description="""Datasets created by tools listed in this file are trusted and will not have + ), + ] = True + sanitize_allowlist_file: Annotated[ + str, + Field( + title="Sanitize Allowlist File", + description="""Datasets created by tools listed in this file are trusted and will not have their HTML sanitized on display. This can be manually edited or manipulated through the Admin control panel -- see "Manage Allowlist" The value of this option will be resolved with respect to . """, - ) - serve_xss_vulnerable_mimetypes: Optional[bool] = Field( - None, - title="Serve Xss Vulnerable Mimetypes", - description="""By default Galaxy will serve non-HTML tool output that may potentially + ), + ] = "sanitize_allowlist.txt" + serve_xss_vulnerable_mimetypes: Annotated[ + bool, + Field( + title="Serve Xss Vulnerable Mimetypes", + description="""By default Galaxy will serve non-HTML tool output that may potentially contain browser executable JavaScript content as plain text. This will for instance cause SVG datasets to not render properly and so may be disabled by setting this option to true. """, - ) - allowed_origin_hostnames: Optional[str] = Field( - None, - title="Allowed Origin Hostnames", - description="""Return a Access-Control-Allow-Origin response header that matches the Origin + ), + ] = False + allowed_origin_hostnames: Annotated[ + str, + Field( + title="Allowed Origin Hostnames", + description="""Return a Access-Control-Allow-Origin response header that matches the Origin header of the request if that Origin hostname matches one of the strings or regular expressions listed here. This is a comma-separated list of hostname strings or regular expressions beginning and ending with /. -E.g. mysite.com,google.com,usegalaxy.org,/^[\w\.]*example\.com/ +E.g. mysite.com,google.com,usegalaxy.org,/^[\\w\\.]*example\\.com/ See: https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS """, - ) - trust_jupyter_notebook_conversion: Optional[bool] = Field( - None, - title="Trust Jupyter Notebook Conversion", - description="""Set to true to use Jupyter nbconvert to build HTML from Jupyter + ), + ] + trust_jupyter_notebook_conversion: Annotated[ + bool, + Field( + title="Trust Jupyter Notebook Conversion", + description="""Set to true to use Jupyter nbconvert to build HTML from Jupyter notebooks in Galaxy histories. This process may allow users to execute arbitrary code or serve arbitrary HTML. If enabled, Jupyter must be available and on Galaxy's PATH, to do this run `pip install jinja2 pygments jupyter` in Galaxy's virtualenv. """, - ) - debug: Optional[bool] = Field( - None, - title="Debug", - description="""Debug enables access to various config options useful for development + ), + ] = False + debug: Annotated[ + bool, + Field( + title="Debug", + description="""Debug enables access to various config options useful for development and debugging: use_lint, use_profile, and use_printdebug. It also causes the files used by PBS/SGE (submission script, output, and error) to remain on disk after the job is complete. """, - ) - use_lint: Optional[bool] = Field( - None, - title="Use Lint", - description="""Check for WSGI compliance. -""", - ) - use_profile: Optional[bool] = Field( - None, - title="Use Profile", - description="""Run the Python profiler on each request. -""", - ) - use_printdebug: Optional[bool] = Field( - None, - title="Use Printdebug", - description="""Intercept print statements and show them on the returned page. -""", - ) - monitor_thread_join_timeout: Optional[int] = Field( - None, - title="Monitor Thread Join Timeout", - description="""When stopping Galaxy cleanly, how much time to give various monitoring/polling + ), + ] = False + use_lint: Annotated[ + bool, + Field( + title="Use Lint", + description="""Check for WSGI compliance. +""", + ), + ] = False + use_profile: Annotated[ + bool, + Field( + title="Use Profile", + description="""Run the Python profiler on each request. +""", + ), + ] = False + use_printdebug: Annotated[ + bool, + Field( + title="Use Printdebug", + description="""Intercept print statements and show them on the returned page. +""", + ), + ] = True + monitor_thread_join_timeout: Annotated[ + int, + Field( + title="Monitor Thread Join Timeout", + description="""When stopping Galaxy cleanly, how much time to give various monitoring/polling threads to finish before giving up on joining them. Set to 0 to disable this and terminate without waiting. Among others, these threads include the job handler workers, which are responsible for preparing/submitting and collecting/finishing @@ -1954,157 +2423,193 @@ class GalaxyConfigModel(Model): supervisord, consider also increasing the value of `stopwaitsecs`. See the Galaxy Admin Documentation for more. """, - ) - use_heartbeat: Optional[bool] = Field( - None, - title="Use Heartbeat", - description="""Write thread status periodically to 'heartbeat.log', (careful, uses disk + ), + ] = 30 + use_heartbeat: Annotated[ + bool, + Field( + title="Use Heartbeat", + description="""Write thread status periodically to 'heartbeat.log', (careful, uses disk space rapidly!). Useful to determine why your processes may be consuming a lot of CPU. """, - ) - heartbeat_interval: Optional[int] = Field( - None, - title="Heartbeat Interval", - description="""Control the period (in seconds) between dumps. Use -1 to disable. Regardless + ), + ] = False + heartbeat_interval: Annotated[ + int, + Field( + title="Heartbeat Interval", + description="""Control the period (in seconds) between dumps. Use -1 to disable. Regardless of this setting, if use_heartbeat is enabled, you can send a Galaxy process SIGUSR1 (`kill -USR1`) to force a dump. """, - ) - heartbeat_log: Optional[str] = Field( - None, - title="Heartbeat Log", - description="""Heartbeat log filename. Can accept the template variables {server_name} and {pid} -""", - ) - sentry_dsn: Optional[str] = Field( - None, - title="Sentry Dsn", - description="""Log to Sentry + ), + ] = 20 + heartbeat_log: Annotated[ + str, + Field( + title="Heartbeat Log", + description="""Heartbeat log filename. Can accept the template variables {server_name} and {pid} +""", + ), + ] = "heartbeat_{server_name}.log" + sentry_dsn: Annotated[ + str, + Field( + title="Sentry Dsn", + description="""Log to Sentry Sentry is an open source logging and error aggregation platform. Setting sentry_dsn will enable the Sentry middleware and errors will be sent to the indicated sentry instance. This connection string is available in your sentry instance under -> Settings -> API Keys. """, - ) - sentry_event_level: Optional[str] = Field( - None, - title="Sentry Event Level", - description="""Determines the minimum log level that will be sent as an event to Sentry. + ), + ] + sentry_event_level: Annotated[ + str, + Field( + title="Sentry Event Level", + description="""Determines the minimum log level that will be sent as an event to Sentry. Possible values are DEBUG, INFO, WARNING, ERROR or CRITICAL. """, - ) - sentry_traces_sample_rate: Optional[float] = Field( - None, - title="Sentry Traces Sample Rate", - description="""Set to a number between 0 and 1. With this option set, every transaction created + ), + ] = "ERROR" + sentry_traces_sample_rate: Annotated[ + float, + Field( + title="Sentry Traces Sample Rate", + description="""Set to a number between 0 and 1. With this option set, every transaction created will have that percentage chance of being sent to Sentry. A value higher than 0 is required to analyze performance. """, - ) - sentry_ca_certs: Optional[str] = Field( - None, - title="Sentry Ca Certs", - description="""Use this option to provide the path to location of the CA (Certificate Authority) + ), + ] = 0.0 + sentry_ca_certs: Annotated[ + str, + Field( + title="Sentry Ca Certs", + description="""Use this option to provide the path to location of the CA (Certificate Authority) certificate file if the sentry server uses a self-signed certificate. """, - ) - statsd_host: Optional[str] = Field( - None, - title="Statsd Host", - description="""Log to statsd + ), + ] + statsd_host: Annotated[ + str, + Field( + title="Statsd Host", + description="""Log to statsd Statsd is an external statistics aggregator (https://github.com/etsy/statsd) Enabling the following options will cause galaxy to log request timing and other statistics to the configured statsd instance. The statsd_prefix is useful if you are running multiple Galaxy instances and want to segment statistics between them within the same aggregator. """, - ) - statsd_port: Optional[int] = Field( - None, - title="Statsd Port", - description="""Log to statsd + ), + ] + statsd_port: Annotated[ + int, + Field( + title="Statsd Port", + description="""Log to statsd Statsd is an external statistics aggregator (https://github.com/etsy/statsd) Enabling the following options will cause galaxy to log request timing and other statistics to the configured statsd instance. The statsd_prefix is useful if you are running multiple Galaxy instances and want to segment statistics between them within the same aggregator. """, - ) - statsd_prefix: Optional[str] = Field( - None, - title="Statsd Prefix", - description="""Log to statsd + ), + ] = 8125 + statsd_prefix: Annotated[ + str, + Field( + title="Statsd Prefix", + description="""Log to statsd Statsd is an external statistics aggregator (https://github.com/etsy/statsd) Enabling the following options will cause galaxy to log request timing and other statistics to the configured statsd instance. The statsd_prefix is useful if you are running multiple Galaxy instances and want to segment statistics between them within the same aggregator. """, - ) - statsd_influxdb: Optional[bool] = Field( - None, - title="Statsd Influxdb", - description="""If you are using telegraf to collect these metrics and then sending + ), + ] = "galaxy" + statsd_influxdb: Annotated[ + bool, + Field( + title="Statsd Influxdb", + description="""If you are using telegraf to collect these metrics and then sending them to InfluxDB, Galaxy can provide more nicely tagged metrics. Instead of sending prefix + dot-separated-path, Galaxy will send prefix with a tag path set to the page url """, - ) - statsd_mock_calls: Optional[bool] = Field( - None, - title="Statsd Mock Calls", - description="""Mock out statsd client calls - only used by testing infrastructure really. + ), + ] = False + statsd_mock_calls: Annotated[ + bool, + Field( + title="Statsd Mock Calls", + description="""Mock out statsd client calls - only used by testing infrastructure really. Do not set this in production environments. """, - ) - library_import_dir: Optional[str] = Field( - None, - title="Library Import Dir", - description="""Add an option to the library upload form which allows administrators to + ), + ] = False + library_import_dir: Annotated[ + str, + Field( + title="Library Import Dir", + description="""Add an option to the library upload form which allows administrators to upload a directory of files. """, - ) - user_library_import_dir: Optional[str] = Field( - None, - title="User Library Import Dir", - description="""Add an option to the library upload form which allows authorized + ), + ] + user_library_import_dir: Annotated[ + str, + Field( + title="User Library Import Dir", + description="""Add an option to the library upload form which allows authorized non-administrators to upload a directory of files. The configured directory must contain sub-directories named the same as the non-admin user's Galaxy login ( email ). The non-admin user is restricted to uploading files or sub-directories of files contained in their directory. """, - ) - user_library_import_dir_auto_creation: Optional[bool] = Field( - None, - title="User Library Import Dir Auto Creation", - description="""If user_library_import_dir is set, this option will auto create a library + ), + ] + user_library_import_dir_auto_creation: Annotated[ + bool, + Field( + title="User Library Import Dir Auto Creation", + description="""If user_library_import_dir is set, this option will auto create a library import directory for every user (based on their email) upon login. """, - ) - user_library_import_symlink_allowlist: Optional[str] = Field( - None, - title="User Library Import Symlink Allowlist", - description="""For security reasons, users may not import any files that actually lie + ), + ] = False + user_library_import_symlink_allowlist: Annotated[ + str, + Field( + title="User Library Import Symlink Allowlist", + description="""For security reasons, users may not import any files that actually lie outside of their `user_library_import_dir` (e.g. using symbolic links). A list of directories can be allowed by setting the following option (the list is comma-separated). Be aware that *any* user with library import permissions can import from anywhere in these directories (assuming they are able to create symlinks to them). """, - ) - user_library_import_check_permissions: Optional[bool] = Field( - None, - title="User Library Import Check Permissions", - description="""In conjunction or alternatively, Galaxy can restrict user library imports to + ), + ] + user_library_import_check_permissions: Annotated[ + bool, + Field( + title="User Library Import Check Permissions", + description="""In conjunction or alternatively, Galaxy can restrict user library imports to those files that the user can read (by checking basic unix permissions). For this to work, the username has to match the username on the filesystem. """, - ) - allow_path_paste: Optional[bool] = Field( - None, - title="Allow Path Paste", - description="""Allow admins to paste filesystem paths during upload. For libraries this + ), + ] = False + allow_path_paste: Annotated[ + bool, + Field( + title="Allow Path Paste", + description="""Allow admins to paste filesystem paths during upload. For libraries this adds an option to the admin library upload tool allowing admins to paste filesystem paths to files and directories in a box, and these paths will be added to a library. For history uploads, this allows pasting in paths as URIs. @@ -2112,299 +2617,373 @@ class GalaxyConfigModel(Model): implication that this will give Galaxy Admins access to anything your Galaxy user has access to. """, - ) - disable_library_comptypes: Optional[str] = Field( - None, - title="Disable Library Comptypes", - description="""Users may choose to download multiple files from a library in an archive. By + ), + ] = False + disable_library_comptypes: Annotated[ + str, + Field( + title="Disable Library Comptypes", + description="""Users may choose to download multiple files from a library in an archive. By default, Galaxy allows users to select from a few different archive formats if testing shows that Galaxy is able to create files using these formats. Specific formats can be disabled with this option, separate more than one format with commas. Available formats are currently 'zip', 'gz', and 'bz2'. """, - ) - tool_name_boost: Optional[float] = Field( - None, - title="Tool Name Boost", - description="""In tool search, a query match against a tool's name text will receive + ), + ] + tool_name_boost: Annotated[ + float, + Field( + title="Tool Name Boost", + description="""In tool search, a query match against a tool's name text will receive this score multiplier. """, - ) - tool_name_exact_multiplier: Optional[float] = Field( - None, - title="Tool Name Exact Multiplier", - description="""If a search query matches a tool name exactly, the score will be + ), + ] = 20.0 + tool_name_exact_multiplier: Annotated[ + float, + Field( + title="Tool Name Exact Multiplier", + description="""If a search query matches a tool name exactly, the score will be multiplied by this factor. """, - ) - tool_id_boost: Optional[float] = Field( - None, - title="Tool Id Boost", - description="""In tool search, a query match against a tool's ID text will receive + ), + ] = 10.0 + tool_id_boost: Annotated[ + float, + Field( + title="Tool Id Boost", + description="""In tool search, a query match against a tool's ID text will receive this score multiplier. The query must be an exact match against ID in order to be counted as a match. """, - ) - tool_section_boost: Optional[float] = Field( - None, - title="Tool Section Boost", - description="""In tool search, a query match against a tool's section text will + ), + ] = 20.0 + tool_section_boost: Annotated[ + float, + Field( + title="Tool Section Boost", + description="""In tool search, a query match against a tool's section text will receive this score multiplier. """, - ) - tool_description_boost: Optional[float] = Field( - None, - title="Tool Description Boost", - description="""In tool search, a query match against a tool's description text will + ), + ] = 3.0 + tool_description_boost: Annotated[ + float, + Field( + title="Tool Description Boost", + description="""In tool search, a query match against a tool's description text will receive this score multiplier. """, - ) - tool_label_boost: Optional[float] = Field( - None, - title="Tool Label Boost", - description="""In tool search, a query match against a tool's label text will + ), + ] = 8.0 + tool_label_boost: Annotated[ + float, + Field( + title="Tool Label Boost", + description="""In tool search, a query match against a tool's label text will receive this score multiplier. """, - ) - tool_stub_boost: Optional[float] = Field( - None, - title="Tool Stub Boost", - description="""A stub is parsed from the GUID as "owner/repo/tool_id". + ), + ] = 1.0 + tool_stub_boost: Annotated[ + float, + Field( + title="Tool Stub Boost", + description="""A stub is parsed from the GUID as "owner/repo/tool_id". In tool search, a query match against a tool's stub text will receive this score multiplier. """, - ) - tool_help_boost: Optional[float] = Field( - None, - title="Tool Help Boost", - description="""In tool search, a query match against a tool's help text will receive + ), + ] = 2.0 + tool_help_boost: Annotated[ + float, + Field( + title="Tool Help Boost", + description="""In tool search, a query match against a tool's help text will receive this score multiplier. """, - ) - tool_help_bm25f_k1: Optional[float] = Field( - None, - title="Tool Help Bm25F K1", - description="""The lower this parameter, the greater the diminishing reward for + ), + ] = 1.0 + tool_help_bm25f_k1: Annotated[ + float, + Field( + title="Tool Help Bm25F K1", + description="""The lower this parameter, the greater the diminishing reward for term frequency in the help text. A higher K1 increases the level of reward for additional occurences of a term. The default value will provide a slight increase in score for the first, second and third occurrence and little reward thereafter. """, - ) - tool_search_limit: Optional[int] = Field( - None, - title="Tool Search Limit", - description="""Limits the number of results in toolbox search. Use to set the + ), + ] = 0.5 + tool_search_limit: Annotated[ + int, + Field( + title="Tool Search Limit", + description="""Limits the number of results in toolbox search. Use to set the maximum number of tool search results to display. """, - ) - tool_enable_ngram_search: Optional[bool] = Field( - None, - title="Tool Enable Ngram Search", - description="""Disabling this will prevent partial matches on tool names. + ), + ] = 20 + tool_enable_ngram_search: Annotated[ + bool, + Field( + title="Tool Enable Ngram Search", + description="""Disabling this will prevent partial matches on tool names. Enable/disable Ngram-search for tools. It makes tool search results tolerant for spelling mistakes in the query, and will also match query substrings e.g. "genome" will match "genomics" or "metagenome". """, - ) - tool_ngram_minsize: Optional[int] = Field( - None, - title="Tool Ngram Minsize", - description="""Set minimum character length of ngrams -""", - ) - tool_ngram_maxsize: Optional[int] = Field( - None, - title="Tool Ngram Maxsize", - description="""Set maximum character length of ngrams -""", - ) - tool_ngram_factor: Optional[float] = Field( - None, - title="Tool Ngram Factor", - description="""Ngram matched scores will be multiplied by this factor. Should always + ), + ] = True + tool_ngram_minsize: Annotated[ + int, + Field( + title="Tool Ngram Minsize", + description="""Set minimum character length of ngrams +""", + ), + ] = 3 + tool_ngram_maxsize: Annotated[ + int, + Field( + title="Tool Ngram Maxsize", + description="""Set maximum character length of ngrams +""", + ), + ] = 4 + tool_ngram_factor: Annotated[ + float, + Field( + title="Tool Ngram Factor", + description="""Ngram matched scores will be multiplied by this factor. Should always be below 1, because an ngram match is a partial match of a search term. """, - ) - tool_test_data_directories: Optional[str] = Field( - None, - title="Tool Test Data Directories", - description="""Set tool test data directory. The test framework sets this value to + ), + ] = 0.2 + tool_test_data_directories: Annotated[ + str, + Field( + title="Tool Test Data Directories", + description="""Set tool test data directory. The test framework sets this value to 'test-data,https://github.com/galaxyproject/galaxy-test-data.git' which will cause Galaxy to clone down extra test data on the fly for certain tools distributed with Galaxy but this is likely not appropriate for production systems. Instead one can simply clone that repository directly and specify a path here instead of a Git HTTP repository. """, - ) - id_secret: Optional[str] = Field( - None, - title="Id Secret", - description="""Galaxy encodes various internal values when these values will be output in + ), + ] = "test-data" + id_secret: Annotated[ + str, + Field( + title="Id Secret", + description="""Galaxy encodes various internal values when these values will be output in some format (for example, in a URL or cookie). You should set a key to be used by the algorithm that encodes and decodes these values. It can be any string with a length between 5 and 56 bytes. One simple way to generate a value for this is with the shell command: python -c 'from __future__ import print_function; import time; print(time.time())' | md5sum | cut -f 1 -d ' ' """, - ) - use_remote_user: Optional[bool] = Field( - None, - title="Use Remote User", - description="""User authentication can be delegated to an upstream proxy server (usually + ), + ] = "USING THE DEFAULT IS NOT SECURE!" + use_remote_user: Annotated[ + bool, + Field( + title="Use Remote User", + description="""User authentication can be delegated to an upstream proxy server (usually Apache). The upstream proxy should set a REMOTE_USER header in the request. Enabling remote user disables regular logins. For more information, see: https://docs.galaxyproject.org/en/master/admin/special_topics/apache.html """, - ) - remote_user_maildomain: Optional[str] = Field( - None, - title="Remote User Maildomain", - description="""If use_remote_user is enabled and your external authentication + ), + ] = False + remote_user_maildomain: Annotated[ + str, + Field( + title="Remote User Maildomain", + description="""If use_remote_user is enabled and your external authentication method just returns bare usernames, set a default mail domain to be appended to usernames, to become your Galaxy usernames (email addresses). """, - ) - remote_user_header: Optional[str] = Field( - None, - title="Remote User Header", - description="""If use_remote_user is enabled, the header that the upstream proxy provides + ), + ] + remote_user_header: Annotated[ + str, + Field( + title="Remote User Header", + description="""If use_remote_user is enabled, the header that the upstream proxy provides the remote username in defaults to HTTP_REMOTE_USER (the ``HTTP_`` is prepended by WSGI). This option allows you to change the header. Note, you still need to prepend ``HTTP_`` to the header in this option, but your proxy server should *not* include ``HTTP_`` at the beginning of the header name. """, - ) - remote_user_secret: Optional[str] = Field( - None, - title="Remote User Secret", - description="""If use_remote_user is enabled, anyone who can log in to the Galaxy host may + ), + ] = "HTTP_REMOTE_USER" + remote_user_secret: Annotated[ + str, + Field( + title="Remote User Secret", + description="""If use_remote_user is enabled, anyone who can log in to the Galaxy host may impersonate any other user by simply sending the appropriate header. Thus a secret shared between the upstream proxy server, and Galaxy is required. If anyone other than the Galaxy user is using the server, then apache/nginx should pass a value in the header 'GX_SECRET' that is identical to the one below. """, - ) - remote_user_logout_href: Optional[str] = Field( - None, - title="Remote User Logout Href", - description="""If use_remote_user is enabled, you can set this to a URL that will log your + ), + ] = "USING THE DEFAULT IS NOT SECURE!" + remote_user_logout_href: Annotated[ + str, + Field( + title="Remote User Logout Href", + description="""If use_remote_user is enabled, you can set this to a URL that will log your users out. """, - ) - post_user_logout_href: Optional[str] = Field( - None, - title="Post User Logout Href", - description="""This is the default url to which users are redirected after they log out. -""", - ) - normalize_remote_user_email: Optional[bool] = Field( - None, - title="Normalize Remote User Email", - description="""If your proxy and/or authentication source does not normalize e-mail + ), + ] + post_user_logout_href: Annotated[ + str, + Field( + title="Post User Logout Href", + description="""This is the default url to which users are redirected after they log out. +""", + ), + ] = "/root/login?is_logout_redirect=true" + normalize_remote_user_email: Annotated[ + bool, + Field( + title="Normalize Remote User Email", + description="""If your proxy and/or authentication source does not normalize e-mail addresses or user names being passed to Galaxy - set this option to true to force these to lower case. """, - ) - single_user: Optional[str] = Field( - None, - title="Single User", - description="""If an e-mail address is specified here, it will hijack remote user mechanics + ), + ] = False + single_user: Annotated[ + str, + Field( + title="Single User", + description="""If an e-mail address is specified here, it will hijack remote user mechanics (``use_remote_user``) and have the webapp inject a single fixed user. This has the effect of turning Galaxy into a single user application with no login or external proxy required. Such applications should not be exposed to the world. """, - ) - admin_users: Optional[str] = Field( - None, - title="Admin Users", - description="""Administrative users - set this to a comma-separated list of valid Galaxy + ), + ] + admin_users: Annotated[ + str, + Field( + title="Admin Users", + description="""Administrative users - set this to a comma-separated list of valid Galaxy users (email addresses). These users will have access to the Admin section of the server, and will have access to create users, groups, roles, libraries, and more. For more information, see: https://galaxyproject.org/admin/ """, - ) - require_login: Optional[bool] = Field( - None, - title="Require Login", - description="""Force everyone to log in (disable anonymous access). -""", - ) - show_welcome_with_login: Optional[bool] = Field( - None, - title="Show Welcome With Login", - description="""Show the site's welcome page (see welcome_url) alongside the login page + ), + ] + require_login: Annotated[ + bool, + Field( + title="Require Login", + description="""Force everyone to log in (disable anonymous access). +""", + ), + ] = False + show_welcome_with_login: Annotated[ + bool, + Field( + title="Show Welcome With Login", + description="""Show the site's welcome page (see welcome_url) alongside the login page (even if require_login is true). """, - ) - prefer_custos_login: Optional[bool] = Field( - None, - title="Prefer Custos Login", - description="""Controls the order of the login page to prefer Custos-based login and registration. -""", - ) - allow_user_creation: Optional[bool] = Field( - None, - title="Allow User Creation", - description="""Allow unregistered users to create new accounts (otherwise, they will have to + ), + ] = False + prefer_custos_login: Annotated[ + bool, + Field( + title="Prefer Custos Login", + description="""Controls the order of the login page to prefer Custos-based login and registration. +""", + ), + ] = False + allow_user_creation: Annotated[ + bool, + Field( + title="Allow User Creation", + description="""Allow unregistered users to create new accounts (otherwise, they will have to be created by an admin). """, - ) - allow_user_deletion: Optional[bool] = Field( - None, - title="Allow User Deletion", - description="""Allow administrators to delete accounts. -""", - ) - allow_user_impersonation: Optional[bool] = Field( - None, - title="Allow User Impersonation", - description="""Allow administrators to log in as other users (useful for debugging). -""", - ) - show_user_prepopulate_form: Optional[bool] = Field( - None, - title="Show User Prepopulate Form", - description="""When using LDAP for authentication, allow administrators to pre-populate users + ), + ] = True + allow_user_deletion: Annotated[ + bool, + Field( + title="Allow User Deletion", + description="""Allow administrators to delete accounts. +""", + ), + ] = False + allow_user_impersonation: Annotated[ + bool, + Field( + title="Allow User Impersonation", + description="""Allow administrators to log in as other users (useful for debugging). +""", + ), + ] = False + show_user_prepopulate_form: Annotated[ + bool, + Field( + title="Show User Prepopulate Form", + description="""When using LDAP for authentication, allow administrators to pre-populate users using an additional form on 'Create new user' """, - ) - upload_from_form_button: Optional[str] = Field( - None, - title="Upload From Form Button", - description="""If 'always-on', add another button to tool form data inputs that allow uploading + ), + ] = False + upload_from_form_button: Annotated[ + str, + Field( + title="Upload From Form Button", + description="""If 'always-on', add another button to tool form data inputs that allow uploading data from the tool form in fewer clicks (at the expense of making the form more complicated). This applies to workflows as well. Avoiding making this a boolean because we may add options such as 'in-single-form-view' or 'in-simplified-workflow-views'. https://github.com/galaxyproject/galaxy/pull/9809/files#r461889109 """, - ) - allow_user_dataset_purge: Optional[bool] = Field( - None, - title="Allow User Dataset Purge", - description="""Allow users to remove their datasets from disk immediately (otherwise, + ), + ] = "always-off" + allow_user_dataset_purge: Annotated[ + bool, + Field( + title="Allow User Dataset Purge", + description="""Allow users to remove their datasets from disk immediately (otherwise, datasets will be removed after a time period specified by an administrator in the cleanup scripts run via cron) """, - ) - new_user_dataset_access_role_default_private: Optional[bool] = Field( - None, - title="New User Dataset Access Role Default Private", - description="""By default, users' data will be public, but setting this to true will cause + ), + ] = True + new_user_dataset_access_role_default_private: Annotated[ + bool, + Field( + title="New User Dataset Access Role Default Private", + description="""By default, users' data will be public, but setting this to true will cause it to be private. Does not affect existing users and data, only ones created after this option is set. Users may still change their default back to public. """, - ) - expose_user_name: Optional[bool] = Field( - None, - title="Expose User Name", - description="""Expose user list. Setting this to true will expose the user list to + ), + ] = False + expose_user_name: Annotated[ + bool, + Field( + title="Expose User Name", + description="""Expose user list. Setting this to true will expose the user list to authenticated users. This makes sharing datasets in smaller galaxy instances much easier as they can type a name/email and have the correct user show up. This makes less sense on large public Galaxy instances where that data @@ -2414,11 +2993,13 @@ class GalaxyConfigModel(Model): If enable_beta_gdpr is set to true, then this option will be overridden and set to false. """, - ) - expose_user_email: Optional[bool] = Field( - None, - title="Expose User Email", - description="""Expose user list. Setting this to true will expose the user list to + ), + ] = False + expose_user_email: Annotated[ + bool, + Field( + title="Expose User Email", + description="""Expose user list. Setting this to true will expose the user list to authenticated users. This makes sharing datasets in smaller galaxy instances much easier as they can type a name/email and have the correct user show up. This makes less sense on large public Galaxy instances where that data @@ -2428,11 +3009,13 @@ class GalaxyConfigModel(Model): If enable_beta_gdpr is set to true, then this option will be overridden and set to false. """, - ) - fetch_url_allowlist: Optional[str] = Field( - None, - title="Fetch Url Allowlist", - description="""List of allowed local network addresses for "Upload from URL" dialog. + ), + ] = False + fetch_url_allowlist: Annotated[ + str, + Field( + title="Fetch Url Allowlist", + description="""List of allowed local network addresses for "Upload from URL" dialog. By default, Galaxy will deny access to the local network address space, to prevent users making requests to services which the administrator did not intend to expose. Previously, you could request any network service that @@ -2440,11 +3023,13 @@ class GalaxyConfigModel(Model): It should be a comma-separated list of IP addresses or IP address/mask, e.g. 10.10.10.10,10.0.1.0/24,fd00::/8 """, - ) - enable_beta_gdpr: Optional[bool] = Field( - None, - title="Enable Beta Gdpr", - description="""Enables GDPR Compliance mode. This makes several changes to the way + ), + ] + enable_beta_gdpr: Annotated[ + bool, + Field( + title="Enable Beta Gdpr", + description="""Enables GDPR Compliance mode. This makes several changes to the way Galaxy logs and exposes data externally such as removing emails and usernames from logs and bug reports. It also causes the delete user admin action to permanently redact their username and password, but @@ -2459,158 +3044,198 @@ class GalaxyConfigModel(Model): Please read the GDPR section under the special topics area of the admin documentation. """, - ) - enable_beta_workflow_modules: Optional[bool] = Field( - None, - title="Enable Beta Workflow Modules", - description="""Enable beta workflow modules that should not yet be considered part of Galaxy's + ), + ] = False + enable_beta_workflow_modules: Annotated[ + bool, + Field( + title="Enable Beta Workflow Modules", + description="""Enable beta workflow modules that should not yet be considered part of Galaxy's stable API. (The module state definitions may change and workflows built using these modules may not function in the future.) """, - ) - edam_panel_views: Optional[str] = Field( - None, - title="Edam Panel Views", - description="""Comma-separated list of the EDAM panel views to load - choose from merged, operations, topics. + ), + ] = False + edam_panel_views: Annotated[ + str, + Field( + title="Edam Panel Views", + description="""Comma-separated list of the EDAM panel views to load - choose from merged, operations, topics. Set to empty string to disable EDAM all together. Set default_panel_view to 'ontology:edam_topics' to override default tool panel to use an EDAM view. """, - ) - edam_toolbox_ontology_path: Optional[str] = Field( - None, - title="Edam Toolbox Ontology Path", - description="""Sets the path to EDAM ontology file - if the path doesn't exist PyPI package data will be loaded. -""", - ) - panel_views_dir: Optional[str] = Field( - None, - title="Panel Views Dir", - description="""Directory to check out for toolbox tool panel views. The path is relative to the + ), + ] = "operations,topics" + edam_toolbox_ontology_path: Annotated[ + str, + Field( + title="Edam Toolbox Ontology Path", + description="""Sets the path to EDAM ontology file - if the path doesn't exist PyPI package data will be loaded. +""", + ), + ] = "EDAM.tsv" + panel_views_dir: Annotated[ + str, + Field( + title="Panel Views Dir", + description="""Directory to check out for toolbox tool panel views. The path is relative to the Galaxy root dir. To use an absolute path begin the path with '/'. This is a comma-separated list. """, - ) - panel_views: Optional[List[Any]] = Field( - None, - title="Panel Views", - description="""Definitions of static toolbox panel views embedded directly in the config instead of reading + ), + ] = "config/plugins/activities" + panel_views: Annotated[ + List[Any], + Field( + title="Panel Views", + description="""Definitions of static toolbox panel views embedded directly in the config instead of reading YAML from directory with panel_views_dir. """, - ) - default_panel_view: Optional[str] = Field( - None, - title="Default Panel View", - description="""Default tool panel view for the current Galaxy configuration. This should refer to an id of + ), + ] + default_panel_view: Annotated[ + str, + Field( + title="Default Panel View", + description="""Default tool panel view for the current Galaxy configuration. This should refer to an id of a panel view defined using the panel_views or panel_views_dir configuration options or an EDAM panel view. The default panel view is simply called `default` and refers to the tool panel state defined by the integrated tool panel. """, - ) - default_workflow_export_format: Optional[str] = Field( - None, - title="Default Workflow Export Format", - description="""Default format for the export of workflows. Possible values are 'ga' + ), + ] = "default" + default_workflow_export_format: Annotated[ + str, + Field( + title="Default Workflow Export Format", + description="""Default format for the export of workflows. Possible values are 'ga' or 'format2'. """, - ) - parallelize_workflow_scheduling_within_histories: Optional[bool] = Field( - None, - title="Parallelize Workflow Scheduling Within Histories", - description="""If multiple job handlers are enabled, allow Galaxy to schedule workflow invocations + ), + ] = "ga" + parallelize_workflow_scheduling_within_histories: Annotated[ + bool, + Field( + title="Parallelize Workflow Scheduling Within Histories", + description="""If multiple job handlers are enabled, allow Galaxy to schedule workflow invocations in multiple handlers simultaneously. This is discouraged because it results in a less predictable order of workflow datasets within in histories. """, - ) - maximum_workflow_invocation_duration: Optional[int] = Field( - None, - title="Maximum Workflow Invocation Duration", - description="""This is the maximum amount of time a workflow invocation may stay in an active + ), + ] = False + maximum_workflow_invocation_duration: Annotated[ + int, + Field( + title="Maximum Workflow Invocation Duration", + description="""This is the maximum amount of time a workflow invocation may stay in an active scheduling state in seconds. Set to -1 to disable this maximum and allow any workflow invocation to schedule indefinitely. The default corresponds to 1 month. """, - ) - maximum_workflow_jobs_per_scheduling_iteration: Optional[int] = Field( - None, - title="Maximum Workflow Jobs Per Scheduling Iteration", - description="""Specify a maximum number of jobs that any given workflow scheduling iteration can create. + ), + ] = 2678400 + maximum_workflow_jobs_per_scheduling_iteration: Annotated[ + int, + Field( + title="Maximum Workflow Jobs Per Scheduling Iteration", + description="""Specify a maximum number of jobs that any given workflow scheduling iteration can create. Set this to a positive integer to prevent large collection jobs in a workflow from preventing other jobs from executing. This may also mitigate memory issues associated with scheduling workflows at the expense of increased total DB traffic because model objects are expunged from the SQL alchemy session between workflow invocation scheduling iterations. Set to -1 to disable any such maximum. """, - ) - flush_per_n_datasets: Optional[int] = Field( - None, - title="Flush Per N Datasets", - description="""Maximum number of datasets to create before flushing created datasets to database. + ), + ] = 1000 + flush_per_n_datasets: Annotated[ + int, + Field( + title="Flush Per N Datasets", + description="""Maximum number of datasets to create before flushing created datasets to database. This affects tools that create many output datasets. Higher values will lead to fewer database flushes and faster execution, but require more memory. Set to -1 to disable creating datasets in batches. """, - ) - max_discovered_files: Optional[int] = Field( - None, - title="Max Discovered Files", - description="""Set this to a positive integer value to limit the number of datasets that can be discovered by + ), + ] = 1000 + max_discovered_files: Annotated[ + int, + Field( + title="Max Discovered Files", + description="""Set this to a positive integer value to limit the number of datasets that can be discovered by a single job. This prevents accidentally creating large numbers of datasets when running tools that create a potentially unlimited number of output datasets, such as tools that split a file into a collection of datasets for each line in an input dataset. """, - ) - history_local_serial_workflow_scheduling: Optional[bool] = Field( - None, - title="History Local Serial Workflow Scheduling", - description="""Force serial scheduling of workflows within the context of a particular history -""", - ) - enable_oidc: Optional[bool] = Field( - None, - title="Enable Oidc", - description="""Enables and disables OpenID Connect (OIDC) support. -""", - ) - oidc_config_file: Optional[str] = Field( - None, - title="Oidc Config File", - description="""Sets the path to OIDC configuration file. -""", - ) - oidc_backends_config_file: Optional[str] = Field( - None, - title="Oidc Backends Config File", - description="""Sets the path to OIDC backends configuration file. -""", - ) - auth_config_file: Optional[str] = Field( - None, - title="Auth Config File", - description="""XML config file that allows the use of different authentication providers + ), + ] = 10000 + history_local_serial_workflow_scheduling: Annotated[ + bool, + Field( + title="History Local Serial Workflow Scheduling", + description="""Force serial scheduling of workflows within the context of a particular history +""", + ), + ] = False + enable_oidc: Annotated[ + bool, + Field( + title="Enable Oidc", + description="""Enables and disables OpenID Connect (OIDC) support. +""", + ), + ] = False + oidc_config_file: Annotated[ + str, + Field( + title="Oidc Config File", + description="""Sets the path to OIDC configuration file. +""", + ), + ] = "oidc_config.xml" + oidc_backends_config_file: Annotated[ + str, + Field( + title="Oidc Backends Config File", + description="""Sets the path to OIDC backends configuration file. +""", + ), + ] = "oidc_backends_config.xml" + auth_config_file: Annotated[ + str, + Field( + title="Auth Config File", + description="""XML config file that allows the use of different authentication providers (e.g. LDAP) instead or in addition to local authentication (.sample is used if default does not exist). """, - ) - api_allow_run_as: Optional[str] = Field( - None, - title="Api Allow Run As", - description="""Optional list of email addresses of API users who can make calls on behalf of + ), + ] = "auth_conf.xml" + api_allow_run_as: Annotated[ + str, + Field( + title="Api Allow Run As", + description="""Optional list of email addresses of API users who can make calls on behalf of other users. """, - ) - bootstrap_admin_api_key: Optional[str] = Field( - None, - title="Bootstrap Admin Api Key", - description="""API key that allows performing some admin actions without actually + ), + ] + bootstrap_admin_api_key: Annotated[ + str, + Field( + title="Bootstrap Admin Api Key", + description="""API key that allows performing some admin actions without actually having a real admin user in the database and config. Only set this if you need to bootstrap Galaxy, in particular to create a real admin user account via API. You should probably not set this on a production server. """, - ) - ga4gh_service_id: Optional[str] = Field( - None, - title="Ga4Gh Service Id", - description="""Service ID for GA4GH services (exposed via the service-info endpoint for the Galaxy DRS API). + ), + ] + ga4gh_service_id: Annotated[ + str, + Field( + title="Ga4Gh Service Id", + description="""Service ID for GA4GH services (exposed via the service-info endpoint for the Galaxy DRS API). If unset, one will be generated using the URL the target API requests are made against. For more information on GA4GH service definitions - check out @@ -2623,33 +3248,39 @@ class GalaxyConfigModel(Model): service "id" (available via the DRS API) for the above configuration value would be org.usegalaxy.drs. """, - ) - ga4gh_service_organization_name: Optional[str] = Field( - None, - title="Ga4Gh Service Organization Name", - description="""Service name for host organization (exposed via the service-info endpoint for the Galaxy DRS API). + ), + ] + ga4gh_service_organization_name: Annotated[ + str, + Field( + title="Ga4Gh Service Organization Name", + description="""Service name for host organization (exposed via the service-info endpoint for the Galaxy DRS API). If unset, one will be generated using ga4gh_service_id. For more information on GA4GH service definitions - check out https://github.com/ga4gh-discovery/ga4gh-service-registry and https://editor.swagger.io/?url=https://raw.githubusercontent.com/ga4gh-discovery/ga4gh-service-registry/develop/service-registry.yaml """, - ) - ga4gh_service_organization_url: Optional[str] = Field( - None, - title="Ga4Gh Service Organization Url", - description="""Organization URL for host organization (exposed via the service-info endpoint for the Galaxy DRS API). + ), + ] + ga4gh_service_organization_url: Annotated[ + str, + Field( + title="Ga4Gh Service Organization Url", + description="""Organization URL for host organization (exposed via the service-info endpoint for the Galaxy DRS API). If unset, one will be generated using the URL the target API requests are made against. For more information on GA4GH service definitions - check out https://github.com/ga4gh-discovery/ga4gh-service-registry and https://editor.swagger.io/?url=https://raw.githubusercontent.com/ga4gh-discovery/ga4gh-service-registry/develop/service-registry.yaml """, - ) - ga4gh_service_environment: Optional[str] = Field( - None, - title="Ga4Gh Service Environment", - description="""Service environment (exposed via the service-info endpoint for the Galaxy DRS API) for + ), + ] + ga4gh_service_environment: Annotated[ + str, + Field( + title="Ga4Gh Service Environment", + description="""Service environment (exposed via the service-info endpoint for the Galaxy DRS API) for implemented GA4GH services. Suggested values are prod, test, dev, staging. @@ -2658,30 +3289,36 @@ class GalaxyConfigModel(Model): https://github.com/ga4gh-discovery/ga4gh-service-registry and https://editor.swagger.io/?url=https://raw.githubusercontent.com/ga4gh-discovery/ga4gh-service-registry/develop/service-registry.yaml """, - ) - enable_tool_tags: Optional[bool] = Field( - None, - title="Enable Tool Tags", - description="""Enable tool tags (associating tools with tags). This has its own option + ), + ] + enable_tool_tags: Annotated[ + bool, + Field( + title="Enable Tool Tags", + description="""Enable tool tags (associating tools with tags). This has its own option since its implementation has a few performance implications on startup for large servers. """, - ) - enable_unique_workflow_defaults: Optional[bool] = Field( - None, - title="Enable Unique Workflow Defaults", - description="""Enable a feature when running workflows. When enabled, default datasets + ), + ] = False + enable_unique_workflow_defaults: Annotated[ + bool, + Field( + title="Enable Unique Workflow Defaults", + description="""Enable a feature when running workflows. When enabled, default datasets are selected for "Set at Runtime" inputs from the history such that the same input will not be selected twice, unless there are more inputs than compatible datasets in the history. When false, the most recently added compatible item in the history will be used for each "Set at Runtime" input, independent of others in the workflow. """, - ) - simplified_workflow_run_ui: Optional[str] = Field( - None, - title="Simplified Workflow Run Ui", - description="""If set to 'off' by default, always use the traditional workflow form that renders + ), + ] = False + simplified_workflow_run_ui: Annotated[ + str, + Field( + title="Simplified Workflow Run Ui", + description="""If set to 'off' by default, always use the traditional workflow form that renders all steps in the GUI and serializes the tool state of all steps during invocation. Set to 'prefer' to default to a simplified workflow UI that only renders the inputs if possible (the workflow must have no disconnected @@ -2689,141 +3326,177 @@ class GalaxyConfigModel(Model): future 'force' may be added an option for Galaskio-style servers that should only render simplified workflows. """, - ) - simplified_workflow_run_ui_target_history: Optional[str] = Field( - None, - title="Simplified Workflow Run Ui Target History", - description="""When the simplified workflow run form is rendered, should the invocation outputs + ), + ] = "prefer" + simplified_workflow_run_ui_target_history: Annotated[ + str, + Field( + title="Simplified Workflow Run Ui Target History", + description="""When the simplified workflow run form is rendered, should the invocation outputs be sent to the 'current' history or a 'new' history. If the user should be presented and option between these - set this to 'prefer_current' or 'prefer_new' to display a runtime setting with the corresponding default. The default is to provide the user this option and default it to the current history (the traditional behavior of Galaxy for years) - this corresponds to the setting 'prefer_current'. """, - ) - simplified_workflow_run_ui_job_cache: Optional[str] = Field( - None, - title="Simplified Workflow Run Ui Job Cache", - description="""When the simplified workflow run form is rendered, should the invocation use job + ), + ] = "prefer_current" + simplified_workflow_run_ui_job_cache: Annotated[ + str, + Field( + title="Simplified Workflow Run Ui Job Cache", + description="""When the simplified workflow run form is rendered, should the invocation use job caching. This isn't a boolean so an option for 'show-selection' can be added later. """, - ) - ftp_upload_site: Optional[str] = Field( - None, - title="Ftp Upload Site", - description="""Enable Galaxy's "Upload via FTP" interface. You'll need to install and + ), + ] = "off" + ftp_upload_site: Annotated[ + str, + Field( + title="Ftp Upload Site", + description="""Enable Galaxy's "Upload via FTP" interface. You'll need to install and configure an FTP server (we've used ProFTPd since it can use Galaxy's database for authentication) and set the following two options. This will be provided to users in the help text as 'log in to the FTP server at '. Thus, it should be the hostname of your FTP server. """, - ) - ftp_upload_dir: Optional[str] = Field( - None, - title="Ftp Upload Dir", - description="""This should point to a directory containing subdirectories matching users' + ), + ] + ftp_upload_dir: Annotated[ + str, + Field( + title="Ftp Upload Dir", + description="""This should point to a directory containing subdirectories matching users' identifier (defaults to e-mail), where Galaxy will look for files. """, - ) - ftp_upload_dir_identifier: Optional[str] = Field( - None, - title="Ftp Upload Dir Identifier", - description="""User attribute to use as subdirectory in calculating default ftp_upload_dir + ), + ] + ftp_upload_dir_identifier: Annotated[ + str, + Field( + title="Ftp Upload Dir Identifier", + description="""User attribute to use as subdirectory in calculating default ftp_upload_dir pattern. By default this will be email so a user's FTP upload directory will be ${ftp_upload_dir}/${user.email}. Can set this to other attributes such as id or username though. """, - ) - ftp_upload_dir_template: Optional[str] = Field( - None, - title="Ftp Upload Dir Template", - description="""Python string template used to determine an FTP upload directory for a + ), + ] = "email" + ftp_upload_dir_template: Annotated[ + str, + Field( + title="Ftp Upload Dir Template", + description="""Python string template used to determine an FTP upload directory for a particular user. Defaults to '${ftp_upload_dir}/${ftp_upload_dir_identifier}'. """, - ) - ftp_upload_purge: Optional[bool] = Field( - None, - title="Ftp Upload Purge", - description="""Set to false to prevent Galaxy from deleting uploaded FTP files + ), + ] + ftp_upload_purge: Annotated[ + bool, + Field( + title="Ftp Upload Purge", + description="""Set to false to prevent Galaxy from deleting uploaded FTP files as it imports them. """, - ) - enable_quotas: Optional[bool] = Field( - None, - title="Enable Quotas", - description="""Enable enforcement of quotas. Quotas can be set from the Admin interface. -""", - ) - expose_dataset_path: Optional[bool] = Field( - None, - title="Expose Dataset Path", - description="""This option allows users to see the full path of datasets via the "View + ), + ] = True + enable_quotas: Annotated[ + bool, + Field( + title="Enable Quotas", + description="""Enable enforcement of quotas. Quotas can be set from the Admin interface. +""", + ), + ] = False + expose_dataset_path: Annotated[ + bool, + Field( + title="Expose Dataset Path", + description="""This option allows users to see the full path of datasets via the "View Details" option in the history. This option also exposes the command line to non-administrative users. Administrators can always see dataset paths. """, - ) - enable_tool_source_display: Optional[bool] = Field( - None, - title="Enable Tool Source Display", - description="""This option allows users to view the tool wrapper source code. This is + ), + ] = False + enable_tool_source_display: Annotated[ + bool, + Field( + title="Enable Tool Source Display", + description="""This option allows users to view the tool wrapper source code. This is safe to enable if you have not hardcoded any secrets in any of the tool wrappers installed on this Galaxy server. If you have only installed tool wrappers from public tool sheds and tools shipped with Galaxy there you can enable this option. """, - ) - job_metrics_config_file: Optional[str] = Field( - None, - title="Job Metrics Config File", - description="""XML config file that contains the job metric collection configuration. -""", - ) - expose_potentially_sensitive_job_metrics: Optional[bool] = Field( - None, - title="Expose Potentially Sensitive Job Metrics", - description="""This option allows users to see the job metrics (except for environment + ), + ] = False + job_metrics_config_file: Annotated[ + str, + Field( + title="Job Metrics Config File", + description="""XML config file that contains the job metric collection configuration. +""", + ), + ] = "job_metrics_conf.xml" + expose_potentially_sensitive_job_metrics: Annotated[ + bool, + Field( + title="Expose Potentially Sensitive Job Metrics", + description="""This option allows users to see the job metrics (except for environment variables). """, - ) - enable_legacy_sample_tracking_api: Optional[bool] = Field( - None, - title="Enable Legacy Sample Tracking Api", - description="""Enable the API for sample tracking -""", - ) - enable_data_manager_user_view: Optional[bool] = Field( - None, - title="Enable Data Manager User View", - description="""Allow non-admin users to view available Data Manager options. -""", - ) - data_manager_config_file: Optional[str] = Field( - None, - title="Data Manager Config File", - description="""File where Data Managers are configured (.sample used if default does not + ), + ] = False + enable_legacy_sample_tracking_api: Annotated[ + bool, + Field( + title="Enable Legacy Sample Tracking Api", + description="""Enable the API for sample tracking +""", + ), + ] = False + enable_data_manager_user_view: Annotated[ + bool, + Field( + title="Enable Data Manager User View", + description="""Allow non-admin users to view available Data Manager options. +""", + ), + ] = False + data_manager_config_file: Annotated[ + str, + Field( + title="Data Manager Config File", + description="""File where Data Managers are configured (.sample used if default does not exist). """, - ) - shed_data_manager_config_file: Optional[str] = Field( - None, - title="Shed Data Manager Config File", - description="""File where Tool Shed based Data Managers are configured. This file will be created + ), + ] = "data_manager_conf.xml" + shed_data_manager_config_file: Annotated[ + str, + Field( + title="Shed Data Manager Config File", + description="""File where Tool Shed based Data Managers are configured. This file will be created automatically upon data manager installation. """, - ) - galaxy_data_manager_data_path: Optional[str] = Field( - None, - title="Galaxy Data Manager Data Path", - description="""Directory to store Data Manager based tool-data. Defaults to the value of the + ), + ] = "shed_data_manager_conf.xml" + galaxy_data_manager_data_path: Annotated[ + str, + Field( + title="Galaxy Data Manager Data Path", + description="""Directory to store Data Manager based tool-data. Defaults to the value of the option. """, - ) - job_config_file: Optional[str] = Field( - None, - title="Job Config File", - description="""To increase performance of job execution and the web interface, you can + ), + ] + job_config_file: Annotated[ + str, + Field( + title="Job Config File", + description="""To increase performance of job execution and the web interface, you can separate Galaxy into multiple processes. There are more than one way to do this, and they are explained in detail in the documentation: @@ -2834,16 +3507,20 @@ class GalaxyConfigModel(Model): the system on which Galaxy is started. Advanced job running capabilities can be configured through the job configuration file or the option. """, - ) - job_config: Optional[Dict[str, Any]] = Field( - None, - title="Job Config", - description="""Description of job running configuration, can be embedded into Galaxy configuration or loaded from an additional file with the job_config_file option.""", - ) - dependency_resolvers: Optional[List[Any]] = Field( - None, - title="Dependency Resolvers", - description="""Rather than specifying a dependency_resolvers_config_file, the definition of the + ), + ] = "job_conf.yml" + job_config: Annotated[ + Dict[str, Any], + Field( + title="Job Config", + description="""Description of job running configuration, can be embedded into Galaxy configuration or loaded from an additional file with the job_config_file option.""", + ), + ] + dependency_resolvers: Annotated[ + List[Any], + Field( + title="Dependency Resolvers", + description="""Rather than specifying a dependency_resolvers_config_file, the definition of the resolvers to enable can be embedded into Galaxy's config with this option. This has no effect if a dependency_resolvers_config_file is used. @@ -2852,20 +3529,24 @@ class GalaxyConfigModel(Model): https://docs.galaxyproject.org/en/master/admin/dependency_resolvers.html """, - ) - dependency_resolution: Optional[Dict[str, Any]] = Field( - None, - title="Dependency Resolution", - description="""Alternative representation of various dependency resolution parameters. Takes the + ), + ] + dependency_resolution: Annotated[ + Dict[str, Any], + Field( + title="Dependency Resolution", + description="""Alternative representation of various dependency resolution parameters. Takes the dictified version of a DependencyManager object - so this is ideal for automating the configuration of dependency resolution from one application that uses a DependencyManager to another. """, - ) - default_job_resubmission_condition: Optional[str] = Field( - None, - title="Default Job Resubmission Condition", - description="""When jobs fail due to job runner problems, Galaxy can be configured to retry + ), + ] + default_job_resubmission_condition: Annotated[ + str, + Field( + title="Default Job Resubmission Condition", + description="""When jobs fail due to job runner problems, Galaxy can be configured to retry these or reroute the jobs to new destinations. Very fine control of this is available with resubmit declarations in the job config. For simple deployments of Galaxy though, the following attribute can define resubmission conditions @@ -2878,64 +3559,78 @@ class GalaxyConfigModel(Model): commented out default below results in no default job resubmission condition, failing jobs are just failed outright. """, - ) - track_jobs_in_database: Optional[bool] = Field( - None, - title="Track Jobs In Database", - description="""This option is deprecated, use the `mem-self` handler assignment option in the + ), + ] + track_jobs_in_database: Annotated[ + bool, + Field( + title="Track Jobs In Database", + description="""This option is deprecated, use the `mem-self` handler assignment option in the job configuration instead. """, - ) - use_tasked_jobs: Optional[bool] = Field( - None, - title="Use Tasked Jobs", - description="""This enables splitting of jobs into tasks, if specified by the particular tool + ), + ] = True + use_tasked_jobs: Annotated[ + bool, + Field( + title="Use Tasked Jobs", + description="""This enables splitting of jobs into tasks, if specified by the particular tool config. This is a new feature and not recommended for production servers yet. """, - ) - local_task_queue_workers: Optional[int] = Field( - None, - title="Local Task Queue Workers", - description="""This enables splitting of jobs into tasks, if specified by the particular tool + ), + ] = False + local_task_queue_workers: Annotated[ + int, + Field( + title="Local Task Queue Workers", + description="""This enables splitting of jobs into tasks, if specified by the particular tool config. This is a new feature and not recommended for production servers yet. """, - ) - job_handler_monitor_sleep: Optional[float] = Field( - None, - title="Job Handler Monitor Sleep", - description="""Each Galaxy job handler process runs one thread responsible for discovering jobs and + ), + ] = 2 + job_handler_monitor_sleep: Annotated[ + float, + Field( + title="Job Handler Monitor Sleep", + description="""Each Galaxy job handler process runs one thread responsible for discovering jobs and dispatching them to runners. This thread operates in a loop and sleeps for the given number of seconds at the end of each iteration. This can be decreased if extremely high job throughput is necessary, but doing so can increase CPU usage of handler processes. Float values are allowed. """, - ) - job_runner_monitor_sleep: Optional[float] = Field( - None, - title="Job Runner Monitor Sleep", - description="""Each Galaxy job handler process runs one thread per job runner plugin responsible for + ), + ] = 1.0 + job_runner_monitor_sleep: Annotated[ + float, + Field( + title="Job Runner Monitor Sleep", + description="""Each Galaxy job handler process runs one thread per job runner plugin responsible for checking the state of queued and running jobs. This thread operates in a loop and sleeps for the given number of seconds at the end of each iteration. This can be decreased if extremely high job throughput is necessary, but doing so can increase CPU usage of handler processes. Float values are allowed. """, - ) - workflow_monitor_sleep: Optional[float] = Field( - None, - title="Workflow Monitor Sleep", - description="""Each Galaxy workflow handler process runs one thread responsible for + ), + ] = 1.0 + workflow_monitor_sleep: Annotated[ + float, + Field( + title="Workflow Monitor Sleep", + description="""Each Galaxy workflow handler process runs one thread responsible for checking the state of active workflow invocations. This thread operates in a loop and sleeps for the given number of seconds at the end of each iteration. This can be decreased if extremely high job throughput is necessary, but doing so can increase CPU usage of handler processes. Float values are allowed. """, - ) - metadata_strategy: Optional[str] = Field( - None, - title="Metadata Strategy", - description="""Determines how metadata will be set. Valid values are `directory`, `extended`, + ), + ] = 1.0 + metadata_strategy: Annotated[ + str, + Field( + title="Metadata Strategy", + description="""Determines how metadata will be set. Valid values are `directory`, `extended`, `directory_celery` and `extended_celery`. In extended mode jobs will decide if a tool run failed, the object stores configuration is serialized and made available to the job and is used for @@ -2944,31 +3639,37 @@ class GalaxyConfigModel(Model): etc) happens as part of the job. In `directory_celery` and `extended_celery` metadata will be set within a celery task. """, - ) - retry_metadata_internally: Optional[bool] = Field( - None, - title="Retry Metadata Internally", - description="""Although it is fairly reliable, setting metadata can occasionally fail. In + ), + ] = "directory" + retry_metadata_internally: Annotated[ + bool, + Field( + title="Retry Metadata Internally", + description="""Although it is fairly reliable, setting metadata can occasionally fail. In these instances, you can choose to retry setting it internally or leave it in a failed state (since retrying internally may cause the Galaxy process to be unresponsive). If this option is set to false, the user will be given the option to retry externally, or set metadata manually (when possible). """, - ) - max_metadata_value_size: Optional[int] = Field( - None, - title="Max Metadata Value Size", - description="""Very large metadata values can cause Galaxy crashes. This will allow + ), + ] = True + max_metadata_value_size: Annotated[ + int, + Field( + title="Max Metadata Value Size", + description="""Very large metadata values can cause Galaxy crashes. This will allow limiting the maximum metadata key size (in bytes used in memory, not the end result database value size) Galaxy will attempt to save with a dataset. Use 0 to disable this feature. The default is 5MB, but as low as 1MB seems to be a reasonable size. """, - ) - outputs_to_working_directory: Optional[bool] = Field( - None, - title="Outputs To Working Directory", - description="""This option will override tool output paths to write outputs to the job + ), + ] = 5242880 + outputs_to_working_directory: Annotated[ + bool, + Field( + title="Outputs To Working Directory", + description="""This option will override tool output paths to write outputs to the job working directory (instead of to the file_path) and the job manager will move the outputs to their proper place in the dataset directory on the Galaxy server after the job completes. This is necessary (for example) if jobs run @@ -2976,32 +3677,38 @@ class GalaxyConfigModel(Model): if the filesystem is mounted read-only or the jobs are run by a different user than the galaxy user). """, - ) - retry_job_output_collection: Optional[int] = Field( - None, - title="Retry Job Output Collection", - description="""If your network filesystem's caching prevents the Galaxy server from seeing + ), + ] = False + retry_job_output_collection: Annotated[ + int, + Field( + title="Retry Job Output Collection", + description="""If your network filesystem's caching prevents the Galaxy server from seeing the job's stdout and stderr files when it completes, you can retry reading these files. The job runner will retry the number of times specified below, waiting 1 second between tries. For NFS, you may want to try the -noac mount option (Linux) or -actimeo=0 (Solaris). """, - ) - tool_evaluation_strategy: Optional[str] = Field( - None, - title="Tool Evaluation Strategy", - description="""Determines which process will evaluate the tool command line. If set to "local" the tool command + ), + ] = 0 + tool_evaluation_strategy: Annotated[ + str, + Field( + title="Tool Evaluation Strategy", + description="""Determines which process will evaluate the tool command line. If set to "local" the tool command line, configuration files and other dynamic values will be templated in the job handler process. If set to ``remote`` the tool command line will be built as part of the submitted job. Note that ``remote`` is a beta setting that will be useful for materializing deferred datasets as part of the submitted job. Note also that you have to set ``metadata_strategy`` to ``extended`` if you set this option to ``remote``. """, - ) - preserve_python_environment: Optional[str] = Field( - None, - title="Preserve Python Environment", - description="""In the past Galaxy would preserve its Python environment when running jobs ( + ), + ] = "local" + preserve_python_environment: Annotated[ + str, + Field( + title="Preserve Python Environment", + description="""In the past Galaxy would preserve its Python environment when running jobs ( and still does for internal tools packaged with Galaxy). This behavior exposes Galaxy internals to tools and could result in problems when activating Python environments for tools (such as with Conda packaging). The default @@ -3012,52 +3719,62 @@ class GalaxyConfigModel(Model): tools and locally managed tools (this might be useful for instance if you are installing software into Galaxy's virtualenv for tool development). """, - ) - cleanup_job: Optional[str] = Field( - None, - title="Cleanup Job", - description="""Clean up various bits of jobs left on the filesystem after completion. These + ), + ] = "legacy_only" + cleanup_job: Annotated[ + str, + Field( + title="Cleanup Job", + description="""Clean up various bits of jobs left on the filesystem after completion. These bits include the job working directory, external metadata temporary files, and DRM stdout and stderr files (if using a DRM). Possible values are: always, onsuccess, never """, - ) - drmaa_external_runjob_script: Optional[str] = Field( - None, - title="Drmaa External Runjob Script", - description="""When running DRMAA jobs as the Galaxy user + ), + ] = "always" + drmaa_external_runjob_script: Annotated[ + str, + Field( + title="Drmaa External Runjob Script", + description="""When running DRMAA jobs as the Galaxy user (https://docs.galaxyproject.org/en/master/admin/cluster.html#submitting-jobs-as-the-real-user) this script is used to run the job script Galaxy generates for a tool execution. Example value 'sudo -E scripts/drmaa_external_runner.py --assign_all_groups' """, - ) - drmaa_external_killjob_script: Optional[str] = Field( - None, - title="Drmaa External Killjob Script", - description="""When running DRMAA jobs as the Galaxy user + ), + ] + drmaa_external_killjob_script: Annotated[ + str, + Field( + title="Drmaa External Killjob Script", + description="""When running DRMAA jobs as the Galaxy user (https://docs.galaxyproject.org/en/master/admin/cluster.html#submitting-jobs-as-the-real-user) this script is used to kill such jobs by Galaxy (e.g. if the user cancels the job). Example value 'sudo -E scripts/drmaa_external_killer.py' """, - ) - external_chown_script: Optional[str] = Field( - None, - title="External Chown Script", - description="""When running DRMAA jobs as the Galaxy user + ), + ] + external_chown_script: Annotated[ + str, + Field( + title="External Chown Script", + description="""When running DRMAA jobs as the Galaxy user (https://docs.galaxyproject.org/en/master/admin/cluster.html#submitting-jobs-as-the-real-user) this script is used transfer permissions back and forth between the Galaxy user and the user that is running the job. Example value 'sudo -E scripts/external_chown_script.py' """, - ) - real_system_username: Optional[str] = Field( - None, - title="Real System Username", - description="""When running DRMAA jobs as the Galaxy user + ), + ] + real_system_username: Annotated[ + str, + Field( + title="Real System Username", + description="""When running DRMAA jobs as the Galaxy user (https://docs.galaxyproject.org/en/master/admin/cluster.html#submitting-jobs-as-the-real-user) Galaxy can extract the user name from the email address (actually the local-part before the @) or the username which are both stored in the Galaxy data base. @@ -3068,11 +3785,13 @@ class GalaxyConfigModel(Model): running the galaxy system. Possible values are user_email (default), username or """, - ) - environment_setup_file: Optional[str] = Field( - None, - title="Environment Setup File", - description="""File to source to set up the environment when running jobs. By default, the + ), + ] = "user_email" + environment_setup_file: Annotated[ + str, + Field( + title="Environment Setup File", + description="""File to source to set up the environment when running jobs. By default, the environment in which the Galaxy server starts is used when running jobs locally, and the environment set up per the DRM's submission method and policy is used when running jobs on a cluster (try testing with `qsub` on the @@ -3082,100 +3801,126 @@ class GalaxyConfigModel(Model): the actual user, to remove the need to configure each user's environment individually. """, - ) - enable_beta_markdown_export: Optional[bool] = Field( - None, - title="Enable Beta Markdown Export", - description="""Enable export of Galaxy Markdown documents (pages and workflow reports) + ), + ] + enable_beta_markdown_export: Annotated[ + bool, + Field( + title="Enable Beta Markdown Export", + description="""Enable export of Galaxy Markdown documents (pages and workflow reports) to PDF. Requires manual installation and setup of weasyprint (latest version available for Python 2.7 is 0.42). """, - ) - markdown_export_css: Optional[str] = Field( - None, - title="Markdown Export Css", - description="""CSS file to apply to all Markdown exports to PDF - currently used by + ), + ] = False + markdown_export_css: Annotated[ + str, + Field( + title="Markdown Export Css", + description="""CSS file to apply to all Markdown exports to PDF - currently used by WeasyPrint during rendering an HTML export of the document to PDF. """, - ) - markdown_export_css_pages: Optional[str] = Field( - None, - title="Markdown Export Css Pages", - description="""CSS file to apply to "Galaxy Page" exports to PDF. Generally prefer + ), + ] = "markdown_export.css" + markdown_export_css_pages: Annotated[ + str, + Field( + title="Markdown Export Css Pages", + description="""CSS file to apply to "Galaxy Page" exports to PDF. Generally prefer markdown_export_css, but this is here for deployments that would like to tailor different kinds of exports. """, - ) - markdown_export_css_invocation_reports: Optional[str] = Field( - None, - title="Markdown Export Css Invocation Reports", - description="""CSS file to apply to invocation report exports to PDF. Generally prefer + ), + ] = "markdown_export_pages.css" + markdown_export_css_invocation_reports: Annotated[ + str, + Field( + title="Markdown Export Css Invocation Reports", + description="""CSS file to apply to invocation report exports to PDF. Generally prefer markdown_export_css, but this is here for deployments that would like to tailor different kinds of exports. """, - ) - markdown_export_prologue: Optional[str] = Field( - None, - title="Markdown Export Prologue", - description="""Prologue Markdown/HTML to apply to markdown exports to PDF. Allowing + ), + ] = "markdown_export_invocation_reports.css" + markdown_export_prologue: Annotated[ + str, + Field( + title="Markdown Export Prologue", + description="""Prologue Markdown/HTML to apply to markdown exports to PDF. Allowing branded headers. """, - ) - markdown_export_epilogue: Optional[str] = Field( - None, - title="Markdown Export Epilogue", - description="""Prologue Markdown/HTML to apply to markdown exports to PDF. Allowing + ), + ] = "" + markdown_export_epilogue: Annotated[ + str, + Field( + title="Markdown Export Epilogue", + description="""Prologue Markdown/HTML to apply to markdown exports to PDF. Allowing branded footers. """, - ) - markdown_export_prologue_pages: Optional[str] = Field( - None, - title="Markdown Export Prologue Pages", - description="""Alternative to markdown_export_prologue that applies just to page exports. -""", - ) - markdown_export_prologue_invocation_reports: Optional[str] = Field( - None, - title="Markdown Export Prologue Invocation Reports", - description="""Alternative to markdown_export_prologue that applies just to invocation report + ), + ] = "" + markdown_export_prologue_pages: Annotated[ + str, + Field( + title="Markdown Export Prologue Pages", + description="""Alternative to markdown_export_prologue that applies just to page exports. +""", + ), + ] = "" + markdown_export_prologue_invocation_reports: Annotated[ + str, + Field( + title="Markdown Export Prologue Invocation Reports", + description="""Alternative to markdown_export_prologue that applies just to invocation report exports. """, - ) - markdown_export_epilogue_pages: Optional[str] = Field( - None, - title="Markdown Export Epilogue Pages", - description="""Alternative to markdown_export_epilogue that applies just to page exports. -""", - ) - markdown_export_epilogue_invocation_reports: Optional[str] = Field( - None, - title="Markdown Export Epilogue Invocation Reports", - description="""Alternative to markdown_export_epilogue that applies just to invocation report + ), + ] = "" + markdown_export_epilogue_pages: Annotated[ + str, + Field( + title="Markdown Export Epilogue Pages", + description="""Alternative to markdown_export_epilogue that applies just to page exports. +""", + ), + ] = "" + markdown_export_epilogue_invocation_reports: Annotated[ + str, + Field( + title="Markdown Export Epilogue Invocation Reports", + description="""Alternative to markdown_export_epilogue that applies just to invocation report exports. """, - ) - job_resource_params_file: Optional[str] = Field( - None, - title="Job Resource Params File", - description="""Optional file containing job resource data entry fields definition. + ), + ] = "" + job_resource_params_file: Annotated[ + str, + Field( + title="Job Resource Params File", + description="""Optional file containing job resource data entry fields definition. These fields will be presented to users in the tool forms and allow them to overwrite default job resources such as number of processors, memory and walltime. """, - ) - workflow_resource_params_file: Optional[str] = Field( - None, - title="Workflow Resource Params File", - description="""Similar to the above parameter, workflows can describe parameters used to + ), + ] = "job_resource_params_conf.xml" + workflow_resource_params_file: Annotated[ + str, + Field( + title="Workflow Resource Params File", + description="""Similar to the above parameter, workflows can describe parameters used to influence scheduling of jobs within the workflow. This requires both a description of the fields available (which defaults to the definitions in job_resource_params_file if not set). """, - ) - workflow_resource_params_mapper: Optional[str] = Field( - None, - title="Workflow Resource Params Mapper", - description="""This parameter describes how to map users and workflows to a set of workflow + ), + ] = "workflow_resource_params_conf.xml" + workflow_resource_params_mapper: Annotated[ + str, + Field( + title="Workflow Resource Params Mapper", + description="""This parameter describes how to map users and workflows to a set of workflow resource parameter to present (typically input IDs from workflow_resource_params_file). If this this is a function reference it will be passed various inputs (workflow model object and user) and it should produce a list of input IDs. If it is a path @@ -3185,18 +3930,22 @@ class GalaxyConfigModel(Model): Sample default path 'config/workflow_resource_mapper_conf.yml.sample' """, - ) - workflow_schedulers_config_file: Optional[str] = Field( - None, - title="Workflow Schedulers Config File", - description="""Optional configuration file similar to `job_config_file` to specify + ), + ] + workflow_schedulers_config_file: Annotated[ + str, + Field( + title="Workflow Schedulers Config File", + description="""Optional configuration file similar to `job_config_file` to specify which Galaxy processes should schedule workflows. """, - ) - cache_user_job_count: Optional[bool] = Field( - None, - title="Cache User Job Count", - description="""If using job concurrency limits (configured in job_config_file), several + ), + ] = "workflow_schedulers_conf.xml" + cache_user_job_count: Annotated[ + bool, + Field( + title="Cache User Job Count", + description="""If using job concurrency limits (configured in job_config_file), several extra database queries must be performed to determine the number of jobs a user has dispatched to a given destination. By default, these queries will happen for every job that is waiting to run, but if cache_user_job_count is @@ -3205,69 +3954,87 @@ class GalaxyConfigModel(Model): greater possibility that jobs will be dispatched past the configured limits if running many handlers. """, - ) - toolbox_auto_sort: Optional[bool] = Field( - None, - title="Toolbox Auto Sort", - description="""If true, the toolbox will be sorted by tool id when the toolbox is loaded. + ), + ] = False + toolbox_auto_sort: Annotated[ + bool, + Field( + title="Toolbox Auto Sort", + description="""If true, the toolbox will be sorted by tool id when the toolbox is loaded. This is useful for ensuring that tools are always displayed in the same order in the UI. If false, the order of tools in the toolbox will be preserved as they are loaded from the tool config files. """, - ) - tool_filters: Optional[str] = Field( - None, - title="Tool Filters", - description="""Define toolbox filters (https://galaxyproject.org/user-defined-toolbox-filters/) + ), + ] = True + tool_filters: Annotated[ + str, + Field( + title="Tool Filters", + description="""Define toolbox filters (https://galaxyproject.org/user-defined-toolbox-filters/) that admins may use to restrict the tools to display. """, - ) - tool_label_filters: Optional[str] = Field( - None, - title="Tool Label Filters", - description="""Define toolbox filters (https://galaxyproject.org/user-defined-toolbox-filters/) + ), + ] + tool_label_filters: Annotated[ + str, + Field( + title="Tool Label Filters", + description="""Define toolbox filters (https://galaxyproject.org/user-defined-toolbox-filters/) that admins may use to restrict the tool labels to display. """, - ) - tool_section_filters: Optional[str] = Field( - None, - title="Tool Section Filters", - description="""Define toolbox filters (https://galaxyproject.org/user-defined-toolbox-filters/) + ), + ] + tool_section_filters: Annotated[ + str, + Field( + title="Tool Section Filters", + description="""Define toolbox filters (https://galaxyproject.org/user-defined-toolbox-filters/) that admins may use to restrict the tool sections to display. """, - ) - user_tool_filters: Optional[str] = Field( - None, - title="User Tool Filters", - description="""Define toolbox filters (https://galaxyproject.org/user-defined-toolbox-filters/) + ), + ] + user_tool_filters: Annotated[ + str, + Field( + title="User Tool Filters", + description="""Define toolbox filters (https://galaxyproject.org/user-defined-toolbox-filters/) that users may use to restrict the tools to display. """, - ) - user_tool_section_filters: Optional[str] = Field( - None, - title="User Tool Section Filters", - description="""Define toolbox filters (https://galaxyproject.org/user-defined-toolbox-filters/) + ), + ] = "examples:restrict_upload_to_admins, examples:restrict_encode" + user_tool_section_filters: Annotated[ + str, + Field( + title="User Tool Section Filters", + description="""Define toolbox filters (https://galaxyproject.org/user-defined-toolbox-filters/) that users may use to restrict the tool sections to display. """, - ) - user_tool_label_filters: Optional[str] = Field( - None, - title="User Tool Label Filters", - description="""Define toolbox filters (https://galaxyproject.org/user-defined-toolbox-filters/) + ), + ] = "examples:restrict_text" + user_tool_label_filters: Annotated[ + str, + Field( + title="User Tool Label Filters", + description="""Define toolbox filters (https://galaxyproject.org/user-defined-toolbox-filters/) that users may use to restrict the tool labels to display. """, - ) - toolbox_filter_base_modules: Optional[str] = Field( - None, - title="Toolbox Filter Base Modules", - description="""The base module(s) that are searched for modules for toolbox filtering + ), + ] = "examples:restrict_upload_to_admins, examples:restrict_encode" + toolbox_filter_base_modules: Annotated[ + str, + Field( + title="Toolbox Filter Base Modules", + description="""The base module(s) that are searched for modules for toolbox filtering (https://galaxyproject.org/user-defined-toolbox-filters/) functions. """, - ) - amqp_internal_connection: Optional[str] = Field( - None, - title="Amqp Internal Connection", - description="""Galaxy uses AMQP internally for communicating between processes. For + ), + ] = "galaxy.tools.filters,galaxy.tools.toolbox.filters,galaxy.tool_util.toolbox.filters" + amqp_internal_connection: Annotated[ + str, + Field( + title="Amqp Internal Connection", + description="""Galaxy uses AMQP internally for communicating between processes. For example, when reloading the toolbox or locking job execution, the process that handled that particular request will tell all others to also reload, lock jobs, etc. @@ -3278,11 +4045,13 @@ class GalaxyConfigModel(Model): will automatically create and use a separate sqlite database located in your /database folder (indicated in the commented out line below). """, - ) - celery_conf: Optional[Any] = Field( - None, - title="Celery Conf", - description="""Configuration options passed to Celery. + ), + ] = "sqlalchemy+sqlite:///./database/control.sqlite?isolation_level=IMMEDIATE" + celery_conf: Annotated[ + Any, + Field( + title="Celery Conf", + description="""Configuration options passed to Celery. To refer to a task by name, use the template `galaxy.foo` where `foo` is the function name of the task defined in the galaxy.celery.tasks module. @@ -3295,143 +4064,181 @@ class GalaxyConfigModel(Model): For details, see Celery documentation at https://docs.celeryq.dev/en/stable/userguide/configuration.html. """, - ) - enable_celery_tasks: Optional[bool] = Field( - None, - title="Enable Celery Tasks", - description="""Offload long-running tasks to a Celery task queue. + ), + ] = {"task_routes": {"galaxy.fetch_data": "galaxy.external", "galaxy.set_job_metadata": "galaxy.external"}} + enable_celery_tasks: Annotated[ + bool, + Field( + title="Enable Celery Tasks", + description="""Offload long-running tasks to a Celery task queue. Activate this only if you have setup a Celery worker for Galaxy. For details, see https://docs.galaxyproject.org/en/master/admin/production.html """, - ) - celery_user_rate_limit: Optional[float] = Field( - None, - title="Celery User Rate Limit", - description="""If set to a non-0 value, upper limit on number of + ), + ] = False + celery_user_rate_limit: Annotated[ + float, + Field( + title="Celery User Rate Limit", + description="""If set to a non-0 value, upper limit on number of tasks that can be executed per user per second. """, - ) - use_pbkdf2: Optional[bool] = Field( - None, - title="Use Pbkdf2", - description="""Allow disabling pbkdf2 hashing of passwords for legacy situations. + ), + ] = 0.0 + use_pbkdf2: Annotated[ + bool, + Field( + title="Use Pbkdf2", + description="""Allow disabling pbkdf2 hashing of passwords for legacy situations. This should normally be left enabled unless there is a specific reason to disable it. """, - ) - cookie_domain: Optional[str] = Field( - None, - title="Cookie Domain", - description="""Tell Galaxy that multiple domains sharing the same root are associated + ), + ] = True + cookie_domain: Annotated[ + str, + Field( + title="Cookie Domain", + description="""Tell Galaxy that multiple domains sharing the same root are associated to this instance and wants to share the same session cookie. This allow a user to stay logged in when passing from one subdomain to the other. This root domain will be written in the unique session cookie shared by all subdomains. """, - ) - select_type_workflow_threshold: Optional[int] = Field( - None, - title="Select Type Workflow Threshold", - description="""Due to performance considerations (select2 fields are pretty 'expensive' in terms of memory usage) + ), + ] + select_type_workflow_threshold: Annotated[ + int, + Field( + title="Select Type Workflow Threshold", + description="""Due to performance considerations (select2 fields are pretty 'expensive' in terms of memory usage) Galaxy uses the regular select fields for non-dataset selectors in the workflow run form. use 0 in order to always use select2 fields, use -1 (default) in order to always use the regular select fields, use any other positive number as threshold (above threshold: regular select fields will be used) """, - ) - enable_tool_recommendations: Optional[bool] = Field( - None, - title="Enable Tool Recommendations", - description="""Allow the display of tool recommendations in workflow editor and after tool execution. + ), + ] = -1 + enable_tool_recommendations: Annotated[ + bool, + Field( + title="Enable Tool Recommendations", + description="""Allow the display of tool recommendations in workflow editor and after tool execution. If it is enabled and set to true, please enable 'tool_recommendation_model_path' as well """, - ) - tool_recommendation_model_path: Optional[str] = Field( - None, - title="Tool Recommendation Model Path", - description="""Set remote path of the trained model (HDF5 file) for tool recommendation. -""", - ) - topk_recommendations: Optional[int] = Field( - None, - title="Topk Recommendations", - description="""Set the number of predictions/recommendations to be made by the model -""", - ) - admin_tool_recommendations_path: Optional[str] = Field( - None, - title="Admin Tool Recommendations Path", - description="""Set path to the additional tool preferences from Galaxy admins. + ), + ] = False + tool_recommendation_model_path: Annotated[ + str, + Field( + title="Tool Recommendation Model Path", + description="""Set remote path of the trained model (HDF5 file) for tool recommendation. +""", + ), + ] = "https://github.com/galaxyproject/galaxy-test-data/raw/master/tool_recommendation_model_v_0.2.hdf5" + topk_recommendations: Annotated[ + int, + Field( + title="Topk Recommendations", + description="""Set the number of predictions/recommendations to be made by the model +""", + ), + ] = 20 + admin_tool_recommendations_path: Annotated[ + str, + Field( + title="Admin Tool Recommendations Path", + description="""Set path to the additional tool preferences from Galaxy admins. It has two blocks. One for listing deprecated tools which will be removed from the recommendations and another is for adding additional tools to be recommended along side those from the deep learning model. """, - ) - overwrite_model_recommendations: Optional[bool] = Field( - None, - title="Overwrite Model Recommendations", - description="""Overwrite or append to the tool recommendations by the deep learning model. When set to true, all the recommendations by the deep learning model + ), + ] = "tool_recommendations_overwrite.yml" + overwrite_model_recommendations: Annotated[ + bool, + Field( + title="Overwrite Model Recommendations", + description="""Overwrite or append to the tool recommendations by the deep learning model. When set to true, all the recommendations by the deep learning model are overwritten by the recommendations set by an admin in a config file 'tool_recommendations_overwrite.yml'. When set to false, the recommended tools by admins and predicted by the deep learning model are shown. """, - ) - error_report_file: Optional[str] = Field( - None, - title="Error Report File", - description="""Path to error reports configuration file. -""", - ) - tool_destinations_config_file: Optional[str] = Field( - None, - title="Tool Destinations Config File", - description="""Path to dynamic tool destinations configuration file. -""", - ) - welcome_directory: Optional[str] = Field( - None, - title="Welcome Directory", - description="""Location of New User Welcome data, a single directory containing the + ), + ] = False + error_report_file: Annotated[ + str, + Field( + title="Error Report File", + description="""Path to error reports configuration file. +""", + ), + ] = "error_report.yml" + tool_destinations_config_file: Annotated[ + str, + Field( + title="Tool Destinations Config File", + description="""Path to dynamic tool destinations configuration file. +""", + ), + ] = "tool_destinations.yml" + welcome_directory: Annotated[ + str, + Field( + title="Welcome Directory", + description="""Location of New User Welcome data, a single directory containing the images and JSON of Topics/Subtopics/Slides as export. This location is relative to galaxy/static """, - ) - vault_config_file: Optional[str] = Field( - None, - title="Vault Config File", - description="""Vault config file. -""", - ) - display_builtin_converters: Optional[bool] = Field( - None, - title="Display Builtin Converters", - description="""Display built-in converters in the tool panel.""", - ) - themes_config_file: Optional[str] = Field( - None, - title="Themes Config File", - description="""Optional file containing one or more themes for galaxy. If several themes + ), + ] = "plugins/welcome_page/new_user/static/topics/" + vault_config_file: Annotated[ + str, + Field( + title="Vault Config File", + description="""Vault config file. +""", + ), + ] = "vault_conf.yml" + display_builtin_converters: Annotated[ + bool, + Field( + title="Display Builtin Converters", + description="""Display built-in converters in the tool panel.""", + ), + ] = True + themes_config_file: Annotated[ + str, + Field( + title="Themes Config File", + description="""Optional file containing one or more themes for galaxy. If several themes are defined, users can choose their preferred theme in the client. """, - ) - enable_beacon_integration: Optional[bool] = Field( - None, - title="Enable Beacon Integration", - description="""Enables user preferences and api endpoint for the beacon integration. -""", - ) - tool_training_recommendations: Optional[bool] = Field( - None, - title="Tool Training Recommendations", - description="""Displays a link to training material, if any includes the current tool. + ), + ] = "themes_conf.yml" + enable_beacon_integration: Annotated[ + bool, + Field( + title="Enable Beacon Integration", + description="""Enables user preferences and api endpoint for the beacon integration. +""", + ), + ] = False + tool_training_recommendations: Annotated[ + bool, + Field( + title="Tool Training Recommendations", + description="""Displays a link to training material, if any includes the current tool. When activated the following options also need to be set: tool_training_recommendations_link, tool_training_recommendations_api_url """, - ) - tool_training_recommendations_link: Optional[str] = Field( - None, - title="Tool Training Recommendations Link", - description="""Template URL to display all tutorials containing current tool. + ), + ] = True + tool_training_recommendations_link: Annotated[ + str, + Field( + title="Tool Training Recommendations Link", + description="""Template URL to display all tutorials containing current tool. Valid template inputs are: {repository_owner} {name} @@ -3439,24 +4246,30 @@ class GalaxyConfigModel(Model): {training_tool_identifier} {version} """, - ) - tool_training_recommendations_api_url: Optional[str] = Field( - None, - title="Tool Training Recommendations Api Url", - description="""URL to API describing tutorials containing specific tools. + ), + ] = "https://training.galaxyproject.org/training-material/by-tool/{training_tool_identifier}.html" + tool_training_recommendations_api_url: Annotated[ + str, + Field( + title="Tool Training Recommendations Api Url", + description="""URL to API describing tutorials containing specific tools. When CORS is used, make sure to add this host. """, - ) - citations_export_message_html: Optional[str] = Field( - None, - title="Citations Export Message Html", - description="""Message to display on the export citations tool page -""", - ) - enable_notification_system: Optional[bool] = Field( - None, - title="Enable Notification System", - description="""Enables the Notification System integrated in Galaxy. + ), + ] = "https://training.galaxyproject.org/training-material/api/top-tools.json" + citations_export_message_html: Annotated[ + str, + Field( + title="Citations Export Message Html", + description="""Message to display on the export citations tool page +""", + ), + ] = 'When writing up your analysis, remember to include all references that should be cited in order to completely describe your work. Also, please remember to cite Galaxy.' + enable_notification_system: Annotated[ + bool, + Field( + title="Enable Notification System", + description="""Enables the Notification System integrated in Galaxy. Users can receive automatic notifications when a certain resource is shared with them or when some long running operations have finished, etc. @@ -3464,10 +4277,13 @@ class GalaxyConfigModel(Model): Admins can schedule and broadcast notifications that will be visible to all users, including special server-wide announcements such as scheduled maintenance, high load warnings, and event announcements, to name a few examples. """, - ) - expired_notifications_cleanup_interval: Optional[int] = Field( - None, - title="Expired Notifications Cleanup Interval", - description="""The interval in seconds between attempts to delete all expired notifications from the database (every 24 hours by default). Runs in a Celery task. + ), + ] = False + expired_notifications_cleanup_interval: Annotated[ + int, + Field( + title="Expired Notifications Cleanup Interval", + description="""The interval in seconds between attempts to delete all expired notifications from the database (every 24 hours by default). Runs in a Celery task. """, - ) + ), + ] = 86400