diff --git a/catalog/endpoints.json b/catalog/endpoints.json index 67f7aa3..a088f53 100644 --- a/catalog/endpoints.json +++ b/catalog/endpoints.json @@ -183,6 +183,52 @@ "dead": "none", "timeout_sec": 5.0, "filter": "passthrough dest/subject clear; reject missing to, empty ct, plaintext body" + }, + { + "name": "verae.npe.dir.lookup", + "pattern": "request-reply", + "for": "Look up an endpoint HPKE public key", + "from": [ + "any npe endpoint" + ], + "to": [ + "pubkey-directory" + ], + "in": { + "handle": "string" + }, + "out": { + "enc_pk": "hex", + "inbox": "npe.inbox.*" + }, + "encryption": "public keys only (not content)", + "reject": [ + "unknown handle" + ], + "dead": "none", + "timeout_sec": 5.0, + "filter": "never returns private keys or message bodies" + }, + { + "name": "verae.npe.dir.list", + "pattern": "request-reply", + "for": "List all endpoint public keys so availability is visible", + "from": [ + "any npe endpoint" + ], + "to": [ + "pubkey-directory" + ], + "in": {}, + "out": { + "handles": "array", + "keys": "public records" + }, + "encryption": "public keys only (not content)", + "reject": [], + "dead": "none", + "timeout_sec": 5.0, + "filter": "public directory; no private keys" } ] } diff --git a/catalog/pfc-derived.json b/catalog/pfc-derived.json index a051709..23ca136 100644 --- a/catalog/pfc-derived.json +++ b/catalog/pfc-derived.json @@ -1269,6 +1269,68 @@ "filter": "unsigned wrappers rejected; empty actor rejected", "git": "https://git.georgelambert.org/marchon/peergos-for-compliance" }, + { + "name": "verae.npe.dir.lookup", + "pattern": "request-reply", + "for": "PFC/Verae subject \u2014 see peergos-for-compliance/docs/nats-addresses.md", + "from": [ + "pfc-py-admin", + "sm-leaf", + "connectors", + "pfc-repl", + "pfc-ipfs" + ], + "to": [ + "pubkey-directory" + ], + "in": { + "fields": [ + "handle" + ] + }, + "out": "ack or service JSON (never recipient mail plaintext on error subjects)", + "encryption": "passthrough dest-in-clear; body pfc-lab-xor or NPE; Pattern A apps never publish", + "reject": [ + "unknown subject", + "missing required fields", + "plaintext PHI", + "verae.llm.turn.>" + ], + "dead": "none", + "timeout_sec": 5.0, + "filter": "unknown subject rejected; required payload fields; no verae.llm.turn.>; no plaintext PHI", + "git": "https://git.georgelambert.org/marchon/peergos-for-compliance" + }, + { + "name": "verae.npe.dir.list", + "pattern": "request-reply", + "for": "PFC/Verae subject \u2014 see peergos-for-compliance/docs/nats-addresses.md", + "from": [ + "pfc-py-admin", + "sm-leaf", + "connectors", + "pfc-repl", + "pfc-ipfs" + ], + "to": [ + "pubkey-directory" + ], + "in": { + "fields": [] + }, + "out": "ack or service JSON (never recipient mail plaintext on error subjects)", + "encryption": "passthrough dest-in-clear; body pfc-lab-xor or NPE; Pattern A apps never publish", + "reject": [ + "unknown subject", + "missing required fields", + "plaintext PHI", + "verae.llm.turn.>" + ], + "dead": "none", + "timeout_sec": 5.0, + "filter": "unknown subject rejected; required payload fields; no verae.llm.turn.>; no plaintext PHI", + "git": "https://git.georgelambert.org/marchon/peergos-for-compliance" + }, { "name": "verae.gossip.handshake", "pattern": "pub",