go.chromium.org/luci@v0.0.0-20240309015107-7cdc2e660f33/swarming/proto/config/config.proto (about) 1 // Copyright 2016 The LUCI Authors. All rights reserved. 2 // Use of this source code is governed under the Apache License, Version 2.0 3 // that can be found in the LICENSE file. 4 5 syntax = "proto3"; 6 7 package swarming.config; 8 9 import "go.chromium.org/luci/swarming/proto/config/realms.proto"; 10 11 option go_package = "go.chromium.org/luci/swarming/proto/config;configpb"; 12 13 import "go.chromium.org/luci/common/proto/options.proto"; 14 15 option (luci.file_metadata) = { 16 doc_url: "https://config.luci.app/schemas/services/swarming:settings.cfg"; 17 }; 18 19 // Schema for settings.cfg service config file in luci-config. 20 message SettingsCfg { 21 reserved 5; // used to be isolate 22 reserved 7; // used to be mp (machine provider settings) 23 reserved 10; // used to be dimension_acls 24 reserved 17; // used to be use_lifo, see pools.proto Pool.SchedulingAlgorithm 25 26 // id to inject into pages if applicable. 27 string google_analytics = 1; 28 29 // The number of seconds an old task can be deduped from. 30 // Default is one week: 7*24*60*60 = 604800 31 int32 reusable_task_age_secs = 2; 32 33 // The amount of time that has to pass before a machine is considered dead. 34 // Default is 600 (10 minutes). 35 int32 bot_death_timeout_secs = 3; 36 37 // Enable ts_mon based monitoring. 38 bool enable_ts_monitoring = 4; 39 40 41 // (deprecated, see pools.proto) Configuration for swarming-cipd integration. 42 CipdSettings cipd = 6; 43 44 // Emergency setting to disable bot task reaping. When set, all bots are 45 // always put to sleep and are never granted task. 46 bool force_bots_to_sleep_and_not_run_task = 8; 47 48 // oauth client id for the ui. This is created in the developer's console 49 // under Credentials. 50 string ui_client_id = 9; 51 52 // A url to a task display server (e.g. milo). This should have a %s where 53 // a task id can go. 54 string display_server_url_template = 11; 55 56 // Sets a maximum sleep time in seconds for bots that limits the exponental 57 // backoff. If missing, the task scheduler will provide the default maximum 58 // (usually 60s, but see bot_code/task_scheduler.py for details). 59 int32 max_bot_sleep_time = 12; 60 61 // Names of the authorization groups used by components/auth. 62 AuthSettings auth = 13; 63 64 // Sets the default gRPC proxy for the bot's Isolate server calls. 65 string bot_isolate_grpc_proxy = 14; 66 67 // Sets the default gRPC proxy for the bot's Swarming server calls. 68 string bot_swarming_grpc_proxy = 15; 69 70 // Any extra urls that should be added to frame-src, e.g. anything that 71 // will be linked to from the display server. 72 // This originally added things to child-src, which was deprecated: 73 // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/child-src 74 repeated string extra_child_src_csp_url = 16; 75 76 // Whether swarming should batch notifications to the external scheduler. 77 bool enable_batch_es_notifications = 18; 78 79 // Configuration for Swarming-ResultDB integration. 80 ResultDBSettings resultdb = 19; 81 82 // Configuration for RBE-CAS integration. 83 CASSettings cas = 20; 84 } 85 86 87 // A CIPD package. 88 message CipdPackage { 89 // A template of a full CIPD package name, e.g. 90 // "infra/tools/cipd/${platform}" 91 // See also cipd.ALL_PARAMS. 92 string package_name = 1; 93 94 // Valid package version for all packages matched by package name. 95 string version = 2; 96 } 97 98 99 // Settings for Swarming-CIPD integration. 100 message CipdSettings { 101 // URL of the default CIPD server to use if it is not specified in a task. 102 // Must start with "https://" or "http://", 103 // e.g. "https://chrome-infra-packages.appspot.com". 104 string default_server = 1; 105 106 // Package of the default CIPD client to use if it is not specified in a 107 // task. 108 CipdPackage default_client_package = 2; 109 } 110 111 112 // Access control groups for the swarming service. Custom group names 113 // allow several swarming instances to co-exist under the same "auth" 114 // server. 115 // 116 // All groups default to 'administrators'. 117 // 118 // See 119 // https://chromium.googlesource.com/infra/luci/luci-py.git/+/master/appengine/swarming/doc/Access-Groups.md 120 // for more detail. 121 122 message AuthSettings { 123 // Members of this group have full administrative access. 124 // 125 // Grants: 126 // - config view and edit 127 // - delete any bot 128 // - all of bot_bootstrap_group membership 129 // - all of privileged_users_group membership 130 string admins_group = 1; 131 132 // Members of this group can fetch swarming bot code and bootstrap bots. 133 // 134 // Grants: 135 // - bot create: create a token to anonymously fetch the bot code. 136 string bot_bootstrap_group = 2; 137 138 // Members of this group can schedule tasks and see everyone else's tasks. 139 // 140 // Grants: 141 // - cancel any task 142 // - edit (terminate) any bot 143 // - all of view_all_bots_group membership 144 // - all of view_all_tasks_group membership 145 string privileged_users_group = 3; 146 147 // Members of this group can schedule tasks and see only their own tasks. 148 // 149 // Grants: 150 // - create a task 151 // - view and edit own task 152 string users_group = 4; 153 154 // Members of this group can view all bots. This is a read-only group. 155 // 156 // Grants: 157 // - view all bots 158 string view_all_bots_group = 5; 159 160 // Members of this group can view all tasks. This is a read-only group. 161 // 162 // Grants: 163 // - view all tasks 164 string view_all_tasks_group = 6; 165 166 // List of Realm permissions enforced by default. 167 // This field will be deprecated after migration. 168 repeated RealmPermission enforced_realm_permissions = 7; 169 } 170 171 // Settings for Swarming-ResultDB integration. 172 message ResultDBSettings { 173 // URL of the ResultDB server to use. 174 // Must start with "https://" or "http://", 175 // e.g. "https://results.api.cr.dev". 176 string server = 1; 177 } 178 179 // Settings for CAS integration. 180 message CASSettings { 181 // Host of the CAS viewer. 182 // Must start with "https://" or "http://", 183 // e.g. "https://cas-viewer.appspot.com". 184 string viewer_server = 1; 185 }