chore: import DH V2 D5.6.4 production baseline
This commit is contained in:
@@ -0,0 +1,48 @@
|
||||
import { MigrationInterface, QueryRunner } from 'typeorm';
|
||||
|
||||
export class PhaseAAuthSessions1786548001000 implements MigrationInterface {
|
||||
name = 'PhaseAAuthSessions1786548001000';
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`
|
||||
CREATE TABLE auth_sessions (
|
||||
id uuid PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
user_id uuid NOT NULL,
|
||||
refresh_token_hash text NOT NULL,
|
||||
created_at timestamptz NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
expires_at timestamptz NOT NULL,
|
||||
last_used_at timestamptz NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
revoked_at timestamptz,
|
||||
replaced_by_session_id uuid,
|
||||
ip inet,
|
||||
user_agent text,
|
||||
device_label text,
|
||||
CONSTRAINT fk_auth_sessions_user
|
||||
FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE RESTRICT,
|
||||
CONSTRAINT fk_auth_sessions_replaced_by
|
||||
FOREIGN KEY (replaced_by_session_id)
|
||||
REFERENCES auth_sessions(id) ON DELETE SET NULL,
|
||||
CONSTRAINT chk_auth_sessions_expiration
|
||||
CHECK (expires_at > created_at)
|
||||
)
|
||||
`);
|
||||
|
||||
await queryRunner.query(`
|
||||
CREATE UNIQUE INDEX uq_auth_sessions_refresh_token_hash
|
||||
ON auth_sessions (refresh_token_hash)
|
||||
`);
|
||||
await queryRunner.query(`
|
||||
CREATE INDEX idx_auth_sessions_user_id ON auth_sessions (user_id)
|
||||
`);
|
||||
await queryRunner.query(`
|
||||
CREATE INDEX idx_auth_sessions_expires_at ON auth_sessions (expires_at)
|
||||
`);
|
||||
await queryRunner.query(`
|
||||
CREATE INDEX idx_auth_sessions_revoked_at ON auth_sessions (revoked_at)
|
||||
`);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query('DROP TABLE auth_sessions');
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user