src/database/migrations/1768000000000-RemoveRefreshTokenFromIssuanceConfig.ts

Description

Remove legacy refresh token settings from issuance_config.

Refresh token behavior is now configured per authorization server via authorizationServers[].token.

Implements

MigrationInterface

Relationships

Used by

No results matching.

Depends on

  • MigrationInterface

Index

Properties
Methods
  • Public Async down
  • Public Async up

Properties

name
Type : string
Default value : "RemoveRefreshTokenFromIssuanceConfig1768000000000"

Methods

Public Async down
down(queryRunner: QueryRunner)
Parameters :
Name Type Optional
queryRunner QueryRunner No
Returns : Promise<void>
Public Async up
up(queryRunner: QueryRunner)
Parameters :
Name Type Optional
queryRunner QueryRunner No
Returns : Promise<void>
import { MigrationInterface, QueryRunner, TableColumn } from "typeorm";

/**
 * Remove legacy refresh token settings from issuance_config.
 *
 * Refresh token behavior is now configured per authorization server
 * via authorizationServers[].token.
 */
export class RemoveRefreshTokenFromIssuanceConfig1768000000000
    implements MigrationInterface
{
    name = "RemoveRefreshTokenFromIssuanceConfig1768000000000";

    public async up(queryRunner: QueryRunner): Promise<void> {
        const issuanceConfigTable =
            await queryRunner.getTable("issuance_config");

        if (!issuanceConfigTable) {
            console.log(
                "[Migration] issuance_config table not found - skipping (schema may not exist yet).",
            );
            return;
        }

        const hasRefreshTokenExpiresInSeconds =
            issuanceConfigTable.columns.some(
                (col) => col.name === "refreshTokenExpiresInSeconds",
            );
        if (hasRefreshTokenExpiresInSeconds) {
            await queryRunner.dropColumn(
                "issuance_config",
                "refreshTokenExpiresInSeconds",
            );
            console.log(
                "[Migration] Dropped refreshTokenExpiresInSeconds from issuance_config.",
            );
        }

        const hasRefreshTokenEnabled = issuanceConfigTable.columns.some(
            (col) => col.name === "refreshTokenEnabled",
        );
        if (hasRefreshTokenEnabled) {
            await queryRunner.dropColumn(
                "issuance_config",
                "refreshTokenEnabled",
            );
            console.log(
                "[Migration] Dropped refreshTokenEnabled from issuance_config.",
            );
        }
    }

    public async down(queryRunner: QueryRunner): Promise<void> {
        const issuanceConfigTable =
            await queryRunner.getTable("issuance_config");

        if (!issuanceConfigTable) {
            console.log(
                "[Migration] issuance_config table not found - skipping (schema may not exist yet).",
            );
            return;
        }

        const hasRefreshTokenEnabled = issuanceConfigTable.columns.some(
            (col) => col.name === "refreshTokenEnabled",
        );
        if (!hasRefreshTokenEnabled) {
            await queryRunner.addColumn(
                "issuance_config",
                new TableColumn({
                    name: "refreshTokenEnabled",
                    type: "boolean",
                    default: true,
                    isNullable: false,
                }),
            );
            console.log(
                "[Migration] Re-added refreshTokenEnabled to issuance_config.",
            );
        }

        const hasRefreshTokenExpiresInSeconds =
            issuanceConfigTable.columns.some(
                (col) => col.name === "refreshTokenExpiresInSeconds",
            );
        if (!hasRefreshTokenExpiresInSeconds) {
            await queryRunner.addColumn(
                "issuance_config",
                new TableColumn({
                    name: "refreshTokenExpiresInSeconds",
                    type: "int",
                    default: 2592000,
                    isNullable: true,
                }),
            );
            console.log(
                "[Migration] Re-added refreshTokenExpiresInSeconds to issuance_config.",
            );
        }
    }
}

results matching ""

    No results matching ""