diff --git a/jetstream/jetstream.go b/jetstream/jetstream.go --- a/jetstream/jetstream.go +++ b/jetstream/jetstream.go @@ -29,6 +29,7 @@ ident string l *slog.Logger + logDids bool wantedDids Set[string] db DB waitForDid bool @@ -43,7 +44,9 @@ return } - j.l.Info("adding did to in-memory filter", "did", did) + if j.logDids { + j.l.Info("adding did to in-memory filter", "did", did) + } j.mu.Lock() j.wantedDids[did] = struct{}{} j.mu.Unlock() @@ -67,7 +70,7 @@ } } -func NewJetstreamClient(endpoint, ident string, collections []string, cfg *client.ClientConfig, logger *slog.Logger, db DB, waitForDid bool) (*JetstreamClient, error) { +func NewJetstreamClient(endpoint, ident string, collections []string, cfg *client.ClientConfig, logger *slog.Logger, db DB, waitForDid, logDids bool) (*JetstreamClient, error) { if cfg == nil { cfg = client.DefaultClientConfig() cfg.WebsocketURL = endpoint @@ -80,6 +83,8 @@ db: db, l: logger, wantedDids: make(map[string]struct{}), + + logDids: logDids, // This will make the goroutine in StartJetstream wait until // j.wantedDids has been populated, typically using addDids. diff --git a/knotserver/server.go b/knotserver/server.go --- a/knotserver/server.go +++ b/knotserver/server.go @@ -75,7 +75,7 @@ jc, err := jetstream.NewJetstreamClient(c.Server.JetstreamEndpoint, "knotserver", []string{ tangled.PublicKeyNSID, tangled.KnotMemberNSID, - }, nil, logger, db, true) + }, nil, logger, db, true, c.Server.LogDids) if err != nil { logger.Error("failed to setup jetstream", "error", err) } diff --git a/appview/state/state.go b/appview/state/state.go --- a/appview/state/state.go +++ b/appview/state/state.go @@ -95,6 +95,10 @@ slog.Default(), wrapper, false, + + // in-memory filter is inapplicalble to appview so + // we'll never log dids anyway. + false, ) if err != nil { return nil, fmt.Errorf("failed to create jetstream client: %w", err) diff --git a/knotserver/config/config.go b/knotserver/config/config.go --- a/knotserver/config/config.go +++ b/knotserver/config/config.go @@ -19,6 +19,7 @@ DBPath string `env:"DB_PATH, default=knotserver.db"` Hostname string `env:"HOSTNAME, required"` JetstreamEndpoint string `env:"JETSTREAM_ENDPOINT, default=wss://jetstream1.us-west.bsky.network/subscribe"` + LogDids bool `env:"LOG_DIDS, default=true"` // This disables signature verification so use with caution. Dev bool `env:"DEV, default=false"`