Add NRC (Nostr Relay Connect) protocol and web UI (v0.48.9)
Some checks failed
Go / build-and-release (push) Has been cancelled
Some checks failed
Go / build-and-release (push) Has been cancelled
- Implement NIP-NRC protocol for remote relay access through public relay tunnel - Add NRC bridge service with NIP-44 encrypted message tunneling - Add NRC client library for applications - Add session management with subscription tracking and expiry - Add URI parsing for nostr+relayconnect:// scheme with secret and CAT auth - Add NRC API endpoints for connection management (create/list/delete/get-uri) - Add RelayConnectView.svelte component for managing NRC connections in web UI - Add NRC database storage for connection secrets and labels - Add NRC CLI commands (generate, list, revoke) - Add support for Cashu Access Tokens (CAT) in NRC URIs - Add ScopeNRC constant for Cashu token scope - Add wasm build infrastructure and stub files Files modified: - app/config/config.go: NRC configuration options - app/handle-nrc.go: New API handlers for NRC connections - app/main.go: NRC bridge startup integration - app/server.go: Register NRC API routes - app/web/src/App.svelte: Add Relay Connect tab - app/web/src/RelayConnectView.svelte: New NRC management component - app/web/src/api.js: NRC API client functions - main.go: NRC CLI command handlers - pkg/bunker/acl_adapter.go: Add NRC scope mapping - pkg/cashu/token/token.go: Add ScopeNRC constant - pkg/database/nrc.go: NRC connection storage - pkg/protocol/nrc/: New NRC protocol implementation - docs/NIP-NRC.md: NIP specification document 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -36,6 +36,7 @@ import (
|
||||
"next.orly.dev/pkg/bunker"
|
||||
"next.orly.dev/pkg/cashu/issuer"
|
||||
"next.orly.dev/pkg/cashu/verifier"
|
||||
"next.orly.dev/pkg/protocol/nrc"
|
||||
"next.orly.dev/pkg/ratelimit"
|
||||
"next.orly.dev/pkg/spider"
|
||||
"next.orly.dev/pkg/storage"
|
||||
@@ -95,6 +96,9 @@ type Server struct {
|
||||
CashuIssuer *issuer.Issuer
|
||||
CashuVerifier *verifier.Verifier
|
||||
|
||||
// NRC (Nostr Relay Connect) bridge for remote relay access
|
||||
nrcBridge *nrc.Bridge
|
||||
|
||||
// Archive relay and storage management
|
||||
archiveManager *archive.Manager
|
||||
accessTracker *storage.AccessTracker
|
||||
@@ -376,6 +380,11 @@ func (s *Server) UserInterface() {
|
||||
if s.CashuIssuer != nil {
|
||||
log.Printf("Cashu access token API enabled at /cashu")
|
||||
}
|
||||
|
||||
// NRC (Nostr Relay Connect) management endpoints
|
||||
s.mux.HandleFunc("/api/nrc/connections", s.handleNRCConnectionsRouter)
|
||||
s.mux.HandleFunc("/api/nrc/connections/", s.handleNRCConnectionsRouter)
|
||||
s.mux.HandleFunc("/api/nrc/config", s.handleNRCConfig)
|
||||
}
|
||||
|
||||
// handleFavicon serves favicon.png as favicon.ico
|
||||
|
||||
Reference in New Issue
Block a user