Import source: src/api/contracts/models
Import the existing local project snapshot. This commit organizes existing files; it does not represent newly developed functionality.
This commit is contained in:
@@ -0,0 +1,243 @@
|
||||
import type { Permission } from "@/lib/permissions";
|
||||
|
||||
export type Status = "healthy" | "warning" | "critical" | "maintenance" | "disabled";
|
||||
|
||||
export type User = {
|
||||
id: string;
|
||||
name: string;
|
||||
email: string;
|
||||
role: string;
|
||||
permissions: Permission[];
|
||||
lastLogin: string;
|
||||
avatarInitials: string;
|
||||
twoFactorEnabled: boolean;
|
||||
};
|
||||
|
||||
export type HostingAccount = {
|
||||
id: string;
|
||||
username: string;
|
||||
primaryDomain: string;
|
||||
homeDirectory: string;
|
||||
sharedIp: string;
|
||||
dedicatedIp?: string;
|
||||
theme: "system" | "light" | "dark";
|
||||
};
|
||||
|
||||
export type Server = {
|
||||
id: string;
|
||||
name: string;
|
||||
hostname: string;
|
||||
os: string;
|
||||
panelVersion: string;
|
||||
load: [number, number, number];
|
||||
ipAddress: string;
|
||||
status: Status;
|
||||
location: string;
|
||||
};
|
||||
|
||||
export type Website = {
|
||||
id: string;
|
||||
name: string;
|
||||
domain: string;
|
||||
runtime:
|
||||
| "Static"
|
||||
| "PHP"
|
||||
| "Node.js"
|
||||
| "Python"
|
||||
| "Ruby"
|
||||
| "Docker"
|
||||
| "Reverse proxy"
|
||||
| "Custom service";
|
||||
status: Status;
|
||||
ssl: Status;
|
||||
repository?: string;
|
||||
environment: "production" | "staging";
|
||||
cpuLimit: string;
|
||||
memoryLimit: string;
|
||||
lastDeployment: string;
|
||||
};
|
||||
|
||||
export type Domain = {
|
||||
id: string;
|
||||
name: string;
|
||||
type: "primary" | "addon" | "alias" | "subdomain" | "parked";
|
||||
documentRoot: string;
|
||||
sslStatus: Status;
|
||||
dnssec: boolean;
|
||||
propagation: number;
|
||||
};
|
||||
|
||||
export type DnsRecord = {
|
||||
id: string;
|
||||
name: string;
|
||||
ttl: number;
|
||||
class: "IN";
|
||||
type: "A" | "AAAA" | "CNAME" | "MX" | "TXT" | "SRV" | "CAA" | "NS" | "PTR";
|
||||
record: string;
|
||||
priority?: number;
|
||||
warning?: string;
|
||||
};
|
||||
|
||||
export type FileEntry = {
|
||||
id: string;
|
||||
name: string;
|
||||
path: string;
|
||||
type: "directory" | "file";
|
||||
size: number;
|
||||
modifiedAt: string;
|
||||
owner: string;
|
||||
permissions: string;
|
||||
mime: string;
|
||||
hidden?: boolean;
|
||||
};
|
||||
|
||||
export type Database = {
|
||||
id: string;
|
||||
name: string;
|
||||
engine: "MySQL" | "MariaDB" | "PostgreSQL";
|
||||
size: number;
|
||||
users: string[];
|
||||
tables: number;
|
||||
connections: number;
|
||||
lastBackup: string;
|
||||
};
|
||||
|
||||
export type Mailbox = {
|
||||
id: string;
|
||||
address: string;
|
||||
domain: string;
|
||||
used: number;
|
||||
quota: number;
|
||||
lastLogin: string;
|
||||
forwarding: boolean;
|
||||
spamScore: number;
|
||||
authStatus: Status;
|
||||
};
|
||||
|
||||
export type ResourceUsage = {
|
||||
key: string;
|
||||
label: string;
|
||||
used: number;
|
||||
limit: number;
|
||||
unit: string;
|
||||
status: Status;
|
||||
};
|
||||
|
||||
export type ServiceStatus = {
|
||||
name: string;
|
||||
status: Status;
|
||||
uptime: string;
|
||||
detail: string;
|
||||
};
|
||||
|
||||
export type MetricPoint = {
|
||||
timestamp: string;
|
||||
cpu: number;
|
||||
memory: number;
|
||||
disk: number;
|
||||
bandwidth: number;
|
||||
requests: number;
|
||||
};
|
||||
|
||||
export type SecurityFinding = {
|
||||
id: string;
|
||||
severity: "critical" | "high" | "medium" | "low";
|
||||
title: string;
|
||||
target: string;
|
||||
status: "open" | "acknowledged" | "resolved";
|
||||
recommendation: string;
|
||||
};
|
||||
|
||||
export type Backup = {
|
||||
id: string;
|
||||
name: string;
|
||||
scope: "full" | "website" | "database" | "email" | "configuration" | "snapshot";
|
||||
destination: string;
|
||||
size: number;
|
||||
status: Status;
|
||||
encrypted: boolean;
|
||||
createdAt: string;
|
||||
};
|
||||
|
||||
export type Automation = {
|
||||
id: string;
|
||||
name: string;
|
||||
trigger: string;
|
||||
status: Status;
|
||||
lastRun: string;
|
||||
successRate: number;
|
||||
};
|
||||
|
||||
export type Notification = {
|
||||
id: string;
|
||||
title: string;
|
||||
category: "security" | "backup" | "resource" | "ssl" | "deployment" | "system";
|
||||
read: boolean;
|
||||
createdAt: string;
|
||||
body: string;
|
||||
};
|
||||
|
||||
export type AuditEntry = {
|
||||
id: string;
|
||||
actor: string;
|
||||
action: string;
|
||||
target: string;
|
||||
ipAddress: string;
|
||||
createdAt: string;
|
||||
requestId: string;
|
||||
};
|
||||
|
||||
export type RuntimeDefinition = {
|
||||
id: string;
|
||||
name: string;
|
||||
versions: string[];
|
||||
extensions: string[];
|
||||
processManagers: string[];
|
||||
environmentSchema: string[];
|
||||
};
|
||||
|
||||
export type DatabaseAdminTool = {
|
||||
id: "phpmyadmin" | "adminer" | "pgadmin";
|
||||
name: string;
|
||||
engine: string;
|
||||
status: "available" | "planned" | "disabled";
|
||||
launchUrl: string | null;
|
||||
sso: boolean;
|
||||
note: string;
|
||||
};
|
||||
|
||||
export type NginxSite = {
|
||||
id: string;
|
||||
serverNames: string[];
|
||||
listens: string[];
|
||||
root: string | null;
|
||||
proxyPasses: string[];
|
||||
tls: boolean;
|
||||
source: string;
|
||||
};
|
||||
|
||||
export type DockerContainer = {
|
||||
id: string;
|
||||
name: string;
|
||||
image: string;
|
||||
status: string;
|
||||
ports: string;
|
||||
};
|
||||
|
||||
export type SystemDiscovery = {
|
||||
detectedAt: string;
|
||||
nginx: {
|
||||
available: boolean;
|
||||
sites: NginxSite[];
|
||||
proxiedSites: NginxSite[];
|
||||
};
|
||||
docker: {
|
||||
available: boolean;
|
||||
containers: DockerContainer[];
|
||||
};
|
||||
currentPanel: {
|
||||
hostname: string;
|
||||
frontend: string;
|
||||
backend: string;
|
||||
};
|
||||
};
|
||||
Reference in New Issue
Block a user