policies

package
v0.12.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 25, 2024 License: Unlicense Imports: 11 Imported by: 11

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AntiSyncBots

func AntiSyncBots(ctx context.Context, filter nostr.Filter) (reject bool, msg string)

AntiSyncBots tries to prevent people from syncing kind:1s from this relay to else by always requiring an author parameter at least.

func ApplySaneDefaults added in v0.4.3

func ApplySaneDefaults(relay *khatru.Relay)

func ConnectionRateLimiter added in v0.4.3

func ConnectionRateLimiter(tokensPerInterval int, interval time.Duration, maxTokens int) func(r *http.Request) bool

func EventIPRateLimiter added in v0.4.3

func EventIPRateLimiter(tokensPerInterval int, interval time.Duration, maxTokens int) func(ctx context.Context, _ *nostr.Event) (reject bool, msg string)

func EventPubKeyRateLimiter added in v0.4.3

func EventPubKeyRateLimiter(tokensPerInterval int, interval time.Duration, maxTokens int) func(ctx context.Context, _ *nostr.Event) (reject bool, msg string)

func FilterIPRateLimiter added in v0.4.3

func FilterIPRateLimiter(tokensPerInterval int, interval time.Duration, maxTokens int) func(ctx context.Context, _ nostr.Filter) (reject bool, msg string)

func NoComplexFilters

func NoComplexFilters(ctx context.Context, filter nostr.Filter) (reject bool, msg string)

NoComplexFilters disallows filters with more than 2 tags.

func NoEmptyFilters

func NoEmptyFilters(ctx context.Context, filter nostr.Filter) (reject bool, msg string)

NoEmptyFilters disallows filters that don't have at least a tag, a kind, an author or an id.

func NoSearchQueries

func NoSearchQueries(ctx context.Context, filter nostr.Filter) (reject bool, msg string)

func PreventLargeTags

func PreventLargeTags(maxTagValueLen int) func(context.Context, *nostr.Event) (bool, string)

PreventLargeTags rejects events that have indexable tag values greater than maxTagValueLen.

func PreventTimestampsInTheFuture

func PreventTimestampsInTheFuture(threshold time.Duration) func(context.Context, *nostr.Event) (bool, string)

func PreventTimestampsInThePast

func PreventTimestampsInThePast(threshold time.Duration) func(context.Context, *nostr.Event) (bool, string)

func PreventTooManyIndexableTags

func PreventTooManyIndexableTags(max int, ignoreKinds []int, onlyKinds []int) func(context.Context, *nostr.Event) (bool, string)

PreventTooManyIndexableTags returns a function that can be used as a RejectFilter that will reject events with more indexable (single-character) tags than the specified number.

If ignoreKinds is given this restriction will not apply to these kinds (useful for allowing a bigger). If onlyKinds is given then all other kinds will be ignored.

func RejectEventsWithBase64Media added in v0.4.3

func RejectEventsWithBase64Media(ctx context.Context, evt *nostr.Event) (bool, string)

func RejectKind04Snoopers

func RejectKind04Snoopers(ctx context.Context, filter nostr.Filter) (bool, string)

RejectKind04Snoopers prevents reading NIP-04 messages from people not involved in the conversation.

func RemoveAllButKinds

func RemoveAllButKinds(kinds ...uint16) func(context.Context, *nostr.Filter)

func RemoveAllButTags

func RemoveAllButTags(tagNames ...string) func(context.Context, *nostr.Filter)

func RemoveSearchQueries

func RemoveSearchQueries(ctx context.Context, filter *nostr.Filter)

func RestrictToSpecifiedKinds

func RestrictToSpecifiedKinds(allowEphemeral bool, kinds ...uint16) func(context.Context, *nostr.Event) (bool, string)

RestrictToSpecifiedKinds returns a function that can be used as a RejectFilter that will reject any events with kinds different than the specified ones.

func ValidateKind added in v0.3.2

func ValidateKind(ctx context.Context, evt *nostr.Event) (bool, string)

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL