A client that could not authorize against a foreign signal server was redirected into a dead end with no way to retry, so servers joined from another signal route became unreachable. The home server now stores a per-user provision secret, clients keep it in their own store, and a recovery service records why authorization failed per server URL. Invite, server browser, and chat room surface that reason and offer a retry instead of silently redirecting.
14 lines
465 B
TypeScript
14 lines
465 B
TypeScript
import { MigrationInterface, QueryRunner } from 'typeorm';
|
|
|
|
export class ProvisionSecret1000000000013 implements MigrationInterface {
|
|
name = 'ProvisionSecret1000000000013';
|
|
|
|
async up(queryRunner: QueryRunner): Promise<void> {
|
|
await queryRunner.query('ALTER TABLE "users" ADD COLUMN "provisionSecret" text');
|
|
}
|
|
|
|
async down(queryRunner: QueryRunner): Promise<void> {
|
|
await queryRunner.query('ALTER TABLE "users" DROP COLUMN "provisionSecret"');
|
|
}
|
|
}
|