Relays: say when the relay keys are wrapped (RL-35) #153

Merged
jcoffey-dev merged 1 commits from relay/key-file into main 2026-10-31 03:05:38 +00:00
3 changed files with 18 additions and 1 deletions

No files matched your search

+14
View File
@@ -13,6 +13,8 @@
* held mail can be discarded and outbound mail cancelled. A relay older
* than this server can be handed a signed release to upgrade to. The link
* CA they all share can be replaced without a new join on each (RL-34).
* When the relay keys are wrapped under a key file, the page says to back
* it up (RL-35).
*/
import { useCallback, useEffect, useMemo, useState, type ReactNode } from 'react';
@@ -26,6 +28,7 @@ import {
Inbox,
KeyRound,
Loader2,
LockKeyhole,
Plus,
RefreshCw,
Send,
@@ -1286,6 +1289,17 @@ export function RelaysPage() {
)
}
/>
{relays.some((r) => r.keysWrapped) && (
<p className="flex items-start gap-2 text-sm text-muted-foreground">
<LockKeyhole className="mt-0.5 h-4 w-4 shrink-0" />
<span>
{t(
'relays.keysWrapped',
'The relay keys are wrapped under the key file INBUXA_RELAY_KEY_FILE names. Back that file up on its own: without it, mail the relays hold can’t be opened, and every relay needs a new join.',
)}
</span>
</p>
)}
{replacement && (
<LinkCaBanner
since={replacement.since}
+2
View File
@@ -89,6 +89,8 @@ export interface Relay {
linkCa?: LinkCa | null;
/** Absent from servers before RL-34: when the replacement of the link CA under way began. */
linkCaReplacing?: string | null;
/** Absent from servers before RL-35: the relay keys are wrapped under INBUXA_RELAY_KEY_FILE's file. */
keysWrapped?: boolean;
joinState: 'waiting' | 'expired' | 'joined';
joinExpiresAt?: string | null;
joinedAt?: string | null;
+2 -1
View File
@@ -2520,6 +2520,7 @@
"finishGo": "Finish now",
"cancelGo": "Cancel the replacement",
"failed": "The link CA wasn’t changed"
}
},
"keysWrapped": "The relay keys are wrapped under the key file INBUXA_RELAY_KEY_FILE names. Back that file up on its own: without it, mail the relays hold can’t be opened, and every relay needs a new join."
}
}