feat: Security

This commit is contained in:
2026-06-05 18:34:01 +02:00
parent ee293d7daf
commit 45675192a5
134 changed files with 4128 additions and 446 deletions

View File

@@ -0,0 +1,22 @@
import { MigrationInterface, QueryRunner } from 'typeorm';
export class SessionTokens1000000000011 implements MigrationInterface {
name = 'SessionTokens1000000000011';
public async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`
CREATE TABLE IF NOT EXISTS "session_tokens" (
"token" TEXT PRIMARY KEY NOT NULL,
"userId" TEXT NOT NULL,
"issuedAt" INTEGER NOT NULL,
"expiresAt" INTEGER NOT NULL
)
`);
await queryRunner.query(`CREATE INDEX IF NOT EXISTS "idx_session_tokens_user_id" ON "session_tokens" ("userId")`);
}
public async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`DROP TABLE IF EXISTS "session_tokens"`);
}
}

View File

@@ -0,0 +1,13 @@
import { MigrationInterface, QueryRunner } from 'typeorm';
export class SigningPublicKey1000000000012 implements MigrationInterface {
name = 'SigningPublicKey1000000000012';
async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query('ALTER TABLE "users" ADD COLUMN "signingPublicKey" text');
}
async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query('ALTER TABLE "users" DROP COLUMN "signingPublicKey"');
}
}

View File

@@ -9,6 +9,8 @@ import { PluginSupport1000000000007 } from './1000000000007-PluginSupport';
import { ServerPluginInstallMetadata1000000000008 } from './1000000000008-ServerPluginInstallMetadata';
import { ServerIcons1000000000009 } from './1000000000009-ServerIcons';
import { DeviceTokens1000000000010 } from './1000000000010-DeviceTokens';
import { SessionTokens1000000000011 } from './1000000000011-SessionTokens';
import { SigningPublicKey1000000000012 } from './1000000000012-SigningPublicKey';
export const serverMigrations = [
InitialSchema1000000000000,
@@ -21,5 +23,7 @@ export const serverMigrations = [
PluginSupport1000000000007,
ServerPluginInstallMetadata1000000000008,
ServerIcons1000000000009,
DeviceTokens1000000000010
DeviceTokens1000000000010,
SessionTokens1000000000011,
SigningPublicKey1000000000012
];