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  }