blob: 208e4b6011e37ae2300ce4d908ae03f8d1c501c6 [file] [log] [blame]
Serge Bazanski9ffa1f92021-09-01 15:42:23 +02001syntax = "proto3";
2package metropolis.proto.ext;
3option go_package = "source.monogon.dev/metropolis/proto/ext";
4
5import "google/protobuf/descriptor.proto";
6
7extend google.protobuf.MethodOptions {
8 // Set authorization policy for this RPC. If not set but the service is
9 // configured to use authorization, the default/zero value of the
10 // Authorization message will be used (effectively allowing all
11 // authenticated users).
12 Authorization authorization = 1000;
13}
14
15
16// Permission is a combined activity/object that an identity can perform in the
17// cluster.
18//
19// MVP: this might get replaced with a full activity/object split later on.
20enum Permission {
21 PERMISSION_UNSPECIFIED = 0;
22 PERMISSION_GET_REGISTER_TICKET = 1;
Serge Bazanskid7d6e022021-09-01 15:03:06 +020023 PERMISSION_READ_CLUSTER_STATUS = 2;
Serge Bazanski2893e982021-09-09 13:06:16 +020024 PERMISSION_UPDATE_NODE_SELF = 3;
Serge Bazanski1612d4b2021-11-12 13:54:15 +010025 PERMISSION_APPROVE_NODE = 4;
Mateusz Zalegabb2edbe2022-06-08 11:57:09 +020026 PERMISSION_UPDATE_NODE_ROLES = 5;
Serge Bazanskib91938f2023-03-29 14:31:22 +020027 PERMISSION_READ_NODE_LOGS = 6;
Lorenz Brun35fcf032023-06-29 04:15:58 +020028 PERMISSION_UPDATE_NODE = 7;
Serge Bazanski9ffa1f92021-09-01 15:42:23 +020029}
30
31// Authorization policy for an RPC method. This message/API does not have the
32// same stability guarantees as the rest of Metropolis APIs - it is internal,
33// might change in wire and text incompatible ways and should not be used by
34// consumers of the API.
35message Authorization {
36 // Set of permissions required from the caller.
37 repeated Permission need = 1;
38 // If set, this API can be called unauthorized and unauthenticated, thereby
39 // allowing full access to anyone, including public access by anyone with
40 // network connectivity to the cluster.. Ignored if `need` is non-empty.
41 bool allow_unauthenticated = 2;
42}