Summary
HappyView ignores Jetstream account-status events. If an account is deleted, records already indexed for that account remain publicly queryable.
The current event type does not model the account event's active or status fields:
https://github.com/gamesgamesgamesgamesgames/happyview/blob/cbed465e5301d59685eea4ad917a599f82e6e92c/src/jetstream.rs#L20-L28
Account events are explicitly ignored during dispatch:
https://github.com/gamesgamesgamesgamesgames/happyview/blob/cbed465e5301d59685eea4ad917a599f82e6e92c/src/jetstream.rs#L303-L309
"account" => {
tracing::debug!(
did = %event.did,
"received account event from jetstream (ignored)"
);
}
Expected behavior
Records belonging to a deleted account should no longer be publicly queryable through HappyView.
Actual behavior
When HappyView receives an account event indicating that an account is inactive or deleted:
- the event is ignored;
- existing rows remain in
happyview_records;
- default XRPC get/list handlers continue returning those records;
- Lua database APIs have no account-status exclusion;
- subsequent commit processing is not affected by the account event;
- the Jetstream cursor advances past the ignored event.
As a result, HappyView continues serving records for an account after that account has been deleted.
Impact
Consumers can receive stale records for deleted accounts and may incorrectly present those accounts and their content as still available.
Summary
HappyView ignores Jetstream account-status events. If an account is deleted, records already indexed for that account remain publicly queryable.
The current event type does not model the account event's
activeorstatusfields:https://github.com/gamesgamesgamesgamesgames/happyview/blob/cbed465e5301d59685eea4ad917a599f82e6e92c/src/jetstream.rs#L20-L28
Account events are explicitly ignored during dispatch:
https://github.com/gamesgamesgamesgamesgames/happyview/blob/cbed465e5301d59685eea4ad917a599f82e6e92c/src/jetstream.rs#L303-L309
Expected behavior
Records belonging to a deleted account should no longer be publicly queryable through HappyView.
Actual behavior
When HappyView receives an account event indicating that an account is inactive or deleted:
happyview_records;As a result, HappyView continues serving records for an account after that account has been deleted.
Impact
Consumers can receive stale records for deleted accounts and may incorrectly present those accounts and their content as still available.