UNPKG

@iota-big3/sdk-security

Version:

Advanced security features including zero trust, quantum-safe crypto, and ML threat detection

82 lines 2.6 kB
/** * @iota-big3/sdk-security - Blockchain Audit Trail * Immutable audit logging with blockchain technology */ import type { CentralizedLogger } from '@iota-big3/sdk-observability'; import { EventEmitter } from 'events'; export type AuditEventType = 'authentication' | 'authorization_failure' | 'data_access' | 'data_modification' | 'data_deletion' | 'configuration_change' | 'security_event' | 'system_event'; export interface AuditEvent { eventType: AuditEventType; actor: { type: 'user' | 'system' | 'service'; id: string; name: string; roles?: string[]; }; resource?: { type: string; id: string; name: string; }; action: string; outcome: 'success' | 'failure'; ipAddress?: string; details?: Record<string, any>; } export interface StoredAuditEvent extends AuditEvent { id: string; timestamp: number; hash: string; previousHash?: string; blockHeight?: number; encrypted?: boolean; } export interface AuditQueryOptions { startDate?: Date; endDate?: Date; eventTypes?: AuditEventType[]; actors?: string[]; eventIds?: string[]; limit?: number; offset?: number; sortOrder?: 'asc' | 'desc'; } export interface AuditStatistics { totalEvents: number; eventsByType: Record<string, number>; eventsByOutcome: Record<string, number>; eventsByActor: Record<string, number>; } export declare class BlockchainAuditTrail extends EventEmitter { readonly isEnabled: boolean; private config; private logger; private events; private eventBuffer; private blockHeight; private lastHash; private isInitialized; private flushInterval?; private encryptionKey?; constructor(config: unknown, logger: CentralizedLogger); initialize(): Promise<void>; private connectToBlockchain; logEvent(event: AuditEvent): Promise<string>; queryEvents(options?: AuditQueryOptions): Promise<StoredAuditEvent[]>; verifyEventIntegrity(eventId: string): Promise<boolean>; exportAuditTrail(options: AuditQueryOptions, format: 'json' | 'csv' | 'pdf'): Promise<string | Buffer>; getStatistics(): Promise<AuditStatistics>; getMetrics(): { blockchainConnected: boolean; eventsLogged: number; bufferSize: number; lastBlockHeight: number; averageLatency: number; }; flushBuffer(): Promise<void>; shutdown(): Promise<void>; private generateEventId; private calculateHash; private encryptEventData; } //# sourceMappingURL=blockchain-audit.d.ts.map