Spaces:
Sleeping
Sleeping
| import { | |
| Entity, | |
| PrimaryGeneratedColumn, | |
| Column, | |
| CreateDateColumn, | |
| ManyToOne, | |
| JoinColumn, | |
| } from 'typeorm'; | |
| import { User } from '../../auth/entities/user.entity'; | |
| export enum SecurityEventType { | |
| LOGIN = 'login', | |
| LOGOUT = 'logout', | |
| FAILED_LOGIN = 'failed_login', | |
| PASSWORD_CHANGE = 'password_change', | |
| PERMISSION_CHANGE = 'permission_change', | |
| SUSPICIOUS_ACTIVITY = 'suspicious_activity', | |
| LOGIN_SUCCESS = 'login_success', | |
| LOGIN_FAILURE = 'login_failure', | |
| ROLE_CHANGE = 'role_change', | |
| ACCOUNT_LOCKED = 'account_locked', | |
| IP_BLOCKED = 'ip_blocked', | |
| SESSION_HIJACK = 'session_hijack', | |
| BRUTE_FORCE = 'brute_force', | |
| } | |
| export enum SecuritySeverity { | |
| LOW = 'low', | |
| MEDIUM = 'medium', | |
| HIGH = 'high', | |
| CRITICAL = 'critical', | |
| } | |
| ('security_logs') | |
| export class SecurityLog { | |
| ({ name: 'log_id', type: 'bigint', unsigned: true }) | |
| logId: number; | |
| ({ name: 'user_id', type: 'bigint', unsigned: true, nullable: true }) | |
| userId: number; | |
| ({ | |
| name: 'event_type', | |
| type: 'enum', | |
| enum: SecurityEventType, | |
| }) | |
| eventType: SecurityEventType; | |
| ({ | |
| name: 'severity', | |
| type: 'enum', | |
| enum: SecuritySeverity, | |
| default: SecuritySeverity.MEDIUM, | |
| }) | |
| severity: SecuritySeverity; | |
| ({ name: 'ip_address', type: 'varchar', length: 45, nullable: true }) | |
| ipAddress: string; | |
| ({ name: 'location', type: 'varchar', length: 255, nullable: true }) | |
| location: string; | |
| ({ name: 'user_agent', type: 'text', nullable: true }) | |
| userAgent: string; | |
| ({ name: 'details', type: 'text', nullable: true }) | |
| details: string; | |
| ({ name: 'metadata', type: 'json', nullable: true }) | |
| metadata: any; | |
| ({ name: 'is_resolved', type: 'tinyint', default: 0 }) | |
| isResolved: boolean; | |
| ({ name: 'created_at' }) | |
| createdAt: Date; | |
| (() => User) | |
| ({ name: 'user_id' }) | |
| user: User; | |
| } | |