browser-vault-gui/src/types.ts

52 lines
1.0 KiB
TypeScript

export interface VaultServer {
id: string
name: string
url: string
description?: string
// KV v2 is enforced - no version selection needed
savedCredentials?: VaultCredentials // Optional saved credentials (WARNING: stored in localStorage)
}
export interface VaultCredentials {
serverId: string
token?: string
username?: string
password?: string
authMethod: 'token' | 'userpass' | 'ldap'
}
export interface MountPoint {
path: string
type: string
description: string
accessor: string
config: {
default_lease_ttl: number
max_lease_ttl: number
}
options:
| {
version?: string
}
| Record<string, never>
}
export interface VaultConnection {
server: VaultServer
credentials: VaultCredentials
isConnected: boolean
lastConnected?: Date
mountPoints?: MountPoint[]
}
export interface VaultSecret {
path: string
data: Record<string, unknown>
metadata?: {
created_time: string
deletion_time: string
destroyed: boolean
version: number
}
}