mirror of
https://github.com/immich-app/immich.git
synced 2025-01-10 13:56:47 +01:00
cf9e04c8ec
* feat(server): audit log * feedback * Insert to database * migration * test * controller/repository/service * test * module * feat(server): implement audit endpoint * directly return changed assets * add daily cleanup of audit table * fix tests * review feedback * ci * refactor(server): audit implementation * chore: open api --------- Co-authored-by: Alex Tran <alex.tran1502@gmail.com> Co-authored-by: Fynn Petersen-Frey <zoodyy@users.noreply.github.com> Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
34 lines
656 B
TypeScript
34 lines
656 B
TypeScript
import { Column, CreateDateColumn, Entity, Index, PrimaryGeneratedColumn } from 'typeorm';
|
|
|
|
export enum DatabaseAction {
|
|
CREATE = 'CREATE',
|
|
UPDATE = 'UPDATE',
|
|
DELETE = 'DELETE',
|
|
}
|
|
|
|
export enum EntityType {
|
|
ASSET = 'ASSET',
|
|
ALBUM = 'ALBUM',
|
|
}
|
|
|
|
@Entity('audit')
|
|
@Index('IDX_ownerId_createdAt', ['ownerId', 'createdAt'])
|
|
export class AuditEntity {
|
|
@PrimaryGeneratedColumn('increment')
|
|
id!: number;
|
|
|
|
@Column()
|
|
entityType!: EntityType;
|
|
|
|
@Column({ type: 'uuid' })
|
|
entityId!: string;
|
|
|
|
@Column()
|
|
action!: DatabaseAction;
|
|
|
|
@Column({ type: 'uuid' })
|
|
ownerId!: string;
|
|
|
|
@CreateDateColumn({ type: 'timestamptz' })
|
|
createdAt!: Date;
|
|
}
|