@serve.zone/interfaces 5.0.4 → 5.3.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 (40) hide show
  1. package/dist_ts_interfaces/data/baremetal.d.ts +61 -0
  2. package/dist_ts_interfaces/data/baremetal.js +2 -0
  3. package/dist_ts_interfaces/data/cloudlyconfig.d.ts +0 -2
  4. package/dist_ts_interfaces/data/cluster.d.ts +7 -3
  5. package/dist_ts_interfaces/data/clusternode.d.ts +59 -0
  6. package/dist_ts_interfaces/data/clusternode.js +2 -0
  7. package/dist_ts_interfaces/data/deployment.d.ts +42 -2
  8. package/dist_ts_interfaces/data/index.d.ts +3 -1
  9. package/dist_ts_interfaces/data/index.js +4 -2
  10. package/dist_ts_interfaces/data/service.d.ts +24 -0
  11. package/dist_ts_interfaces/data/settings.d.ts +34 -0
  12. package/dist_ts_interfaces/data/settings.js +2 -0
  13. package/dist_ts_interfaces/requests/baremetal.d.ts +19 -0
  14. package/dist_ts_interfaces/requests/baremetal.js +2 -0
  15. package/dist_ts_interfaces/requests/cluster.d.ts +1 -0
  16. package/dist_ts_interfaces/requests/deployment.d.ts +96 -0
  17. package/dist_ts_interfaces/requests/deployment.js +2 -0
  18. package/dist_ts_interfaces/requests/index.d.ts +4 -1
  19. package/dist_ts_interfaces/requests/index.js +5 -2
  20. package/dist_ts_interfaces/requests/node.d.ts +29 -0
  21. package/dist_ts_interfaces/requests/node.js +2 -0
  22. package/dist_ts_interfaces/requests/settings.d.ts +49 -0
  23. package/dist_ts_interfaces/requests/settings.js +2 -0
  24. package/package.json +2 -2
  25. package/readme.md +301 -133
  26. package/ts_interfaces/data/baremetal.ts +73 -0
  27. package/ts_interfaces/data/cloudlyconfig.ts +0 -2
  28. package/ts_interfaces/data/cluster.ts +8 -3
  29. package/ts_interfaces/data/clusternode.ts +71 -0
  30. package/ts_interfaces/data/deployment.ts +52 -2
  31. package/ts_interfaces/data/index.ts +4 -2
  32. package/ts_interfaces/data/service.ts +29 -0
  33. package/ts_interfaces/data/settings.ts +56 -0
  34. package/ts_interfaces/readme.md +301 -133
  35. package/ts_interfaces/requests/baremetal.ts +22 -0
  36. package/ts_interfaces/requests/cluster.ts +1 -0
  37. package/ts_interfaces/requests/deployment.ts +141 -0
  38. package/ts_interfaces/requests/index.ts +6 -0
  39. package/ts_interfaces/requests/node.ts +33 -0
  40. package/ts_interfaces/requests/settings.ts +59 -0
@@ -0,0 +1,61 @@
1
+ export interface IBareMetal {
2
+ id: string;
3
+ data: {
4
+ hostname: string;
5
+ /**
6
+ * IPMI management IP address
7
+ */
8
+ ipmiAddress?: string;
9
+ /**
10
+ * Encrypted IPMI credentials
11
+ */
12
+ ipmiCredentials?: {
13
+ username: string;
14
+ passwordEncrypted: string;
15
+ };
16
+ /**
17
+ * Primary network IP address
18
+ */
19
+ primaryIp: string;
20
+ /**
21
+ * Provider of the physical server
22
+ */
23
+ provider: 'hetzner' | 'aws' | 'digitalocean' | 'onpremise';
24
+ /**
25
+ * Data center or location
26
+ */
27
+ location: string;
28
+ /**
29
+ * Hardware specifications
30
+ */
31
+ specs: {
32
+ cpuModel: string;
33
+ cpuCores: number;
34
+ memoryGB: number;
35
+ storageGB: number;
36
+ storageType: 'ssd' | 'hdd' | 'nvme';
37
+ };
38
+ /**
39
+ * Current power state
40
+ */
41
+ powerState: 'on' | 'off' | 'unknown';
42
+ /**
43
+ * Operating system information
44
+ */
45
+ osInfo: {
46
+ name: string;
47
+ version: string;
48
+ kernel?: string;
49
+ };
50
+ /**
51
+ * Array of ClusterNode IDs running on this hardware
52
+ */
53
+ assignedNodeIds: string[];
54
+ /**
55
+ * Metadata for provider-specific information
56
+ */
57
+ providerMetadata?: {
58
+ [key: string]: any;
59
+ };
60
+ };
61
+ }
@@ -0,0 +1,2 @@
1
+ import * as plugins from '../plugins.js';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyZW1ldGFsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdHNfaW50ZXJmYWNlcy9kYXRhL2JhcmVtZXRhbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLGVBQWUsQ0FBQyJ9
@@ -1,7 +1,5 @@
1
1
  import * as plugins from '../plugins.js';
2
2
  export interface ICloudlyConfig {
3
- cfToken?: string;
4
- hetznerToken?: string;
5
3
  environment?: 'production' | 'integration';
6
4
  letsEncryptEmail?: string;
7
5
  letsEncryptPrivateKey?: string;
@@ -1,5 +1,5 @@
1
1
  import * as plugins from '../plugins.js';
2
- import type { IServer } from './server.js';
2
+ import type { IClusterNode } from './clusternode.js';
3
3
  export interface ICluster {
4
4
  id: string;
5
5
  data: {
@@ -13,9 +13,13 @@ export interface ICluster {
13
13
  */
14
14
  cloudlyUrl?: string;
15
15
  /**
16
- * what servers are expected to be part of the cluster
16
+ * Cluster setup mode - manual by default, or auto-provision with cloud provider
17
17
  */
18
- servers: IServer[];
18
+ setupMode?: 'manual' | 'hetzner' | 'aws' | 'digitalocean';
19
+ /**
20
+ * Nodes that are part of the cluster
21
+ */
22
+ nodes: IClusterNode[];
19
23
  /**
20
24
  * ACME info. This is used to get SSL certificates.
21
25
  */
@@ -0,0 +1,59 @@
1
+ import * as plugins from '../plugins.js';
2
+ export interface IClusterNodeMetrics {
3
+ cpuUsagePercent: number;
4
+ memoryUsedMB: number;
5
+ memoryAvailableMB: number;
6
+ diskUsedGB: number;
7
+ diskAvailableGB: number;
8
+ containerCount: number;
9
+ timestamp: number;
10
+ }
11
+ export interface IClusterNode {
12
+ id: string;
13
+ data: {
14
+ /**
15
+ * Reference to the cluster this node belongs to
16
+ */
17
+ clusterId: string;
18
+ /**
19
+ * Reference to the physical server (if applicable)
20
+ */
21
+ baremetalId?: string;
22
+ /**
23
+ * Type of node
24
+ */
25
+ nodeType: 'baremetal' | 'vm' | 'container';
26
+ /**
27
+ * Current status of the node
28
+ */
29
+ status: 'initializing' | 'online' | 'offline' | 'maintenance';
30
+ /**
31
+ * Role of the node in the cluster
32
+ */
33
+ role: 'master' | 'worker';
34
+ /**
35
+ * Timestamp when node joined the cluster
36
+ */
37
+ joinedAt: number;
38
+ /**
39
+ * Last health check timestamp
40
+ */
41
+ lastHealthCheck: number;
42
+ /**
43
+ * Current metrics for the node
44
+ */
45
+ metrics?: IClusterNodeMetrics;
46
+ /**
47
+ * Docker swarm node ID if part of swarm
48
+ */
49
+ swarmNodeId?: string;
50
+ /**
51
+ * SSH keys deployed to this node
52
+ */
53
+ sshKeys: plugins.tsclass.network.ISshKey[];
54
+ /**
55
+ * Debian packages installed on this node
56
+ */
57
+ requiredDebianPackages: string[];
58
+ };
59
+ }
@@ -0,0 +1,2 @@
1
+ import * as plugins from '../plugins.js';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2x1c3Rlcm5vZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90c19pbnRlcmZhY2VzL2RhdGEvY2x1c3Rlcm5vZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE9BQU8sTUFBTSxlQUFlLENBQUMifQ==
@@ -4,8 +4,48 @@
4
4
  */
5
5
  export interface IDeployment {
6
6
  id: string;
7
- affectedServiceIds: string[];
7
+ /**
8
+ * The service being deployed (single service per deployment)
9
+ */
10
+ serviceId: string;
11
+ /**
12
+ * The node this deployment is running on
13
+ */
14
+ nodeId: string;
15
+ /**
16
+ * Docker container ID for this deployment
17
+ */
18
+ containerId?: string;
19
+ /**
20
+ * Image used for this deployment
21
+ */
8
22
  usedImageId: string;
23
+ /**
24
+ * Version of the service deployed
25
+ */
26
+ version: string;
27
+ /**
28
+ * Timestamp when deployed
29
+ */
30
+ deployedAt: number;
31
+ /**
32
+ * Deployment log entries
33
+ */
9
34
  deploymentLog: string[];
10
- status: 'scheduled' | 'running' | 'deployed' | 'failed';
35
+ /**
36
+ * Current status of the deployment
37
+ */
38
+ status: 'scheduled' | 'starting' | 'running' | 'stopping' | 'stopped' | 'failed';
39
+ /**
40
+ * Health status of the deployment
41
+ */
42
+ healthStatus?: 'healthy' | 'unhealthy' | 'unknown';
43
+ /**
44
+ * Resource usage for this deployment
45
+ */
46
+ resourceUsage?: {
47
+ cpuUsagePercent: number;
48
+ memoryUsedMB: number;
49
+ lastUpdated: number;
50
+ };
11
51
  }
@@ -8,7 +8,9 @@ export * from './externalregistry.js';
8
8
  export * from './image.js';
9
9
  export * from './secretbundle.js';
10
10
  export * from './secretgroup.js';
11
- export * from './server.js';
11
+ export * from './baremetal.js';
12
+ export * from './clusternode.js';
13
+ export * from './settings.js';
12
14
  export * from './service.js';
13
15
  export * from './status.js';
14
16
  export * from './traffic.js';
@@ -8,10 +8,12 @@ export * from './externalregistry.js';
8
8
  export * from './image.js';
9
9
  export * from './secretbundle.js';
10
10
  export * from './secretgroup.js';
11
- export * from './server.js';
11
+ export * from './baremetal.js';
12
+ export * from './clusternode.js';
13
+ export * from './settings.js';
12
14
  export * from './service.js';
13
15
  export * from './status.js';
14
16
  export * from './traffic.js';
15
17
  export * from './user.js';
16
18
  export * from './version.js';
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90c19pbnRlcmZhY2VzL2RhdGEvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLGtCQUFrQixDQUFBO0FBQ2hDLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsY0FBYyxDQUFDIn0=
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90c19pbnRlcmZhY2VzL2RhdGEvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLFdBQVcsQ0FBQztBQUMxQixjQUFjLGNBQWMsQ0FBQyJ9
@@ -18,6 +18,30 @@ export interface IService {
18
18
  * and thus live past the service lifecycle
19
19
  */
20
20
  additionalSecretBundleIds?: string[];
21
+ /**
22
+ * Service category determines deployment behavior
23
+ * - base: Core services that run on every node (coreflow, coretraffic, corelog)
24
+ * - distributed: Services that run on limited nodes (cores3, coremongo)
25
+ * - workload: User applications
26
+ */
27
+ serviceCategory: 'base' | 'distributed' | 'workload';
28
+ /**
29
+ * Deployment strategy for the service
30
+ * - all-nodes: Deploy to every node in the cluster
31
+ * - limited-replicas: Deploy to a limited number of nodes
32
+ * - custom: Custom deployment logic
33
+ */
34
+ deploymentStrategy: 'all-nodes' | 'limited-replicas' | 'custom';
35
+ /**
36
+ * Maximum number of replicas for distributed services
37
+ * For example, 3 for cores3 or coremongo
38
+ */
39
+ maxReplicas?: number;
40
+ /**
41
+ * Whether to enforce anti-affinity rules
42
+ * When true, tries to spread deployments across different BareMetal servers
43
+ */
44
+ antiAffinity?: boolean;
21
45
  scaleFactor: number;
22
46
  balancingStrategy: 'round-robin' | 'least-connections';
23
47
  ports: {
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Interface for Cloudly settings stored in EasyStore
3
+ * These are runtime-configurable settings that can be modified via the UI
4
+ */
5
+ export interface ICloudlySettings {
6
+ hetznerToken?: string;
7
+ cloudflareToken?: string;
8
+ awsAccessKey?: string;
9
+ awsSecretKey?: string;
10
+ awsRegion?: string;
11
+ digitalOceanToken?: string;
12
+ azureClientId?: string;
13
+ azureClientSecret?: string;
14
+ azureTenantId?: string;
15
+ azureSubscriptionId?: string;
16
+ googleCloudKeyJson?: string;
17
+ googleCloudProjectId?: string;
18
+ vultrApiKey?: string;
19
+ linodeToken?: string;
20
+ ovhApplicationKey?: string;
21
+ ovhApplicationSecret?: string;
22
+ ovhConsumerKey?: string;
23
+ scalewayAccessKey?: string;
24
+ scalewaySecretKey?: string;
25
+ scalewayOrganizationId?: string;
26
+ [key: string]: string | undefined;
27
+ }
28
+ /**
29
+ * Interface for masked settings (used in API responses)
30
+ * Shows only last 4 characters of sensitive tokens
31
+ */
32
+ export type ICloudlySettingsMasked = {
33
+ [K in keyof ICloudlySettings]: string | undefined;
34
+ };
@@ -0,0 +1,2 @@
1
+ import * as plugins from '../plugins.js';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZ3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90c19pbnRlcmZhY2VzL2RhdGEvc2V0dGluZ3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE9BQU8sTUFBTSxlQUFlLENBQUMifQ==
@@ -0,0 +1,19 @@
1
+ import type { IBareMetal } from '../data/baremetal.js';
2
+ export interface IRequest_Any_Cloudly_GetBaremetalServers {
3
+ method: 'getBaremetalServers';
4
+ request: {};
5
+ response: {
6
+ baremetals: IBareMetal[];
7
+ };
8
+ }
9
+ export interface IRequest_Any_Cloudly_ControlBaremetal {
10
+ method: 'controlBaremetal';
11
+ request: {
12
+ baremetalId: string;
13
+ action: 'powerOn' | 'powerOff' | 'reset';
14
+ };
15
+ response: {
16
+ success: boolean;
17
+ message: string;
18
+ };
19
+ }
@@ -0,0 +1,2 @@
1
+ import * as plugins from '../plugins.js';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyZW1ldGFsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdHNfaW50ZXJmYWNlcy9yZXF1ZXN0cy9iYXJlbWV0YWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE9BQU8sTUFBTSxlQUFlLENBQUMifQ==
@@ -28,6 +28,7 @@ export interface IRequest_CreateCluster extends plugins.typedrequestInterfaces.i
28
28
  request: {
29
29
  identity: userInterfaces.IIdentity;
30
30
  clusterName: string;
31
+ setupMode?: 'manual' | 'hetzner' | 'aws' | 'digitalocean';
31
32
  };
32
33
  response: {
33
34
  cluster: clusterInterfaces.ICluster;
@@ -0,0 +1,96 @@
1
+ import * as plugins from '../plugins.js';
2
+ import type { IDeployment } from '../data/deployment.js';
3
+ import type { IIdentity } from '../data/user.js';
4
+ export interface IReq_Any_Cloudly_GetDeploymentById extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_Any_Cloudly_GetDeploymentById> {
5
+ method: 'getDeploymentById';
6
+ request: {
7
+ identity: IIdentity;
8
+ deploymentId: string;
9
+ };
10
+ response: {
11
+ deployment: IDeployment;
12
+ };
13
+ }
14
+ export interface IReq_Any_Cloudly_GetDeployments extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_Any_Cloudly_GetDeployments> {
15
+ method: 'getDeployments';
16
+ request: {
17
+ identity: IIdentity;
18
+ };
19
+ response: {
20
+ deployments: IDeployment[];
21
+ };
22
+ }
23
+ export interface IReq_Any_Cloudly_GetDeploymentsByService extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_Any_Cloudly_GetDeploymentsByService> {
24
+ method: 'getDeploymentsByService';
25
+ request: {
26
+ identity: IIdentity;
27
+ serviceId: string;
28
+ };
29
+ response: {
30
+ deployments: IDeployment[];
31
+ };
32
+ }
33
+ export interface IReq_Any_Cloudly_GetDeploymentsByNode extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_Any_Cloudly_GetDeploymentsByNode> {
34
+ method: 'getDeploymentsByNode';
35
+ request: {
36
+ identity: IIdentity;
37
+ nodeId: string;
38
+ };
39
+ response: {
40
+ deployments: IDeployment[];
41
+ };
42
+ }
43
+ export interface IReq_Any_Cloudly_CreateDeployment extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_Any_Cloudly_CreateDeployment> {
44
+ method: 'createDeployment';
45
+ request: {
46
+ identity: IIdentity;
47
+ deploymentData: Partial<IDeployment>;
48
+ };
49
+ response: {
50
+ deployment: IDeployment;
51
+ };
52
+ }
53
+ export interface IReq_Any_Cloudly_UpdateDeployment extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_Any_Cloudly_UpdateDeployment> {
54
+ method: 'updateDeployment';
55
+ request: {
56
+ identity: IIdentity;
57
+ deploymentId: string;
58
+ deploymentData: Partial<IDeployment>;
59
+ };
60
+ response: {
61
+ deployment: IDeployment;
62
+ };
63
+ }
64
+ export interface IReq_Any_Cloudly_DeleteDeploymentById extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_Any_Cloudly_DeleteDeploymentById> {
65
+ method: 'deleteDeploymentById';
66
+ request: {
67
+ identity: IIdentity;
68
+ deploymentId: string;
69
+ };
70
+ response: {
71
+ success: boolean;
72
+ };
73
+ }
74
+ export interface IReq_Any_Cloudly_RestartDeployment extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_Any_Cloudly_RestartDeployment> {
75
+ method: 'restartDeployment';
76
+ request: {
77
+ identity: IIdentity;
78
+ deploymentId: string;
79
+ };
80
+ response: {
81
+ success: boolean;
82
+ deployment: IDeployment;
83
+ };
84
+ }
85
+ export interface IReq_Any_Cloudly_ScaleDeployment extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_Any_Cloudly_ScaleDeployment> {
86
+ method: 'scaleDeployment';
87
+ request: {
88
+ identity: IIdentity;
89
+ deploymentId: string;
90
+ replicas: number;
91
+ };
92
+ response: {
93
+ success: boolean;
94
+ deployment: IDeployment;
95
+ };
96
+ }
@@ -0,0 +1,2 @@
1
+ import * as plugins from '../plugins.js';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwbG95bWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzX2ludGVyZmFjZXMvcmVxdWVzdHMvZGVwbG95bWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLGVBQWUsQ0FBQyJ9
@@ -1,4 +1,5 @@
1
1
  import * as adminRequests from './admin.js';
2
+ import * as baremetalRequests from './baremetal.js';
2
3
  import * as certificateRequests from './certificate.js';
3
4
  import * as clusterRequests from './cluster.js';
4
5
  import * as configRequests from './config.js';
@@ -8,12 +9,14 @@ import * as imageRequests from './image.js';
8
9
  import * as informRequests from './inform.js';
9
10
  import * as logRequests from './log.js';
10
11
  import * as networkRequests from './network.js';
12
+ import * as nodeRequests from './node.js';
11
13
  import * as routingRequests from './routing.js';
12
14
  import * as secretBundleRequests from './secretbundle.js';
13
15
  import * as secretGroupRequests from './secretgroup.js';
14
16
  import * as serverRequests from './server.js';
15
17
  import * as serviceRequests from './service.js';
18
+ import * as settingsRequests from './settings.js';
16
19
  import * as statusRequests from './status.js';
17
20
  import * as versionRequests from './version.js';
18
- export { adminRequests as admin, certificateRequests as certificate, clusterRequests as cluster, configRequests as config, externalRegistryRequests as externalRegistry, identityRequests as identity, imageRequests as image, informRequests as inform, logRequests as log, networkRequests as network, routingRequests as routing, secretBundleRequests as secretbundle, secretGroupRequests as secretgroup, serverRequests as server, serviceRequests as service, statusRequests as status, versionRequests as version, };
21
+ export { adminRequests as admin, baremetalRequests as baremetal, certificateRequests as certificate, clusterRequests as cluster, configRequests as config, externalRegistryRequests as externalRegistry, identityRequests as identity, imageRequests as image, informRequests as inform, logRequests as log, networkRequests as network, nodeRequests as node, routingRequests as routing, secretBundleRequests as secretbundle, secretGroupRequests as secretgroup, serverRequests as server, serviceRequests as service, settingsRequests as settings, statusRequests as status, versionRequests as version, };
19
22
  export * from './inform.js';
@@ -1,5 +1,6 @@
1
1
  import * as plugins from '../plugins.js';
2
2
  import * as adminRequests from './admin.js';
3
+ import * as baremetalRequests from './baremetal.js';
3
4
  import * as certificateRequests from './certificate.js';
4
5
  import * as clusterRequests from './cluster.js';
5
6
  import * as configRequests from './config.js';
@@ -9,13 +10,15 @@ import * as imageRequests from './image.js';
9
10
  import * as informRequests from './inform.js';
10
11
  import * as logRequests from './log.js';
11
12
  import * as networkRequests from './network.js';
13
+ import * as nodeRequests from './node.js';
12
14
  import * as routingRequests from './routing.js';
13
15
  import * as secretBundleRequests from './secretbundle.js';
14
16
  import * as secretGroupRequests from './secretgroup.js';
15
17
  import * as serverRequests from './server.js';
16
18
  import * as serviceRequests from './service.js';
19
+ import * as settingsRequests from './settings.js';
17
20
  import * as statusRequests from './status.js';
18
21
  import * as versionRequests from './version.js';
19
- export { adminRequests as admin, certificateRequests as certificate, clusterRequests as cluster, configRequests as config, externalRegistryRequests as externalRegistry, identityRequests as identity, imageRequests as image, informRequests as inform, logRequests as log, networkRequests as network, routingRequests as routing, secretBundleRequests as secretbundle, secretGroupRequests as secretgroup, serverRequests as server, serviceRequests as service, statusRequests as status, versionRequests as version, };
22
+ export { adminRequests as admin, baremetalRequests as baremetal, certificateRequests as certificate, clusterRequests as cluster, configRequests as config, externalRegistryRequests as externalRegistry, identityRequests as identity, imageRequests as image, informRequests as inform, logRequests as log, networkRequests as network, nodeRequests as node, routingRequests as routing, secretBundleRequests as secretbundle, secretGroupRequests as secretgroup, serverRequests as server, serviceRequests as service, settingsRequests as settings, statusRequests as status, versionRequests as version, };
20
23
  export * from './inform.js';
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90c19pbnRlcmZhY2VzL3JlcXVlc3RzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0sZUFBZSxDQUFDO0FBRXpDLE9BQU8sS0FBSyxhQUFhLE1BQU0sWUFBWSxDQUFDO0FBQzVDLE9BQU8sS0FBSyxtQkFBbUIsTUFBTSxrQkFBa0IsQ0FBQztBQUN4RCxPQUFPLEtBQUssZUFBZSxNQUFNLGNBQWMsQ0FBQztBQUNoRCxPQUFPLEtBQUssY0FBYyxNQUFNLGFBQWEsQ0FBQztBQUM5QyxPQUFPLEtBQUssd0JBQXdCLE1BQU0sdUJBQXVCLENBQUM7QUFDbEUsT0FBTyxLQUFLLGdCQUFnQixNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEtBQUssYUFBYSxNQUFNLFlBQVksQ0FBQztBQUM1QyxPQUFPLEtBQUssY0FBYyxNQUFNLGFBQWEsQ0FBQztBQUM5QyxPQUFPLEtBQUssV0FBVyxNQUFNLFVBQVUsQ0FBQztBQUN4QyxPQUFPLEtBQUssZUFBZSxNQUFNLGNBQWMsQ0FBQztBQUNoRCxPQUFPLEtBQUssZUFBZSxNQUFNLGNBQWMsQ0FBQztBQUNoRCxPQUFPLEtBQUssb0JBQW9CLE1BQU0sbUJBQW1CLENBQUM7QUFDMUQsT0FBTyxLQUFLLG1CQUFtQixNQUFNLGtCQUFrQixDQUFDO0FBQ3hELE9BQU8sS0FBSyxjQUFjLE1BQU0sYUFBYSxDQUFDO0FBQzlDLE9BQU8sS0FBSyxlQUFlLE1BQU0sY0FBYyxDQUFDO0FBQ2hELE9BQU8sS0FBSyxjQUFjLE1BQU0sYUFBYSxDQUFDO0FBQzlDLE9BQU8sS0FBSyxlQUFlLE1BQU0sY0FBYyxDQUFDO0FBRWhELE9BQU8sRUFDTCxhQUFhLElBQUksS0FBSyxFQUN0QixtQkFBbUIsSUFBSSxXQUFXLEVBQ2xDLGVBQWUsSUFBSSxPQUFPLEVBQzFCLGNBQWMsSUFBSSxNQUFNLEVBQ3hCLHdCQUF3QixJQUFJLGdCQUFnQixFQUM1QyxnQkFBZ0IsSUFBSSxRQUFRLEVBQzVCLGFBQWEsSUFBSSxLQUFLLEVBQ3RCLGNBQWMsSUFBSSxNQUFNLEVBQ3hCLFdBQVcsSUFBSSxHQUFHLEVBQ2xCLGVBQWUsSUFBSSxPQUFPLEVBQzFCLGVBQWUsSUFBSSxPQUFPLEVBQzFCLG9CQUFvQixJQUFJLFlBQVksRUFDcEMsbUJBQW1CLElBQUksV0FBVyxFQUNsQyxjQUFjLElBQUksTUFBTSxFQUN4QixlQUFlLElBQUksT0FBTyxFQUMxQixjQUFjLElBQUksTUFBTSxFQUN4QixlQUFlLElBQUksT0FBTyxHQUMzQixDQUFDO0FBRUYsY0FBYyxhQUFhLENBQUMifQ==
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90c19pbnRlcmZhY2VzL3JlcXVlc3RzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0sZUFBZSxDQUFDO0FBRXpDLE9BQU8sS0FBSyxhQUFhLE1BQU0sWUFBWSxDQUFDO0FBQzVDLE9BQU8sS0FBSyxpQkFBaUIsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRCxPQUFPLEtBQUssbUJBQW1CLE1BQU0sa0JBQWtCLENBQUM7QUFDeEQsT0FBTyxLQUFLLGVBQWUsTUFBTSxjQUFjLENBQUM7QUFDaEQsT0FBTyxLQUFLLGNBQWMsTUFBTSxhQUFhLENBQUM7QUFDOUMsT0FBTyxLQUFLLHdCQUF3QixNQUFNLHVCQUF1QixDQUFDO0FBQ2xFLE9BQU8sS0FBSyxnQkFBZ0IsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxLQUFLLGFBQWEsTUFBTSxZQUFZLENBQUM7QUFDNUMsT0FBTyxLQUFLLGNBQWMsTUFBTSxhQUFhLENBQUM7QUFDOUMsT0FBTyxLQUFLLFdBQVcsTUFBTSxVQUFVLENBQUM7QUFDeEMsT0FBTyxLQUFLLGVBQWUsTUFBTSxjQUFjLENBQUM7QUFDaEQsT0FBTyxLQUFLLFlBQVksTUFBTSxXQUFXLENBQUM7QUFDMUMsT0FBTyxLQUFLLGVBQWUsTUFBTSxjQUFjLENBQUM7QUFDaEQsT0FBTyxLQUFLLG9CQUFvQixNQUFNLG1CQUFtQixDQUFDO0FBQzFELE9BQU8sS0FBSyxtQkFBbUIsTUFBTSxrQkFBa0IsQ0FBQztBQUN4RCxPQUFPLEtBQUssY0FBYyxNQUFNLGFBQWEsQ0FBQztBQUM5QyxPQUFPLEtBQUssZUFBZSxNQUFNLGNBQWMsQ0FBQztBQUNoRCxPQUFPLEtBQUssZ0JBQWdCLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sS0FBSyxjQUFjLE1BQU0sYUFBYSxDQUFDO0FBQzlDLE9BQU8sS0FBSyxlQUFlLE1BQU0sY0FBYyxDQUFDO0FBRWhELE9BQU8sRUFDTCxhQUFhLElBQUksS0FBSyxFQUN0QixpQkFBaUIsSUFBSSxTQUFTLEVBQzlCLG1CQUFtQixJQUFJLFdBQVcsRUFDbEMsZUFBZSxJQUFJLE9BQU8sRUFDMUIsY0FBYyxJQUFJLE1BQU0sRUFDeEIsd0JBQXdCLElBQUksZ0JBQWdCLEVBQzVDLGdCQUFnQixJQUFJLFFBQVEsRUFDNUIsYUFBYSxJQUFJLEtBQUssRUFDdEIsY0FBYyxJQUFJLE1BQU0sRUFDeEIsV0FBVyxJQUFJLEdBQUcsRUFDbEIsZUFBZSxJQUFJLE9BQU8sRUFDMUIsWUFBWSxJQUFJLElBQUksRUFDcEIsZUFBZSxJQUFJLE9BQU8sRUFDMUIsb0JBQW9CLElBQUksWUFBWSxFQUNwQyxtQkFBbUIsSUFBSSxXQUFXLEVBQ2xDLGNBQWMsSUFBSSxNQUFNLEVBQ3hCLGVBQWUsSUFBSSxPQUFPLEVBQzFCLGdCQUFnQixJQUFJLFFBQVEsRUFDNUIsY0FBYyxJQUFJLE1BQU0sRUFDeEIsZUFBZSxJQUFJLE9BQU8sR0FDM0IsQ0FBQztBQUVGLGNBQWMsYUFBYSxDQUFDIn0=
@@ -0,0 +1,29 @@
1
+ import type { IClusterNode } from '../data/clusternode.js';
2
+ import type { IDeployment } from '../data/deployment.js';
3
+ export interface IRequest_Any_Cloudly_GetNodeConfig {
4
+ method: 'getNodeConfig';
5
+ request: {
6
+ nodeId: string;
7
+ };
8
+ response: {
9
+ configData: IClusterNode;
10
+ };
11
+ }
12
+ export interface IRequest_Any_Cloudly_GetNodesByCluster {
13
+ method: 'getNodesByCluster';
14
+ request: {
15
+ clusterId: string;
16
+ };
17
+ response: {
18
+ nodes: IClusterNode[];
19
+ };
20
+ }
21
+ export interface IRequest_Any_Cloudly_GetNodeDeployments {
22
+ method: 'getNodeDeployments';
23
+ request: {
24
+ nodeId: string;
25
+ };
26
+ response: {
27
+ deployments: IDeployment[];
28
+ };
29
+ }
@@ -0,0 +1,2 @@
1
+ import * as plugins from '../plugins.js';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzX2ludGVyZmFjZXMvcmVxdWVzdHMvbm9kZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLGVBQWUsQ0FBQyJ9
@@ -0,0 +1,49 @@
1
+ import * as plugins from '../plugins.js';
2
+ import type { ICloudlySettings, ICloudlySettingsMasked } from '../data/settings.js';
3
+ export interface IRequest_GetSettings extends plugins.typedrequestInterfaces.ITypedRequest {
4
+ method: 'getSettings';
5
+ request: {};
6
+ response: {
7
+ settings: ICloudlySettingsMasked;
8
+ };
9
+ }
10
+ export interface IRequest_UpdateSettings extends plugins.typedrequestInterfaces.ITypedRequest {
11
+ method: 'updateSettings';
12
+ request: {
13
+ updates: Partial<ICloudlySettings>;
14
+ };
15
+ response: {
16
+ success: boolean;
17
+ message: string;
18
+ };
19
+ }
20
+ export interface IRequest_ClearSetting extends plugins.typedrequestInterfaces.ITypedRequest {
21
+ method: 'clearSetting';
22
+ request: {
23
+ key: keyof ICloudlySettings;
24
+ };
25
+ response: {
26
+ success: boolean;
27
+ message: string;
28
+ };
29
+ }
30
+ export interface IRequest_TestProviderConnection extends plugins.typedrequestInterfaces.ITypedRequest {
31
+ method: 'testProviderConnection';
32
+ request: {
33
+ provider: 'hetzner' | 'cloudflare' | 'aws' | 'digitalocean' | 'azure' | 'google' | 'vultr' | 'linode' | 'ovh' | 'scaleway';
34
+ };
35
+ response: {
36
+ success: boolean;
37
+ message: string;
38
+ connectionValid: boolean;
39
+ };
40
+ }
41
+ export interface IRequest_GetSetting extends plugins.typedrequestInterfaces.ITypedRequest {
42
+ method: 'getSetting';
43
+ request: {
44
+ key: keyof ICloudlySettings;
45
+ };
46
+ response: {
47
+ value: string | undefined;
48
+ };
49
+ }
@@ -0,0 +1,2 @@
1
+ import * as plugins from '../plugins.js';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZ3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90c19pbnRlcmZhY2VzL3JlcXVlc3RzL3NldHRpbmdzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0sZUFBZSxDQUFDIn0=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@serve.zone/interfaces",
3
- "version": "5.0.4",
3
+ "version": "5.3.0",
4
4
  "type": "module",
5
5
  "description": "",
6
6
  "exports": {
@@ -11,7 +11,7 @@
11
11
  "dependencies": {
12
12
  "@api.global/typedrequest-interfaces": "^3.0.19",
13
13
  "@push.rocks/smartlog-interfaces": "^3.0.2",
14
- "@tsclass/tsclass": "^9.0.0"
14
+ "@tsclass/tsclass": "^9.2.0"
15
15
  },
16
16
  "devDependencies": {
17
17
  "@git.zone/tsbuild": "2.1.67"