feat(settings): Add runtime settings management, node & baremetal managers, and settings UI
This commit is contained in:
22
ts_interfaces/requests/baremetal.ts
Normal file
22
ts_interfaces/requests/baremetal.ts
Normal file
@@ -0,0 +1,22 @@
|
||||
import * as plugins from '../plugins.js';
|
||||
import type { IBareMetal } from '../data/baremetal.js';
|
||||
|
||||
export interface IRequest_Any_Cloudly_GetBaremetalServers {
|
||||
method: 'getBaremetalServers';
|
||||
request: {};
|
||||
response: {
|
||||
baremetals: IBareMetal[];
|
||||
};
|
||||
}
|
||||
|
||||
export interface IRequest_Any_Cloudly_ControlBaremetal {
|
||||
method: 'controlBaremetal';
|
||||
request: {
|
||||
baremetalId: string;
|
||||
action: 'powerOn' | 'powerOff' | 'reset';
|
||||
};
|
||||
response: {
|
||||
success: boolean;
|
||||
message: string;
|
||||
};
|
||||
}
|
@@ -1,6 +1,7 @@
|
||||
import * as plugins from '../plugins.js';
|
||||
|
||||
import * as adminRequests from './admin.js';
|
||||
import * as baremetalRequests from './baremetal.js';
|
||||
import * as certificateRequests from './certificate.js';
|
||||
import * as clusterRequests from './cluster.js';
|
||||
import * as configRequests from './config.js';
|
||||
@@ -10,16 +11,19 @@ import * as imageRequests from './image.js';
|
||||
import * as informRequests from './inform.js';
|
||||
import * as logRequests from './log.js';
|
||||
import * as networkRequests from './network.js';
|
||||
import * as nodeRequests from './node.js';
|
||||
import * as routingRequests from './routing.js';
|
||||
import * as secretBundleRequests from './secretbundle.js';
|
||||
import * as secretGroupRequests from './secretgroup.js';
|
||||
import * as serverRequests from './server.js';
|
||||
import * as serviceRequests from './service.js';
|
||||
import * as settingsRequests from './settings.js';
|
||||
import * as statusRequests from './status.js';
|
||||
import * as versionRequests from './version.js';
|
||||
|
||||
export {
|
||||
adminRequests as admin,
|
||||
baremetalRequests as baremetal,
|
||||
certificateRequests as certificate,
|
||||
clusterRequests as cluster,
|
||||
configRequests as config,
|
||||
@@ -29,11 +33,13 @@ export {
|
||||
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,
|
||||
};
|
||||
|
33
ts_interfaces/requests/node.ts
Normal file
33
ts_interfaces/requests/node.ts
Normal file
@@ -0,0 +1,33 @@
|
||||
import * as plugins from '../plugins.js';
|
||||
import type { IClusterNode } from '../data/clusternode.js';
|
||||
import type { IDeployment } from '../data/deployment.js';
|
||||
|
||||
export interface IRequest_Any_Cloudly_GetNodeConfig {
|
||||
method: 'getNodeConfig';
|
||||
request: {
|
||||
nodeId: string;
|
||||
};
|
||||
response: {
|
||||
configData: IClusterNode;
|
||||
};
|
||||
}
|
||||
|
||||
export interface IRequest_Any_Cloudly_GetNodesByCluster {
|
||||
method: 'getNodesByCluster';
|
||||
request: {
|
||||
clusterId: string;
|
||||
};
|
||||
response: {
|
||||
nodes: IClusterNode[];
|
||||
};
|
||||
}
|
||||
|
||||
export interface IRequest_Any_Cloudly_GetNodeDeployments {
|
||||
method: 'getNodeDeployments';
|
||||
request: {
|
||||
nodeId: string;
|
||||
};
|
||||
response: {
|
||||
deployments: IDeployment[];
|
||||
};
|
||||
}
|
59
ts_interfaces/requests/settings.ts
Normal file
59
ts_interfaces/requests/settings.ts
Normal file
@@ -0,0 +1,59 @@
|
||||
import * as plugins from '../plugins.js';
|
||||
import type { ICloudlySettings, ICloudlySettingsMasked } from '../data/settings.js';
|
||||
|
||||
// Get Settings
|
||||
export interface IRequest_GetSettings extends plugins.typedrequestInterfaces.ITypedRequest {
|
||||
method: 'getSettings';
|
||||
request: {};
|
||||
response: {
|
||||
settings: ICloudlySettingsMasked;
|
||||
};
|
||||
}
|
||||
|
||||
// Update Settings
|
||||
export interface IRequest_UpdateSettings extends plugins.typedrequestInterfaces.ITypedRequest {
|
||||
method: 'updateSettings';
|
||||
request: {
|
||||
updates: Partial<ICloudlySettings>;
|
||||
};
|
||||
response: {
|
||||
success: boolean;
|
||||
message: string;
|
||||
};
|
||||
}
|
||||
|
||||
// Clear Specific Setting
|
||||
export interface IRequest_ClearSetting extends plugins.typedrequestInterfaces.ITypedRequest {
|
||||
method: 'clearSetting';
|
||||
request: {
|
||||
key: keyof ICloudlySettings;
|
||||
};
|
||||
response: {
|
||||
success: boolean;
|
||||
message: string;
|
||||
};
|
||||
}
|
||||
|
||||
// Test Provider Connection
|
||||
export interface IRequest_TestProviderConnection extends plugins.typedrequestInterfaces.ITypedRequest {
|
||||
method: 'testProviderConnection';
|
||||
request: {
|
||||
provider: 'hetzner' | 'cloudflare' | 'aws' | 'digitalocean' | 'azure' | 'google' | 'vultr' | 'linode' | 'ovh' | 'scaleway';
|
||||
};
|
||||
response: {
|
||||
success: boolean;
|
||||
message: string;
|
||||
connectionValid: boolean;
|
||||
};
|
||||
}
|
||||
|
||||
// Get Single Setting (for internal use, not exposed to frontend)
|
||||
export interface IRequest_GetSetting extends plugins.typedrequestInterfaces.ITypedRequest {
|
||||
method: 'getSetting';
|
||||
request: {
|
||||
key: keyof ICloudlySettings;
|
||||
};
|
||||
response: {
|
||||
value: string | undefined;
|
||||
};
|
||||
}
|
Reference in New Issue
Block a user