@serve.zone/interfaces 5.9.0 → 5.10.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 +12 -0
- package/dist_ts/00_commitinfo_data.js +2 -2
- package/dist_ts/appcatalog/types.d.ts +10 -0
- package/dist_ts/data/clusternode.d.ts +22 -0
- package/dist_ts/requests/node.d.ts +14 -1
- package/package.json +6 -6
- package/ts/00_commitinfo_data.ts +1 -1
- package/ts/appcatalog/types.ts +11 -0
- package/ts/data/clusternode.ts +31 -1
- package/ts/requests/node.ts +18 -1
package/changelog.md
CHANGED
|
@@ -3,6 +3,18 @@
|
|
|
3
3
|
## Pending
|
|
4
4
|
|
|
5
5
|
|
|
6
|
+
## 2026-05-24 - 5.10.0
|
|
7
|
+
|
|
8
|
+
### Features
|
|
9
|
+
|
|
10
|
+
- add Spark node telemetry contracts
|
|
11
|
+
- Adds Spark runtime status fields to cluster node data
|
|
12
|
+
- Adds a typed Spark-to-Cloudly heartbeat request contract
|
|
13
|
+
|
|
14
|
+
### Maintenance
|
|
15
|
+
|
|
16
|
+
- refresh release tooling dependencies
|
|
17
|
+
|
|
6
18
|
## 2026-05-23 - 5.9.0
|
|
7
19
|
|
|
8
20
|
### Features
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export const commitinfo = {
|
|
5
5
|
name: '@serve.zone/interfaces',
|
|
6
|
-
version: '5.
|
|
6
|
+
version: '5.10.0',
|
|
7
7
|
description: 'Shared TypeScript interfaces and TypedRequest contracts for the serve.zone ecosystem.'
|
|
8
8
|
};
|
|
9
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMDBfY29tbWl0aW5mb19kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvMDBfY29tbWl0aW5mb19kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHO0lBQ3hCLElBQUksRUFBRSx3QkFBd0I7SUFDOUIsT0FBTyxFQUFFLFFBQVE7SUFDakIsV0FBVyxFQUFFLHVGQUF1RjtDQUNyRyxDQUFBIn0=
|
|
@@ -21,6 +21,14 @@ export interface IAppCatalogVolume {
|
|
|
21
21
|
options?: Record<string, string>;
|
|
22
22
|
}
|
|
23
23
|
export type TAppCatalogVolumeSpec = string | IAppCatalogVolume;
|
|
24
|
+
export interface IAppCatalogPublishedPort {
|
|
25
|
+
targetPort: number;
|
|
26
|
+
targetPortEnd?: number;
|
|
27
|
+
publishedPort?: number;
|
|
28
|
+
publishedPortEnd?: number;
|
|
29
|
+
protocol?: 'tcp' | 'udp';
|
|
30
|
+
hostIp?: string;
|
|
31
|
+
}
|
|
24
32
|
export interface ICatalogApp {
|
|
25
33
|
id: string;
|
|
26
34
|
name: string;
|
|
@@ -52,6 +60,7 @@ export interface IAppVersionConfig {
|
|
|
52
60
|
port: number;
|
|
53
61
|
envVars?: IAppCatalogEnvVar[];
|
|
54
62
|
volumes?: TAppCatalogVolumeSpec[];
|
|
63
|
+
publishedPorts?: IAppCatalogPublishedPort[];
|
|
55
64
|
platformRequirements?: Partial<Record<TAppCatalogPlatformRequirement, boolean>>;
|
|
56
65
|
minOneboxVersion?: string;
|
|
57
66
|
minCloudlyVersion?: string;
|
|
@@ -62,6 +71,7 @@ export interface IAppInstallRequest {
|
|
|
62
71
|
serviceName: string;
|
|
63
72
|
domain?: string;
|
|
64
73
|
port?: number;
|
|
74
|
+
publishedPorts?: IAppCatalogPublishedPort[];
|
|
65
75
|
envVars?: Record<string, string>;
|
|
66
76
|
}
|
|
67
77
|
export interface IUpgradeableAppService {
|
|
@@ -8,6 +8,24 @@ export interface IClusterNodeMetrics {
|
|
|
8
8
|
containerCount: number;
|
|
9
9
|
timestamp: number;
|
|
10
10
|
}
|
|
11
|
+
export type TSparkNodeMode = 'cloudly' | 'coreflow-node';
|
|
12
|
+
export type TSparkCloudlyConnectionStatus = 'not-configured' | 'connecting' | 'connected' | 'failed';
|
|
13
|
+
export interface ISparkNodeRuntimeInfo {
|
|
14
|
+
runtime: 'spark';
|
|
15
|
+
nodeId: string;
|
|
16
|
+
mode?: TSparkNodeMode;
|
|
17
|
+
hostname?: string;
|
|
18
|
+
platform: string;
|
|
19
|
+
arch: string;
|
|
20
|
+
osRelease?: string;
|
|
21
|
+
sparkVersion: string;
|
|
22
|
+
cloudlyUrl?: string;
|
|
23
|
+
cloudlyConnectionStatus: TSparkCloudlyConnectionStatus;
|
|
24
|
+
dockerAvailable: boolean;
|
|
25
|
+
swarmNodeId?: string;
|
|
26
|
+
checkedAt: number;
|
|
27
|
+
lastError?: string;
|
|
28
|
+
}
|
|
11
29
|
export interface IClusterNode {
|
|
12
30
|
id: string;
|
|
13
31
|
data: {
|
|
@@ -43,6 +61,10 @@ export interface IClusterNode {
|
|
|
43
61
|
* Current metrics for the node
|
|
44
62
|
*/
|
|
45
63
|
metrics?: IClusterNodeMetrics;
|
|
64
|
+
/**
|
|
65
|
+
* Runtime status reported by the Spark node agent.
|
|
66
|
+
*/
|
|
67
|
+
sparkRuntimeInfo?: ISparkNodeRuntimeInfo;
|
|
46
68
|
/**
|
|
47
69
|
* Docker swarm node ID if part of swarm
|
|
48
70
|
*/
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as plugins from '../plugins.js';
|
|
2
|
-
import type { IClusterNode } from '../data/clusternode.js';
|
|
2
|
+
import type { IClusterNode, IClusterNodeMetrics, ISparkNodeRuntimeInfo } from '../data/clusternode.js';
|
|
3
3
|
import type { IDeployment } from '../data/deployment.js';
|
|
4
4
|
import type { IIdentity } from '../data/user.js';
|
|
5
5
|
export interface IRequest_Any_Cloudly_GetNodeConfig {
|
|
@@ -46,3 +46,16 @@ export interface IReq_Any_Cloudly_CreateNodeJumpCommand extends plugins.typedreq
|
|
|
46
46
|
expiresAt: number;
|
|
47
47
|
};
|
|
48
48
|
}
|
|
49
|
+
export interface IRequest_Spark_Cloudly_SendHeartbeat extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IRequest_Spark_Cloudly_SendHeartbeat> {
|
|
50
|
+
method: 'sparkNodeHeartbeat';
|
|
51
|
+
request: {
|
|
52
|
+
nodeId: string;
|
|
53
|
+
nodeToken: string;
|
|
54
|
+
metrics: IClusterNodeMetrics;
|
|
55
|
+
runtimeInfo: ISparkNodeRuntimeInfo;
|
|
56
|
+
};
|
|
57
|
+
response: {
|
|
58
|
+
accepted: boolean;
|
|
59
|
+
message?: string;
|
|
60
|
+
};
|
|
61
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@serve.zone/interfaces",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.10.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "Shared TypeScript interfaces and TypedRequest contracts for the serve.zone ecosystem.",
|
|
6
6
|
"exports": {
|
|
@@ -15,11 +15,11 @@
|
|
|
15
15
|
"@tsclass/tsclass": "^9.5.1"
|
|
16
16
|
},
|
|
17
17
|
"devDependencies": {
|
|
18
|
-
"@git.zone/tsbuild": "^4.4.
|
|
19
|
-
"@git.zone/tsdoc": "^2.0.
|
|
20
|
-
"@git.zone/tsrun": "^2.0.
|
|
21
|
-
"@git.zone/tstest": "^3.6.
|
|
22
|
-
"@types/node": "^25.
|
|
18
|
+
"@git.zone/tsbuild": "^4.4.2",
|
|
19
|
+
"@git.zone/tsdoc": "^2.0.6",
|
|
20
|
+
"@git.zone/tsrun": "^2.0.4",
|
|
21
|
+
"@git.zone/tstest": "^3.6.6",
|
|
22
|
+
"@types/node": "^25.8.0"
|
|
23
23
|
},
|
|
24
24
|
"files": [
|
|
25
25
|
"ts/**/*",
|
package/ts/00_commitinfo_data.ts
CHANGED
package/ts/appcatalog/types.ts
CHANGED
|
@@ -25,6 +25,15 @@ export interface IAppCatalogVolume {
|
|
|
25
25
|
|
|
26
26
|
export type TAppCatalogVolumeSpec = string | IAppCatalogVolume;
|
|
27
27
|
|
|
28
|
+
export interface IAppCatalogPublishedPort {
|
|
29
|
+
targetPort: number;
|
|
30
|
+
targetPortEnd?: number;
|
|
31
|
+
publishedPort?: number;
|
|
32
|
+
publishedPortEnd?: number;
|
|
33
|
+
protocol?: 'tcp' | 'udp';
|
|
34
|
+
hostIp?: string;
|
|
35
|
+
}
|
|
36
|
+
|
|
28
37
|
export interface ICatalogApp {
|
|
29
38
|
id: string;
|
|
30
39
|
name: string;
|
|
@@ -59,6 +68,7 @@ export interface IAppVersionConfig {
|
|
|
59
68
|
port: number;
|
|
60
69
|
envVars?: IAppCatalogEnvVar[];
|
|
61
70
|
volumes?: TAppCatalogVolumeSpec[];
|
|
71
|
+
publishedPorts?: IAppCatalogPublishedPort[];
|
|
62
72
|
platformRequirements?: Partial<Record<TAppCatalogPlatformRequirement, boolean>>;
|
|
63
73
|
minOneboxVersion?: string;
|
|
64
74
|
minCloudlyVersion?: string;
|
|
@@ -70,6 +80,7 @@ export interface IAppInstallRequest {
|
|
|
70
80
|
serviceName: string;
|
|
71
81
|
domain?: string;
|
|
72
82
|
port?: number;
|
|
83
|
+
publishedPorts?: IAppCatalogPublishedPort[];
|
|
73
84
|
envVars?: Record<string, string>;
|
|
74
85
|
}
|
|
75
86
|
|
package/ts/data/clusternode.ts
CHANGED
|
@@ -10,6 +10,31 @@ export interface IClusterNodeMetrics {
|
|
|
10
10
|
timestamp: number;
|
|
11
11
|
}
|
|
12
12
|
|
|
13
|
+
export type TSparkNodeMode = 'cloudly' | 'coreflow-node';
|
|
14
|
+
|
|
15
|
+
export type TSparkCloudlyConnectionStatus =
|
|
16
|
+
| 'not-configured'
|
|
17
|
+
| 'connecting'
|
|
18
|
+
| 'connected'
|
|
19
|
+
| 'failed';
|
|
20
|
+
|
|
21
|
+
export interface ISparkNodeRuntimeInfo {
|
|
22
|
+
runtime: 'spark';
|
|
23
|
+
nodeId: string;
|
|
24
|
+
mode?: TSparkNodeMode;
|
|
25
|
+
hostname?: string;
|
|
26
|
+
platform: string;
|
|
27
|
+
arch: string;
|
|
28
|
+
osRelease?: string;
|
|
29
|
+
sparkVersion: string;
|
|
30
|
+
cloudlyUrl?: string;
|
|
31
|
+
cloudlyConnectionStatus: TSparkCloudlyConnectionStatus;
|
|
32
|
+
dockerAvailable: boolean;
|
|
33
|
+
swarmNodeId?: string;
|
|
34
|
+
checkedAt: number;
|
|
35
|
+
lastError?: string;
|
|
36
|
+
}
|
|
37
|
+
|
|
13
38
|
export interface IClusterNode {
|
|
14
39
|
id: string;
|
|
15
40
|
data: {
|
|
@@ -52,6 +77,11 @@ export interface IClusterNode {
|
|
|
52
77
|
* Current metrics for the node
|
|
53
78
|
*/
|
|
54
79
|
metrics?: IClusterNodeMetrics;
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* Runtime status reported by the Spark node agent.
|
|
83
|
+
*/
|
|
84
|
+
sparkRuntimeInfo?: ISparkNodeRuntimeInfo;
|
|
55
85
|
|
|
56
86
|
/**
|
|
57
87
|
* Docker swarm node ID if part of swarm
|
|
@@ -68,4 +98,4 @@ export interface IClusterNode {
|
|
|
68
98
|
*/
|
|
69
99
|
requiredDebianPackages: string[];
|
|
70
100
|
};
|
|
71
|
-
}
|
|
101
|
+
}
|
package/ts/requests/node.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as plugins from '../plugins.js';
|
|
2
|
-
import type { IClusterNode } from '../data/clusternode.js';
|
|
2
|
+
import type { IClusterNode, IClusterNodeMetrics, ISparkNodeRuntimeInfo } from '../data/clusternode.js';
|
|
3
3
|
import type { IDeployment } from '../data/deployment.js';
|
|
4
4
|
import type { IIdentity } from '../data/user.js';
|
|
5
5
|
|
|
@@ -53,3 +53,20 @@ export interface IReq_Any_Cloudly_CreateNodeJumpCommand extends plugins.typedreq
|
|
|
53
53
|
expiresAt: number;
|
|
54
54
|
};
|
|
55
55
|
}
|
|
56
|
+
|
|
57
|
+
export interface IRequest_Spark_Cloudly_SendHeartbeat extends plugins.typedrequestInterfaces.implementsTR<
|
|
58
|
+
plugins.typedrequestInterfaces.ITypedRequest,
|
|
59
|
+
IRequest_Spark_Cloudly_SendHeartbeat
|
|
60
|
+
> {
|
|
61
|
+
method: 'sparkNodeHeartbeat';
|
|
62
|
+
request: {
|
|
63
|
+
nodeId: string;
|
|
64
|
+
nodeToken: string;
|
|
65
|
+
metrics: IClusterNodeMetrics;
|
|
66
|
+
runtimeInfo: ISparkNodeRuntimeInfo;
|
|
67
|
+
};
|
|
68
|
+
response: {
|
|
69
|
+
accepted: boolean;
|
|
70
|
+
message?: string;
|
|
71
|
+
};
|
|
72
|
+
}
|