Skip to content

Commit 2381414

Browse files
committed
[db] add migration to alter pat table allow null expirationTime
1 parent d2c0ed2 commit 2381414

File tree

3 files changed

+23
-2
lines changed

3 files changed

+23
-2
lines changed

components/gitpod-db/src/typeorm/entity/db-personal-access-token.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ export class DBPersonalAccessToken {
5353
scopes: string[];
5454

5555
@Column("datetime")
56-
expirationTime: Date;
56+
expirationTime: Date | null;
5757

5858
@Column("datetime")
5959
createdAt: Date;
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
/**
2+
* Copyright (c) 2024 Gitpod GmbH. All rights reserved.
3+
* Licensed under the GNU Affero General Public License (AGPL).
4+
* See License.AGPL.txt in the project root for license information.
5+
*/
6+
7+
import { MigrationInterface, QueryRunner } from "typeorm";
8+
9+
const table = "d_b_personal_access_token";
10+
11+
export class PersonalAccessTokenAllowNullExpireDateonPAT1705393804800 implements MigrationInterface {
12+
public async up(queryRunner: QueryRunner): Promise<void> {
13+
await queryRunner.query(`ALTER TABLE ${table} MODIFY expirationTime expirationTime timestamp(6) NULL`);
14+
}
15+
16+
public async down(queryRunner: QueryRunner): Promise<void> {
17+
await queryRunner.query(
18+
`ALTER TABLE ${table} CHANGE expirationTime expirationTime timestamp(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6)`,
19+
);
20+
}
21+
}

components/gitpod-db/src/typeorm/personal-access-token-db-impl.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ export class PersonalAccessTokenDBImpl implements PersonalAccessTokenDB {
2929
const pat = await repo
3030
.createQueryBuilder("pat")
3131
.where(`pat.hash = :hash`, { hash })
32-
.andWhere(`pat.expirationTime > :expirationTime`, { expirationTime })
32+
.andWhere(`pat.expirationTime > :expirationTime OR pat.expirationTime IS NULL`, { expirationTime })
3333
.andWhere(`pat.deleted = false`)
3434
.getOne();
3535

0 commit comments

Comments
 (0)