From bc81d25f184d60c31c3f7e4b23ea8e7980d3108e Mon Sep 17 00:00:00 2001 From: Alex Gleason Date: Tue, 18 Apr 2023 18:48:19 -0400 Subject: [PATCH] README: add policies table --- README.md | 17 +++++++++++++++-- src/policies/filter-policy.ts | 2 +- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 7a1e8ab..d0aeba2 100644 --- a/README.md +++ b/README.md @@ -65,9 +65,22 @@ That's it! 🎉 Now you should check strfry logs to ensure everything is working ## Available policies -For complete documentation of policies, see: +For complete documentation of policies, see: https://doc.deno.land/https://gitlab.com/soapbox-pub/strfry-policies/-/raw/develop/mod.ts -- https://doc.deno.land/https://gitlab.com/soapbox-pub/strfry-policies/-/raw/develop/mod.ts +| Policy | Description | Example Options | +| ----------------------- | --------------------------------------------------------------------------------------------------------------------------- | ----------------------------------- | +| `antiDuplicationPolicy` | Prevent messages with the exact same content from being submitted repeatedly. | `{ ttl: 60000, minLength: 50}` | +| `filterPolicy` | Reject all events which don't match the filter. | `{ kinds: [0, 1, 3, 5, 6, 7] }` | +| `hellthreadPolicy` | Reject messages that tag too many participants. | `{ limit: 15 }` | +| `keywordPolicy` | Reject events containing any of the strings in its content. | `['moo', 'oink', 'honk']` | +| `noopPolicy` | Minimal sample policy for demonstration purposes. Allows all events through. | | +| `openaiPolicy` | Passes event content to OpenAI and then rejects flagged events. | `{ apiKey: '123...' }` | +| `powPolicy` | Reject events which don't meet Proof-of-Work ([NIP-13](https://github.com/nostr-protocol/nips/blob/master/13.md)) criteria. | `{ difficulty: 20 }` | +| `pubkeyBanPolicy` | Ban individual pubkeys from publishing events to the relay. | `['e810...', 'fafa...', '1e89...']` | +| `rateLimitPolicy` | Rate-limits users by their IP address. | `{ max: 10, interval: 60000 }` | +| `readOnlyPolicy` | This policy rejects all messages. | | +| `regexPolicy` | Reject events whose content matches the regex. | `/(🟠\|🔥\|😳)ChtaGPT/i` | +| `whitelistPolicy` | Allows only the listed pubkeys to post to the relay. All other events are rejected. | `['e810...', 'fafa...', '1e89...']` | ## Writing your own policies diff --git a/src/policies/filter-policy.ts b/src/policies/filter-policy.ts index b0c0f00..2ace07c 100644 --- a/src/policies/filter-policy.ts +++ b/src/policies/filter-policy.ts @@ -10,7 +10,7 @@ import { Policy } from '../types.ts'; * @example * ```ts * // Only allow kind 1, 3, 5, and 7 events. - * filterPolicy(msg, { kinds: [0, 1, 3, 5, 7] }); + * filterPolicy(msg, { kinds: [0, 1, 3, 5, 6, 7] }); * ``` */ const filterPolicy: Policy = ({ event }, filter = {}) => {