Skip to main content
BrowsingSignal is an append-only infrastructure entity that records hourly deltas of provider-domain visits flushed by the Chrome extension. Each row represents one (workspace, domain, hour-bucket) tuple: the count of visits accumulated since the last successful flush from that extension session. The provider-scoring pipeline aggregates rows within a 24-hour window to produce the signal_boost factor that ranks providers higher for workspaces that recently visited their domain. Rows have no soft-delete column and are pruned by the daily rescore cron after 90 days. The table is not exposed via Hasura and is internal-only.
Internal object. Not currently exposed on the public REST API. The operations below describe the intended contract.

API operations

Data model

Attributes

Relationships

System-computed

  • browsing_signal_id: generated via gen_random_uuid() at INSERT โ€” never supplied by the caller
  • created_at: set to now() by the database DEFAULT and additionally via MikroORM onCreate hook โ€” not user-supplied
  • No soft-delete (deleted_at column is absent): this is an append-only table; rows are pruned physically by the daily rescore cron after 90 days, not soft-deleted
  • No updated_at column: the entity is append-only by design; rows are never mutated after insertion
  • pk: internal serial primary key โ€” exposed only in the composite index definitions; never surfaced in the API response
  • workspace_pk: FK column written by MikroORM from the workspace relationship โ€” never set directly by the caller
  • Two composite indexes maintained automatically by Postgres: idx_browsing_signals_workspace_created (workspace_pk, created_at DESC) and idx_browsing_signals_workspace_last_visited (workspace_pk, last_visited_at DESC)

Example

Source: apps/api/src/database/entities/BrowsingSignal.ts ยท domain: ingestion ยท tier: Infrastructure