qwen_2.5_model / src /modules /auth /entities /api-key.entity.ts
Muhammad Noman
Deploy OpenWA to Hugging Face Spaces
46252cd
Raw
History Blame Contribute Delete
1.33 kB
import { Entity, Column, PrimaryGeneratedColumn, CreateDateColumn, UpdateDateColumn, Index } from 'typeorm';
export enum ApiKeyRole {
ADMIN = 'admin',
OPERATOR = 'operator',
VIEWER = 'viewer',
}
@Entity('api_keys')
export class ApiKey {
@PrimaryGeneratedColumn('uuid')
id: string;
@Column({ type: 'varchar', length: 100 })
name: string;
@Index({ unique: true })
@Column({ type: 'varchar', length: 64 })
keyHash: string;
// 12 to fit the 12-char prefix that auth.service writes (was varchar(8); harmless on the
// hardcoded-SQLite `main` connection, but kept consistent with the code).
@Column({ type: 'varchar', length: 12 })
keyPrefix: string;
@Column({
type: 'varchar',
length: 20,
default: ApiKeyRole.OPERATOR,
})
role: ApiKeyRole;
@Column({ type: 'simple-array', nullable: true })
allowedIps: string[] | null;
@Column({ type: 'simple-array', nullable: true })
allowedSessions: string[] | null;
@Column({ type: 'boolean', default: true })
isActive: boolean;
@Column({ type: 'datetime', nullable: true })
expiresAt: Date | null;
@Column({ type: 'datetime', nullable: true })
lastUsedAt: Date | null;
@Column({ type: 'int', default: 0 })
usageCount: number;
@CreateDateColumn()
createdAt: Date;
@UpdateDateColumn()
updatedAt: Date;
}