@iota-big3/sdk-security
Version:
Advanced security features including zero trust, quantum-safe crypto, and ML threat detection
82 lines • 2.6 kB
TypeScript
/**
* @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