feat: add database, role & privilege management
Add Admin sidebar tab with database/role management panels, role manager workspace tab, and privilege dialogs. Backend provides 10 new Tauri commands for CRUD on databases, roles, and privileges with read-only mode enforcement. Context menus on schema tree nodes allow dropping databases and viewing/granting table privileges. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -98,7 +98,95 @@ export interface ExplainResult {
|
||||
"Execution Time": number;
|
||||
}
|
||||
|
||||
export type TabType = "query" | "table" | "structure";
|
||||
export interface DatabaseInfo {
|
||||
name: string;
|
||||
owner: string;
|
||||
encoding: string;
|
||||
collation: string;
|
||||
ctype: string;
|
||||
tablespace: string;
|
||||
connection_limit: number;
|
||||
size: string;
|
||||
description: string | null;
|
||||
}
|
||||
|
||||
export interface CreateDatabaseParams {
|
||||
name: string;
|
||||
owner?: string;
|
||||
template?: string;
|
||||
encoding?: string;
|
||||
tablespace?: string;
|
||||
connection_limit?: number;
|
||||
}
|
||||
|
||||
export interface RoleInfo {
|
||||
name: string;
|
||||
is_superuser: boolean;
|
||||
can_login: boolean;
|
||||
can_create_db: boolean;
|
||||
can_create_role: boolean;
|
||||
inherit: boolean;
|
||||
is_replication: boolean;
|
||||
connection_limit: number;
|
||||
password_set: boolean;
|
||||
valid_until: string | null;
|
||||
member_of: string[];
|
||||
members: string[];
|
||||
description: string | null;
|
||||
}
|
||||
|
||||
export interface CreateRoleParams {
|
||||
name: string;
|
||||
password?: string;
|
||||
login: boolean;
|
||||
superuser: boolean;
|
||||
createdb: boolean;
|
||||
createrole: boolean;
|
||||
inherit: boolean;
|
||||
replication: boolean;
|
||||
connection_limit?: number;
|
||||
valid_until?: string;
|
||||
in_roles: string[];
|
||||
}
|
||||
|
||||
export interface AlterRoleParams {
|
||||
name: string;
|
||||
password?: string;
|
||||
login?: boolean;
|
||||
superuser?: boolean;
|
||||
createdb?: boolean;
|
||||
createrole?: boolean;
|
||||
inherit?: boolean;
|
||||
replication?: boolean;
|
||||
connection_limit?: number;
|
||||
valid_until?: string;
|
||||
rename_to?: string;
|
||||
}
|
||||
|
||||
export interface TablePrivilege {
|
||||
grantee: string;
|
||||
table_schema: string;
|
||||
table_name: string;
|
||||
privilege_type: string;
|
||||
is_grantable: boolean;
|
||||
}
|
||||
|
||||
export interface GrantRevokeParams {
|
||||
action: string;
|
||||
privileges: string[];
|
||||
object_type: string;
|
||||
object_name: string;
|
||||
role_name: string;
|
||||
with_grant_option: boolean;
|
||||
}
|
||||
|
||||
export interface RoleMembershipParams {
|
||||
action: string;
|
||||
role_name: string;
|
||||
member_name: string;
|
||||
}
|
||||
|
||||
export type TabType = "query" | "table" | "structure" | "roles";
|
||||
|
||||
export interface Tab {
|
||||
id: string;
|
||||
@@ -108,4 +196,5 @@ export interface Tab {
|
||||
schema?: string;
|
||||
table?: string;
|
||||
sql?: string;
|
||||
roleName?: string;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user