diff --git a/.changeset/README.md b/.changeset/README.md deleted file mode 100644 index 654c6d47..00000000 --- a/.changeset/README.md +++ /dev/null @@ -1,8 +0,0 @@ -# Changesets - -Hello and welcome! This folder has been automatically generated by `@changesets/cli`, a build tool that works -with multi-package repos, or single-package repos to help you version and publish your code. You can -find the full documentation for it [in our repository](https://github.com/changesets/changesets). - -We have a quick list of common questions to get you started engaging with this project in -[our documentation](https://github.com/changesets/changesets/blob/main/docs/common-questions.md). diff --git a/.changeset/khaki-papayas-return.md b/.changeset/khaki-papayas-return.md new file mode 100644 index 00000000..2737c231 --- /dev/null +++ b/.changeset/khaki-papayas-return.md @@ -0,0 +1,5 @@ +--- +"nostream": patch +--- + +Fix: Restore CONFIGURATION.md with proper settings and remove duplicate changesets created during recovery diff --git a/.changeset/slimy-bars-burn.md b/.changeset/slimy-bars-burn.md deleted file mode 100644 index 4976c6dd..00000000 --- a/.changeset/slimy-bars-burn.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"nostream": minor ---- - -Add EWMA rate limiter with strategy support diff --git a/CONFIGURATION.md b/CONFIGURATION.md index 927da453..624b8cf4 100644 --- a/CONFIGURATION.md +++ b/CONFIGURATION.md @@ -145,10 +145,40 @@ The settings below are listed in alphabetical order by name. Please keep this ta | limits.event.retention.maxDays | Maximum number of days to retain events. Purge deletes events that are expired (`expires_at`), soft-deleted (`deleted_at`), or older than this window (`created_at`). Any non-positive value disables retention purge. | | limits.event.retention.pubkey.whitelist | Public keys excluded from retention purge. | | limits.event.whitelists.ipAddresses | List of IPs (IPv4 or IPv6) to ignore rate limits. | +| limits.event.whitelists.pubkeys | List of public keys to ignore rate limits. | +| limits.message.ipWhitelist | List of IPs (IPv4 or IPv6) to ignore rate limits. | +| limits.message.rateLimits[].period | Rate limit period in milliseconds. | | limits.client.subscription.maxSubscriptions | Maximum number of subscriptions per connected client. Defaults to 10. Disabled when set to zero. | | limits.client.subscription.maxFilters | Maximum number of filters per subscription. Defaults to 10. Disabled when set to zero. | | limits.message.rateLimits[].period | Rate limiting period in milliseconds. For `sliding_window`: the time window. For `ewma`: the half-life of the decay function. | | limits.message.rateLimits[].rate | Maximum number of messages during period. | +| mirroring.static[].address | Address of mirrored relay. (e.g. ws://100.100.100.100:8008) | +| mirroring.static[].filters | Subscription filters used to mirror. | +| mirroring.static[].limits.event | Event limit overrides for this mirror. See configurations under limits.event. | +| mirroring.static[].secret | Secret to pass to relays. Nostream relays only. Optional. | +| mirroring.static[].skipAdmissionCheck | Disable the admission fee check for events coming from this mirror. | +| network.maxPayloadSize | Maximum number of bytes accepted per WebSocket frame | +| network.remoteIpHeader | HTTP header from proxy containing IP address from client. | +| nip05.domainBlacklist | List of domains blocked from NIP-05 verification. Authors with NIP-05 at these domains will be rejected. | +| nip05.domainWhitelist | List of domains allowed for NIP-05 verification. If set, only authors verified at these domains can publish. | +| nip05.maxConsecutiveFailures | Number of consecutive verification failures before giving up on an author. Defaults to 20. | +| nip05.mode | NIP-05 verification mode: `enabled` requires verification, `passive` verifies without blocking, `disabled` does nothing. Defaults to `disabled`. | +| nip05.verifyExpiration | Time in milliseconds before a successful NIP-05 verification expires and needs re-checking. Defaults to 604800000 (1 week). | +| nip05.verifyUpdateFrequency | Minimum interval in milliseconds between re-verification attempts for a given author. Defaults to 86400000 (24 hours). | +| paymentProcessors.lnbits.baseURL | Base URL of your Lnbits instance. | +| paymentProcessors.lnbits.callbackBaseURL | Public-facing Nostream's Lnbits Callback URL. (e.g. https://relay.your-domain.com/callbacks/lnbits) | +| paymentProcessors.lnurl.invoiceURL | [LUD-06 Pay Request](https://github.com/lnurl/luds/blob/luds/06.md) provider URL. (e.g. https://getalby.com/lnurlp/your-username) | +| paymentProcessors.zebedee.baseURL | Zebedee's API base URL. | +| paymentProcessors.zebedee.callbackBaseURL | Public-facing Nostream's Zebedee Callback URL (e.g. https://relay.your-domain.com/callbacks/zebedee) | +| paymentProcessors.zebedee.ipWhitelist | List with Zebedee's API Production IPs. See [ZBD API Documentation](https://api-reference.zebedee.io/#c7e18276-6935-4cca-89ae-ad949efe9a6a) for more info. | +| payments.enabled | Enabled payments. Defaults to false. | +| payments.feeSchedules.admission[].amount | Admission fee amount in msats. | +| payments.feeSchedules.admission[].enabled | Enables admission fee. Defaults to false. | +| payments.feeSchedules.admission[].whitelists.event_kinds | List of event kinds to waive admission fee. Use `[min, max]` for ranges. | +| payments.feeSchedules.admission[].whitelists.pubkeys | List of pubkeys to waive admission fee. | +| payments.processor | Either `zebedee`, `lnbits`, `lnurl`. | +| workers.count | Number of workers to spin up to handle incoming connections. | +| | Spin workers as many CPUs are available when set to zero. Defaults to zero. | | limits.message.ipWhitelist | List of IPs (IPv4 or IPv6) to ignore rate limits. | | limits.admissionCheck.rateLimits[].period | Rate limiting period in milliseconds. For `sliding_window`: the time window. For `ewma`: the half-life of the decay function. | | limits.admissionCheck.rateLimits[].rate | Maximum number of admission checks during period. |