@cofy-x/axern-sdk 0.6.2 → 0.7.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 (60) hide show
  1. package/README.md +26 -65
  2. package/dist/client/index.d.ts +10 -11
  3. package/dist/client/index.js +64 -68
  4. package/dist/config/index.d.ts +0 -1
  5. package/dist/config/index.js +2 -4
  6. package/dist/generated/proto.js +0 -1
  7. package/dist/index.d.ts +4 -5
  8. package/dist/index.js +1 -2
  9. package/dist/node/attached_process.d.ts +1 -2
  10. package/dist/node/attached_process.js +12 -26
  11. package/dist/node/client.d.ts +4 -6
  12. package/dist/node/client.js +2 -9
  13. package/dist/node/exec.d.ts +1 -3
  14. package/dist/node/exec.js +0 -43
  15. package/dist/proto/axern/control/admin/v1/access.proto +12 -5
  16. package/dist/proto/axern/control/admin/v1/audit.proto +14 -16
  17. package/dist/proto/axern/control/admin/v1/node.proto +23 -67
  18. package/dist/proto/axern/control/admin/v1/reliability.proto +11 -78
  19. package/dist/proto/axern/control/capability/v1/capability.proto +34 -94
  20. package/dist/proto/axern/control/common/v1/common.proto +29 -102
  21. package/dist/proto/axern/control/environment/v1/environment.proto +42 -26
  22. package/dist/proto/axern/control/gateway/v1/gateway.proto +18 -59
  23. package/dist/proto/axern/control/identity/v1/identity.proto +1 -1
  24. package/dist/proto/axern/control/namespace/v1/namespace.proto +2 -3
  25. package/dist/proto/axern/control/quota/v1/quota.proto +22 -32
  26. package/dist/proto/axern/control/run/v1/run.proto +26 -22
  27. package/dist/proto/axern/control/secret/v1/secret.proto +1 -3
  28. package/dist/proto/axern/control/tunnel/v1/tunnel.proto +18 -25
  29. package/dist/proto/axern/node/sandbox/v1/node.proto +59 -375
  30. package/dist/sandbox/index.d.ts +3 -9
  31. package/dist/sandbox/index.js +13 -22
  32. package/dist/sandbox/lifecycle.d.ts +1 -1
  33. package/dist/sandbox/lifecycle.js +55 -17
  34. package/dist/tunnel/connector.js +1 -1
  35. package/dist/tunnel/control.d.ts +0 -1
  36. package/dist/tunnel/control.js +0 -1
  37. package/dist/tunnel/runtime.d.ts +0 -1
  38. package/dist/tunnel/runtime.js +0 -1
  39. package/dist/tunnel/types.d.ts +0 -1
  40. package/dist/types.d.ts +4 -21
  41. package/dist/types.js +1 -3
  42. package/dist/version.d.ts +1 -1
  43. package/dist/version.js +1 -1
  44. package/package.json +1 -1
  45. package/dist/proto/axern/control/admin/v1/allocation_lifecycle.proto +0 -91
  46. package/dist/proto/axern/control/admin/v1/service.proto +0 -18
  47. package/dist/proto/axern/control/admin/v1/storage.proto +0 -81
  48. package/dist/proto/axern/control/agentprofile/v1/agent_profile.proto +0 -169
  49. package/dist/proto/axern/control/catalog/v1/catalog.proto +0 -127
  50. package/dist/proto/axern/control/function/v1/function.proto +0 -130
  51. package/dist/proto/axern/control/function/v1/function_types.proto +0 -233
  52. package/dist/proto/axern/control/node/v1/node_control.proto +0 -443
  53. package/dist/proto/axern/control/rollout/v1/rollout.proto +0 -344
  54. package/dist/proto/axern/control/service/v1/service.proto +0 -96
  55. package/dist/proto/axern/control/service/v1/service_event.proto +0 -47
  56. package/dist/proto/axern/control/service/v1/service_replica.proto +0 -78
  57. package/dist/proto/axern/control/service/v1/service_types.proto +0 -155
  58. package/dist/proto/axern/control/storage/v1/storage.proto +0 -107
  59. package/dist/proto/axern/control/storage/v1/storage_types.proto +0 -125
  60. package/dist/proto/axern/data/artifact/v1/artifact.proto +0 -19
@@ -4,21 +4,18 @@ package axern.control.common.v1;
4
4
 
5
5
  option go_package = "github.com/cofy-x/axern/sdk/go/gen/axern/control/common/v1;commonv1";
6
6
 
7
- import "google/protobuf/timestamp.proto";
8
7
  import "axern/control/capability/v1/capability.proto";
9
- import "axern/control/storage/v1/storage_types.proto";
10
8
 
11
9
  message ResourceQuantity {
12
10
  int64 cpu_milli = 1;
13
11
  // Total sandbox memory budget. requests.memory_bytes is the placement,
14
- // reservation, and namespace-quota commitment. limits.memory_bytes is the
12
+ // node-capacity charge and namespace-quota commitment. limits.memory_bytes is the
15
13
  // host cgroup v2 hard boundary and includes runtime processes, guest
16
14
  // accounting, kernel memory, shmem, and charged file/page cache.
17
15
  int64 memory_bytes = 2;
18
16
  // Sandbox-lifetime node-local disposable storage managed by Axern. The
19
17
  // current accounting scope is the runtime writable root overlay and its
20
- // metadata/copy-up/whiteouts; persistent volumes and immutable image data
21
- // are excluded.
18
+ // metadata/copy-up/whiteouts; immutable image data is excluded.
22
19
  int64 ephemeral_storage_bytes = 3;
23
20
  }
24
21
 
@@ -27,19 +24,6 @@ message ResourceSpec {
27
24
  ResourceQuantity limits = 2;
28
25
  }
29
26
 
30
- enum PortProtocol {
31
- PORT_PROTOCOL_UNSPECIFIED = 0;
32
- PORT_PROTOCOL_TCP = 1;
33
- PORT_PROTOCOL_UDP = 2;
34
- }
35
-
36
- message PortSpec {
37
- string name = 1;
38
- PortProtocol protocol = 2;
39
- int32 container_port = 3;
40
- int32 host_port = 4;
41
- }
42
-
43
27
  enum NetworkMode {
44
28
  NETWORK_MODE_UNSPECIFIED = 0;
45
29
  NETWORK_MODE_DEFAULT = 1;
@@ -113,71 +97,38 @@ message SecretFile {
113
97
  bool optional = 5;
114
98
  }
115
99
 
116
- message ServiceVolumeMount {
117
- string name = 1;
118
- string target = 2;
119
- bool readonly = 3;
120
- repeated string options = 4;
121
- axern.control.storage.v1.VolumeReclaimPolicy reclaim_policy = 5;
122
- }
123
-
124
100
  message ImageMount {
125
101
  string image = 1;
126
102
  string target = 2;
127
103
  bool readonly = 3;
128
104
  }
129
105
 
130
- message WorkspaceImageVariant {
131
- string format = 1;
132
- string image = 2;
133
- }
134
-
135
- message WorkspaceImageSource {
136
- repeated WorkspaceImageVariant variants = 1;
137
- string source_path = 2;
138
- string target = 3;
139
- }
140
-
141
- // WorkspacePreparationFacts records the node-observed preparation result for
142
- // one allocation's immutable TaskSet workspace. These facts describe the
143
- // variant that was actually selected by the node, not the variant preference
144
- // declared by the client.
145
- message WorkspacePreparationFacts {
146
- string payload_format = 1;
147
- string payload_digest = 2;
148
- bool cache_hit = 3;
149
- int64 image_resolve_ms = 4;
150
- int64 image_pull_ms = 5;
151
- int64 cow_prepare_ms = 6;
152
- }
153
-
154
106
  message ExecutionConfig {
155
107
  repeated string argv = 1;
156
108
  map<string, string> env = 2;
157
109
  string cwd = 3;
158
110
  ResourceSpec resources = 4;
159
- repeated PortSpec ports = 5;
160
- NetworkSpec network = 6;
161
- repeated axern.control.capability.v1.ExtensionCapabilityRequirement extension_capability_requirements = 7;
162
- PlacementConstraints placement = 8;
163
- repeated SecretEnvVar secret_env = 9;
164
- repeated SecretFile secret_files = 10;
165
- repeated ServiceVolumeMount volume_mounts = 11;
166
- string runtime_class = 12;
167
- repeated ImageMount image_mounts = 13;
168
- WorkspaceImageSource workspace_image = 14;
169
- }
170
-
171
- enum AllocationStatus {
172
- ALLOCATION_STATUS_UNSPECIFIED = 0;
173
- ALLOCATION_STATUS_RESERVED = 1;
174
- ALLOCATION_STATUS_BOUND = 2;
175
- ALLOCATION_STATUS_STARTING = 3;
176
- ALLOCATION_STATUS_RUNNING = 4;
177
- ALLOCATION_STATUS_EXITED = 5;
178
- ALLOCATION_STATUS_FAILED = 6;
179
- ALLOCATION_STATUS_RELEASING = 7;
180
- ALLOCATION_STATUS_RELEASED = 8;
111
+ NetworkSpec network = 5;
112
+ repeated axern.control.capability.v1.ExtensionCapabilityRequirement extension_capability_requirements = 6;
113
+ PlacementConstraints placement = 7;
114
+ repeated SecretEnvVar secret_env = 8;
115
+ repeated SecretFile secret_files = 9;
116
+ repeated ImageMount image_mounts = 10;
117
+ }
118
+
119
+ // AllocationLifecycleState tracks only placement and infrastructure cleanup.
120
+ // Workload outcome, exit status, diagnostics, and user-visible status belong to
121
+ // the owning Run.
122
+ enum AllocationLifecycleState {
123
+ ALLOCATION_LIFECYCLE_STATE_UNSPECIFIED = 0;
124
+ ALLOCATION_LIFECYCLE_STATE_BOUND = 1;
125
+ ALLOCATION_LIFECYCLE_STATE_STARTING = 2;
126
+ ALLOCATION_LIFECYCLE_STATE_ACTIVE = 3;
127
+ // STOPPED is a node observation. Controld transitions it atomically to
128
+ // RELEASING when it commits the owning Run result and cleanup work.
129
+ ALLOCATION_LIFECYCLE_STATE_STOPPED = 4;
130
+ ALLOCATION_LIFECYCLE_STATE_RELEASING = 5;
131
+ ALLOCATION_LIFECYCLE_STATE_RELEASED = 6;
181
132
  }
182
133
 
183
134
  enum WorkloadDiagnosticCode {
@@ -188,34 +139,10 @@ enum WorkloadDiagnosticCode {
188
139
  WORKLOAD_DIAGNOSTIC_CODE_NODE_SELECTION_ERROR = 4;
189
140
  WORKLOAD_DIAGNOSTIC_CODE_RUNTIME_START_ERROR = 5;
190
141
  WORKLOAD_DIAGNOSTIC_CODE_PROCESS_EXITED = 6;
191
- WORKLOAD_DIAGNOSTIC_CODE_LIVENESS_PROBE_FAILED = 7;
192
- WORKLOAD_DIAGNOSTIC_CODE_ADMISSION_BLOCKED = 8;
193
- WORKLOAD_DIAGNOSTIC_CODE_STORAGE_TOPOLOGY_UNSATISFIED = 9;
194
- WORKLOAD_DIAGNOSTIC_CODE_STORAGE_RESERVE_ERROR = 10;
195
- WORKLOAD_DIAGNOSTIC_CODE_VOLUME_PUBLISH_ERROR = 11;
196
- WORKLOAD_DIAGNOSTIC_CODE_VOLUME_RELEASE_ERROR = 12;
197
- WORKLOAD_DIAGNOSTIC_CODE_VOLUME_SPEC_CONFLICT = 13;
198
- WORKLOAD_DIAGNOSTIC_CODE_CAPABILITY_ENFORCEMENT_LOST = 14;
199
- WORKLOAD_DIAGNOSTIC_CODE_MEMORY_LIMIT_EXCEEDED = 15;
200
- }
201
-
202
- enum LeaseType {
203
- LEASE_TYPE_UNSPECIFIED = 0;
204
- LEASE_TYPE_RUN = 1;
205
- LEASE_TYPE_SERVICE = 2;
206
- LEASE_TYPE_INVOKE = 3;
207
- }
208
-
209
- message ExecutionLease {
210
- string lease_id = 1;
211
- string allocation_id = 2;
212
- string node_id = 3;
213
- int64 attempt = 4;
214
- LeaseType lease_type = 5;
215
- string plaintext_token = 6;
216
- int64 revision = 7;
217
- google.protobuf.Timestamp expires_at = 8;
218
- bool revoked = 9;
219
- string node_target = 10;
220
- string validation_token_hash = 11;
142
+ WORKLOAD_DIAGNOSTIC_CODE_ADMISSION_BLOCKED = 7;
143
+ WORKLOAD_DIAGNOSTIC_CODE_CAPABILITY_ENFORCEMENT_LOST = 8;
144
+ WORKLOAD_DIAGNOSTIC_CODE_MEMORY_LIMIT_EXCEEDED = 9;
145
+ WORKLOAD_DIAGNOSTIC_CODE_EXECUTION_LEASE_EXPIRED = 10;
146
+ WORKLOAD_DIAGNOSTIC_CODE_OPERATOR_FORCE_TERMINATED = 11;
147
+ WORKLOAD_DIAGNOSTIC_CODE_OPERATOR_FORCE_CLEANUP = 12;
221
148
  }
@@ -4,14 +4,45 @@ package axern.control.environment.v1;
4
4
 
5
5
  option go_package = "github.com/cofy-x/axern/sdk/go/gen/axern/control/environment/v1;environmentv1";
6
6
 
7
- import "axern/control/catalog/v1/catalog.proto";
8
7
  import "google/protobuf/timestamp.proto";
9
8
 
9
+ message EnvironmentMount {
10
+ string type = 1;
11
+ string source = 2;
12
+ string target = 3;
13
+ repeated string options = 4;
14
+ }
15
+
16
+ message OciImageDescriptor {
17
+ string digest = 1;
18
+ string media_type = 2;
19
+ int64 size_bytes = 3;
20
+ map<string, string> annotations = 4;
21
+ }
22
+
23
+ message OciBaselinePolicy {
24
+ repeated string capabilities = 1;
25
+ uint64 no_file_limit = 2;
26
+ }
27
+
28
+ message OciExecutionProfile {
29
+ OciBaselinePolicy baseline = 1;
30
+ }
31
+
32
+ message ResolvedEnvironmentSpec {
33
+ bool rootfs_readonly = 1;
34
+ repeated string image_default_argv = 2;
35
+ string default_cwd = 3;
36
+ map<string, string> default_env = 4;
37
+ repeated EnvironmentMount mounts = 5;
38
+ OciImageDescriptor image_descriptor = 6;
39
+ OciExecutionProfile execution_profile = 7;
40
+ }
41
+
10
42
  message EnvironmentImageSource {
11
43
  string ref = 1;
12
- string digest = 2;
13
- bool rootfs_readonly = 3;
14
- string registry_credential_id = 4;
44
+ bool rootfs_readonly = 2;
45
+ string registry_credential_id = 3;
15
46
  }
16
47
 
17
48
  message EnvironmentSpec {
@@ -21,35 +52,20 @@ message EnvironmentSpec {
21
52
  EnvironmentImageSource image = 4;
22
53
  }
23
54
 
24
- enum EnvironmentStatus {
25
- ENVIRONMENT_STATUS_UNSPECIFIED = 0;
26
- ENVIRONMENT_STATUS_PENDING = 1;
27
- ENVIRONMENT_STATUS_READY = 2;
28
- ENVIRONMENT_STATUS_FAILED = 3;
29
- ENVIRONMENT_STATUS_DELETING = 4;
30
- ENVIRONMENT_STATUS_DELETED = 5;
31
- }
32
-
33
55
  message Environment {
34
56
  string id = 1;
35
57
  string namespace = 2;
36
- EnvironmentStatus status = 3;
37
- EnvironmentSpec spec = 4;
38
- string spec_hash = 5;
39
- axern.control.catalog.v1.RuntimeTemplate resolved_template = 6;
40
- map<string, string> labels = 7;
41
- int64 version = 8;
42
- google.protobuf.Timestamp created_at = 9;
43
- google.protobuf.Timestamp updated_at = 10;
44
- string message = 11;
58
+ EnvironmentSpec spec = 3;
59
+ ResolvedEnvironmentSpec resolved_spec = 4;
60
+ map<string, string> labels = 5;
61
+ google.protobuf.Timestamp created_at = 6;
45
62
  }
46
63
 
47
64
  message ListFilter {
48
65
  string namespace = 1;
49
- repeated EnvironmentStatus statuses = 2;
50
- map<string, string> labels = 3;
51
- string cursor = 4;
52
- int32 page_size = 5;
66
+ map<string, string> labels = 2;
67
+ string cursor = 3;
68
+ int32 page_size = 4;
53
69
  }
54
70
 
55
71
  message CreateEnvironmentRequest {
@@ -4,47 +4,14 @@ package axern.control.gateway.v1;
4
4
 
5
5
  option go_package = "github.com/cofy-x/axern/sdk/go/gen/axern/control/gateway/v1;gatewayv1";
6
6
 
7
- import "axern/control/common/v1/common.proto";
8
- import "axern/control/service/v1/service_types.proto";
9
-
10
- message ResolveServiceRouteRequest {
11
- string namespace = 1;
12
- string service_id = 2;
13
- string port_ref = 3;
14
- int64 ttl_seconds = 4;
15
- }
16
-
17
- message ServiceRoutePort {
18
- string name = 1;
19
- axern.control.common.v1.PortProtocol protocol = 2;
20
- int32 container_port = 3;
21
- }
22
-
23
- message ServiceRouteEndpoint {
24
- string allocation_id = 1;
25
- string node_id = 2;
26
- string node_target = 3;
27
- int64 attempt = 4;
28
- int32 container_port = 5;
29
- axern.control.common.v1.PortProtocol protocol = 6;
30
- bool ready = 7;
31
- axern.control.common.v1.ExecutionLease lease = 8;
32
- }
33
-
34
- message ResolveServiceRouteResponse {
35
- string service_id = 1;
36
- string namespace = 2;
37
- axern.control.service.v1.ServiceStatus service_status = 3;
38
- ServiceRoutePort port = 4;
39
- repeated ServiceRouteEndpoint endpoints = 5;
40
- }
41
-
7
+ import "google/protobuf/timestamp.proto";
8
+ import "google/protobuf/empty.proto";
42
9
  message ResolveAllocationTerminalRequest {
43
10
  string allocation_id = 1;
44
11
  int64 ttl_seconds = 2;
45
- string client_certificate_fingerprint = 3;
46
- string rollout_execution_lease = 4;
47
- AllocationAccessPurpose purpose = 5;
12
+ string credential_fingerprint = 3;
13
+ AllocationAccessPurpose purpose = 4;
14
+ string credential_kind = 5;
48
15
  }
49
16
 
50
17
  enum AllocationAccessPurpose {
@@ -55,12 +22,18 @@ enum AllocationAccessPurpose {
55
22
 
56
23
  message ResolveAllocationTerminalResponse {
57
24
  string allocation_id = 1;
58
- string owner_type = 2;
59
- string owner_id = 3;
60
- string node_id = 4;
61
- string node_target = 5;
62
- int64 attempt = 6;
63
- axern.control.common.v1.ExecutionLease lease = 7;
25
+ string run_id = 2;
26
+ string node_id = 3;
27
+ string node_target = 4;
28
+ AllocationAccessGrant access_grant = 5;
29
+ }
30
+
31
+ message AllocationAccessGrant {
32
+ string grant_id = 1;
33
+ string allocation_id = 2;
34
+ string node_id = 3;
35
+ string plaintext_token = 4;
36
+ google.protobuf.Timestamp expires_at = 5;
64
37
  }
65
38
 
66
39
  message ResolveTunnelRelayTargetRequest {
@@ -71,22 +44,8 @@ message ResolveTunnelRelayTargetResponse {
71
44
  string node_edge_target = 1;
72
45
  }
73
46
 
74
- message ResolveServiceReplicaTargetsRequest {
75
- string service_id = 1;
76
- }
77
-
78
- message ServiceReplicaTarget {
79
- string allocation_id = 1;
80
- string node_id = 2;
81
- }
82
-
83
- message ResolveServiceReplicaTargetsResponse {
84
- repeated ServiceReplicaTarget replicas = 1;
85
- }
86
-
87
47
  service GatewayControl {
88
- rpc ResolveServiceRoute(ResolveServiceRouteRequest) returns (ResolveServiceRouteResponse) {}
48
+ rpc AuthorizeAllocationAccess(ResolveAllocationTerminalRequest) returns (google.protobuf.Empty) {}
89
49
  rpc ResolveAllocationTerminal(ResolveAllocationTerminalRequest) returns (ResolveAllocationTerminalResponse) {}
90
50
  rpc ResolveTunnelRelayTarget(ResolveTunnelRelayTargetRequest) returns (ResolveTunnelRelayTargetResponse) {}
91
- rpc ResolveServiceReplicaTargets(ResolveServiceReplicaTargetsRequest) returns (ResolveServiceReplicaTargetsResponse) {}
92
51
  }
@@ -17,7 +17,7 @@ message CredentialIdentity {
17
17
  string credential_id = 1;
18
18
  string label = 2;
19
19
  string fingerprint = 3;
20
- google.protobuf.Timestamp certificate_not_after = 4;
20
+ google.protobuf.Timestamp expires_at = 4;
21
21
  }
22
22
 
23
23
  message EffectiveRole {
@@ -8,9 +8,8 @@ import "google/protobuf/timestamp.proto";
8
8
 
9
9
  message Namespace {
10
10
  string namespace = 1;
11
- int64 version = 2;
12
- google.protobuf.Timestamp created_at = 3;
13
- google.protobuf.Timestamp updated_at = 4;
11
+ google.protobuf.Timestamp created_at = 2;
12
+ google.protobuf.Timestamp deleted_at = 3;
14
13
  }
15
14
 
16
15
  message CreateNamespaceRequest {
@@ -11,16 +11,15 @@ message NamespaceQuota {
11
11
  string namespace = 1;
12
12
  google.protobuf.Int64Value cpu_milli_limit = 2;
13
13
  google.protobuf.Int64Value memory_bytes_limit = 3;
14
- int64 reserved_cpu_milli = 4;
15
- int64 reserved_memory_bytes = 5;
14
+ int64 used_cpu_milli = 4;
15
+ int64 used_memory_bytes = 5;
16
16
  google.protobuf.Int64Value available_cpu_milli = 6;
17
17
  google.protobuf.Int64Value available_memory_bytes = 7;
18
- int64 version = 8;
19
- google.protobuf.Timestamp created_at = 9;
20
- google.protobuf.Timestamp updated_at = 10;
21
- google.protobuf.Int64Value ephemeral_storage_bytes_limit = 11;
22
- int64 reserved_ephemeral_storage_bytes = 12;
23
- google.protobuf.Int64Value available_ephemeral_storage_bytes = 13;
18
+ google.protobuf.Timestamp created_at = 8;
19
+ google.protobuf.Timestamp updated_at = 9;
20
+ google.protobuf.Int64Value ephemeral_storage_bytes_limit = 10;
21
+ int64 used_ephemeral_storage_bytes = 11;
22
+ google.protobuf.Int64Value available_ephemeral_storage_bytes = 12;
24
23
  }
25
24
 
26
25
  enum NamespaceQuotaEventType {
@@ -28,12 +27,6 @@ enum NamespaceQuotaEventType {
28
27
  NAMESPACE_QUOTA_EVENT_TYPE_ADMISSION_REJECTED = 1;
29
28
  }
30
29
 
31
- enum NamespaceQuotaEventWorkloadType {
32
- NAMESPACE_QUOTA_EVENT_WORKLOAD_TYPE_UNSPECIFIED = 0;
33
- NAMESPACE_QUOTA_EVENT_WORKLOAD_TYPE_RUN = 1;
34
- NAMESPACE_QUOTA_EVENT_WORKLOAD_TYPE_SERVICE = 2;
35
- }
36
-
37
30
  enum NamespaceQuotaEventReason {
38
31
  NAMESPACE_QUOTA_EVENT_REASON_UNSPECIFIED = 0;
39
32
  NAMESPACE_QUOTA_EVENT_REASON_INSUFFICIENT_CPU = 1;
@@ -46,24 +39,21 @@ message NamespaceQuotaEvent {
46
39
  string id = 1;
47
40
  string namespace = 2;
48
41
  NamespaceQuotaEventType type = 3;
49
- NamespaceQuotaEventWorkloadType workload_type = 4;
50
- string workload_id = 5;
51
- string environment_id = 6;
52
- NamespaceQuotaEventReason reason = 7;
53
- int64 requested_cpu_milli = 8;
54
- int64 reserved_cpu_milli = 9;
55
- google.protobuf.Int64Value cpu_milli_limit = 10;
56
- google.protobuf.Int64Value available_cpu_milli = 11;
57
- int64 requested_memory_bytes = 12;
58
- int64 reserved_memory_bytes = 13;
59
- google.protobuf.Int64Value memory_bytes_limit = 14;
60
- google.protobuf.Int64Value available_memory_bytes = 15;
61
- string message = 16;
62
- google.protobuf.Timestamp created_at = 17;
63
- int64 requested_ephemeral_storage_bytes = 18;
64
- int64 reserved_ephemeral_storage_bytes = 19;
65
- google.protobuf.Int64Value ephemeral_storage_bytes_limit = 20;
66
- google.protobuf.Int64Value available_ephemeral_storage_bytes = 21;
42
+ string environment_id = 4;
43
+ NamespaceQuotaEventReason reason = 5;
44
+ int64 requested_cpu_milli = 6;
45
+ int64 used_cpu_milli = 7;
46
+ google.protobuf.Int64Value cpu_milli_limit = 8;
47
+ google.protobuf.Int64Value available_cpu_milli = 9;
48
+ int64 requested_memory_bytes = 10;
49
+ int64 used_memory_bytes = 11;
50
+ google.protobuf.Int64Value memory_bytes_limit = 12;
51
+ google.protobuf.Int64Value available_memory_bytes = 13;
52
+ google.protobuf.Timestamp created_at = 14;
53
+ int64 requested_ephemeral_storage_bytes = 15;
54
+ int64 used_ephemeral_storage_bytes = 16;
55
+ google.protobuf.Int64Value ephemeral_storage_bytes_limit = 17;
56
+ google.protobuf.Int64Value available_ephemeral_storage_bytes = 18;
67
57
  }
68
58
 
69
59
  message GetNamespaceQuotaRequest {
@@ -6,17 +6,17 @@ option go_package = "github.com/cofy-x/axern/sdk/go/gen/axern/control/run/v1;run
6
6
 
7
7
  import "axern/control/common/v1/common.proto";
8
8
  import "axern/control/capability/v1/capability.proto";
9
+ import "axern/control/environment/v1/environment.proto";
9
10
  import "google/protobuf/timestamp.proto";
10
11
 
11
12
  enum RunStatus {
12
13
  RUN_STATUS_UNSPECIFIED = 0;
13
- RUN_STATUS_QUEUED = 1;
14
- RUN_STATUS_PLACED = 2;
15
- RUN_STATUS_STARTING = 3;
16
- RUN_STATUS_RUNNING = 4;
17
- RUN_STATUS_SUCCEEDED = 5;
18
- RUN_STATUS_FAILED = 6;
19
- RUN_STATUS_CANCELLED = 7;
14
+ RUN_STATUS_PLACED = 1;
15
+ RUN_STATUS_STARTING = 2;
16
+ RUN_STATUS_RUNNING = 3;
17
+ RUN_STATUS_SUCCEEDED = 4;
18
+ RUN_STATUS_FAILED = 5;
19
+ RUN_STATUS_CANCELLED = 6;
20
20
  }
21
21
 
22
22
  message Run {
@@ -24,21 +24,25 @@ message Run {
24
24
  string namespace = 2;
25
25
  string environment_id = 3;
26
26
  string allocation_id = 4;
27
- int64 attempt = 5;
28
- RunStatus status = 6;
29
- axern.control.common.v1.ExecutionConfig config = 7;
30
- map<string, string> labels = 8;
31
- int64 version = 9;
32
- google.protobuf.Timestamp created_at = 10;
33
- google.protobuf.Timestamp updated_at = 11;
34
- int32 exit_code = 12;
35
- bool exit_code_known = 13;
36
- string message = 14;
37
- axern.control.common.v1.WorkloadDiagnosticCode diagnostic_code = 15;
38
- // Full, monotonically revised allocation capability condition projection.
39
- // It is independent from run lifecycle status and message.
40
- axern.control.capability.v1.CapabilityConditionSet capability_conditions = 16;
41
- reserved 17 to 18;
27
+ RunStatus status = 5;
28
+ axern.control.common.v1.ExecutionConfig config = 6;
29
+ map<string, string> labels = 7;
30
+ int64 version = 8;
31
+ google.protobuf.Timestamp created_at = 9;
32
+ google.protobuf.Timestamp updated_at = 10;
33
+ optional int32 exit_code = 11;
34
+ string message = 12;
35
+ axern.control.common.v1.WorkloadDiagnosticCode diagnostic_code = 13;
36
+ // Latest allocation capability condition projection. It is independent
37
+ // from Run lifecycle status and message.
38
+ axern.control.capability.v1.CapabilityConditionSet capability_conditions = 14;
39
+ string node_id = 15;
40
+ // Immutable Environment input frozen atomically with Run admission. The
41
+ // source record may be deleted after this Run is created.
42
+ axern.control.environment.v1.EnvironmentSpec environment_spec = 16;
43
+ axern.control.environment.v1.ResolvedEnvironmentSpec resolved_environment_spec = 17;
44
+ // Node-local stdout/stderr availability deadline; node loss may make bytes unavailable earlier.
45
+ google.protobuf.Timestamp output_expires_at = 18;
42
46
  }
43
47
 
44
48
  message RunListFilter {
@@ -18,9 +18,7 @@ message Secret {
18
18
  SecretType type = 3;
19
19
  repeated string data_keys = 4;
20
20
  map<string, string> labels = 5;
21
- int64 version = 6;
22
- google.protobuf.Timestamp created_at = 7;
23
- google.protobuf.Timestamp updated_at = 8;
21
+ google.protobuf.Timestamp created_at = 6;
24
22
  }
25
23
 
26
24
  message SecretListFilter {
@@ -67,27 +67,21 @@ message TunnelSession {
67
67
  string session_id = 1;
68
68
  string allocation_id = 2;
69
69
  string node_id = 3;
70
- string node_target = 4;
71
- int64 attempt = 5;
72
- int32 remote_port = 6;
73
- string local_target = 7;
74
- string edge_target = 8;
75
- TunnelSessionStatus status = 9;
76
- string reason = 10;
77
- string bound_addr = 11;
78
- bool revoked = 12;
79
- google.protobuf.Timestamp created_at = 13;
80
- google.protobuf.Timestamp updated_at = 14;
81
- google.protobuf.Timestamp expires_at = 15;
82
- string node_edge_target = 16;
83
- string relay_id = 17;
84
- string client_edge_target = 18;
85
- google.protobuf.Timestamp ready_at = 19;
86
- google.protobuf.Timestamp last_peer_event_at = 20;
87
- int64 bytes_in = 21;
88
- int64 bytes_out = 22;
89
- string namespace = 23;
90
- string creator_principal_id = 24;
70
+ int32 remote_port = 4;
71
+ string client_edge_target = 5;
72
+ TunnelSessionStatus status = 6;
73
+ string reason = 7;
74
+ string bound_addr = 8;
75
+ google.protobuf.Timestamp created_at = 9;
76
+ google.protobuf.Timestamp updated_at = 10;
77
+ google.protobuf.Timestamp expires_at = 11;
78
+ string relay_id = 12;
79
+ google.protobuf.Timestamp ready_at = 13;
80
+ google.protobuf.Timestamp last_peer_event_at = 14;
81
+ int64 bytes_in = 15;
82
+ int64 bytes_out = 16;
83
+ string namespace = 17;
84
+ string creator_principal_id = 18;
91
85
  }
92
86
 
93
87
  message TunnelSessionEvent {
@@ -108,10 +102,9 @@ message TunnelSessionEvent {
108
102
  message CreateTunnelSessionRequest {
109
103
  string allocation_id = 1;
110
104
  optional int32 remote_port = 2;
111
- string local_target = 3;
112
- google.protobuf.Duration ttl = 4;
113
- bool wait_ready = 5;
114
- google.protobuf.Duration ready_timeout = 6;
105
+ google.protobuf.Duration ttl = 3;
106
+ bool wait_ready = 4;
107
+ google.protobuf.Duration ready_timeout = 5;
115
108
  }
116
109
 
117
110
  message CreateTunnelSessionResponse {