@sphereon/ssi-sdk.data-store
Version:
62 lines (58 loc) • 3.72 kB
text/typescript
import { MigrationInterface, QueryRunner } from 'typeorm'
export class CreateAuditEvents1701634812183 implements MigrationInterface {
name = 'CreateAuditEvents1701634812183'
public async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`CREATE TYPE "public"."Level_enum" AS ENUM('0', '1', '2', '3', '4')`)
await queryRunner.query(
`CREATE TYPE "public"."System_enum" AS ENUM('general', 'kms', 'identity', 'oid4vci', 'oid4vp', 'siopv2', 'PE', 'credentials', 'web3', 'profile', 'contact')`,
)
await queryRunner.query(
`CREATE TYPE "public"."Subsystem_type_enum" AS ENUM('key', 'did_provider', 'did_resolver', 'oid4vp_op', 'oid4vci_client', 'siopv2_op', 'contact_manager', 'vc_issuer', 'vc_verifier', 'vc_persistence', 'transport', 'profile', 'api')`,
)
await queryRunner.query(`CREATE TYPE "public"."Action_type_enum" AS ENUM('create', 'read', 'update', 'delete', 'execute')`)
await queryRunner.query(`CREATE TYPE "public"."Initiator_type_enum" AS ENUM('user', 'system', 'external')`)
await queryRunner.query(`CREATE TYPE "public"."System_correlation_id_type_enum" AS ENUM('did', 'url', 'email', 'hostname', 'phone', 'user')`)
await queryRunner.query(`CREATE TYPE "public"."Party_correlation_type_enum" AS ENUM('did', 'url', 'email', 'hostname', 'phone')`)
await queryRunner.query(`CREATE TYPE "public"."Event_type_enum" AS ENUM('audit', 'activity', 'general')`)
await queryRunner.query(`CREATE TYPE "public"."Event_credential_type_enum" AS ENUM('JSON_LD', 'JWT', 'SD_JWT', 'MSO_MDOC')`)
await queryRunner.query(
`CREATE TABLE "AuditEvents" (
"id" uuid NOT NULL DEFAULT uuid_generate_v4(),
"eventType" "public"."Event_type_enum" NOT NULL,
"timestamp" TIMESTAMP NOT NULL,
"level" "public"."Level_enum" NOT NULL,
"correlationId" TEXT NOT NULL,
"system" "public"."System_enum" NOT NULL,
"subSystemType" "public"."Subsystem_type_enum" NOT NULL,
"actionType" "public"."Action_type_enum" NOT NULL,
"actionSubType" TEXT NOT NULL,
"initiatorType" "public"."Initiator_type_enum" NOT NULL,
"systemCorrelationIdType" "public"."System_correlation_id_type_enum",
"systemCorrelationId" TEXT,
"systemAlias" TEXT,
"partyCorrelationType" "public"."Party_correlation_type_enum",
"partyCorrelationId" TEXT,
"partyAlias" TEXT,
"credentialType" "public"."Event_credential_type_enum",
"credentialHash" TEXT,
"originalCredential" TEXT,
"sharePurpose" TEXT,
"description" TEXT NOT NULL,
"data" TEXT,
"diagnosticData" TEXT,
"created_at" TIMESTAMP NOT NULL DEFAULT now(),
"last_updated_at" TIMESTAMP NOT NULL DEFAULT now(),
CONSTRAINT "PK_AuditEvents_id" PRIMARY KEY ("id"))`,
)
}
public async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`DROP TABLE "AuditEvents"`)
await queryRunner.query(`DROP TYPE "public"."Party_correlation_type_enum"`)
await queryRunner.query(`DROP TYPE "public"."System_correlation_id_type_enum"`)
await queryRunner.query(`DROP TYPE "public"."Initiator_type_enum"`)
await queryRunner.query(`DROP TYPE "public"."Action_type_enum"`)
await queryRunner.query(`DROP TYPE "public"."Subsystem_type_enum"`)
await queryRunner.query(`DROP TYPE "public"."System_enum"`)
await queryRunner.query(`DROP TYPE "public"."Level_enum"`)
}
}