52 lines
1.0 KiB
TypeScript
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
|
|
}
|
|
}
|