keyvault-api-sdk
Version:
Official SDK for KeyVault - Secure API key management with user-specific encryption and team support
108 lines • 2.4 kB
TypeScript
export interface User {
id: string;
email: string;
password: string;
role: 'admin' | 'developer' | 'read-only';
createdAt: Date;
updatedAt: Date;
}
export interface ApiKey {
id: string;
name: string;
service: string;
encryptedValue: string;
userId: string;
teamId?: string;
metadata?: Record<string, any>;
lastUsed?: Date;
rotationSchedule?: string;
createdAt: Date;
updatedAt: Date;
}
export interface Team {
id: string;
name: string;
ownerId: string;
members: TeamMember[];
createdAt: Date;
updatedAt: Date;
}
export interface TeamMember {
userId: string;
role: 'admin' | 'developer' | 'read-only';
joinedAt: Date;
}
export interface AccessLog {
id: string;
userId: string;
keyId: string;
action: 'retrieve' | 'create' | 'update' | 'delete';
timestamp: Date;
ipAddress: string;
userAgent: string;
}
export interface AuthToken {
token: string;
userId: string;
expiresAt: Date;
}
export interface ScanResult {
file: string;
line: number;
type: 'api-key' | 'secret' | 'token' | 'private-key' | 'wallet-address' | 'mnemonic-seed';
service: string;
severity: 'critical' | 'high' | 'medium' | 'low';
value: string;
}
export interface AuthResponse {
message: string;
token: string;
user: {
id: string;
email: string;
role: string;
};
}
export interface ApiKeyResponse {
id: string;
name: string;
service: string;
maskedValue: string;
lastUsed: string | null;
rotationSchedule: string | null;
createdAt: string;
updatedAt: string;
}
export interface ApiKeysListResponse {
keys: ApiKeyResponse[];
}
export interface CreateKeyResponse {
message: string;
key: {
id: string;
name: string;
service: string;
maskedValue: string;
createdAt: string;
};
}
export interface AnalyticsResponse {
success: boolean;
data: {
totalKeys: number;
recentActivity: any[];
securityScore: number;
};
}
export interface ScanResultResponse {
success: boolean;
data: {
results: ScanResult[];
scannedFile?: string;
scannedPath?: string;
timestamp: string;
filesScanned: number;
secretsFound: number;
};
}
//# sourceMappingURL=types.d.ts.map