56 lines
1.2 KiB
TypeScript
56 lines
1.2 KiB
TypeScript
|
import * as plugins from '../plugins.js';
|
||
|
|
||
|
/**
|
||
|
* Interface for Cloudly settings stored in EasyStore
|
||
|
* These are runtime-configurable settings that can be modified via the UI
|
||
|
*/
|
||
|
export interface ICloudlySettings {
|
||
|
// Cloud Provider Tokens
|
||
|
hetznerToken?: string;
|
||
|
cloudflareToken?: string;
|
||
|
|
||
|
// AWS Credentials
|
||
|
awsAccessKey?: string;
|
||
|
awsSecretKey?: string;
|
||
|
awsRegion?: string;
|
||
|
|
||
|
// DigitalOcean
|
||
|
digitalOceanToken?: string;
|
||
|
|
||
|
// Azure Credentials
|
||
|
azureClientId?: string;
|
||
|
azureClientSecret?: string;
|
||
|
azureTenantId?: string;
|
||
|
azureSubscriptionId?: string;
|
||
|
|
||
|
// Google Cloud
|
||
|
googleCloudKeyJson?: string;
|
||
|
googleCloudProjectId?: string;
|
||
|
|
||
|
// Vultr
|
||
|
vultrApiKey?: string;
|
||
|
|
||
|
// Linode
|
||
|
linodeToken?: string;
|
||
|
|
||
|
// OVH
|
||
|
ovhApplicationKey?: string;
|
||
|
ovhApplicationSecret?: string;
|
||
|
ovhConsumerKey?: string;
|
||
|
|
||
|
// Scaleway
|
||
|
scalewayAccessKey?: string;
|
||
|
scalewaySecretKey?: string;
|
||
|
scalewayOrganizationId?: string;
|
||
|
|
||
|
// Other settings that might be added in the future
|
||
|
[key: string]: string | undefined;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Interface for masked settings (used in API responses)
|
||
|
* Shows only last 4 characters of sensitive tokens
|
||
|
*/
|
||
|
export type ICloudlySettingsMasked = {
|
||
|
[K in keyof ICloudlySettings]: string | undefined;
|
||
|
};
|