feat: add comprehensive CRUD endpoints, cluster sync improvements, and firewall orchestration
Add create endpoints for users, roles, tenants, projects, networks, subnets, and security rules with audit logging, implement commit_or_400 helper for IntegrityError handling with 409 responses, enhance cluster sync to populate nodes, workloads, and networks from provider inventory with last_sync_at tracking, add update/delete operations for IP addresses and policies with version tracking, implement IP
This commit is contained in:
@@ -19,6 +19,48 @@ export type Cluster = {
|
||||
last_sync_status: string | null;
|
||||
};
|
||||
|
||||
export type Project = {
|
||||
id: string;
|
||||
name: string;
|
||||
tenant_id: string;
|
||||
description: string | null;
|
||||
};
|
||||
|
||||
export type Tenant = {
|
||||
id: string;
|
||||
name: string;
|
||||
description: string | null;
|
||||
};
|
||||
|
||||
export type User = {
|
||||
id: string;
|
||||
email: string;
|
||||
display_name: string;
|
||||
is_active: boolean;
|
||||
};
|
||||
|
||||
export type Role = {
|
||||
id: string;
|
||||
name: string;
|
||||
permissions: string[];
|
||||
};
|
||||
|
||||
export type Subnet = {
|
||||
id: string;
|
||||
network_id: string;
|
||||
cidr: string;
|
||||
gateway: string | null;
|
||||
dhcp_enabled: boolean;
|
||||
};
|
||||
|
||||
export type IpAddress = {
|
||||
id: string;
|
||||
subnet_id: string;
|
||||
address: string;
|
||||
status: string;
|
||||
note: string | null;
|
||||
};
|
||||
|
||||
export type Network = {
|
||||
id: string;
|
||||
name: string;
|
||||
@@ -29,12 +71,42 @@ export type Network = {
|
||||
tags: string[];
|
||||
};
|
||||
|
||||
export type SecurityGroup = {
|
||||
id: string;
|
||||
project_id: string | null;
|
||||
name: string;
|
||||
description: string | null;
|
||||
};
|
||||
|
||||
export type SecurityRule = {
|
||||
id: string;
|
||||
security_group_id: string;
|
||||
direction: string;
|
||||
action: string;
|
||||
protocol: string;
|
||||
source: string;
|
||||
destination: string;
|
||||
port: string | null;
|
||||
priority: number;
|
||||
logging: boolean;
|
||||
description: string | null;
|
||||
};
|
||||
|
||||
export type Policy = {
|
||||
id: string;
|
||||
name: string;
|
||||
version: number;
|
||||
enabled: boolean;
|
||||
definition: Record<string, unknown>;
|
||||
last_compiled: Record<string, unknown> | null;
|
||||
};
|
||||
|
||||
export type ServiceCatalogItem = {
|
||||
id: string;
|
||||
name: string;
|
||||
protocol: string;
|
||||
ports: string;
|
||||
editable: boolean;
|
||||
};
|
||||
|
||||
export type AuditLog = {
|
||||
@@ -76,4 +148,3 @@ export async function login(email: string, password: string) {
|
||||
setToken(data.access_token);
|
||||
return data;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user