3.9 KiB
Upstream Tickets for n_signer Integration
Current snapshot for n-OS-tr integration status.
T1: deny-by-default policy behavior
Status: CLOSED — implemented in n_signer v0.0.16
Priority: High (historical; now resolved)
Description:
n_signer now enforces deny-by-default behavior with explicit approval / preapproval rules, satisfying n-OS-tr's required safety model.
Acceptance Criteria:
- Requests without an allow decision are denied or require attended approval.
- No implicit auto-allow behavior remains for sensitive methods.
- Behavior is available in release v0.0.16.
Where to File: Closed. No new ticket needed.
T2: --preapprove CLI flag
Status: CLOSED — implemented in n_signer v0.0.16
Priority: High (historical; now resolved)
Description:
Boot-time preapproval rules are now supported via repeatable --preapprove CLI flags, removing the need for build-time patching for this function.
Acceptance Criteria:
--preapproveis accepted at process startup.- Multiple preapproval rules can be supplied.
- Rules apply to matching caller / method / nostr_index combinations.
- Feature is available in release v0.0.16.
Where to File: Closed. No new ticket needed.
T3: get_secret_key / get_private_key export method
Status: OPEN — critical-path blocker
Priority: Critical
Description:
Service daemons need raw 64-hex secret keys for signing and startup provisioning. The real key export JSON-RPC method is still missing upstream. Right now, n-os-tr-get-key usage has been relying on placeholder assumptions (including temporary get_public_key-based workflows in some integration paths), but this is not sufficient for real daemon key provisioning.
Acceptance Criteria:
- Add a JSON-RPC method named
get_secret_key(or equivalent upstream-approved private-key export name). - Method returns a 64-character lowercase hex secret key for an authorized nostr index / role.
- Method is policy-gated (no unconditional export).
- Method supports service-daemon provisioning use cases for non-user roles.
- Unauthorized callers and disallowed indices return explicit structured errors.
Where to File:
- Repository:
git.laantungir.net/laantungir/n_signer - Ticket title: Add get_secret_key JSON-RPC method for service daemon key provisioning
T9: --banner-prefix STRING
Status: OPEN — UX nice-to-have
Priority: Medium
Description:
Add a banner prefix option so n-OS-tr can render explicit visual identification on tty1 (for example, n-OS-tr SIGNER) to reduce operator confusion between virtual terminals.
Acceptance Criteria:
- Add CLI option
--banner-prefix STRING. - Prefix appears consistently in the signer TUI/banner header.
- Option is optional and backward-compatible.
- Rendering remains stable across redraws.
Where to File:
- Repository:
git.laantungir.net/laantungir/n_signer - Ticket title: Add --banner-prefix STRING for tty-specific signer identification
T11: nostr_terminal and otp signer socket support
Status: OPEN
Priority: High
Description:
CLI tools should sign through n_signer instead of managing their own key material. Both nostr_terminal and otp need first-class support for talking to the signer over its framed JSON-RPC socket.
Acceptance Criteria:
nostr_terminalacceptsNOSTR_SIGNER_SOCKETenvironment variable.otpacceptsNOSTR_SIGNER_SOCKETenvironment variable.- Both clients can speak n_signer's framed JSON-RPC protocol for
sign_event. - If signer is absent/unreachable, both clients fail or fall back gracefully (no crash, no hang loop).
- Existing non-signer workflows remain backward-compatible.
Where to File:
nostr_terminalrepository:git.laantungir.net/laantungir/nostr_terminalotprepository:git.laantungir.net/laantungir/otp- Suggested ticket title (both repos): Add NOSTR_SIGNER_SOCKET support and n_signer sign_event JSON-RPC integration