@devvit/protos 0.12.0 → 0.12.1-next-2025-08-13-20-47-05-c6474cff6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (17) hide show
  1. package/meta.min.json +8076 -0
  2. package/package.json +4 -4
  3. package/protos.min.js +2 -0
  4. package/protos.min.js.map +7 -0
  5. package/schema/.snootobuf/remoteSrcs/reddit/coreplatform/cloudroutines/callback/v1/callback_service.proto +92 -0
  6. package/schema/.snootobuf/remoteSrcs/reddit/coreplatform/cloudroutines/event/v1/event.proto +52 -0
  7. package/schema/.snootobuf/remoteSrcs/reddit/coreplatform/cloudroutines/experimental/v1/experimental.proto +71 -0
  8. package/schema/.snootobuf/remoteSrcs/reddit/coreplatform/cloudroutines/interop/analytics/v1/analytics.proto +12 -0
  9. package/schema/.snootobuf/remoteSrcs/reddit/coreplatform/cloudroutines/interop/generic/v1/generic.proto +12 -0
  10. package/schema/.snootobuf/remoteSrcs/reddit/coreplatform/cloudroutines/loadbalancing/v1/loadbalancing.proto +43 -0
  11. package/schema/.snootobuf/remoteSrcs/reddit/coreplatform/cloudroutines/metadata/v1/metadata.proto +20 -0
  12. package/schema/.snootobuf/remoteSrcs/reddit/coreplatform/cloudroutines/operation/v1/operation.proto +148 -0
  13. package/schema/.snootobuf/remoteSrcs/reddit/coreplatform/cloudroutines/publication/v1/publication_service.proto +56 -0
  14. package/schema/.snootobuf/remoteSrcs/reddit/coreplatform/cloudroutines/scheduling/v1/offsets.proto +17 -0
  15. package/schema/.snootobuf/remoteSrcs/reddit/coreplatform/cloudroutines/scheduling/v1/scheduling.proto +25 -0
  16. package/schema/.snootobuf/remoteSrcs/reddit/coreplatform/cloudroutines/testing/v1/testing.proto +72 -0
  17. package/schema/.snootobuf/remoteSrcs/reddit/coreplatform/cloudroutines/workerpool/v1/workerpool.proto +213 -0
@@ -0,0 +1,213 @@
1
+ syntax = "proto3";
2
+
3
+ package reddit.coreplatform.cloudroutines.workerpool.v1;
4
+
5
+ import "google/protobuf/any.proto";
6
+ import "google/protobuf/timestamp.proto";
7
+ import "google/rpc/status.proto";
8
+ import "reddit/coreplatform/cloudroutines/experimental/v1/experimental.proto";
9
+ import "reddit/coreplatform/cloudroutines/scheduling/v1/offsets.proto";
10
+ import "validate/validate.proto";
11
+
12
+ option go_package = "github.snooguts.net/reddit/cloudroutines/go/workerpoolpb/v1;workerpoolpb";
13
+
14
+ service WorkerPoolService {
15
+ // RegisterWorkerPoolVersion handles the registration of new workers to a given pool.
16
+ // Responses contain a mapping of callback names to corresponding error statuses encountered during registration.
17
+ // Problematic callbacks will be omitted from registration and returned in the response errors map.
18
+ rpc RegisterWorkerPoolVersion(RegisterWorkerPoolVersionRequest) returns (RegisterWorkerPoolVersionResponse) {
19
+ option idempotency_level = IDEMPOTENT;
20
+ }
21
+
22
+ // ReplayCallbackWithWindow will trigger Cloudroutines to redeliver messages published within the specified time
23
+ // window to the specified callback. If the time window falls outside of the topic retention window, then no messages will
24
+ // be delivered and an error is returned.
25
+ rpc ReplayCallbackWithWindow(ReplayCallbackWithWindowRequest) returns (ReplayCallbackWithWindowResponse) {
26
+ option idempotency_level = IDEMPOTENT;
27
+ }
28
+ }
29
+
30
+ message ReplayWindow {
31
+ google.protobuf.Timestamp start = 1;
32
+ google.protobuf.Timestamp end = 2;
33
+ }
34
+
35
+ message ReplayCallbackWithWindowRequest {
36
+ string callback_namespace = 1 [(validate.rules).string = {
37
+ pattern: "^[-a-zA-Z0-9]+$"
38
+ min_len: 1
39
+ max_len: 255
40
+ }];
41
+ string callback_name = 2 [(validate.rules).string = {
42
+ pattern: "^[_a-zA-Z0-9]+$"
43
+ min_len: 1
44
+ max_len: 255
45
+ }];
46
+
47
+ ReplayWindow replay_window = 3;
48
+ }
49
+
50
+ message ReplayCallbackWithWindowResponse {
51
+ reddit.coreplatform.cloudroutines.scheduling.v1.DataSourceOffsetRange window_offset_range = 1;
52
+ }
53
+
54
+ message RegisterWorkerPoolVersionRequest {
55
+ // Reference to the worker pool that the worker is registering to.
56
+ WorkerPool.Source worker_pool_source = 1;
57
+
58
+ WorkerPool.Version worker_pool_version = 2;
59
+
60
+ // Unique ID of the worker instance.
61
+ // This must match the pod name of the caller.
62
+ string worker_id = 3 [(validate.rules).string = {
63
+ pattern: "^[-_.a-zA-Z0-9]+$"
64
+ min_len: 1
65
+ max_len: 255
66
+ }];
67
+ }
68
+
69
+ message CallbackInfo {
70
+ // The name of the callback
71
+ string name = 1 [(validate.rules).string = {
72
+ pattern: "^[_a-zA-Z0-9]+$"
73
+ min_len: 1
74
+ max_len: 255
75
+ }];
76
+
77
+ string request_full_name = 2;
78
+
79
+ // The kafka topic that the callback wants to handle.
80
+ // If empty, the kafka topic will default to the fullname of the message descriptor.
81
+ string source_topic = 3 [(validate.rules).string = {
82
+ ignore_empty: true
83
+ pattern: "^[-_.a-zA-Z0-9]+$"
84
+ max_len: 255
85
+ }];
86
+
87
+ // Configuration for experimental callback settings and features.
88
+ // Not recommended for general usage.
89
+ experimental.v1.ExperimentalCallbackOptions experimental_options = 4;
90
+
91
+ // A list of extensions which influence the scheduling decisions and consumer behavior. This
92
+ // field is meant to be populated only by the Cloudroutines scheduler. Attempts to configure this
93
+ // outside of the scheduler should fail immediately.
94
+ repeated google.protobuf.Any internal_scheduling_extensions = 5;
95
+ }
96
+
97
+ message RegisterWorkerPoolVersionResponse {
98
+ // Mapping of callback names to error statuses encountered during registration.
99
+ map<string, google.rpc.Status> errors = 1;
100
+ }
101
+
102
+ // Used internally within Cloudroutines to asynchronously update worker discovery information.
103
+ message WorkerPoolEvent {
104
+ message RegisterVersion {
105
+ WorkerPool.Source source = 1;
106
+ WorkerPool.Version version = 2;
107
+
108
+ // The unique identifier for the member of the worker pool which triggered this registration event. If blank,
109
+ // this the event was triggered by internal automation or a state resync. This value is usually the pod name.
110
+ string worker_id = 3;
111
+ }
112
+
113
+ message EvictVersion {
114
+ WorkerPool.Source source = 1;
115
+ WorkerPool.Version version = 2;
116
+ }
117
+
118
+ message EvictPool {
119
+ WorkerPool.Source source = 1;
120
+ }
121
+
122
+ oneof event {
123
+ RegisterVersion register_version = 1;
124
+ EvictVersion evict_version = 2;
125
+ EvictPool evict_pool = 3;
126
+ }
127
+ }
128
+
129
+ message WorkerPool {
130
+ message Source {
131
+ oneof source {
132
+ // Reference to the deployment that the worker pool is associated with.
133
+ // Contains separate fields for the deployment name and namespace.
134
+ DeploymentReference deployment_reference = 1;
135
+ }
136
+ }
137
+
138
+ message Version {
139
+ // The version of the worker pool. By default this is the pod template hash which we use as the
140
+ // version identifier for a set of pods. When dynamic reloading is enabled, we have to use the
141
+ // computed hash of the callback contents.
142
+ string id = 1 [(validate.rules).string = {
143
+ pattern: "^[-_.a-zA-Z0-9]+$"
144
+ min_len: 1
145
+ max_len: 255
146
+ }];
147
+
148
+ // The port that the workers are listening on.
149
+ int32 port = 3 [(validate.rules).int32 = {
150
+ gte: 1
151
+ lte: 65535
152
+ }];
153
+ // The list of callbacks that the worker pool is able to handle.
154
+ map<string, CallbackInfo> callbacks = 4 [(validate.rules).map = {min_pairs: 1}];
155
+
156
+ google.protobuf.Any workload_extension = 5;
157
+
158
+ // Optional version id of the deployment or workload this version struct is associated with. This field is
159
+ // used when dynamic reloading of callbacks is configured.
160
+ string workload_version_id = 6;
161
+ }
162
+
163
+ Source source = 1;
164
+
165
+ map<string, Version> versions = 2;
166
+ }
167
+
168
+ message DeploymentReference {
169
+ // The name of the deployment.
170
+ string name = 1 [(validate.rules).string = {
171
+ pattern: "^[-_.a-zA-Z0-9]+$"
172
+ min_len: 1
173
+ max_len: 255
174
+ }];
175
+ // The namespace of the deployment.
176
+ string namespace = 2 [(validate.rules).string = {
177
+ pattern: "^[-_.a-zA-Z0-9]+$"
178
+ min_len: 1
179
+ max_len: 255
180
+ }];
181
+ }
182
+
183
+ message EinhornWorkloadExtension {
184
+ message PortRange {
185
+ int32 start = 1 [(validate.rules).int32 = {
186
+ gte: 1
187
+ lte: 65535
188
+ }];
189
+ int32 end = 2 [(validate.rules).int32 = {
190
+ gte: 1
191
+ lte: 65535
192
+ }];
193
+ }
194
+
195
+ // The port range that the worker pool is listening on.
196
+ PortRange port_range = 1;
197
+ }
198
+
199
+ message MonocerosWorkloadExtension {
200
+ message PortRange {
201
+ int32 start = 1 [(validate.rules).int32 = {
202
+ gte: 1
203
+ lte: 65535
204
+ }];
205
+ int32 end = 2 [(validate.rules).int32 = {
206
+ gte: 1
207
+ lte: 65535
208
+ }];
209
+ }
210
+
211
+ // The port range that the worker pool is listening on.
212
+ PortRange port_range = 1;
213
+ }