mirror of
https://github.com/layer-systems/website.git
synced 2026-09-12 13:43:01 +02:00
* Initial plan * Add NIP-86 protocol client library with tests Co-authored-by: mroxso <24775431+mroxso@users.noreply.github.com> * Add NIP-86 session hook and relay-admin app UI Co-authored-by: mroxso <24775431+mroxso@users.noreply.github.com> * Add integration tests, NIP.md, and apps.md docs for Relay Admin Co-authored-by: mroxso <24775431+mroxso@users.noreply.github.com> * Address review feedback on Relay Admin app - sanitizeIconUrl() now only allows http:// for local relay hostnames (localhost/127.0.0.1/::1/*.local), matching its docstring and error message instead of accepting arbitrary http:// URLs. - Scope the discovery-time cache clear to the previous session's own relay URL instead of removing every ['nip86'] query, so connecting in one Relay Admin window no longer disrupts other open windows. - Use the AllowedPubkey type (not BannedPubkey) when mapping allowed- pubkey entries, since the structural overlap today made a real type mismatch invisible. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BYiUtZMQeA5RHggQw73wto --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: mroxso <24775431+mroxso@users.noreply.github.com> Co-authored-by: highperfocused <highperfocused@pm.me> Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
1.7 KiB
1.7 KiB
NIPs and custom schemas
This project defines no custom event kinds. It implements and adopts the following protocols:
Implemented NIPs
- NIP-86: Relay Management API
(draft, optional) — the Relay Admin app (
src/apps/relay-admin/) is a management client. Requests are JSON-RPC-like POSTs over HTTP(S) on the relay's own URI with theapplication/nostr+json+rpccontent type, authorized with a NIP-98 event (kind 27235) whoseutag is the relay URL and whosepayloadtag binds it to the request body. The client treatssupportedmethodsas the source of truth and only calls methods the relay advertised; advertised names outside the standard method list are treated as relay-specific extensions and kept visually and semantically separate. No generic event-purge/delete method is assumed — NIP-86 does not define one. - NIP-98: HTTP Auth — used for
NIP-86 authorization (with the NIP-86-required
payloadtag) and for Blossom uploads. - NIP-11: Relay Information Document — read at connect time to show relay identity in Relay Admin.
Adopted third-party kinds
- Kind
777("Spell") — a third-party draft NIP from the Grimoire client, adopted as-is for interop. Seedocs/apps.md("Spells are a third-party kind") andsrc/hooks/useSpells.ts.
Anything else (kinds 0, 1, 3, 5, 6, 16, 9802, 10002, 10003, 22242, 30023, 30311, 31337,
39701, …) follows the official NIPs as implemented in src/hooks/ and src/lib/.