Files
orion-visor/orion-visor-ui/src/api/system/setting.ts

152 lines
3.2 KiB
TypeScript
Raw Normal View History

2024-06-18 00:35:45 +08:00
import axios from 'axios';
2025-01-07 00:08:33 +08:00
import { dateFormat } from '@/utils';
2024-06-18 00:35:45 +08:00
2024-10-10 18:32:40 +08:00
/**
*
*/
export interface SystemSettingUpdateRequest {
2025-01-20 10:24:40 +08:00
type?: string;
value?: string;
2024-10-10 18:32:40 +08:00
settings?: Record<string, any>;
}
2024-06-18 00:35:45 +08:00
/**
*
*/
export interface AppInfoResponse {
version: string;
uuid: string;
}
/**
*
2024-06-18 00:35:45 +08:00
*/
export interface AppReleaseResponse {
tagName: string;
2024-06-18 00:35:45 +08:00
body: string;
}
2025-01-13 15:48:33 +08:00
/**
2025-01-20 10:24:40 +08:00
* RSA
2025-01-13 15:48:33 +08:00
*/
2025-01-20 10:24:40 +08:00
export interface RsaKeyPairResponse {
publicKey: string;
privateKey: string;
2025-01-13 15:48:33 +08:00
}
/**
2025-01-20 10:24:40 +08:00
*
*/
export type SystemSetting = SftpSetting
& LoginSetting & EncryptSetting
& LogSetting & AutoClearSetting;
/**
* SFTP
*/
2024-10-10 18:32:40 +08:00
export interface SftpSetting {
2025-01-20 10:24:40 +08:00
sftp_previewSize: number;
sftp_uploadPresentBackup: string;
sftp_uploadBackupFileName: string;
}
2025-01-13 15:48:33 +08:00
/**
2025-01-20 10:24:40 +08:00
*
*/
export interface LoginSetting {
login_allowMultiDevice: string;
login_allowRefresh: string;
login_maxRefreshCount: number;
login_refreshInterval: number;
login_loginFailedLock: string;
login_loginFailedLockThreshold: number;
login_loginFailedLockTime: number;
login_loginFailedSend: string;
login_loginFailedSendThreshold: number;
login_loginSessionTime: number;
}
/**
*
2025-01-13 15:48:33 +08:00
*/
export interface EncryptSetting {
2025-01-20 10:24:40 +08:00
encrypt_publicKey: string;
encrypt_privateKey: string;
}
/**
*
*/
export interface LogSetting {
2025-01-21 10:05:36 +08:00
log_webScrollLines: number;
log_trackerLoadLines: number;
log_trackerLoadInterval: number;
log_execDetailLog: string;
2025-01-20 10:24:40 +08:00
}
/**
*
*/
export interface AutoClearSetting {
autoClear_execLogEnabled: string;
autoClear_execLogKeepDays: number;
autoClear_terminalLogEnabled: string;
autoClear_terminalLogKeepDays: number;
2025-01-13 15:48:33 +08:00
}
2024-06-18 00:35:45 +08:00
/**
*
*/
export function getSystemAppInfo() {
return axios.get<AppInfoResponse>('/infra/system-setting/app-info');
}
2025-01-13 15:48:33 +08:00
/**
*
*/
export function getSystemAggregateSetting() {
2025-01-20 10:24:40 +08:00
return axios.get<Record<keyof SystemSetting, string>>('/infra/system-setting/setting');
2025-01-13 15:48:33 +08:00
}
2024-06-18 00:35:45 +08:00
/**
*
2024-06-18 00:35:45 +08:00
*/
export function getAppLatestRelease() {
2025-01-07 00:08:33 +08:00
return axios.get<AppReleaseResponse>(`https://visor.orionsec.cn/releases-latest.json?${dateFormat(new Date(), 'yyyyMMddHH')}`, {
2024-06-18 00:35:45 +08:00
// 不添加请求头 否则会报 401
setAuthorization: false,
// 返回原始输出
unwrap: true,
// 不提示请求错误信息 可能会 403
promptRequestErrorMessage: false,
});
}
2024-10-10 18:32:40 +08:00
/**
2025-01-13 15:48:33 +08:00
*
*/
export function generatorKeypair() {
2025-01-20 10:24:40 +08:00
return axios.get<RsaKeyPairResponse>('/infra/system-setting/generator-keypair');
2025-01-13 15:48:33 +08:00
}
/**
* -
2024-10-10 18:32:40 +08:00
*/
export function updateSystemSetting(request: SystemSettingUpdateRequest) {
2025-01-20 10:24:40 +08:00
return axios.put<string>('/infra/system-setting/update', request);
2024-10-10 18:32:40 +08:00
}
/**
2025-01-13 15:48:33 +08:00
* -
2024-10-10 18:32:40 +08:00
*/
2025-01-13 15:48:33 +08:00
export function updateSystemSettingBatch(request: SystemSettingUpdateRequest) {
2025-01-20 10:24:40 +08:00
return axios.put<string>('/infra/system-setting/update-batch', request);
2024-10-10 18:32:40 +08:00
}
/**
*
*/
2025-01-20 10:24:40 +08:00
export function getSystemSetting(type: string) {
return axios.get<Record<keyof SystemSetting, string>>('/infra/system-setting/get', { params: { type } });
2024-10-10 18:32:40 +08:00
}