92 lines
1.9 KiB
TypeScript
92 lines
1.9 KiB
TypeScript
export type OperationType =
|
|
| "create_group"
|
|
| "update_group"
|
|
| "delete_group"
|
|
| "create_setup_key"
|
|
| "delete_setup_key"
|
|
| "rename_peer"
|
|
| "update_peer_groups"
|
|
| "update_peer"
|
|
| "delete_peer"
|
|
| "create_policy"
|
|
| "update_policy"
|
|
| "delete_policy"
|
|
| "create_route"
|
|
| "update_route"
|
|
| "delete_route"
|
|
| "create_dns"
|
|
| "update_dns"
|
|
| "delete_dns"
|
|
| "create_posture_check"
|
|
| "update_posture_check"
|
|
| "delete_posture_check"
|
|
| "create_network"
|
|
| "update_network"
|
|
| "delete_network"
|
|
| "create_network_resource"
|
|
| "update_network_resource"
|
|
| "delete_network_resource"
|
|
| "create_network_router"
|
|
| "update_network_router"
|
|
| "delete_network_router"
|
|
| "create_user"
|
|
| "update_user"
|
|
| "delete_user";
|
|
|
|
export interface FieldChange {
|
|
field: string;
|
|
from: unknown;
|
|
to: unknown;
|
|
}
|
|
|
|
export interface Operation {
|
|
type: OperationType;
|
|
name: string;
|
|
details?: Record<string, unknown>;
|
|
changes?: FieldChange[];
|
|
}
|
|
|
|
export interface OperationResult extends Operation {
|
|
status: "success" | "failed" | "skipped";
|
|
error?: string;
|
|
}
|
|
|
|
/** Order in which operation types must be executed */
|
|
export const EXECUTION_ORDER: OperationType[] = [
|
|
// Creates: dependencies first
|
|
"create_posture_check",
|
|
"update_posture_check",
|
|
"create_group",
|
|
"update_group",
|
|
"create_setup_key",
|
|
"rename_peer",
|
|
"update_peer_groups",
|
|
"update_peer",
|
|
"create_network",
|
|
"update_network",
|
|
"create_network_resource",
|
|
"update_network_resource",
|
|
"create_network_router",
|
|
"update_network_router",
|
|
"create_user",
|
|
"update_user",
|
|
"create_policy",
|
|
"update_policy",
|
|
"create_route",
|
|
"update_route",
|
|
"create_dns",
|
|
"update_dns",
|
|
// Deletions in reverse dependency order
|
|
"delete_dns",
|
|
"delete_route",
|
|
"delete_policy",
|
|
"delete_user",
|
|
"delete_network_router",
|
|
"delete_network_resource",
|
|
"delete_network",
|
|
"delete_peer",
|
|
"delete_setup_key",
|
|
"delete_posture_check",
|
|
"delete_group",
|
|
];
|