@serve.zone/interfaces 7.0.0 → 7.2.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.
package/changelog.md CHANGED
@@ -1,5 +1,24 @@
1
1
  # Changelog
2
2
 
3
+ ## 2026-06-09 - 7.2.0
4
+
5
+ ### Features
6
+
7
+ - add node management typed request contracts (node-requests)
8
+ - Adds getNodes, getNodeById, getNodeDeletionImpact, and deleteNodeById request interfaces.
9
+ - Includes deletion impact response data for related cluster, deployments, bare metal hosts, blockers, and deletion eligibility.
10
+
11
+ ## 2026-06-09 - 7.1.0
12
+
13
+ ### Features
14
+
15
+ - add service reconciliation status contracts (service-status)
16
+ - Add reconciliation status types and an optional reconciliationStatus field to service data
17
+ - Add typed request contract for reporting reconciliation status updates
18
+ - Align the cloudlyStatus request contract with typedrequest interfaces
19
+ - add optional identity context to settings requests (settings)
20
+ - Adds optional identity to get, update, clear, provider connection test, and internal get setting request payloads.
21
+
3
22
  ## 2026-06-08 - 7.0.0
4
23
 
5
24
  ### Breaking Changes
@@ -3,7 +3,7 @@
3
3
  */
4
4
  export const commitinfo = {
5
5
  name: '@serve.zone/interfaces',
6
- version: '7.0.0',
6
+ version: '7.2.0',
7
7
  description: 'Shared TypeScript interfaces and TypedRequest contracts for the serve.zone ecosystem.'
8
8
  };
9
9
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMDBfY29tbWl0aW5mb19kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvMDBfY29tbWl0aW5mb19kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHO0lBQ3hCLElBQUksRUFBRSx3QkFBd0I7SUFDOUIsT0FBTyxFQUFFLE9BQU87SUFDaEIsV0FBVyxFQUFFLHVGQUF1RjtDQUNyRyxDQUFBIn0=
@@ -17,6 +17,21 @@ export interface IServiceVolume {
17
17
  /** Driver-specific options forwarded to Docker's VolumeDriver.Create request. */
18
18
  options?: Record<string, string>;
19
19
  }
20
+ export type TServiceReconciliationStatus = 'running' | 'ready' | 'degraded' | 'failed';
21
+ export interface IServiceReconciliationStageStatus {
22
+ stage: string;
23
+ stageKey: string;
24
+ status: TServiceReconciliationStatus;
25
+ domainName?: string;
26
+ message?: string;
27
+ errorText?: string;
28
+ reportedAt: number;
29
+ }
30
+ export interface IServiceReconciliationStatus {
31
+ status: TServiceReconciliationStatus;
32
+ updatedAt: number;
33
+ stages: Record<string, IServiceReconciliationStageStatus>;
34
+ }
20
35
  export interface IService {
21
36
  id: string;
22
37
  data: {
@@ -30,6 +45,7 @@ export interface IService {
30
45
  appTemplateVersion?: string;
31
46
  appStoreUpgradePolicy?: 'manual' | 'notify' | 'auto';
32
47
  hostedAppLifecycle?: IHostedAppLifecycleState;
48
+ reconciliationStatus?: IServiceReconciliationStatus;
33
49
  environment: {
34
50
  [key: string]: string;
35
51
  };
@@ -1,4 +1,6 @@
1
1
  import * as plugins from '../plugins.js';
2
+ import type { IBareMetal } from '../data/baremetal.js';
3
+ import type { ICluster } from '../data/cluster.js';
2
4
  import type { IClusterNode, IClusterNodeMetrics, ISparkNodeRuntimeInfo } from '../data/clusternode.js';
3
5
  import type { IDeployment } from '../data/deployment.js';
4
6
  import type { IIdentity } from '../data/user.js';
@@ -46,6 +48,51 @@ export interface IReq_Any_Cloudly_CreateNodeJumpCommand extends plugins.typedreq
46
48
  expiresAt: number;
47
49
  };
48
50
  }
51
+ export interface IReq_Any_Cloudly_GetNodes extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_Any_Cloudly_GetNodes> {
52
+ method: 'getNodes';
53
+ request: {
54
+ identity: IIdentity;
55
+ clusterId?: string;
56
+ };
57
+ response: {
58
+ nodes: IClusterNode[];
59
+ };
60
+ }
61
+ export interface IReq_Any_Cloudly_GetNodeById extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_Any_Cloudly_GetNodeById> {
62
+ method: 'getNodeById';
63
+ request: {
64
+ identity: IIdentity;
65
+ nodeId: string;
66
+ };
67
+ response: {
68
+ node: IClusterNode;
69
+ };
70
+ }
71
+ export interface IReq_Any_Cloudly_GetNodeDeletionImpact extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_Any_Cloudly_GetNodeDeletionImpact> {
72
+ method: 'getNodeDeletionImpact';
73
+ request: {
74
+ identity: IIdentity;
75
+ nodeId: string;
76
+ };
77
+ response: {
78
+ node: IClusterNode;
79
+ cluster?: ICluster;
80
+ deployments: IDeployment[];
81
+ baremetals: IBareMetal[];
82
+ blockers: string[];
83
+ canDelete: boolean;
84
+ };
85
+ }
86
+ export interface IReq_Any_Cloudly_DeleteNodeById extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_Any_Cloudly_DeleteNodeById> {
87
+ method: 'deleteNodeById';
88
+ request: {
89
+ identity: IIdentity;
90
+ nodeId: string;
91
+ };
92
+ response: {
93
+ ok: boolean;
94
+ };
95
+ }
49
96
  export interface IRequest_Spark_Cloudly_SendHeartbeat extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IRequest_Spark_Cloudly_SendHeartbeat> {
50
97
  method: 'sparkNodeHeartbeat';
51
98
  request: {
@@ -1,8 +1,11 @@
1
1
  import * as plugins from '../plugins.js';
2
2
  import type { ICloudlySettings, ICloudlySettingsMasked } from '../data/settings.js';
3
+ import type { IIdentity } from '../data/user.js';
3
4
  export interface IRequest_GetSettings extends plugins.typedrequestInterfaces.ITypedRequest {
4
5
  method: 'getSettings';
5
- request: {};
6
+ request: {
7
+ identity?: IIdentity;
8
+ };
6
9
  response: {
7
10
  settings: ICloudlySettingsMasked;
8
11
  };
@@ -10,6 +13,7 @@ export interface IRequest_GetSettings extends plugins.typedrequestInterfaces.ITy
10
13
  export interface IRequest_UpdateSettings extends plugins.typedrequestInterfaces.ITypedRequest {
11
14
  method: 'updateSettings';
12
15
  request: {
16
+ identity?: IIdentity;
13
17
  updates: Partial<ICloudlySettings>;
14
18
  };
15
19
  response: {
@@ -20,6 +24,7 @@ export interface IRequest_UpdateSettings extends plugins.typedrequestInterfaces.
20
24
  export interface IRequest_ClearSetting extends plugins.typedrequestInterfaces.ITypedRequest {
21
25
  method: 'clearSetting';
22
26
  request: {
27
+ identity?: IIdentity;
23
28
  key: keyof ICloudlySettings;
24
29
  };
25
30
  response: {
@@ -30,6 +35,7 @@ export interface IRequest_ClearSetting extends plugins.typedrequestInterfaces.IT
30
35
  export interface IRequest_TestProviderConnection extends plugins.typedrequestInterfaces.ITypedRequest {
31
36
  method: 'testProviderConnection';
32
37
  request: {
38
+ identity?: IIdentity;
33
39
  provider: 'hetzner' | 'cloudflare' | 'aws' | 'digitalocean' | 'azure' | 'google' | 'vultr' | 'linode' | 'ovh' | 'scaleway';
34
40
  };
35
41
  response: {
@@ -41,6 +47,7 @@ export interface IRequest_TestProviderConnection extends plugins.typedrequestInt
41
47
  export interface IRequest_GetSetting extends plugins.typedrequestInterfaces.ITypedRequest {
42
48
  method: 'getSetting';
43
49
  request: {
50
+ identity?: IIdentity;
44
51
  key: keyof ICloudlySettings;
45
52
  };
46
53
  response: {
@@ -1,11 +1,29 @@
1
+ import * as plugins from '../plugins.js';
2
+ import * as serviceInterfaces from '../data/service.js';
1
3
  import * as userInterfaces from '../data/user.js';
2
4
  /**
3
5
  * a status update dashboard
4
6
  */
5
- export interface IRequest_Coreflow_Cloudly_CoreflowManagerStatusupdate {
7
+ export interface IRequest_Coreflow_Cloudly_CoreflowManagerStatusupdate extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IRequest_Coreflow_Cloudly_CoreflowManagerStatusupdate> {
6
8
  method: 'cloudlyStatus';
7
9
  request: {
8
10
  identity: userInterfaces.IIdentity;
9
11
  };
10
12
  response: {};
11
13
  }
14
+ export interface IRequest_Coreflow_Cloudly_ReportReconciliationStatus extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IRequest_Coreflow_Cloudly_ReportReconciliationStatus> {
15
+ method: 'reportReconciliationStatus';
16
+ request: {
17
+ identity: userInterfaces.IIdentity;
18
+ serviceId: string;
19
+ serviceName?: string;
20
+ stage: string;
21
+ stageKey?: string;
22
+ status: serviceInterfaces.TServiceReconciliationStatus;
23
+ domainName?: string;
24
+ message?: string;
25
+ errorText?: string;
26
+ reportedAt?: number;
27
+ };
28
+ response: {};
29
+ }
@@ -1,2 +1,4 @@
1
+ import * as plugins from '../plugins.js';
2
+ import * as serviceInterfaces from '../data/service.js';
1
3
  import * as userInterfaces from '../data/user.js';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdHVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdHMvcmVxdWVzdHMvc3RhdHVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxjQUFjLE1BQU0saUJBQWlCLENBQUMifQ==
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdHVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdHMvcmVxdWVzdHMvc3RhdHVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sS0FBSyxpQkFBaUIsTUFBTSxvQkFBb0IsQ0FBQztBQUN4RCxPQUFPLEtBQUssY0FBYyxNQUFNLGlCQUFpQixDQUFDIn0=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@serve.zone/interfaces",
3
- "version": "7.0.0",
3
+ "version": "7.2.0",
4
4
  "private": false,
5
5
  "description": "Shared TypeScript interfaces and TypedRequest contracts for the serve.zone ecosystem.",
6
6
  "exports": {
@@ -3,6 +3,6 @@
3
3
  */
4
4
  export const commitinfo = {
5
5
  name: '@serve.zone/interfaces',
6
- version: '7.0.0',
6
+ version: '7.2.0',
7
7
  description: 'Shared TypeScript interfaces and TypedRequest contracts for the serve.zone ecosystem.'
8
8
  }
@@ -19,6 +19,24 @@ export interface IServiceVolume {
19
19
  options?: Record<string, string>;
20
20
  }
21
21
 
22
+ export type TServiceReconciliationStatus = 'running' | 'ready' | 'degraded' | 'failed';
23
+
24
+ export interface IServiceReconciliationStageStatus {
25
+ stage: string;
26
+ stageKey: string;
27
+ status: TServiceReconciliationStatus;
28
+ domainName?: string;
29
+ message?: string;
30
+ errorText?: string;
31
+ reportedAt: number;
32
+ }
33
+
34
+ export interface IServiceReconciliationStatus {
35
+ status: TServiceReconciliationStatus;
36
+ updatedAt: number;
37
+ stages: Record<string, IServiceReconciliationStageStatus>;
38
+ }
39
+
22
40
  export interface IService {
23
41
  id: string;
24
42
  data: {
@@ -32,6 +50,7 @@ export interface IService {
32
50
  appTemplateVersion?: string;
33
51
  appStoreUpgradePolicy?: 'manual' | 'notify' | 'auto';
34
52
  hostedAppLifecycle?: IHostedAppLifecycleState;
53
+ reconciliationStatus?: IServiceReconciliationStatus;
35
54
  environment: { [key: string]: string };
36
55
  /**
37
56
  * the main secret bundle id, exclusive to the service
@@ -1,4 +1,6 @@
1
1
  import * as plugins from '../plugins.js';
2
+ import type { IBareMetal } from '../data/baremetal.js';
3
+ import type { ICluster } from '../data/cluster.js';
2
4
  import type { IClusterNode, IClusterNodeMetrics, ISparkNodeRuntimeInfo } from '../data/clusternode.js';
3
5
  import type { IDeployment } from '../data/deployment.js';
4
6
  import type { IIdentity } from '../data/user.js';
@@ -54,6 +56,67 @@ export interface IReq_Any_Cloudly_CreateNodeJumpCommand extends plugins.typedreq
54
56
  };
55
57
  }
56
58
 
59
+ export interface IReq_Any_Cloudly_GetNodes extends plugins.typedrequestInterfaces.implementsTR<
60
+ plugins.typedrequestInterfaces.ITypedRequest,
61
+ IReq_Any_Cloudly_GetNodes
62
+ > {
63
+ method: 'getNodes';
64
+ request: {
65
+ identity: IIdentity;
66
+ clusterId?: string;
67
+ };
68
+ response: {
69
+ nodes: IClusterNode[];
70
+ };
71
+ }
72
+
73
+ export interface IReq_Any_Cloudly_GetNodeById extends plugins.typedrequestInterfaces.implementsTR<
74
+ plugins.typedrequestInterfaces.ITypedRequest,
75
+ IReq_Any_Cloudly_GetNodeById
76
+ > {
77
+ method: 'getNodeById';
78
+ request: {
79
+ identity: IIdentity;
80
+ nodeId: string;
81
+ };
82
+ response: {
83
+ node: IClusterNode;
84
+ };
85
+ }
86
+
87
+ export interface IReq_Any_Cloudly_GetNodeDeletionImpact extends plugins.typedrequestInterfaces.implementsTR<
88
+ plugins.typedrequestInterfaces.ITypedRequest,
89
+ IReq_Any_Cloudly_GetNodeDeletionImpact
90
+ > {
91
+ method: 'getNodeDeletionImpact';
92
+ request: {
93
+ identity: IIdentity;
94
+ nodeId: string;
95
+ };
96
+ response: {
97
+ node: IClusterNode;
98
+ cluster?: ICluster;
99
+ deployments: IDeployment[];
100
+ baremetals: IBareMetal[];
101
+ blockers: string[];
102
+ canDelete: boolean;
103
+ };
104
+ }
105
+
106
+ export interface IReq_Any_Cloudly_DeleteNodeById extends plugins.typedrequestInterfaces.implementsTR<
107
+ plugins.typedrequestInterfaces.ITypedRequest,
108
+ IReq_Any_Cloudly_DeleteNodeById
109
+ > {
110
+ method: 'deleteNodeById';
111
+ request: {
112
+ identity: IIdentity;
113
+ nodeId: string;
114
+ };
115
+ response: {
116
+ ok: boolean;
117
+ };
118
+ }
119
+
57
120
  export interface IRequest_Spark_Cloudly_SendHeartbeat extends plugins.typedrequestInterfaces.implementsTR<
58
121
  plugins.typedrequestInterfaces.ITypedRequest,
59
122
  IRequest_Spark_Cloudly_SendHeartbeat
@@ -1,10 +1,13 @@
1
1
  import * as plugins from '../plugins.js';
2
2
  import type { ICloudlySettings, ICloudlySettingsMasked } from '../data/settings.js';
3
+ import type { IIdentity } from '../data/user.js';
3
4
 
4
5
  // Get Settings
5
6
  export interface IRequest_GetSettings extends plugins.typedrequestInterfaces.ITypedRequest {
6
7
  method: 'getSettings';
7
- request: {};
8
+ request: {
9
+ identity?: IIdentity;
10
+ };
8
11
  response: {
9
12
  settings: ICloudlySettingsMasked;
10
13
  };
@@ -14,6 +17,7 @@ export interface IRequest_GetSettings extends plugins.typedrequestInterfaces.ITy
14
17
  export interface IRequest_UpdateSettings extends plugins.typedrequestInterfaces.ITypedRequest {
15
18
  method: 'updateSettings';
16
19
  request: {
20
+ identity?: IIdentity;
17
21
  updates: Partial<ICloudlySettings>;
18
22
  };
19
23
  response: {
@@ -26,6 +30,7 @@ export interface IRequest_UpdateSettings extends plugins.typedrequestInterfaces.
26
30
  export interface IRequest_ClearSetting extends plugins.typedrequestInterfaces.ITypedRequest {
27
31
  method: 'clearSetting';
28
32
  request: {
33
+ identity?: IIdentity;
29
34
  key: keyof ICloudlySettings;
30
35
  };
31
36
  response: {
@@ -38,6 +43,7 @@ export interface IRequest_ClearSetting extends plugins.typedrequestInterfaces.IT
38
43
  export interface IRequest_TestProviderConnection extends plugins.typedrequestInterfaces.ITypedRequest {
39
44
  method: 'testProviderConnection';
40
45
  request: {
46
+ identity?: IIdentity;
41
47
  provider: 'hetzner' | 'cloudflare' | 'aws' | 'digitalocean' | 'azure' | 'google' | 'vultr' | 'linode' | 'ovh' | 'scaleway';
42
48
  };
43
49
  response: {
@@ -51,9 +57,10 @@ export interface IRequest_TestProviderConnection extends plugins.typedrequestInt
51
57
  export interface IRequest_GetSetting extends plugins.typedrequestInterfaces.ITypedRequest {
52
58
  method: 'getSetting';
53
59
  request: {
60
+ identity?: IIdentity;
54
61
  key: keyof ICloudlySettings;
55
62
  };
56
63
  response: {
57
64
  value: string | undefined;
58
65
  };
59
- }
66
+ }
@@ -1,12 +1,39 @@
1
+ import * as plugins from '../plugins.js';
2
+ import * as serviceInterfaces from '../data/service.js';
1
3
  import * as userInterfaces from '../data/user.js';
2
4
 
3
5
  /**
4
6
  * a status update dashboard
5
7
  */
6
- export interface IRequest_Coreflow_Cloudly_CoreflowManagerStatusupdate {
8
+ export interface IRequest_Coreflow_Cloudly_CoreflowManagerStatusupdate
9
+ extends plugins.typedrequestInterfaces.implementsTR<
10
+ plugins.typedrequestInterfaces.ITypedRequest,
11
+ IRequest_Coreflow_Cloudly_CoreflowManagerStatusupdate
12
+ > {
7
13
  method: 'cloudlyStatus';
8
14
  request: {
9
15
  identity: userInterfaces.IIdentity;
10
16
  };
11
17
  response: {};
12
18
  }
19
+
20
+ export interface IRequest_Coreflow_Cloudly_ReportReconciliationStatus
21
+ extends plugins.typedrequestInterfaces.implementsTR<
22
+ plugins.typedrequestInterfaces.ITypedRequest,
23
+ IRequest_Coreflow_Cloudly_ReportReconciliationStatus
24
+ > {
25
+ method: 'reportReconciliationStatus';
26
+ request: {
27
+ identity: userInterfaces.IIdentity;
28
+ serviceId: string;
29
+ serviceName?: string;
30
+ stage: string;
31
+ stageKey?: string;
32
+ status: serviceInterfaces.TServiceReconciliationStatus;
33
+ domainName?: string;
34
+ message?: string;
35
+ errorText?: string;
36
+ reportedAt?: number;
37
+ };
38
+ response: {};
39
+ }