diff --git a/appview/state/state.go b/appview/state/state.go index 46589878..43e4c15b 100644 --- a/appview/state/state.go +++ b/appview/state/state.go @@ -95,6 +95,10 @@ func Make(config *config.Config) (*State, error) { 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/jetstream/jetstream.go b/jetstream/jetstream.go index 615316dd..be6c0487 100644 --- a/jetstream/jetstream.go +++ b/jetstream/jetstream.go @@ -29,6 +29,7 @@ type JetstreamClient struct { ident string l *slog.Logger + logDids bool wantedDids Set[string] db DB waitForDid bool @@ -43,7 +44,9 @@ func (j *JetstreamClient) AddDid(did string) { 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 (j *JetstreamClient) withDidFilter(processFunc processor) processor { } } -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 @@ -81,6 +84,8 @@ func NewJetstreamClient(endpoint, ident string, collections []string, cfg *clien 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. waitForDid: waitForDid, diff --git a/knotserver/config/config.go b/knotserver/config/config.go index 073a892d..bad42db3 100644 --- a/knotserver/config/config.go +++ b/knotserver/config/config.go @@ -19,6 +19,7 @@ type Server struct { 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"` diff --git a/knotserver/server.go b/knotserver/server.go index bca1cafa..1bf70ed1 100644 --- a/knotserver/server.go +++ b/knotserver/server.go @@ -75,7 +75,7 @@ func Run(ctx context.Context, cmd *cli.Command) error { 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) }