From 7bd7bcc70e48534a5ef55379eec6e7f40def3e20 Mon Sep 17 00:00:00 2001 From: Nico Ritschel Date: Fri, 22 May 2026 12:16:49 -0700 Subject: [PATCH 1/8] Add session replay explorer --- README.md | 20 + scripts/replay_demo_stub.mjs | 497 +++++++ src/config.rs | 120 ++ src/extractors.rs | 1 + src/lib.rs | 241 ++- src/replay.rs | 2689 ++++++++++++++++++++++++++++++++++ src/replay_ui.html | 1927 ++++++++++++++++++++++++ tests/helpers/mod.rs | 75 +- tests/posthog_endpoints.rs | 310 +++- wrangler.toml.example | 4 + 10 files changed, 5877 insertions(+), 7 deletions(-) create mode 100644 scripts/replay_demo_stub.mjs create mode 100644 src/replay.rs create mode 100644 src/replay_ui.html diff --git a/README.md b/README.md index 90d91c2..a627983 100644 --- a/README.md +++ b/README.md @@ -173,6 +173,11 @@ new_sqlite_classes = ["PersonIdCounterDurableObject", "GroupDurableObject"] | `POSTHOG_TEAM_ID` | No | Optional team id attached to event and person rows. | | `POSTHOG_GROUP_TYPE_0..4` | No | Maps PostHog group types to `group0..group4`; set `POSTHOG_GROUP_TYPE_0=company` to populate `group0` for company groups. | | `POSTHOG_SESSION_RECORDING_ENDPOINT` | No | Returned in `/decide` session recording config. | +| `HOGFLARE_REPLAY_ACCOUNT_ID` | No | Enables the `/replay` UI API when set with bucket and token. | +| `HOGFLARE_REPLAY_BUCKET` | No | R2 bucket name backing the R2 Data Catalog warehouse. | +| `HOGFLARE_REPLAY_R2_SQL_TOKEN` | No | R2 SQL/Data Catalog token used server-side to query replay rows. Store as a secret. | +| `HOGFLARE_REPLAY_EVENTS_TABLE` | No | Iceberg events table queried by replay APIs. Defaults to `default.hogflare_events`. | +| `HOGFLARE_REPLAY_QUERY_LIMIT` | No | Maximum snapshot rows a replay API request can read. Defaults to `5000`. | | `POSTHOG_SIGNING_SECRET` | No | Enables HMAC request signature checks. | | `PERSON_DEBUG_TOKEN` | No | Enables `/__debug/person/:id` for deployment verification. | | `HOGFLARE_FEATURE_FLAGS` | No | JSON flag config used by `/decide` and `/flags`. | @@ -190,6 +195,7 @@ bunx wrangler secret put CLOUDFLARE_PERSONS_PIPELINE_AUTH_TOKEN bunx wrangler secret put POSTHOG_SIGNING_SECRET bunx wrangler secret put PERSON_DEBUG_TOKEN bunx wrangler secret put HOGFLARE_FEATURE_FLAGS +bunx wrangler secret put HOGFLARE_REPLAY_R2_SQL_TOKEN ``` ### Deploy @@ -557,6 +563,20 @@ The Durable Object is the source of truth for the current person record. When `C - `/s` accepts PostHog replay payloads, including gzip/gzip-js compressed browser SDK requests. - Modern `$snapshot` payloads are normalized to `$snapshot_items` rows before they are sent through Cloudflare Pipelines into R2. - Legacy raw chunk payloads are still accepted as `$snapshot` rows. +- `/replay` serves the read-only replay explorer for browsing sessions, searching analytics events, funnel drop-offs, computed friction signals, and person journeys. +- `/replay/api/sessions` lists replay sessions by reading `$snapshot_items` and legacy `$snapshot` rows from Iceberg through R2 SQL. +- `/replay/api/events` searches analytics events, excluding replay recording rows, so product engineers can jump from an event to the matching replay session. +- `/replay/api/funnels` classifies sessions as converted, stuck, or dropped for an ordered `steps` list of event names. +- `/replay/api/friction` computes replay-derived signals such as rage clicks, dead clicks, form thrash, long idle gaps, repeated navigation, and deep scroll without follow-up. +- `/replay/api/person` joins a distinct ID's replay sessions and analytics events into one journey timeline. +- `/replay/api/sessions/:session_id` returns normalized rrweb events plus an activity timeline for one session. + +Replay APIs require `HOGFLARE_REPLAY_ACCOUNT_ID`, `HOGFLARE_REPLAY_BUCKET`, and +`HOGFLARE_REPLAY_R2_SQL_TOKEN`. The token stays server-side in the Worker; the browser only calls +Hogflare's replay API. `api_key`, `distinct_id`, `session_id`, `url`, `event_name`, `steps`, +`signal`, `date_from`, `date_to`, `min_duration_secs`, `max_duration_secs`, `min_events`, +`max_events`, and `limit` query parameters can be used to narrow replay reads. Session deep links +use `session_id` plus `at_ms`. ### Feature flags diff --git a/scripts/replay_demo_stub.mjs b/scripts/replay_demo_stub.mjs new file mode 100644 index 0000000..bc94d6d --- /dev/null +++ b/scripts/replay_demo_stub.mjs @@ -0,0 +1,497 @@ +const port = Number(process.env.REPLAY_DEMO_PORT || 4666); + +let nextNodeId = 1; + +function id() { + return nextNodeId++; +} + +function text(textContent) { + return { + type: 3, + textContent, + id: id(), + }; +} + +function textWithId(nodeId, textContent) { + return { + type: 3, + textContent, + id: nodeId, + }; +} + +function element(tagName, attributes = {}, childNodes = []) { + return { + type: 2, + tagName, + attributes, + childNodes, + id: id(), + }; +} + +function elementWithId(nodeId, tagName, attributes = {}, childNodes = []) { + return { + type: 2, + tagName, + attributes, + childNodes, + id: nodeId, + }; +} + +const css = ` + * { box-sizing: border-box; } + body { + margin: 0; + min-height: 100vh; + background: #f4f7fb; + color: #101418; + font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; + } + .shell { + display: grid; + min-height: 100vh; + grid-template-rows: 64px 1fr; + } + .top { + display: flex; + align-items: center; + justify-content: space-between; + border-bottom: 1px solid #d9e1ea; + background: #ffffff; + padding: 0 32px; + } + .brand { + font-size: 18px; + font-weight: 760; + } + .nav { + display: flex; + gap: 24px; + color: #627081; + font-size: 14px; + font-weight: 650; + } + .content { + display: grid; + grid-template-columns: minmax(420px, 0.95fr) minmax(430px, 0.75fr); + gap: 28px; + padding: 32px; + } + .hero, .checkout { + border: 1px solid #d9e1ea; + border-radius: 8px; + background: #ffffff; + box-shadow: 0 20px 60px rgba(30, 44, 60, 0.08); + } + .hero { + padding: 34px; + } + .eyebrow { + color: #087a55; + font-size: 12px; + font-weight: 760; + letter-spacing: 0.04em; + text-transform: uppercase; + } + h1 { + max-width: 700px; + margin: 14px 0 14px; + font-size: 44px; + line-height: 1.02; + letter-spacing: 0; + } + .lede { + max-width: 640px; + color: #5f6d7a; + font-size: 17px; + line-height: 1.5; + } + .plans { + display: grid; + grid-template-columns: repeat(3, minmax(0, 1fr)); + gap: 14px; + margin-top: 28px; + } + .plan { + min-height: 164px; + border: 1px solid #d9e1ea; + border-radius: 8px; + padding: 18px; + } + .plan.active { + border-color: #087a55; + background: #e8f6ef; + } + .plan strong { + display: block; + font-size: 15px; + } + .price { + margin: 12px 0; + font-size: 28px; + font-weight: 760; + } + .plan span { + color: #627081; + font-size: 13px; + line-height: 1.45; + } + .checkout { + align-self: start; + padding: 24px; + } + .checkout h2 { + margin: 0 0 6px; + font-size: 22px; + } + .checkout p { + margin: 0 0 22px; + color: #627081; + } + .notice { + margin: 0 0 16px; + border: 1px solid #c7d5e4; + border-radius: 6px; + background: #f4f8fc; + color: #4d5965; + padding: 10px 12px; + font-size: 13px; + font-weight: 650; + } + .notice.active { + border-color: #d68b21; + background: #fff5e6; + color: #804d08; + } + .field { + display: grid; + gap: 6px; + margin-bottom: 14px; + } + label { + color: #4d5965; + font-size: 12px; + font-weight: 720; + } + input { + height: 42px; + border: 1px solid #ccd6e0; + border-radius: 6px; + padding: 0 12px; + color: #101418; + font: inherit; + } + .cta { + width: 100%; + height: 44px; + border: 0; + border-radius: 6px; + background: #111827; + color: #ffffff; + font-size: 14px; + font-weight: 760; + } + .cta[disabled] { + background: #6b7280; + } + .summary { + display: grid; + gap: 9px; + margin-top: 18px; + border-top: 1px solid #d9e1ea; + padding-top: 18px; + color: #627081; + font-size: 13px; + } + .summary div { + display: flex; + justify-content: space-between; + } + .summary strong { + color: #101418; + } +`; + +const emailInputId = id(); +const companyInputId = id(); +const noticeId = id(); +const noticeTextId = id(); +const ctaButtonId = id(); +const ctaTextId = id(); + +function snapshotNode() { + return { + type: 0, + childNodes: [ + { + type: 1, + name: "html", + publicId: "", + systemId: "", + id: id(), + }, + element("html", { lang: "en" }, [ + element("head", {}, [ + element("title", {}, [text("Acme Analytics Checkout")]), + element("style", {}, [text(css)]), + ]), + element("body", {}, [ + element("div", { class: "shell" }, [ + element("header", { class: "top" }, [ + element("div", { class: "brand" }, [text("Acme Analytics")]), + element("nav", { class: "nav" }, [ + element("span", {}, [text("Pricing")]), + element("span", {}, [text("Docs")]), + element("span", {}, [text("Support")]), + ]), + ]), + element("main", { class: "content" }, [ + element("section", { class: "hero" }, [ + element("div", { class: "eyebrow" }, [text("Replay demo account")]), + element("h1", {}, [text("Understand every product moment without guessing.")]), + element("p", { class: "lede" }, [ + text( + "This is a real rrweb snapshot used by the Hogflare demo, with pricing cards, a checkout form, and recorded interactions." + ), + ]), + element("div", { class: "plans" }, [ + element("article", { class: "plan" }, [ + element("strong", {}, [text("Starter")]), + element("div", { class: "price" }, [text("$49")]), + element("span", {}, [text("Basic ingestion and replay for smaller teams.")]), + ]), + element("article", { class: "plan active" }, [ + element("strong", {}, [text("Pro")]), + element("div", { class: "price" }, [text("$149")]), + element("span", {}, [text("Event search, funnels, replay, and friction signals.")]), + ]), + element("article", { class: "plan" }, [ + element("strong", {}, [text("Scale")]), + element("div", { class: "price" }, [text("Custom")]), + element("span", {}, [text("Warehouse-first analytics for high-volume teams.")]), + ]), + ]), + ]), + element("aside", { class: "checkout" }, [ + element("h2", {}, [text("Start Pro trial")]), + element("p", {}, [text("Recorded checkout path for replay verification.")]), + elementWithId(noticeId, "div", { class: "notice" }, [ + textWithId(noticeTextId, "Ready. Fill the form to continue."), + ]), + element("div", { class: "field" }, [ + element("label", { for: "email" }, [text("Work email")]), + { + type: 2, + tagName: "input", + attributes: { + id: "email", + type: "email", + value: "", + placeholder: "you@company.com", + }, + childNodes: [], + id: emailInputId, + }, + ]), + element("div", { class: "field" }, [ + element("label", { for: "company" }, [text("Company")]), + { + type: 2, + tagName: "input", + attributes: { + id: "company", + type: "text", + value: "", + placeholder: "Company name", + }, + childNodes: [], + id: companyInputId, + }, + ]), + elementWithId(ctaButtonId, "button", { class: "cta" }, [ + textWithId(ctaTextId, "Continue to payment"), + ]), + element("div", { class: "summary" }, [ + element("div", {}, [element("span", {}, [text("Plan")]), element("strong", {}, [text("Pro")])]), + element("div", {}, [element("span", {}, [text("Seats")]), element("strong", {}, [text("8")])]), + element("div", {}, [element("span", {}, [text("Due today")]), element("strong", {}, [text("$0")])]), + ]), + ]), + ]), + ]), + ]), + ]), + ], + id: id(), + }; +} + +const demoEvents = [ + { + type: 4, + timestamp: 1_000, + data: { + href: "https://app.test/pricing", + width: 1365, + height: 768, + }, + }, + { + type: 2, + timestamp: 1_100, + data: { + node: snapshotNode(), + initialOffset: { left: 0, top: 0 }, + }, + }, + { type: 3, timestamp: 1_700, data: { source: 2, type: 5, x: 815, y: 255 } }, + { type: 3, timestamp: 2_100, data: { source: 5, id: emailInputId, text: "nico@atm.com", isChecked: false } }, + { type: 3, timestamp: 2_700, data: { source: 5, id: companyInputId, text: "ATM.COM", isChecked: false } }, + { type: 3, timestamp: 3_400, data: { source: 2, type: 2, x: 948, y: 517 } }, + { + type: 3, + timestamp: 3_650, + data: { + source: 0, + texts: [{ id: ctaTextId, value: "Checking workspace..." }], + attributes: [{ id: ctaButtonId, attributes: { class: "cta", disabled: "true" } }], + removes: [], + adds: [], + }, + }, + { type: 3, timestamp: 4_050, data: { source: 2, type: 2, x: 950, y: 518 } }, + { type: 3, timestamp: 4_450, data: { source: 2, type: 2, x: 951, y: 516 } }, + { + type: 3, + timestamp: 4_950, + data: { + source: 0, + texts: [ + { id: noticeTextId, value: "Payment method missing. Add card details to continue." }, + { id: ctaTextId, value: "Continue to payment" }, + ], + attributes: [ + { id: noticeId, attributes: { class: "notice active" } }, + { id: ctaButtonId, attributes: { class: "cta" } }, + ], + removes: [], + adds: [], + }, + }, + { type: 3, timestamp: 6_200, data: { source: 3, x: 0, y: 720 } }, +]; + +const journeyEvents = [ + { type: 4, timestamp: 1_000, data: { href: "https://app.test/home", width: 1365, height: 768 } }, + { + type: 2, + timestamp: 1_100, + data: { + node: snapshotNode(), + initialOffset: { left: 0, top: 0 }, + }, + }, + { type: 3, timestamp: 1_700, data: { source: 3, x: 0, y: 420 } }, +]; + +const rows = [ + { + uuid: "demo-chunk-1", + event: "$snapshot", + distinct_id: "replay-user", + created_at: "2026-05-22T10:00:01Z", + api_key: "phc_demo", + properties: { + session_id: "demo-session-1", + events: demoEvents, + }, + }, + { + uuid: "demo-chunk-2", + event: "$snapshot", + distinct_id: "journey-user", + created_at: "2026-05-22T10:03:00Z", + api_key: "phc_demo", + properties: { + session_id: "journey-session", + events: journeyEvents, + }, + }, + { + uuid: "event-pricing", + event: "Viewed Pricing", + distinct_id: "replay-user", + created_at: "2026-05-22T10:00:02Z", + api_key: "phc_demo", + properties: { + "$session_id": "demo-session-1", + "$current_url": "https://app.test/pricing", + plan: "pro", + }, + }, + { + uuid: "event-checkout", + event: "Checkout Started", + distinct_id: "replay-user", + created_at: "2026-05-22T10:00:05Z", + api_key: "phc_demo", + properties: { + "$session_id": "demo-session-1", + "$current_url": "https://app.test/checkout", + plan: "pro", + }, + }, + { + uuid: "event-stuck-1", + event: "Viewed Pricing", + distinct_id: "stuck-user", + created_at: "2026-05-22T10:01:00Z", + api_key: "phc_demo", + properties: { + "$session_id": "stuck-session", + "$current_url": "https://app.test/pricing", + }, + }, + { + uuid: "event-stuck-2", + event: "Viewed Pricing", + distinct_id: "stuck-user", + created_at: "2026-05-22T10:01:03Z", + api_key: "phc_demo", + properties: { + "$session_id": "stuck-session", + "$current_url": "https://app.test/pricing", + }, + }, + { + uuid: "event-journey", + event: "Product Viewed", + distinct_id: "journey-user", + created_at: "2026-05-22T10:03:05Z", + api_key: "phc_demo", + properties: { + "$session_id": "journey-session", + "$current_url": "https://app.test/product", + sku: "sku_123", + }, + }, +]; + +Bun.serve({ + port, + async fetch(request) { + let payload = {}; + try { + payload = await request.json(); + } catch {} + console.log(payload.query || "no query"); + return Response.json({ result: { rows } }); + }, +}); + +console.log(`replay sql demo stub listening on ${port}`); +await new Promise(() => {}); diff --git a/src/config.rs b/src/config.rs index 9b19b6c..ce7f4cd 100644 --- a/src/config.rs +++ b/src/config.rs @@ -7,6 +7,7 @@ use thiserror::Error; use url::Url; use crate::feature_flags::FeatureFlagStore; +use crate::replay::{ReplayConfig, ReplayConfigError}; #[derive(Debug, Clone)] pub struct Config { @@ -20,6 +21,7 @@ pub struct Config { pub posthog_group_types: [Option; 5], pub posthog_project_api_key: Option, pub session_recording_endpoint: Option, + pub replay: Option, pub posthog_signing_secret: Option, pub person_debug_token: Option, pub feature_flags: FeatureFlagStore, @@ -39,6 +41,8 @@ pub enum ConfigError { InvalidTeamId { value: String, message: String }, #[error("failed to parse HOGFLARE_FEATURE_FLAGS: {0}")] InvalidFeatureFlags(String), + #[error(transparent)] + Replay(#[from] ReplayConfigError), } impl Config { @@ -131,6 +135,7 @@ impl Config { .var("POSTHOG_SESSION_RECORDING_ENDPOINT") .ok() .map(|v| v.to_string()); + let replay = replay_config_from_worker_env(env)?; let posthog_signing_secret = env .secret("POSTHOG_SIGNING_SECRET") .ok() @@ -168,6 +173,7 @@ impl Config { posthog_group_types, posthog_project_api_key, session_recording_endpoint, + replay, posthog_signing_secret, person_debug_token, feature_flags, @@ -262,6 +268,7 @@ impl Config { let posthog_project_api_key = env::var("POSTHOG_API_KEY").ok(); let session_recording_endpoint = env::var("POSTHOG_SESSION_RECORDING_ENDPOINT").ok(); + let replay = replay_config_from_env()?; let posthog_signing_secret = env::var("POSTHOG_SIGNING_SECRET").ok(); let person_debug_token = env::var("PERSON_DEBUG_TOKEN").ok(); let feature_flags = match env::var("HOGFLARE_FEATURE_FLAGS") { @@ -286,9 +293,122 @@ impl Config { posthog_group_types, posthog_project_api_key, session_recording_endpoint, + replay, posthog_signing_secret, person_debug_token, feature_flags, }) } } + +#[cfg(target_arch = "wasm32")] +fn replay_config_from_worker_env(env: &worker::Env) -> Result, ConfigError> { + let account_id = env + .var("HOGFLARE_REPLAY_ACCOUNT_ID") + .ok() + .map(|value| value.to_string()); + let bucket_name = env + .var("HOGFLARE_REPLAY_BUCKET") + .ok() + .map(|value| value.to_string()); + let auth_token = env + .secret("HOGFLARE_REPLAY_R2_SQL_TOKEN") + .ok() + .map(|secret| secret.to_string()) + .or_else(|| { + env.var("HOGFLARE_REPLAY_R2_SQL_TOKEN") + .ok() + .map(|value| value.to_string()) + }); + + let configured = account_id.is_some() || bucket_name.is_some() || auth_token.is_some(); + if !configured { + return Ok(None); + } + + let events_table = env + .var("HOGFLARE_REPLAY_EVENTS_TABLE") + .ok() + .map(|value| value.to_string()); + let query_limit = parse_replay_query_limit( + env.var("HOGFLARE_REPLAY_QUERY_LIMIT") + .ok() + .map(|value| value.to_string()), + )?; + let endpoint = parse_optional_url( + "HOGFLARE_REPLAY_R2_SQL_ENDPOINT", + env.var("HOGFLARE_REPLAY_R2_SQL_ENDPOINT") + .ok() + .map(|value| value.to_string()), + )?; + + ReplayConfig::new( + account_id.ok_or(ConfigError::MissingVar("HOGFLARE_REPLAY_ACCOUNT_ID"))?, + bucket_name.ok_or(ConfigError::MissingVar("HOGFLARE_REPLAY_BUCKET"))?, + auth_token.ok_or(ConfigError::MissingVar("HOGFLARE_REPLAY_R2_SQL_TOKEN"))?, + events_table, + query_limit, + endpoint, + ) + .map(Some) + .map_err(ConfigError::from) +} + +#[cfg(not(target_arch = "wasm32"))] +fn replay_config_from_env() -> Result, ConfigError> { + let account_id = env::var("HOGFLARE_REPLAY_ACCOUNT_ID").ok(); + let bucket_name = env::var("HOGFLARE_REPLAY_BUCKET").ok(); + let auth_token = env::var("HOGFLARE_REPLAY_R2_SQL_TOKEN").ok(); + + let configured = account_id.is_some() || bucket_name.is_some() || auth_token.is_some(); + if !configured { + return Ok(None); + } + + let events_table = env::var("HOGFLARE_REPLAY_EVENTS_TABLE").ok(); + let query_limit = parse_replay_query_limit(env::var("HOGFLARE_REPLAY_QUERY_LIMIT").ok())?; + let endpoint = parse_optional_url( + "HOGFLARE_REPLAY_R2_SQL_ENDPOINT", + env::var("HOGFLARE_REPLAY_R2_SQL_ENDPOINT").ok(), + )?; + + ReplayConfig::new( + account_id.ok_or(ConfigError::MissingVar("HOGFLARE_REPLAY_ACCOUNT_ID"))?, + bucket_name.ok_or(ConfigError::MissingVar("HOGFLARE_REPLAY_BUCKET"))?, + auth_token.ok_or(ConfigError::MissingVar("HOGFLARE_REPLAY_R2_SQL_TOKEN"))?, + events_table, + query_limit, + endpoint, + ) + .map(Some) + .map_err(ConfigError::from) +} + +fn parse_replay_query_limit(value: Option) -> Result, ConfigError> { + value + .map(|value| { + value.parse::().map_err(|err| { + ConfigError::Replay(ReplayConfigError::InvalidQueryLimit { + value, + message: err.to_string(), + }) + }) + }) + .transpose() +} + +fn parse_optional_url( + name: &'static str, + value: Option, +) -> Result, ConfigError> { + value + .map(|value| { + Url::parse(&value).map_err(|err| { + ConfigError::Replay(ReplayConfigError::InvalidEndpoint { + value: format!("{name}={value}"), + message: err.to_string(), + }) + }) + }) + .transpose() +} diff --git a/src/extractors.rs b/src/extractors.rs index 0f1e161..8e141b8 100644 --- a/src/extractors.rs +++ b/src/extractors.rs @@ -909,6 +909,7 @@ mod tests { AppState { pipeline: Arc::new(pipeline), persons_pipeline: None, + replay: None, posthog_team_id: None, decide_api_token: None, session_recording_endpoint: None, diff --git a/src/lib.rs b/src/lib.rs index ca9658f..63334b5 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -7,13 +7,14 @@ pub mod importer; pub mod models; pub mod persons; pub mod pipeline; +pub mod replay; use std::{collections::HashMap, sync::Arc}; use axum::{ extract::{Path, State}, http::{HeaderMap, StatusCode}, - response::IntoResponse, + response::{Html, IntoResponse}, routing::{get, post}, Json, Router, }; @@ -33,6 +34,10 @@ use persons::{ NoopPersonStore, PersonAlias, PersonError, PersonStore, PersonUpdate, }; use pipeline::{PersonPipelineRecord, PipelineClient, PipelineError, PipelineEvent}; +use replay::{ + ReplayClient, ReplayError, ReplayEventsQuery, ReplayFrictionQuery, ReplayFunnelQuery, + ReplayPersonQuery, ReplaySessionEventsQuery, ReplaySessionsQuery, +}; use serde::{Deserialize, Serialize}; use serde_json::{json, Value}; use thiserror::Error; @@ -57,6 +62,7 @@ use tower_service::Service; pub(crate) struct AppState { pub(crate) pipeline: Arc, pub(crate) persons_pipeline: Option>, + pub(crate) replay: Option>, pub(crate) posthog_team_id: Option, pub(crate) decide_api_token: Option, pub(crate) session_recording_endpoint: Option, @@ -168,6 +174,12 @@ pub async fn run_with_config(config: Config) -> Result<(), RunError> { .map(Arc::new) }) .transpose()?; + let replay = config + .replay + .clone() + .map(ReplayClient::new) + .transpose()? + .map(Arc::new); info!( endpoint = %config.pipeline_endpoint, @@ -187,10 +199,11 @@ pub async fn run_with_config(config: Config) -> Result<(), RunError> { let listener = TcpListener::bind(config.address).await?; info!(address = %config.address, "listening for requests"); - serve_with_person_pipeline( + serve_with_person_pipeline_and_replay( listener, Arc::new(pipeline), persons_pipeline, + replay, config.posthog_team_id, Arc::new(NoopGroupStore), GroupTypeMap::new(config.posthog_group_types.clone()), @@ -259,10 +272,25 @@ pub async fn fetch( let group_store: Arc = groups::store_from_env(&env); let group_type_map = GroupTypeMap::new(config.posthog_group_types.clone()); let feature_flags = Arc::new(config.feature_flags); + let replay = match config.replay.clone() { + Some(config) => match ReplayClient::new(config) { + Ok(client) => Some(Arc::new(client)), + Err(err) => { + error!(error = %err, "failed to create replay client"); + let body = Json(ErrorResponse { + status: 0, + error: err.to_string(), + }); + return Ok((StatusCode::INTERNAL_SERVER_ERROR, body).into_response()); + } + }, + None => None, + }; - let mut router = build_router_with_person_pipeline( + let mut router = build_router_with_person_pipeline_and_replay( Arc::new(pipeline), persons_pipeline, + replay, config.posthog_team_id, group_store, group_type_map, @@ -331,10 +359,41 @@ pub fn build_router_with_person_pipeline( person_debug_token: Option, feature_flags: Arc, person_store: Arc, +) -> Router { + build_router_with_person_pipeline_and_replay( + pipeline, + persons_pipeline, + None, + posthog_team_id, + group_store, + group_type_map, + decide_api_token, + session_recording_endpoint, + signing_secret, + person_debug_token, + feature_flags, + person_store, + ) +} + +pub fn build_router_with_person_pipeline_and_replay( + pipeline: Arc, + persons_pipeline: Option>, + replay: Option>, + posthog_team_id: Option, + group_store: Arc, + group_type_map: GroupTypeMap, + decide_api_token: Option, + session_recording_endpoint: Option, + signing_secret: Option, + person_debug_token: Option, + feature_flags: Arc, + person_store: Arc, ) -> Router { router(build_state( pipeline, persons_pipeline, + replay, posthog_team_id, group_store, group_type_map, @@ -355,6 +414,7 @@ pub async fn serve(listener: TcpListener, pipeline: Arc) -> Resu pipeline, None, None, + None, Arc::new(NoopGroupStore), GroupTypeMap::default(), None, @@ -410,10 +470,43 @@ pub async fn serve_with_person_pipeline( signing_secret: Option, person_debug_token: Option, feature_flags: Arc, +) -> Result<(), RunError> { + serve_with_person_pipeline_and_replay( + listener, + pipeline, + persons_pipeline, + None, + posthog_team_id, + group_store, + group_type_map, + decide_api_token, + session_recording_endpoint, + signing_secret, + person_debug_token, + feature_flags, + ) + .await +} + +#[cfg(not(target_arch = "wasm32"))] +pub async fn serve_with_person_pipeline_and_replay( + listener: TcpListener, + pipeline: Arc, + persons_pipeline: Option>, + replay: Option>, + posthog_team_id: Option, + group_store: Arc, + group_type_map: GroupTypeMap, + decide_api_token: Option, + session_recording_endpoint: Option, + signing_secret: Option, + person_debug_token: Option, + feature_flags: Arc, ) -> Result<(), RunError> { let state = build_state( pipeline, persons_pipeline, + replay, posthog_team_id, group_store, group_type_map, @@ -445,6 +538,17 @@ fn router(state: AppState) -> Router { .route("/array/:token/config.js", get(array_config_js)) .route("/s", post(session_recording)) .route("/s/", post(session_recording)) + .route("/replay", get(replay_ui)) + .route("/replay/", get(replay_ui)) + .route("/replay/api/sessions", get(replay_sessions)) + .route("/replay/api/events", get(replay_events)) + .route("/replay/api/funnels", get(replay_funnels)) + .route("/replay/api/friction", get(replay_friction)) + .route("/replay/api/person", get(replay_person)) + .route( + "/replay/api/sessions/:session_id", + get(replay_session_events), + ) .route("/__debug/person/:id", get(debug_person)) .route("/healthz", get(health)) .with_state(state); @@ -462,6 +566,7 @@ fn router(state: AppState) -> Router { fn build_state( pipeline: Arc, persons_pipeline: Option>, + replay: Option>, posthog_team_id: Option, group_store: Arc, group_type_map: GroupTypeMap, @@ -475,6 +580,7 @@ fn build_state( AppState { pipeline, persons_pipeline, + replay, posthog_team_id, group_store, group_type_map, @@ -1620,6 +1726,133 @@ async fn health() -> impl IntoResponse { Json(json!({ "status": "ok" })) } +#[cfg_attr(target_arch = "wasm32", worker::send)] +async fn replay_ui() -> impl IntoResponse { + Html(replay::replay_ui_html()) +} + +#[cfg_attr(target_arch = "wasm32", worker::send)] +async fn replay_sessions( + State(state): State, + axum::extract::Query(query): axum::extract::Query, +) -> impl IntoResponse { + let Some(client) = state.replay.as_ref() else { + return replay_error_response(ReplayError::NotConfigured); + }; + + match client.list_sessions(query).await { + Ok(response) => Json(response).into_response(), + Err(err) => replay_error_response(err), + } +} + +#[cfg_attr(target_arch = "wasm32", worker::send)] +async fn replay_events( + State(state): State, + axum::extract::Query(query): axum::extract::Query, +) -> impl IntoResponse { + let Some(client) = state.replay.as_ref() else { + return replay_error_response(ReplayError::NotConfigured); + }; + + match client.search_events(query).await { + Ok(response) => Json(response).into_response(), + Err(err) => replay_error_response(err), + } +} + +#[cfg_attr(target_arch = "wasm32", worker::send)] +async fn replay_funnels( + State(state): State, + axum::extract::Query(query): axum::extract::Query, +) -> impl IntoResponse { + let Some(client) = state.replay.as_ref() else { + return replay_error_response(ReplayError::NotConfigured); + }; + + match client.search_funnel(query).await { + Ok(response) => Json(response).into_response(), + Err(err) => replay_error_response(err), + } +} + +#[cfg_attr(target_arch = "wasm32", worker::send)] +async fn replay_friction( + State(state): State, + axum::extract::Query(query): axum::extract::Query, +) -> impl IntoResponse { + let Some(client) = state.replay.as_ref() else { + return replay_error_response(ReplayError::NotConfigured); + }; + + match client.search_friction(query).await { + Ok(response) => Json(response).into_response(), + Err(err) => replay_error_response(err), + } +} + +#[cfg_attr(target_arch = "wasm32", worker::send)] +async fn replay_person( + State(state): State, + axum::extract::Query(query): axum::extract::Query, +) -> impl IntoResponse { + let Some(client) = state.replay.as_ref() else { + return replay_error_response(ReplayError::NotConfigured); + }; + + match client.person_journey(query).await { + Ok(response) => Json(response).into_response(), + Err(err) => replay_error_response(err), + } +} + +#[cfg_attr(target_arch = "wasm32", worker::send)] +async fn replay_session_events( + State(state): State, + Path(session_id): Path, + axum::extract::Query(query): axum::extract::Query, +) -> impl IntoResponse { + let Some(client) = state.replay.as_ref() else { + return replay_error_response(ReplayError::NotConfigured); + }; + + match client.get_session(&session_id, query).await { + Ok(response) => Json(response).into_response(), + Err(err) => replay_error_response(err), + } +} + +fn replay_error_response(err: ReplayError) -> axum::response::Response { + let status = match &err { + ReplayError::NotConfigured => StatusCode::SERVICE_UNAVAILABLE, + ReplayError::SessionNotFound(_) => StatusCode::NOT_FOUND, + ReplayError::UnexpectedResponse { .. } + | ReplayError::Transport(_) + | ReplayError::InvalidResponse(_) + | ReplayError::MissingRows + | ReplayError::InvalidRow(_) => StatusCode::BAD_GATEWAY, + #[cfg(not(target_arch = "wasm32"))] + ReplayError::ClientBuild(_) => StatusCode::INTERNAL_SERVER_ERROR, + #[cfg(target_arch = "wasm32")] + ReplayError::RequestBuild(_) | ReplayError::Serialize(_) => { + StatusCode::INTERNAL_SERVER_ERROR + } + }; + + if status.is_server_error() { + error!(error = %err, "replay request failed"); + } + + ( + status, + Json(ErrorResponse { + status: 0, + error: err.to_string(), + }), + ) + .into_response() +} + #[cfg_attr(target_arch = "wasm32", worker::send)] async fn debug_person( State(state): State, @@ -1659,6 +1892,8 @@ pub enum RunError { #[error(transparent)] Pipeline(#[from] PipelineError), #[error(transparent)] + Replay(#[from] ReplayError), + #[error(transparent)] Io(#[from] std::io::Error), #[error("server error: {0}")] Serve(String), diff --git a/src/replay.rs b/src/replay.rs new file mode 100644 index 0000000..83b44b8 --- /dev/null +++ b/src/replay.rs @@ -0,0 +1,2689 @@ +use std::collections::{HashMap, HashSet}; +use std::io::Read; +use std::time::Duration; + +use base64::{engine::general_purpose::STANDARD as BASE64_STANDARD, Engine}; +use chrono::{DateTime, Utc}; +use flate2::read::GzDecoder; +use http::StatusCode; +use serde::{Deserialize, Serialize}; +use serde_json::{json, Map, Value}; +use thiserror::Error; +use url::Url; + +#[cfg(not(target_arch = "wasm32"))] +use reqwest::Client; + +#[cfg(target_arch = "wasm32")] +use worker::{ + wasm_bindgen::JsValue, wasm_bindgen_futures::spawn_local, AbortController, Delay, Fetch, + Headers, Method, Request, RequestInit, +}; + +const DEFAULT_REPLAY_TABLE: &str = "default.hogflare_events"; +const DEFAULT_REPLAY_QUERY_LIMIT: usize = 5_000; +const REPLAY_SQL_TIMEOUT: Duration = Duration::from_secs(20); +const SNAPSHOT_EVENT: &str = "$snapshot"; +const SNAPSHOT_ITEMS_EVENT: &str = "$snapshot_items"; + +#[derive(Debug, Clone)] +pub struct ReplayConfig { + pub account_id: String, + pub bucket_name: String, + pub auth_token: String, + pub events_table: String, + pub query_limit: usize, + pub endpoint: Url, +} + +impl ReplayConfig { + pub fn new( + account_id: String, + bucket_name: String, + auth_token: String, + events_table: Option, + query_limit: Option, + endpoint: Option, + ) -> Result { + let events_table = events_table.unwrap_or_else(|| DEFAULT_REPLAY_TABLE.to_string()); + validate_sql_identifier(&events_table)?; + + let endpoint = match endpoint { + Some(endpoint) => endpoint, + None => Url::parse(&format!( + "https://api.sql.cloudflarestorage.com/api/v1/accounts/{}/r2-sql/query/{}", + account_id, bucket_name + )) + .map_err(|err| ReplayConfigError::InvalidEndpoint { + value: "".to_string(), + message: err.to_string(), + })?, + }; + + Ok(Self { + account_id, + bucket_name, + auth_token, + events_table, + query_limit: query_limit.unwrap_or(DEFAULT_REPLAY_QUERY_LIMIT), + endpoint, + }) + } +} + +#[derive(Debug, Error)] +pub enum ReplayConfigError { + #[error("invalid replay events table `{value}`")] + InvalidEventsTable { value: String }, + #[error("invalid replay endpoint `{value}`: {message}")] + InvalidEndpoint { value: String, message: String }, + #[error("invalid replay query limit `{value}`: {message}")] + InvalidQueryLimit { value: String, message: String }, +} + +#[derive(Debug, Clone)] +pub struct ReplayClient { + config: ReplayConfig, + #[cfg(not(target_arch = "wasm32"))] + client: Client, +} + +impl ReplayClient { + pub fn new(config: ReplayConfig) -> Result { + #[cfg(not(target_arch = "wasm32"))] + let client = Client::builder() + .timeout(REPLAY_SQL_TIMEOUT) + .build() + .map_err(ReplayError::ClientBuild)?; + + Ok(Self { + config, + #[cfg(not(target_arch = "wasm32"))] + client, + }) + } + + pub async fn list_sessions( + &self, + query: ReplaySessionsQuery, + ) -> Result { + let mut rows = self.query_snapshot_rows(&query).await?; + if let Some(session_id) = query.session_id.as_ref().filter(|value| !value.is_empty()) { + rows.retain(|row| session_id_for_row(row) == *session_id); + } + let mut response = build_sessions_response(rows, self.config.query_limit); + apply_session_summary_filters(&mut response.sessions, &query); + + if let Some(event_name) = query.event_name.as_ref().filter(|value| !value.is_empty()) { + let event_query = ReplayEventsQuery { + api_key: query.api_key.clone(), + distinct_id: query.distinct_id.clone(), + session_id: query.session_id.clone(), + event_name: Some(event_name.clone()), + url: query.url.clone(), + date_from: query.date_from.clone(), + date_to: query.date_to.clone(), + limit: Some(self.config.query_limit), + }; + let events = self.query_event_rows(&event_query).await?; + let matching_sessions = matching_session_keys_from_events(events); + response.sessions.retain(|session| { + matching_sessions.session_ids.contains(&session.session_id) + || matching_sessions + .distinct_ids + .contains(&session.distinct_id) + }); + } + + response.sessions.truncate(query.limit_or_default()); + Ok(response) + } + + pub async fn get_session( + &self, + session_id: &str, + query: ReplaySessionEventsQuery, + ) -> Result { + let rows = self + .query_snapshot_rows(&ReplaySessionsQuery { + api_key: query.api_key, + distinct_id: query.distinct_id, + session_id: Some(session_id.to_string()), + url: None, + event_name: None, + date_from: None, + date_to: None, + min_duration_secs: None, + max_duration_secs: None, + min_events: None, + max_events: None, + limit: query.limit, + }) + .await?; + + build_session_events_response(session_id, rows, query.at_ms) + } + + pub async fn search_events( + &self, + query: ReplayEventsQuery, + ) -> Result { + let rows = self.query_event_rows(&query).await?; + Ok(build_events_response(rows, query.limit_or_default())) + } + + pub async fn search_funnel( + &self, + query: ReplayFunnelQuery, + ) -> Result { + let rows = self.query_event_rows(&query.to_events_query()).await?; + Ok(build_funnel_response( + rows, + query.steps_vec(), + query.limit_or_default(), + )) + } + + pub async fn search_friction( + &self, + query: ReplayFrictionQuery, + ) -> Result { + let sessions_query = query.to_sessions_query(); + let mut rows = self.query_snapshot_rows(&sessions_query).await?; + retain_snapshot_rows_for_session(&mut rows, sessions_query.session_id.as_deref()); + + let mut session_response = build_sessions_response(rows.clone(), self.config.query_limit); + apply_session_summary_filters(&mut session_response.sessions, &sessions_query); + let allowed_sessions = session_response + .sessions + .into_iter() + .map(|session| session.session_id) + .collect::>(); + rows.retain(|row| allowed_sessions.contains(&session_id_for_row(row))); + + Ok(build_friction_response( + rows, + query.signal.as_deref(), + query.limit_or_default(), + )) + } + + pub async fn person_journey( + &self, + query: ReplayPersonQuery, + ) -> Result { + let sessions_query = query.to_sessions_query(); + let events_query = query.to_events_query(); + let mut snapshot_rows = self.query_snapshot_rows(&sessions_query).await?; + retain_snapshot_rows_for_session(&mut snapshot_rows, sessions_query.session_id.as_deref()); + + let mut sessions = build_sessions_response(snapshot_rows, self.config.query_limit).sessions; + apply_session_summary_filters(&mut sessions, &sessions_query); + sessions.truncate(query.limit_or_default()); + + let events = build_events_response( + self.query_event_rows(&events_query).await?, + query.limit_or_default(), + ) + .events; + + Ok(build_person_journey_response( + query.distinct_id.clone().filter(|value| !value.is_empty()), + sessions, + events, + query.limit_or_default(), + )) + } + + async fn query_snapshot_rows( + &self, + query: &ReplaySessionsQuery, + ) -> Result, ReplayError> { + let limit = query.limit_or_default().min(self.config.query_limit); + let sql = build_snapshot_rows_sql(&self.config.events_table, query, limit); + let response = self.query_sql(&sql).await?; + let rows = rows_from_r2_sql_response(response)?; + let mut rows = rows + .into_iter() + .map(ReplaySnapshotRow::try_from) + .collect::, _>>()?; + + rows.retain(|row| { + row.event + .as_deref() + .map(is_replay_snapshot_event) + .unwrap_or(true) + }); + if let Some(api_key) = query.api_key.as_ref().filter(|value| !value.is_empty()) { + rows.retain(|row| row.api_key.as_deref() == Some(api_key.as_str())); + } + if let Some(distinct_id) = query.distinct_id.as_ref().filter(|value| !value.is_empty()) { + rows.retain(|row| row.distinct_id == *distinct_id); + } + + Ok(rows) + } + + async fn query_event_rows( + &self, + query: &ReplayEventsQuery, + ) -> Result, ReplayError> { + let limit = query.limit_or_default().min(self.config.query_limit); + let sql = build_event_rows_sql(&self.config.events_table, query, limit); + let response = self.query_sql(&sql).await?; + let rows = rows_from_r2_sql_response(response)?; + let mut rows = rows + .into_iter() + .map(ReplayEventRow::try_from) + .collect::, _>>()?; + + rows.retain(|row| !is_replay_snapshot_event(&row.event)); + if let Some(event_name) = query.event_name.as_ref().filter(|value| !value.is_empty()) { + rows.retain(|row| row.event == *event_name); + } + if let Some(api_key) = query.api_key.as_ref().filter(|value| !value.is_empty()) { + rows.retain(|row| row.api_key.as_deref() == Some(api_key.as_str())); + } + if let Some(distinct_id) = query.distinct_id.as_ref().filter(|value| !value.is_empty()) { + rows.retain(|row| row.distinct_id == *distinct_id); + } + if let Some(session_id) = query.session_id.as_ref().filter(|value| !value.is_empty()) { + rows.retain(|row| { + session_id_from_value(&row.properties).as_deref() == Some(session_id) + }); + } + if let Some(url) = query.url.as_ref().filter(|value| !value.is_empty()) { + rows.retain(|row| { + event_url_from_properties(&row.properties) + .map(|candidate| contains_case_insensitive(&candidate, url)) + .unwrap_or(false) + }); + } + + Ok(rows) + } + + async fn query_sql(&self, sql: &str) -> Result { + #[cfg(not(target_arch = "wasm32"))] + { + let response = self + .client + .post(self.config.endpoint.clone()) + .bearer_auth(&self.config.auth_token) + .json(&json!({ "query": sql })) + .send() + .await + .map_err(ReplayError::Transport)?; + + let status = StatusCode::from_u16(response.status().as_u16()) + .unwrap_or(StatusCode::INTERNAL_SERVER_ERROR); + let body = response.text().await.unwrap_or_default(); + + if !status.is_success() { + return Err(ReplayError::UnexpectedResponse { status, body }); + } + + serde_json::from_str(&body).map_err(ReplayError::InvalidResponse) + } + + #[cfg(target_arch = "wasm32")] + { + let headers = Headers::new(); + headers + .set("content-type", "application/json") + .map_err(ReplayError::RequestBuild)?; + headers + .set( + "authorization", + &format!("Bearer {}", self.config.auth_token), + ) + .map_err(ReplayError::RequestBuild)?; + + let body = + serde_json::to_string(&json!({ "query": sql })).map_err(ReplayError::Serialize)?; + let mut init = RequestInit::new(); + init.with_method(Method::Post); + init.with_headers(headers); + init.with_body(Some(JsValue::from_str(&body))); + + let request = Request::new_with_init(self.config.endpoint.as_str(), &init) + .map_err(ReplayError::RequestBuild)?; + let controller = AbortController::default(); + let signal = controller.signal(); + spawn_local(async move { + Delay::from(REPLAY_SQL_TIMEOUT).await; + controller.abort(); + }); + + let mut response = Fetch::Request(request) + .send_with_signal(&signal) + .await + .map_err(ReplayError::Transport)?; + + let status = StatusCode::from_u16(response.status_code()) + .unwrap_or(StatusCode::INTERNAL_SERVER_ERROR); + let body = response.text().await.unwrap_or_default(); + + if !status.is_success() { + return Err(ReplayError::UnexpectedResponse { status, body }); + } + + serde_json::from_str(&body).map_err(ReplayError::InvalidResponse) + } + } +} + +#[derive(Debug, Error)] +pub enum ReplayError { + #[error("session replay is not configured")] + NotConfigured, + #[error("failed to create replay HTTP client: {0}")] + #[cfg(not(target_arch = "wasm32"))] + ClientBuild(#[source] reqwest::Error), + #[error("failed to query replay rows: {0}")] + #[cfg(not(target_arch = "wasm32"))] + Transport(#[source] reqwest::Error), + #[error("failed to query replay rows: {0}")] + #[cfg(target_arch = "wasm32")] + Transport(#[source] worker::Error), + #[error("failed to build replay request: {0}")] + #[cfg(target_arch = "wasm32")] + RequestBuild(#[source] worker::Error), + #[error("failed to serialize replay request: {0}")] + #[cfg(target_arch = "wasm32")] + Serialize(#[source] serde_json::Error), + #[error("replay query responded with {status}: {body}")] + UnexpectedResponse { status: StatusCode, body: String }, + #[error("invalid replay query response: {0}")] + InvalidResponse(#[source] serde_json::Error), + #[error("replay query response did not include rows")] + MissingRows, + #[error("invalid replay row: {0}")] + InvalidRow(String), + #[error("session `{0}` was not found")] + SessionNotFound(String), +} + +#[derive(Debug, Deserialize)] +pub struct ReplaySessionsQuery { + #[serde(default)] + pub api_key: Option, + #[serde(default)] + pub distinct_id: Option, + #[serde(default)] + pub session_id: Option, + #[serde(default)] + pub url: Option, + #[serde(default)] + pub event_name: Option, + #[serde(default)] + pub date_from: Option, + #[serde(default)] + pub date_to: Option, + #[serde(default)] + pub min_duration_secs: Option, + #[serde(default)] + pub max_duration_secs: Option, + #[serde(default)] + pub min_events: Option, + #[serde(default)] + pub max_events: Option, + #[serde(default)] + pub limit: Option, +} + +impl ReplaySessionsQuery { + fn limit_or_default(&self) -> usize { + self.limit + .unwrap_or(250) + .clamp(1, DEFAULT_REPLAY_QUERY_LIMIT) + } +} + +#[derive(Debug, Deserialize)] +pub struct ReplaySessionEventsQuery { + #[serde(default)] + pub api_key: Option, + #[serde(default)] + pub distinct_id: Option, + #[serde(default)] + pub at_ms: Option, + #[serde(default)] + pub limit: Option, +} + +#[derive(Debug, Deserialize)] +pub struct ReplayEventsQuery { + #[serde(default)] + pub api_key: Option, + #[serde(default)] + pub distinct_id: Option, + #[serde(default)] + pub session_id: Option, + #[serde(default)] + pub event_name: Option, + #[serde(default)] + pub url: Option, + #[serde(default)] + pub date_from: Option, + #[serde(default)] + pub date_to: Option, + #[serde(default)] + pub limit: Option, +} + +impl ReplayEventsQuery { + fn limit_or_default(&self) -> usize { + self.limit + .unwrap_or(100) + .clamp(1, DEFAULT_REPLAY_QUERY_LIMIT) + } +} + +#[derive(Debug, Deserialize)] +pub struct ReplayFunnelQuery { + #[serde(default)] + pub api_key: Option, + #[serde(default)] + pub distinct_id: Option, + #[serde(default)] + pub session_id: Option, + #[serde(default)] + pub url: Option, + #[serde(default)] + pub steps: Option, + #[serde(default)] + pub date_from: Option, + #[serde(default)] + pub date_to: Option, + #[serde(default)] + pub limit: Option, +} + +impl ReplayFunnelQuery { + fn limit_or_default(&self) -> usize { + self.limit + .unwrap_or(100) + .clamp(1, DEFAULT_REPLAY_QUERY_LIMIT) + } + + fn steps_vec(&self) -> Vec { + split_steps(self.steps.as_deref()) + } + + fn to_events_query(&self) -> ReplayEventsQuery { + ReplayEventsQuery { + api_key: self.api_key.clone(), + distinct_id: self.distinct_id.clone(), + session_id: self.session_id.clone(), + event_name: None, + url: self.url.clone(), + date_from: self.date_from.clone(), + date_to: self.date_to.clone(), + limit: Some(self.limit_or_default()), + } + } +} + +#[derive(Debug, Deserialize)] +pub struct ReplayFrictionQuery { + #[serde(default)] + pub api_key: Option, + #[serde(default)] + pub distinct_id: Option, + #[serde(default)] + pub session_id: Option, + #[serde(default)] + pub url: Option, + #[serde(default)] + pub signal: Option, + #[serde(default)] + pub date_from: Option, + #[serde(default)] + pub date_to: Option, + #[serde(default)] + pub min_duration_secs: Option, + #[serde(default)] + pub max_duration_secs: Option, + #[serde(default)] + pub min_events: Option, + #[serde(default)] + pub max_events: Option, + #[serde(default)] + pub limit: Option, +} + +impl ReplayFrictionQuery { + fn limit_or_default(&self) -> usize { + self.limit + .unwrap_or(100) + .clamp(1, DEFAULT_REPLAY_QUERY_LIMIT) + } + + fn to_sessions_query(&self) -> ReplaySessionsQuery { + ReplaySessionsQuery { + api_key: self.api_key.clone(), + distinct_id: self.distinct_id.clone(), + session_id: self.session_id.clone(), + url: self.url.clone(), + event_name: None, + date_from: self.date_from.clone(), + date_to: self.date_to.clone(), + min_duration_secs: self.min_duration_secs, + max_duration_secs: self.max_duration_secs, + min_events: self.min_events, + max_events: self.max_events, + limit: Some(self.limit_or_default()), + } + } +} + +#[derive(Debug, Deserialize)] +pub struct ReplayPersonQuery { + #[serde(default)] + pub api_key: Option, + #[serde(default)] + pub distinct_id: Option, + #[serde(default)] + pub session_id: Option, + #[serde(default)] + pub url: Option, + #[serde(default)] + pub event_name: Option, + #[serde(default)] + pub date_from: Option, + #[serde(default)] + pub date_to: Option, + #[serde(default)] + pub limit: Option, +} + +impl ReplayPersonQuery { + fn limit_or_default(&self) -> usize { + self.limit + .unwrap_or(100) + .clamp(1, DEFAULT_REPLAY_QUERY_LIMIT) + } + + fn to_sessions_query(&self) -> ReplaySessionsQuery { + ReplaySessionsQuery { + api_key: self.api_key.clone(), + distinct_id: self.distinct_id.clone(), + session_id: self.session_id.clone(), + url: self.url.clone(), + event_name: self.event_name.clone(), + date_from: self.date_from.clone(), + date_to: self.date_to.clone(), + min_duration_secs: None, + max_duration_secs: None, + min_events: None, + max_events: None, + limit: Some(self.limit_or_default()), + } + } + + fn to_events_query(&self) -> ReplayEventsQuery { + ReplayEventsQuery { + api_key: self.api_key.clone(), + distinct_id: self.distinct_id.clone(), + session_id: self.session_id.clone(), + event_name: self.event_name.clone(), + url: self.url.clone(), + date_from: self.date_from.clone(), + date_to: self.date_to.clone(), + limit: Some(self.limit_or_default()), + } + } +} + +#[derive(Debug, Serialize, Clone, PartialEq)] +pub struct ReplaySessionSummary { + pub session_id: String, + pub distinct_id: String, + #[serde(skip_serializing_if = "Option::is_none")] + pub api_key: Option, + pub first_seen: DateTime, + pub last_seen: DateTime, + pub duration_ms: i64, + pub chunk_count: usize, + pub event_count: usize, + #[serde(skip_serializing_if = "Option::is_none")] + pub first_url: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub last_url: Option, +} + +#[derive(Debug, Serialize)] +pub struct ReplaySessionsResponse { + pub sessions: Vec, +} + +#[derive(Debug, Serialize)] +pub struct ReplaySessionEventsResponse { + pub session: ReplaySessionSummary, + pub events: Vec, + pub activity: Vec, + pub chunks: Vec, + #[serde(skip_serializing_if = "Option::is_none")] + pub replay_start_ms: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub replay_end_ms: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub replay_anchor_ms: Option, +} + +#[derive(Debug, Serialize, Clone, PartialEq)] +pub struct ReplayChunkSummary { + pub uuid: String, + pub created_at: DateTime, + pub event_count: usize, + pub source_shape: String, +} + +#[derive(Debug, Serialize, Clone, PartialEq)] +pub struct ReplayActivityItem { + pub id: String, + pub timestamp: i64, + pub offset_ms: i64, + pub kind: String, + pub label: String, + #[serde(skip_serializing_if = "Option::is_none")] + pub detail: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub url: Option, + pub replay_anchor_ms: i64, +} + +#[derive(Debug, Serialize)] +pub struct ReplayEventsResponse { + pub events: Vec, +} + +#[derive(Debug, Serialize)] +pub struct ReplayFunnelResponse { + pub steps: Vec, + pub sessions: Vec, +} + +#[derive(Debug, Serialize, Clone, PartialEq)] +pub struct ReplayFunnelSession { + pub distinct_id: String, + #[serde(skip_serializing_if = "Option::is_none")] + pub api_key: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub session_id: Option, + pub status: String, + pub completed_steps: usize, + pub step_count: usize, + #[serde(skip_serializing_if = "Option::is_none")] + pub current_step: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub drop_off_step: Option, + pub first_seen: DateTime, + pub last_seen: DateTime, + #[serde(skip_serializing_if = "Option::is_none")] + pub url: Option, + pub replay_anchor_ms: i64, + pub steps: Vec, +} + +#[derive(Debug, Serialize, Clone, PartialEq)] +pub struct ReplayFunnelStepEvent { + pub step_index: usize, + pub event: String, + pub created_at: DateTime, + #[serde(skip_serializing_if = "Option::is_none")] + pub session_id: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub url: Option, +} + +#[derive(Debug, Serialize)] +pub struct ReplayFrictionResponse { + pub sessions: Vec, +} + +#[derive(Debug, Serialize, Clone, PartialEq)] +pub struct ReplayFrictionSession { + pub session: ReplaySessionSummary, + pub score: usize, + pub signals: Vec, +} + +#[derive(Debug, Serialize, Clone, PartialEq)] +pub struct ReplayFrictionSignal { + pub kind: String, + pub label: String, + pub detail: String, + pub severity: String, + pub count: usize, + pub timestamp: i64, + pub replay_anchor_ms: i64, + #[serde(skip_serializing_if = "Option::is_none")] + pub url: Option, +} + +#[derive(Debug, Serialize)] +pub struct ReplayPersonJourneyResponse { + #[serde(skip_serializing_if = "Option::is_none")] + pub distinct_id: Option, + pub sessions: Vec, + pub events: Vec, + pub timeline: Vec, +} + +#[derive(Debug, Serialize, Clone, PartialEq)] +pub struct ReplayPersonTimelineItem { + pub kind: String, + pub title: String, + pub timestamp: DateTime, + #[serde(skip_serializing_if = "Option::is_none")] + pub session_id: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub url: Option, + pub replay_anchor_ms: i64, + pub detail: String, +} + +#[derive(Debug, Serialize, Clone, PartialEq)] +pub struct ReplayAnalyticsEvent { + pub uuid: String, + pub event: String, + pub distinct_id: String, + #[serde(skip_serializing_if = "Option::is_none")] + pub api_key: Option, + pub created_at: DateTime, + #[serde(skip_serializing_if = "Option::is_none")] + pub session_id: Option, + #[serde(skip_serializing_if = "Option::is_none")] + pub url: Option, + pub replay_anchor_ms: i64, + pub properties: Vec, +} + +#[derive(Debug, Serialize, Clone, PartialEq)] +pub struct ReplayEventProperty { + pub key: String, + pub value: String, +} + +#[derive(Debug, Clone, PartialEq)] +pub struct ReplaySnapshotRow { + pub uuid: String, + pub event: Option, + pub distinct_id: String, + pub created_at: DateTime, + pub api_key: Option, + pub properties: Value, +} + +impl TryFrom for ReplaySnapshotRow { + type Error = ReplayError; + + fn try_from(value: Value) -> Result { + let object = value + .as_object() + .ok_or_else(|| ReplayError::InvalidRow("expected row object".to_string()))?; + + let uuid = string_field(object, "uuid") + .ok_or_else(|| ReplayError::InvalidRow("missing uuid".to_string()))?; + let event = string_field(object, "event"); + let distinct_id = string_field(object, "distinct_id") + .ok_or_else(|| ReplayError::InvalidRow("missing distinct_id".to_string()))?; + let created_at_raw = string_field(object, "created_at") + .ok_or_else(|| ReplayError::InvalidRow("missing created_at".to_string()))?; + let created_at = parse_datetime(&created_at_raw)?; + let api_key = string_field(object, "api_key"); + let properties = object + .get("properties") + .map(parse_jsonish_value) + .transpose()? + .unwrap_or(Value::Null); + + Ok(Self { + uuid, + event, + distinct_id, + created_at, + api_key, + properties, + }) + } +} + +#[derive(Debug, Clone, PartialEq)] +pub struct ReplayEventRow { + pub uuid: String, + pub event: String, + pub distinct_id: String, + pub created_at: DateTime, + pub api_key: Option, + pub properties: Value, +} + +impl TryFrom for ReplayEventRow { + type Error = ReplayError; + + fn try_from(value: Value) -> Result { + let object = value + .as_object() + .ok_or_else(|| ReplayError::InvalidRow("expected row object".to_string()))?; + + let uuid = string_field(object, "uuid") + .ok_or_else(|| ReplayError::InvalidRow("missing uuid".to_string()))?; + let event = string_field(object, "event") + .ok_or_else(|| ReplayError::InvalidRow("missing event".to_string()))?; + let distinct_id = string_field(object, "distinct_id") + .ok_or_else(|| ReplayError::InvalidRow("missing distinct_id".to_string()))?; + let created_at_raw = string_field(object, "created_at") + .ok_or_else(|| ReplayError::InvalidRow("missing created_at".to_string()))?; + let created_at = parse_datetime(&created_at_raw)?; + let api_key = string_field(object, "api_key"); + let properties = object + .get("properties") + .map(parse_jsonish_value) + .transpose()? + .unwrap_or(Value::Null); + + Ok(Self { + uuid, + event, + distinct_id, + created_at, + api_key, + properties, + }) + } +} + +#[derive(Debug)] +struct ExtractedReplayEvents { + events: Vec, + source_shape: String, +} + +pub fn build_snapshot_rows_sql(table: &str, query: &ReplaySessionsQuery, limit: usize) -> String { + let mut clauses = vec![format!( + "event in ({}, {})", + sql_string_literal(SNAPSHOT_EVENT), + sql_string_literal(SNAPSHOT_ITEMS_EVENT) + )]; + if let Some(api_key) = query.api_key.as_ref().filter(|value| !value.is_empty()) { + clauses.push(format!("api_key = {}", sql_string_literal(api_key))); + } + if let Some(distinct_id) = query.distinct_id.as_ref().filter(|value| !value.is_empty()) { + clauses.push(format!("distinct_id = {}", sql_string_literal(distinct_id))); + } + push_date_clauses( + &mut clauses, + query.date_from.as_deref(), + query.date_to.as_deref(), + ); + + format!( + "select uuid, event, distinct_id, created_at, properties, api_key from {table} where {} order by created_at desc limit {limit}", + clauses.join(" and ") + ) +} + +pub fn build_event_rows_sql(table: &str, query: &ReplayEventsQuery, limit: usize) -> String { + let mut clauses = vec![format!( + "event not in ({}, {})", + sql_string_literal(SNAPSHOT_EVENT), + sql_string_literal(SNAPSHOT_ITEMS_EVENT) + )]; + if let Some(api_key) = query.api_key.as_ref().filter(|value| !value.is_empty()) { + clauses.push(format!("api_key = {}", sql_string_literal(api_key))); + } + if let Some(distinct_id) = query.distinct_id.as_ref().filter(|value| !value.is_empty()) { + clauses.push(format!("distinct_id = {}", sql_string_literal(distinct_id))); + } + if let Some(event_name) = query.event_name.as_ref().filter(|value| !value.is_empty()) { + clauses.push(format!("event = {}", sql_string_literal(event_name))); + } + push_date_clauses( + &mut clauses, + query.date_from.as_deref(), + query.date_to.as_deref(), + ); + + format!( + "select uuid, event, distinct_id, created_at, properties, api_key from {table} where {} order by created_at desc limit {limit}", + clauses.join(" and ") + ) +} + +pub fn build_sessions_response( + rows: Vec, + limit: usize, +) -> ReplaySessionsResponse { + let mut sessions: HashMap = HashMap::new(); + + for row in rows { + let session_id = session_id_for_row(&row); + let extracted = extract_rrweb_events(&row.properties); + let stats = extracted + .as_ref() + .map(|value| replay_event_stats(&value.events)) + .unwrap_or_default(); + + let entry = sessions + .entry(session_id.clone()) + .or_insert_with(|| SessionAccumulator::new(session_id, row.clone())); + entry.add(row, stats); + } + + let mut summaries: Vec = sessions + .into_values() + .map(SessionAccumulator::finish) + .collect(); + summaries.sort_by(|a, b| b.last_seen.cmp(&a.last_seen)); + summaries.truncate(limit); + + ReplaySessionsResponse { + sessions: summaries, + } +} + +pub fn build_session_events_response( + session_id: &str, + rows: Vec, + replay_anchor_ms: Option, +) -> Result { + let mut events = Vec::new(); + let mut chunks = Vec::new(); + let mut matched_rows = Vec::new(); + + for row in rows { + if session_id_for_row(&row) != session_id { + continue; + } + let extracted = extract_rrweb_events(&row.properties).unwrap_or(ExtractedReplayEvents { + events: Vec::new(), + source_shape: "unrecognized".to_string(), + }); + chunks.push(ReplayChunkSummary { + uuid: row.uuid.clone(), + created_at: row.created_at, + event_count: extracted.events.len(), + source_shape: extracted.source_shape, + }); + events.extend(extracted.events); + matched_rows.push(row); + } + + if matched_rows.is_empty() { + return Err(ReplayError::SessionNotFound(session_id.to_string())); + } + + events.sort_by_key(rrweb_timestamp); + chunks.sort_by_key(|chunk| chunk.created_at); + let activity = build_activity(&events); + let replay_start_ms = events.iter().filter_map(rrweb_timestamp_opt).min(); + let replay_end_ms = events.iter().filter_map(rrweb_timestamp_opt).max(); + let replay_anchor_ms = replay_anchor_ms.or(Some(0)); + + let session = build_sessions_response(matched_rows, 1) + .sessions + .into_iter() + .next() + .ok_or_else(|| ReplayError::SessionNotFound(session_id.to_string()))?; + + Ok(ReplaySessionEventsResponse { + session, + events, + activity, + chunks, + replay_start_ms, + replay_end_ms, + replay_anchor_ms, + }) +} + +pub fn build_events_response(rows: Vec, limit: usize) -> ReplayEventsResponse { + let mut events = rows + .into_iter() + .map(ReplayAnalyticsEvent::from) + .collect::>(); + events.sort_by(|a, b| b.created_at.cmp(&a.created_at)); + events.truncate(limit); + ReplayEventsResponse { events } +} + +pub fn build_funnel_response( + rows: Vec, + steps: Vec, + limit: usize, +) -> ReplayFunnelResponse { + if steps.is_empty() { + return ReplayFunnelResponse { + steps, + sessions: Vec::new(), + }; + } + + let mut grouped: HashMap> = HashMap::new(); + for row in rows { + let event = ReplayAnalyticsEvent::from(row); + let key = event + .session_id + .clone() + .unwrap_or_else(|| format!("person:{}", event.distinct_id)); + grouped.entry(key).or_default().push(event); + } + + let mut sessions = grouped + .into_values() + .filter_map(|mut events| { + events.sort_by(|a, b| a.created_at.cmp(&b.created_at)); + funnel_session_from_events(&events, &steps) + }) + .collect::>(); + sessions.sort_by(|a, b| b.last_seen.cmp(&a.last_seen)); + sessions.truncate(limit); + + ReplayFunnelResponse { steps, sessions } +} + +pub fn build_friction_response( + rows: Vec, + signal_filter: Option<&str>, + limit: usize, +) -> ReplayFrictionResponse { + let mut grouped: HashMap> = HashMap::new(); + for row in rows { + grouped + .entry(session_id_for_row(&row)) + .or_default() + .push(row); + } + + let normalized_signal_filter = signal_filter + .filter(|value| !value.is_empty()) + .map(|value| value.to_ascii_lowercase()); + let mut sessions = Vec::new(); + for (session_id, rows) in grouped { + let Ok(response) = build_session_events_response(&session_id, rows, None) else { + continue; + }; + let mut signals = detect_friction_signals(&response.events); + if let Some(filter) = normalized_signal_filter.as_deref() { + signals.retain(|signal| signal.kind == filter); + } + if signals.is_empty() { + continue; + } + let score = signals.iter().map(friction_signal_weight).sum(); + sessions.push(ReplayFrictionSession { + session: response.session, + score, + signals, + }); + } + + sessions.sort_by(|a, b| { + b.score + .cmp(&a.score) + .then_with(|| b.session.last_seen.cmp(&a.session.last_seen)) + }); + sessions.truncate(limit); + ReplayFrictionResponse { sessions } +} + +pub fn build_person_journey_response( + distinct_id: Option, + sessions: Vec, + events: Vec, + limit: usize, +) -> ReplayPersonJourneyResponse { + let mut timeline = Vec::new(); + + for session in &sessions { + timeline.push(ReplayPersonTimelineItem { + kind: "session".to_string(), + title: "Replay session".to_string(), + timestamp: session.first_seen, + session_id: Some(session.session_id.clone()), + url: session + .first_url + .clone() + .or_else(|| session.last_url.clone()), + replay_anchor_ms: 0, + detail: format!( + "{} rrweb events, {} chunks, {}ms", + session.event_count, session.chunk_count, session.duration_ms + ), + }); + } + + for event in &events { + timeline.push(ReplayPersonTimelineItem { + kind: "event".to_string(), + title: event.event.clone(), + timestamp: event.created_at, + session_id: event.session_id.clone(), + url: event.url.clone(), + replay_anchor_ms: event.replay_anchor_ms, + detail: event_property_line(event), + }); + } + + timeline.sort_by(|a, b| b.timestamp.cmp(&a.timestamp)); + timeline.truncate(limit); + + ReplayPersonJourneyResponse { + distinct_id, + sessions, + events, + timeline, + } +} + +pub fn rows_from_r2_sql_response(value: Value) -> Result, ReplayError> { + if let Value::Array(rows) = value { + return Ok(rows); + } + + let candidates = [ + "/rows", + "/data", + "/result/rows", + "/result/data", + "/result/results", + "/result/0/results", + "/result/0/rows", + "/result/0/data", + ]; + + for pointer in candidates { + if let Some(Value::Array(rows)) = value.pointer(pointer) { + return Ok(rows.clone()); + } + } + + Err(ReplayError::MissingRows) +} + +pub fn replay_ui_html() -> &'static str { + include_str!("replay_ui.html") +} + +impl From for ReplayAnalyticsEvent { + fn from(row: ReplayEventRow) -> Self { + let session_id = session_id_from_value(&row.properties); + let url = event_url_from_properties(&row.properties); + let properties = summarize_event_properties(&row.properties); + + Self { + uuid: row.uuid, + event: row.event, + distinct_id: row.distinct_id, + api_key: row.api_key, + created_at: row.created_at, + session_id, + url, + replay_anchor_ms: row.created_at.timestamp_millis(), + properties, + } + } +} + +fn funnel_session_from_events( + events: &[ReplayAnalyticsEvent], + steps: &[String], +) -> Option { + let first = events.first()?; + let last = events.last()?; + let mut next_step = 0; + let mut repeated_current_step = 0; + let mut matched_steps = Vec::new(); + + for event in events { + if next_step < steps.len() && event.event == steps[next_step] { + matched_steps.push(ReplayFunnelStepEvent { + step_index: next_step + 1, + event: event.event.clone(), + created_at: event.created_at, + session_id: event.session_id.clone(), + url: event.url.clone(), + }); + next_step += 1; + continue; + } + + if next_step > 0 && next_step < steps.len() && event.event == steps[next_step - 1] { + repeated_current_step += 1; + } + } + + if next_step == 0 { + return None; + } + + let anchor = matched_steps + .last() + .map(|event| event.created_at.timestamp_millis()) + .unwrap_or_else(|| first.created_at.timestamp_millis()); + let status = if next_step == steps.len() { + "converted" + } else if repeated_current_step > 0 { + "stuck" + } else { + "dropped" + }; + + Some(ReplayFunnelSession { + distinct_id: first.distinct_id.clone(), + api_key: first.api_key.clone(), + session_id: first.session_id.clone(), + status: status.to_string(), + completed_steps: next_step, + step_count: steps.len(), + current_step: matched_steps.last().map(|event| event.event.clone()), + drop_off_step: steps.get(next_step).cloned(), + first_seen: first.created_at, + last_seen: last.created_at, + url: matched_steps + .last() + .and_then(|event| event.url.clone()) + .or_else(|| events.iter().find_map(|event| event.url.clone())), + replay_anchor_ms: anchor, + steps: matched_steps, + }) +} + +fn detect_friction_signals(events: &[Value]) -> Vec { + let start = events + .iter() + .filter_map(rrweb_timestamp_opt) + .min() + .unwrap_or(0); + let clicks = replay_clicks(events, start); + let mut signals = Vec::new(); + + if let Some(signal) = detect_rage_click(&clicks, start) { + signals.push(signal); + } + if let Some(signal) = detect_dead_clicks(events, &clicks, start) { + signals.push(signal); + } + if let Some(signal) = detect_repeated_navigation(events, start) { + signals.push(signal); + } + if let Some(signal) = detect_long_idle(events, start) { + signals.push(signal); + } + if let Some(signal) = detect_form_thrash(events, start) { + signals.push(signal); + } + if let Some(signal) = detect_missed_cta(events, &clicks, start) { + signals.push(signal); + } + + signals.sort_by_key(|signal| signal.timestamp); + signals +} + +#[derive(Debug, Clone)] +struct ReplayClick { + timestamp: i64, + x: Option, + y: Option, + url: Option, +} + +#[derive(Debug, Clone)] +struct ReplayScroll { + timestamp: i64, + y: i64, + url: Option, +} + +fn replay_clicks(events: &[Value], start: i64) -> Vec { + events + .iter() + .filter(|event| rrweb_source(event) == Some(2)) + .filter(|event| { + matches!( + event.pointer("/data/type").and_then(Value::as_i64), + Some(2 | 4) + ) + }) + .filter_map(|event| { + let timestamp = rrweb_timestamp_opt(event)?; + Some(ReplayClick { + timestamp, + x: event.pointer("/data/x").and_then(Value::as_i64), + y: event.pointer("/data/y").and_then(Value::as_i64), + url: url_from_rrweb_event(event).or_else(|| current_url_at(events, timestamp)), + }) + }) + .filter(|click| click.timestamp >= start) + .collect() +} + +fn detect_rage_click(clicks: &[ReplayClick], start: i64) -> Option { + for (index, first) in clicks.iter().enumerate() { + let cluster = clicks + .iter() + .skip(index) + .take_while(|click| click.timestamp.saturating_sub(first.timestamp) <= 2_000) + .filter(|click| clicks_are_near(first, click, 25)) + .count(); + if cluster >= 3 { + return Some(friction_signal( + "rage_click", + "Rage clicks", + format!("{cluster} clicks inside 2s near the same point"), + "high", + cluster, + first.timestamp, + start, + first.url.clone(), + )); + } + } + None +} + +fn detect_dead_clicks( + events: &[Value], + clicks: &[ReplayClick], + start: i64, +) -> Option { + let dead = clicks + .iter() + .filter(|click| { + !events.iter().any(|event| { + let timestamp = rrweb_timestamp(event); + timestamp > click.timestamp + && timestamp.saturating_sub(click.timestamp) <= 1_500 + && is_click_follow_up(event) + }) + }) + .collect::>(); + let first = dead.first()?; + + Some(friction_signal( + "dead_click", + "Dead clicks", + format!( + "{} {} had no DOM, navigation, or input follow-up", + dead.len(), + if dead.len() == 1 { "click" } else { "clicks" } + ), + if dead.len() >= 3 { "high" } else { "medium" }, + dead.len(), + first.timestamp, + start, + first.url.clone(), + )) +} + +fn detect_repeated_navigation(events: &[Value], start: i64) -> Option { + let navigations = events + .iter() + .filter(|event| event.get("type").and_then(Value::as_i64) == Some(4)) + .filter_map(|event| { + let timestamp = rrweb_timestamp_opt(event)?; + let url = url_from_rrweb_event(event)?; + Some((timestamp, url)) + }) + .collect::>(); + + let mut counts: HashMap = HashMap::new(); + for (_, url) in &navigations { + *counts.entry(url.clone()).or_default() += 1; + } + if let Some((url, count)) = counts.into_iter().find(|(_, count)| *count >= 3) { + let timestamp = navigations + .iter() + .find(|(_, candidate)| candidate == &url) + .map(|(timestamp, _)| *timestamp) + .unwrap_or(start); + return Some(friction_signal( + "repeated_navigation", + "Repeated navigation", + format!("{count} visits to the same URL"), + "medium", + count, + timestamp, + start, + Some(url), + )); + } + + for window in navigations.windows(3) { + if window[0].1 == window[2].1 && window[0].1 != window[1].1 { + return Some(friction_signal( + "repeated_navigation", + "Back and forth navigation", + "Returned to the same URL after one intervening page".to_string(), + "medium", + 3, + window[0].0, + start, + Some(window[0].1.clone()), + )); + } + } + + None +} + +fn detect_long_idle(events: &[Value], start: i64) -> Option { + let mut timestamps = events + .iter() + .filter_map(rrweb_timestamp_opt) + .collect::>(); + timestamps.sort_unstable(); + let (before, gap) = timestamps + .windows(2) + .map(|window| (window[0], window[1].saturating_sub(window[0]))) + .max_by_key(|(_, gap)| *gap)?; + + if gap < 30_000 { + return None; + } + + Some(friction_signal( + "long_idle", + "Long idle", + format!("{}s gap before the next recorded action", gap / 1_000), + "medium", + 1, + before, + start, + current_url_at(events, before), + )) +} + +fn detect_form_thrash(events: &[Value], start: i64) -> Option { + let inputs = events + .iter() + .filter(|event| rrweb_source(event) == Some(5)) + .filter_map(rrweb_timestamp_opt) + .collect::>(); + + for (index, first) in inputs.iter().enumerate() { + let count = inputs + .iter() + .skip(index) + .take_while(|timestamp| timestamp.saturating_sub(*first) <= 10_000) + .count(); + if count >= 3 { + return Some(friction_signal( + "form_thrash", + "Form thrash", + format!("{count} input changes inside 10s"), + "high", + count, + *first, + start, + current_url_at(events, *first), + )); + } + } + + None +} + +fn detect_missed_cta( + events: &[Value], + clicks: &[ReplayClick], + start: i64, +) -> Option { + let deepest = events + .iter() + .filter(|event| rrweb_source(event) == Some(3)) + .filter_map(|event| { + let timestamp = rrweb_timestamp_opt(event)?; + let y = event.pointer("/data/y").and_then(Value::as_i64)?; + Some(ReplayScroll { + timestamp, + y, + url: current_url_at(events, timestamp), + }) + }) + .max_by_key(|scroll| scroll.y)?; + + if deepest.y < 1_200 + || clicks + .iter() + .any(|click| click.timestamp > deepest.timestamp) + { + return None; + } + + Some(friction_signal( + "missed_cta", + "Deep scroll without follow-up", + format!("Scrolled to y={} with no later click", deepest.y), + "low", + 1, + deepest.timestamp, + start, + deepest.url, + )) +} + +fn friction_signal( + kind: &str, + label: &str, + detail: String, + severity: &str, + count: usize, + timestamp: i64, + start: i64, + url: Option, +) -> ReplayFrictionSignal { + ReplayFrictionSignal { + kind: kind.to_string(), + label: label.to_string(), + detail, + severity: severity.to_string(), + count, + timestamp, + replay_anchor_ms: timestamp.saturating_sub(start), + url, + } +} + +fn friction_signal_weight(signal: &ReplayFrictionSignal) -> usize { + match signal.kind.as_str() { + "rage_click" => 5, + "form_thrash" => 4, + "repeated_navigation" => 3, + "dead_click" | "long_idle" => 2, + "missed_cta" => 1, + _ => 1, + } +} + +fn clicks_are_near(left: &ReplayClick, right: &ReplayClick, radius: i64) -> bool { + match (left.x, left.y, right.x, right.y) { + (Some(left_x), Some(left_y), Some(right_x), Some(right_y)) => { + left_x.saturating_sub(right_x).abs() <= radius + && left_y.saturating_sub(right_y).abs() <= radius + } + _ => true, + } +} + +fn is_click_follow_up(event: &Value) -> bool { + match event.get("type").and_then(Value::as_i64) { + Some(2 | 4) => true, + Some(3) => matches!(rrweb_source(event), Some(0 | 5)), + _ => false, + } +} + +fn rrweb_source(event: &Value) -> Option { + if event.get("type").and_then(Value::as_i64) != Some(3) { + return None; + } + event.pointer("/data/source").and_then(Value::as_i64) +} + +fn current_url_at(events: &[Value], timestamp: i64) -> Option { + events + .iter() + .filter(|event| rrweb_timestamp(event) <= timestamp) + .filter_map(url_from_rrweb_event) + .last() +} + +fn event_property_line(event: &ReplayAnalyticsEvent) -> String { + if event.properties.is_empty() { + return event + .url + .clone() + .or_else(|| event.session_id.clone()) + .unwrap_or_else(|| event.distinct_id.clone()); + } + + event + .properties + .iter() + .take(3) + .map(|property| format!("{}={}", property.key, property.value)) + .collect::>() + .join(", ") +} + +fn split_steps(value: Option<&str>) -> Vec { + value + .unwrap_or_default() + .split(|character| matches!(character, ',' | '\n' | '>')) + .map(str::trim) + .filter(|step| !step.is_empty()) + .map(ToString::to_string) + .collect() +} + +fn retain_snapshot_rows_for_session(rows: &mut Vec, session_id: Option<&str>) { + if let Some(session_id) = session_id.filter(|value| !value.is_empty()) { + rows.retain(|row| session_id_for_row(row) == session_id); + } +} + +fn apply_session_summary_filters( + sessions: &mut Vec, + query: &ReplaySessionsQuery, +) { + if let Some(url) = query.url.as_ref().filter(|value| !value.is_empty()) { + sessions.retain(|session| { + session + .first_url + .as_ref() + .or(session.last_url.as_ref()) + .map(|candidate| contains_case_insensitive(candidate, url)) + .unwrap_or(false) + }); + } + + if let Some(min_duration_secs) = query.min_duration_secs { + sessions.retain(|session| session.duration_ms >= min_duration_secs.saturating_mul(1_000)); + } + if let Some(max_duration_secs) = query.max_duration_secs { + sessions.retain(|session| session.duration_ms <= max_duration_secs.saturating_mul(1_000)); + } + if let Some(min_events) = query.min_events { + sessions.retain(|session| session.event_count >= min_events); + } + if let Some(max_events) = query.max_events { + sessions.retain(|session| session.event_count <= max_events); + } +} + +#[derive(Debug, Default)] +struct MatchingSessionKeys { + session_ids: HashSet, + distinct_ids: HashSet, +} + +fn matching_session_keys_from_events(rows: Vec) -> MatchingSessionKeys { + let mut keys = MatchingSessionKeys::default(); + for row in rows { + if let Some(session_id) = session_id_from_value(&row.properties) { + keys.session_ids.insert(session_id); + } + keys.distinct_ids.insert(row.distinct_id); + } + keys +} + +fn extract_rrweb_events(value: &Value) -> Option { + let parsed = parse_jsonish_value(value).ok()?; + let mut candidates = Vec::new(); + collect_event_candidates(&parsed, &mut candidates); + + if let Some(events) = candidates.into_iter().find(|events| !events.is_empty()) { + return Some(ExtractedReplayEvents { + events, + source_shape: "json-events".to_string(), + }); + } + + let chunk = parsed + .pointer("/data/chunk") + .or_else(|| parsed.pointer("/chunk")) + .and_then(Value::as_str)?; + let compression = parsed + .pointer("/data/compression") + .or_else(|| parsed.pointer("/compression")) + .and_then(Value::as_str); + let decoded = decode_chunk_payload(chunk, compression)?; + let mut chunk_candidates = Vec::new(); + collect_event_candidates(&decoded, &mut chunk_candidates); + + chunk_candidates + .into_iter() + .find(|events| !events.is_empty()) + .map(|events| ExtractedReplayEvents { + events, + source_shape: "base64-chunk".to_string(), + }) +} + +fn collect_event_candidates(value: &Value, candidates: &mut Vec>) { + if is_rrweb_event(value) { + candidates.push(vec![value.clone()]); + } + + if let Value::Array(items) = value { + if items.iter().all(is_rrweb_event) { + candidates.push(items.clone()); + } + } + + for pointer in [ + "/$snapshot_items", + "/$snapshot_data", + "/events", + "/snapshots", + "/batch", + "/data", + "/data/$snapshot_items", + "/data/$snapshot_data", + "/data/events", + "/data/snapshots", + "/data/batch", + "/payload/events", + ] { + if let Some(candidate) = value.pointer(pointer) { + if let Value::Array(items) = candidate { + if items.iter().all(is_rrweb_event) { + candidates.push(items.clone()); + } + } else if is_rrweb_event(candidate) { + candidates.push(vec![candidate.clone()]); + } + } + } +} + +fn is_replay_snapshot_event(event: &str) -> bool { + matches!(event, SNAPSHOT_EVENT | SNAPSHOT_ITEMS_EVENT) +} + +fn decode_chunk_payload(chunk: &str, compression: Option<&str>) -> Option { + let bytes = BASE64_STANDARD + .decode(chunk) + .ok() + .or_else(|| Some(chunk.as_bytes().to_vec()))?; + let text = if compression + .map(|value| value.to_ascii_lowercase().contains("gzip")) + .unwrap_or(false) + || bytes.starts_with(&[0x1f, 0x8b]) + { + let mut decoder = GzDecoder::new(bytes.as_slice()); + let mut decoded = String::new(); + decoder.read_to_string(&mut decoded).ok()?; + decoded + } else { + String::from_utf8(bytes).ok()? + }; + + serde_json::from_str(&text).ok() +} + +fn is_rrweb_event(value: &Value) -> bool { + value + .as_object() + .map(|object| { + object.get("type").and_then(Value::as_i64).is_some() + && object.get("timestamp").and_then(Value::as_i64).is_some() + }) + .unwrap_or(false) +} + +fn session_id_for_row(row: &ReplaySnapshotRow) -> String { + session_id_from_value(&row.properties).unwrap_or_else(|| row.distinct_id.clone()) +} + +fn session_id_from_value(value: &Value) -> Option { + let parsed = parse_jsonish_value(value).ok()?; + for pointer in [ + "/session_id", + "/sessionId", + "/$session_id", + "/recording_id", + "/session_recording_id", + "/data/session_id", + "/data/sessionId", + "/data/$session_id", + "/data/metadata/session_id", + "/data/metadata/sessionId", + "/data/metadata/$session_id", + ] { + if let Some(session_id) = parsed.pointer(pointer).and_then(Value::as_str) { + if !session_id.is_empty() { + return Some(session_id.to_string()); + } + } + } + None +} + +fn first_url_from_events(events: &[Value]) -> Option { + for event in events { + if let Some(value) = url_from_rrweb_event(event) { + return Some(value); + } + } + None +} + +fn last_url_from_events(events: &[Value]) -> Option { + events.iter().rev().find_map(url_from_rrweb_event) +} + +fn url_from_rrweb_event(event: &Value) -> Option { + for pointer in [ + "/data/href", + "/data/source", + "/data/attributes/href", + "/data/node/root/childNodes/0/attributes/href", + ] { + if let Some(value) = event.pointer(pointer).and_then(Value::as_str) { + if value.starts_with("http://") || value.starts_with("https://") { + return Some(value.to_string()); + } + } + } + None +} + +#[derive(Debug, Default)] +struct ReplayEventStats { + event_count: usize, + first_url: Option, + last_url: Option, + start_ms: Option, + end_ms: Option, +} + +fn replay_event_stats(events: &[Value]) -> ReplayEventStats { + ReplayEventStats { + event_count: events.len(), + first_url: first_url_from_events(events), + last_url: last_url_from_events(events), + start_ms: events.iter().filter_map(rrweb_timestamp_opt).min(), + end_ms: events.iter().filter_map(rrweb_timestamp_opt).max(), + } +} + +fn rrweb_timestamp(value: &Value) -> i64 { + value.get("timestamp").and_then(Value::as_i64).unwrap_or(0) +} + +fn rrweb_timestamp_opt(value: &Value) -> Option { + value.get("timestamp").and_then(Value::as_i64) +} + +fn build_activity(events: &[Value]) -> Vec { + let start = events + .iter() + .filter_map(rrweb_timestamp_opt) + .min() + .unwrap_or(0); + events + .iter() + .enumerate() + .filter_map(|(index, event)| activity_for_event(index, event, start)) + .collect() +} + +fn activity_for_event(index: usize, event: &Value, start: i64) -> Option { + let event_type = event.get("type").and_then(Value::as_i64)?; + let timestamp = rrweb_timestamp_opt(event)?; + let url = url_from_rrweb_event(event); + let (kind, label, detail) = match event_type { + 2 => ("snapshot", "DOM snapshot".to_string(), None), + 4 => ( + "navigation", + "Page context".to_string(), + url.clone().or_else(|| string_pointer(event, "/data/href")), + ), + 5 => ( + "custom", + string_pointer(event, "/data/tag").unwrap_or_else(|| "Custom marker".to_string()), + string_pointer(event, "/data/payload"), + ), + 3 => incremental_activity(event)?, + _ => return None, + }; + + Some(ReplayActivityItem { + id: format!("rrweb-{index}"), + timestamp, + offset_ms: timestamp.saturating_sub(start), + kind: kind.to_string(), + label, + detail, + url, + replay_anchor_ms: timestamp.saturating_sub(start), + }) +} + +fn incremental_activity(event: &Value) -> Option<(&'static str, String, Option)> { + let source = event.pointer("/data/source").and_then(Value::as_i64)?; + match source { + 0 => Some(("dom", "DOM changed".to_string(), None)), + 2 => Some(mouse_activity(event)), + 3 => Some(( + "scroll", + "Scrolled".to_string(), + xy_detail(event.pointer("/data/x"), event.pointer("/data/y")), + )), + 4 => Some(( + "viewport", + "Viewport resized".to_string(), + size_detail(event.pointer("/data/width"), event.pointer("/data/height")), + )), + 5 => Some(("input", "Input changed".to_string(), None)), + 7 => Some(("media", "Media interaction".to_string(), None)), + 11 => Some(("technical", "Browser log".to_string(), None)), + _ => None, + } +} + +fn mouse_activity(event: &Value) -> (&'static str, String, Option) { + let label = match event.pointer("/data/type").and_then(Value::as_i64) { + Some(0) => "Mouse up", + Some(1) => "Mouse down", + Some(2) => "Click", + Some(3) => "Context menu", + Some(4) => "Double click", + Some(5) => "Focus", + Some(6) => "Blur", + Some(7) => "Touch start", + Some(9) => "Touch end", + _ => "Mouse interaction", + }; + + ( + "interaction", + label.to_string(), + xy_detail(event.pointer("/data/x"), event.pointer("/data/y")), + ) +} + +fn xy_detail(x: Option<&Value>, y: Option<&Value>) -> Option { + Some(format!( + "{}, {}", + x.and_then(Value::as_i64)?, + y.and_then(Value::as_i64)? + )) +} + +fn size_detail(width: Option<&Value>, height: Option<&Value>) -> Option { + Some(format!( + "{} x {}", + width.and_then(Value::as_i64)?, + height.and_then(Value::as_i64)? + )) +} + +fn event_url_from_properties(properties: &Value) -> Option { + for pointer in [ + "/$current_url", + "/current_url", + "/url", + "/href", + "/page_url", + "/properties/$current_url", + "/properties/current_url", + "/properties/url", + "/properties/href", + ] { + if let Some(value) = properties.pointer(pointer).and_then(Value::as_str) { + if value.starts_with("http://") + || value.starts_with("https://") + || value.starts_with('/') + { + return Some(value.to_string()); + } + } + } + None +} + +fn summarize_event_properties(properties: &Value) -> Vec { + let Some(object) = properties.as_object() else { + return Vec::new(); + }; + let preferred = [ + "$current_url", + "current_url", + "url", + "path", + "pathname", + "$browser", + "$device_type", + "$os", + ]; + let mut summary = Vec::new(); + let mut seen = HashSet::new(); + + for key in preferred { + if let Some(value) = object.get(key).and_then(display_property_value) { + seen.insert(key.to_string()); + summary.push(ReplayEventProperty { + key: key.to_string(), + value, + }); + } + } + + for (key, value) in object { + if summary.len() >= 6 { + break; + } + if seen.contains(key) || key.starts_with('$') { + continue; + } + if let Some(value) = display_property_value(value) { + summary.push(ReplayEventProperty { + key: key.clone(), + value, + }); + } + } + + summary +} + +fn display_property_value(value: &Value) -> Option { + match value { + Value::String(value) if !value.is_empty() => Some(value.clone()), + Value::Number(value) => Some(value.to_string()), + Value::Bool(value) => Some(value.to_string()), + _ => None, + } +} + +fn string_pointer(value: &Value, pointer: &str) -> Option { + value.pointer(pointer).and_then(|value| match value { + Value::String(value) if !value.is_empty() => Some(value.clone()), + Value::Number(value) => Some(value.to_string()), + Value::Bool(value) => Some(value.to_string()), + _ => None, + }) +} + +fn parse_jsonish_value(value: &Value) -> Result { + match value { + Value::String(raw) => serde_json::from_str(raw) + .map_err(|err| ReplayError::InvalidRow(format!("invalid JSON string: {err}"))), + other => Ok(other.clone()), + } +} + +fn parse_datetime(value: &str) -> Result, ReplayError> { + DateTime::parse_from_rfc3339(value) + .map(|dt| dt.with_timezone(&Utc)) + .or_else(|_| { + DateTime::parse_from_str(value, "%Y-%m-%d %H:%M:%S%.f %z") + .map(|dt| dt.with_timezone(&Utc)) + }) + .map_err(|err| ReplayError::InvalidRow(format!("invalid created_at `{value}`: {err}"))) +} + +fn string_field(object: &Map, key: &str) -> Option { + object.get(key).and_then(|value| match value { + Value::String(value) if !value.is_empty() => Some(value.clone()), + Value::Number(value) => Some(value.to_string()), + _ => None, + }) +} + +fn sql_string_literal(value: &str) -> String { + format!("'{}'", value.replace('\'', "''")) +} + +fn push_date_clauses(clauses: &mut Vec, date_from: Option<&str>, date_to: Option<&str>) { + if let Some(date_from) = date_from.filter(|value| !value.is_empty()) { + clauses.push(format!("created_at >= {}", sql_string_literal(date_from))); + } + if let Some(date_to) = date_to.filter(|value| !value.is_empty()) { + clauses.push(format!("created_at <= {}", sql_string_literal(date_to))); + } +} + +fn contains_case_insensitive(value: &str, needle: &str) -> bool { + value + .to_ascii_lowercase() + .contains(&needle.to_ascii_lowercase()) +} + +fn validate_sql_identifier(value: &str) -> Result<(), ReplayConfigError> { + if value + .split('.') + .all(|part| !part.is_empty() && part.chars().all(|c| c.is_ascii_alphanumeric() || c == '_')) + { + Ok(()) + } else { + Err(ReplayConfigError::InvalidEventsTable { + value: value.to_string(), + }) + } +} + +#[derive(Debug)] +struct SessionAccumulator { + session_id: String, + distinct_id: String, + api_key: Option, + first_seen: DateTime, + last_seen: DateTime, + replay_start_ms: Option, + replay_end_ms: Option, + chunk_count: usize, + event_count: usize, + first_url: Option, + last_url: Option, +} + +impl SessionAccumulator { + fn new(session_id: String, row: ReplaySnapshotRow) -> Self { + Self { + session_id, + distinct_id: row.distinct_id, + api_key: row.api_key, + first_seen: row.created_at, + last_seen: row.created_at, + replay_start_ms: None, + replay_end_ms: None, + chunk_count: 0, + event_count: 0, + first_url: None, + last_url: None, + } + } + + fn add(&mut self, row: ReplaySnapshotRow, stats: ReplayEventStats) { + self.first_seen = self.first_seen.min(row.created_at); + self.last_seen = self.last_seen.max(row.created_at); + self.chunk_count += 1; + self.event_count += stats.event_count; + self.replay_start_ms = min_optional_i64(self.replay_start_ms, stats.start_ms); + self.replay_end_ms = max_optional_i64(self.replay_end_ms, stats.end_ms); + if self.api_key.is_none() { + self.api_key = row.api_key; + } + if self.first_url.is_none() { + self.first_url = stats.first_url; + } + if stats.last_url.is_some() { + self.last_url = stats.last_url; + } + } + + fn finish(self) -> ReplaySessionSummary { + let duration_ms = match (self.replay_start_ms, self.replay_end_ms) { + (Some(start), Some(end)) => end.saturating_sub(start), + _ => self + .last_seen + .signed_duration_since(self.first_seen) + .num_milliseconds() + .max(0), + }; + ReplaySessionSummary { + session_id: self.session_id, + distinct_id: self.distinct_id, + api_key: self.api_key, + first_seen: self.first_seen, + last_seen: self.last_seen, + duration_ms, + chunk_count: self.chunk_count, + event_count: self.event_count, + first_url: self.first_url, + last_url: self.last_url, + } + } +} + +fn min_optional_i64(left: Option, right: Option) -> Option { + match (left, right) { + (Some(left), Some(right)) => Some(left.min(right)), + (Some(left), None) => Some(left), + (None, Some(right)) => Some(right), + (None, None) => None, + } +} + +fn max_optional_i64(left: Option, right: Option) -> Option { + match (left, right) { + (Some(left), Some(right)) => Some(left.max(right)), + (Some(left), None) => Some(left), + (None, Some(right)) => Some(right), + (None, None) => None, + } +} + +#[cfg(test)] +mod tests { + use super::*; + use chrono::TimeZone; + + fn row(uuid: &str, session_id: &str, distinct_id: &str, timestamp: i64) -> ReplaySnapshotRow { + ReplaySnapshotRow { + uuid: uuid.to_string(), + event: Some("$snapshot".to_string()), + distinct_id: distinct_id.to_string(), + created_at: Utc.timestamp_millis_opt(timestamp).unwrap(), + api_key: Some("phc_test".to_string()), + properties: json!({ + "session_id": session_id, + "events": [ + { "type": 4, "timestamp": timestamp, "data": { "href": "https://app.test/start" } } + ] + }), + } + } + + fn row_with_events( + uuid: &str, + session_id: &str, + distinct_id: &str, + events: Vec, + ) -> ReplaySnapshotRow { + ReplaySnapshotRow { + uuid: uuid.to_string(), + event: Some("$snapshot".to_string()), + distinct_id: distinct_id.to_string(), + created_at: Utc.timestamp_millis_opt(1_000).unwrap(), + api_key: Some("phc_test".to_string()), + properties: json!({ + "session_id": session_id, + "events": events, + }), + } + } + + fn snapshot_items_row( + uuid: &str, + session_id: &str, + distinct_id: &str, + events: Vec, + ) -> ReplaySnapshotRow { + ReplaySnapshotRow { + uuid: uuid.to_string(), + event: Some("$snapshot_items".to_string()), + distinct_id: distinct_id.to_string(), + created_at: Utc.timestamp_millis_opt(1_000).unwrap(), + api_key: Some("phc_test".to_string()), + properties: json!({ + "$session_id": session_id, + "$snapshot_items": events, + }), + } + } + + fn analytics_row( + uuid: &str, + event: &str, + session_id: &str, + distinct_id: &str, + timestamp: i64, + ) -> ReplayEventRow { + ReplayEventRow { + uuid: uuid.to_string(), + event: event.to_string(), + distinct_id: distinct_id.to_string(), + created_at: Utc.timestamp_millis_opt(timestamp).unwrap(), + api_key: Some("phc_test".to_string()), + properties: json!({ + "$session_id": session_id, + "$current_url": "https://app.test/pricing", + }), + } + } + + #[test] + fn builds_filtered_snapshot_sql_with_escaped_literals() { + let sql = build_snapshot_rows_sql( + "default.hogflare_events", + &ReplaySessionsQuery { + api_key: Some("phc_o'hare".to_string()), + distinct_id: Some("user-1".to_string()), + session_id: None, + url: None, + event_name: None, + date_from: None, + date_to: None, + min_duration_secs: None, + max_duration_secs: None, + min_events: None, + max_events: None, + limit: None, + }, + 100, + ); + + assert_eq!( + sql, + "select uuid, event, distinct_id, created_at, properties, api_key from default.hogflare_events where event in ('$snapshot', '$snapshot_items') and api_key = 'phc_o''hare' and distinct_id = 'user-1' order by created_at desc limit 100" + ); + } + + #[test] + fn builds_filtered_event_sql_with_date_range() { + let sql = build_event_rows_sql( + "default.hogflare_events", + &ReplayEventsQuery { + api_key: Some("phc_test".to_string()), + distinct_id: Some("user-1".to_string()), + session_id: None, + event_name: Some("Checkout Started".to_string()), + url: None, + date_from: Some("2026-05-22T00:00:00Z".to_string()), + date_to: Some("2026-05-23T00:00:00Z".to_string()), + limit: None, + }, + 50, + ); + + assert_eq!( + sql, + "select uuid, event, distinct_id, created_at, properties, api_key from default.hogflare_events where event not in ('$snapshot', '$snapshot_items') and api_key = 'phc_test' and distinct_id = 'user-1' and event = 'Checkout Started' and created_at >= '2026-05-22T00:00:00Z' and created_at <= '2026-05-23T00:00:00Z' order by created_at desc limit 50" + ); + } + + #[test] + fn extracts_sessions_from_rows() { + let response = build_sessions_response( + vec![ + row("chunk-2", "session-a", "user-a", 2_000), + row("chunk-1", "session-a", "user-a", 1_000), + row("chunk-3", "session-b", "user-b", 3_000), + ], + 10, + ); + + assert_eq!(response.sessions.len(), 2); + assert_eq!(response.sessions[0].session_id, "session-b"); + assert_eq!(response.sessions[1].session_id, "session-a"); + assert_eq!(response.sessions[1].chunk_count, 2); + assert_eq!(response.sessions[1].event_count, 2); + assert_eq!( + response.sessions[1].first_url.as_deref(), + Some("https://app.test/start") + ); + } + + #[test] + fn applies_session_summary_filters() { + let mut response = build_sessions_response( + vec![ + row("chunk-2", "session-a", "user-a", 2_000), + row("chunk-1", "session-a", "user-a", 1_000), + row("chunk-3", "session-b", "user-b", 3_000), + ], + 10, + ); + + apply_session_summary_filters( + &mut response.sessions, + &ReplaySessionsQuery { + api_key: None, + distinct_id: None, + session_id: None, + url: Some("app.test/start".to_string()), + event_name: None, + date_from: None, + date_to: None, + min_duration_secs: Some(1), + max_duration_secs: Some(1), + min_events: Some(2), + max_events: Some(2), + limit: None, + }, + ); + + assert_eq!(response.sessions.len(), 1); + assert_eq!(response.sessions[0].session_id, "session-a"); + } + + #[test] + fn extracts_sorted_rrweb_events_from_session_chunks() { + let response = build_session_events_response( + "session-a", + vec![ + row("chunk-2", "session-a", "user-a", 2_000), + row("chunk-1", "session-a", "user-a", 1_000), + row("chunk-other", "session-b", "user-b", 500), + ], + None, + ) + .unwrap(); + + assert_eq!(response.session.session_id, "session-a"); + assert_eq!(response.chunks.len(), 2); + assert_eq!(response.events.len(), 2); + assert_eq!(response.activity.len(), 2); + assert_eq!(response.replay_start_ms, Some(1_000)); + assert_eq!(response.replay_end_ms, Some(2_000)); + assert_eq!(response.events[0]["timestamp"], 1_000); + assert_eq!(response.events[1]["timestamp"], 2_000); + } + + #[test] + fn extracts_normalized_snapshot_items_rows() { + let response = build_session_events_response( + "session-normalized", + vec![snapshot_items_row( + "chunk-normalized", + "session-normalized", + "user-normalized", + vec![json!({ "type": 4, "timestamp": 1_500, "data": { "href": "https://app.test/pricing" } })], + )], + None, + ) + .unwrap(); + + assert_eq!(response.session.session_id, "session-normalized"); + assert_eq!(response.session.event_count, 1); + assert_eq!(response.events.len(), 1); + assert_eq!(response.events[0]["timestamp"], 1_500); + assert_eq!( + response.session.first_url.as_deref(), + Some("https://app.test/pricing") + ); + } + + #[test] + fn builds_analytics_event_response_without_raw_properties() { + let response = build_events_response( + vec![ReplayEventRow { + uuid: "event-1".to_string(), + event: "Checkout Started".to_string(), + distinct_id: "user-a".to_string(), + created_at: Utc.timestamp_millis_opt(2_000).unwrap(), + api_key: Some("phc_test".to_string()), + properties: json!({ + "$session_id": "session-a", + "$current_url": "https://app.test/checkout", + "plan": "pro", + "nested": { "ignored": true } + }), + }], + 10, + ); + + assert_eq!(response.events.len(), 1); + assert_eq!(response.events[0].session_id.as_deref(), Some("session-a")); + assert_eq!( + response.events[0].url.as_deref(), + Some("https://app.test/checkout") + ); + assert!(response.events[0] + .properties + .iter() + .any(|property| property.key == "plan" && property.value == "pro")); + assert!(!response.events[0] + .properties + .iter() + .any(|property| property.key == "nested")); + } + + #[test] + fn classifies_funnel_sessions() { + let response = build_funnel_response( + vec![ + analytics_row("a1", "Viewed Pricing", "converted", "user-a", 1_000), + analytics_row("a2", "Checkout Started", "converted", "user-a", 2_000), + analytics_row("a3", "Paid", "converted", "user-a", 3_000), + analytics_row("b1", "Viewed Pricing", "stuck", "user-b", 4_000), + analytics_row("b2", "Viewed Pricing", "stuck", "user-b", 5_000), + analytics_row("c1", "Viewed Pricing", "dropped", "user-c", 6_000), + analytics_row("d1", "Signed Up", "ignored", "user-d", 7_000), + ], + vec![ + "Viewed Pricing".to_string(), + "Checkout Started".to_string(), + "Paid".to_string(), + ], + 10, + ); + + assert_eq!(response.sessions.len(), 3); + let converted = response + .sessions + .iter() + .find(|session| session.session_id.as_deref() == Some("converted")) + .unwrap(); + assert_eq!(converted.status, "converted"); + assert_eq!(converted.completed_steps, 3); + assert_eq!(converted.drop_off_step, None); + + let stuck = response + .sessions + .iter() + .find(|session| session.session_id.as_deref() == Some("stuck")) + .unwrap(); + assert_eq!(stuck.status, "stuck"); + assert_eq!(stuck.completed_steps, 1); + assert_eq!(stuck.drop_off_step.as_deref(), Some("Checkout Started")); + + let dropped = response + .sessions + .iter() + .find(|session| session.session_id.as_deref() == Some("dropped")) + .unwrap(); + assert_eq!(dropped.status, "dropped"); + assert_eq!(dropped.completed_steps, 1); + } + + #[test] + fn computes_friction_signals_from_rrweb_events() { + let response = build_friction_response( + vec![row_with_events( + "chunk-friction", + "session-friction", + "user-friction", + vec![ + json!({ "type": 4, "timestamp": 1_000, "data": { "href": "https://app.test/pricing" } }), + json!({ "type": 3, "timestamp": 1_100, "data": { "source": 2, "type": 2, "x": 42, "y": 52 } }), + json!({ "type": 3, "timestamp": 1_700, "data": { "source": 2, "type": 2, "x": 44, "y": 50 } }), + json!({ "type": 3, "timestamp": 2_200, "data": { "source": 2, "type": 2, "x": 43, "y": 51 } }), + json!({ "type": 3, "timestamp": 3_000, "data": { "source": 5 } }), + json!({ "type": 3, "timestamp": 3_700, "data": { "source": 5 } }), + json!({ "type": 3, "timestamp": 4_200, "data": { "source": 5 } }), + json!({ "type": 3, "timestamp": 40_000, "data": { "source": 3, "x": 0, "y": 1_600 } }), + json!({ "type": 4, "timestamp": 45_000, "data": { "href": "https://app.test/help" } }), + json!({ "type": 4, "timestamp": 46_000, "data": { "href": "https://app.test/pricing" } }), + json!({ "type": 4, "timestamp": 47_000, "data": { "href": "https://app.test/help" } }), + ], + )], + None, + 10, + ); + + assert_eq!(response.sessions.len(), 1); + let kinds = response.sessions[0] + .signals + .iter() + .map(|signal| signal.kind.as_str()) + .collect::>(); + assert!(kinds.contains("rage_click")); + assert!(kinds.contains("form_thrash")); + assert!(kinds.contains("long_idle")); + assert!(kinds.contains("repeated_navigation")); + assert!(kinds.contains("missed_cta")); + assert!(response.sessions[0].score >= 10); + } + + #[test] + fn builds_person_journey_without_raw_event_properties() { + let sessions = + build_sessions_response(vec![row("chunk-1", "session-a", "user-a", 1_000)], 10) + .sessions; + let events = build_events_response( + vec![ReplayEventRow { + uuid: "event-1".to_string(), + event: "Checkout Started".to_string(), + distinct_id: "user-a".to_string(), + created_at: Utc.timestamp_millis_opt(2_000).unwrap(), + api_key: Some("phc_test".to_string()), + properties: json!({ + "$session_id": "session-a", + "$current_url": "https://app.test/checkout", + "plan": "pro", + "raw_object": { "hidden": true } + }), + }], + 10, + ) + .events; + + let response = + build_person_journey_response(Some("user-a".to_string()), sessions, events, 10); + + assert_eq!(response.distinct_id.as_deref(), Some("user-a")); + assert_eq!(response.sessions.len(), 1); + assert_eq!(response.events.len(), 1); + assert_eq!(response.timeline.len(), 2); + assert!(response + .timeline + .iter() + .any(|item| item.kind == "event" && item.detail.contains("plan=pro"))); + assert!(!response + .timeline + .iter() + .any(|item| item.detail.contains("raw_object"))); + } + + #[test] + fn extracts_events_from_base64_gzip_chunk() { + let encoded = { + use flate2::{write::GzEncoder, Compression}; + use std::io::Write; + + let mut encoder = GzEncoder::new(Vec::new(), Compression::default()); + encoder + .write_all(br#"[{"type":4,"timestamp":1000,"data":{}}]"#) + .unwrap(); + BASE64_STANDARD.encode(encoder.finish().unwrap()) + }; + + let extracted = extract_rrweb_events(&json!({ + "data": { + "chunk": encoded, + "compression": "gzip" + } + })) + .unwrap(); + + assert_eq!(extracted.source_shape, "base64-chunk"); + assert_eq!(extracted.events.len(), 1); + assert_eq!(extracted.events[0]["type"], 4); + } + + #[test] + fn reads_rows_from_common_r2_sql_response_shapes() { + let row = json!({ + "uuid": "row-1", + "distinct_id": "user-1", + "created_at": "2026-05-22T10:00:00Z", + "properties": "{}" + }); + + assert_eq!( + rows_from_r2_sql_response(json!({ "result": { "rows": [row.clone()] } })).unwrap(), + vec![row.clone()] + ); + assert_eq!( + rows_from_r2_sql_response(json!({ "data": [row.clone()] })).unwrap(), + vec![row] + ); + } + + #[test] + fn validates_table_identifier() { + assert!(validate_sql_identifier("default.hogflare_events").is_ok()); + assert!(validate_sql_identifier("default.hogflare_events;drop").is_err()); + } +} diff --git a/src/replay_ui.html b/src/replay_ui.html new file mode 100644 index 0000000..a873865 --- /dev/null +++ b/src/replay_ui.html @@ -0,0 +1,1927 @@ + + + + + + Hogflare Replay Explorer + + + + + +
+ + +
+
+
+ No session selected + Search replay sessions or choose an analytics event. +
+
+ + + +
+
+
+
+
+ Ready + Load sessions, then select a recording to replay. +
+
+
+
+ + +
+ + + + diff --git a/tests/helpers/mod.rs b/tests/helpers/mod.rs index 4749bec..4ef4677 100644 --- a/tests/helpers/mod.rs +++ b/tests/helpers/mod.rs @@ -5,7 +5,7 @@ use std::{net::SocketAddr, sync::Arc, time::Duration}; use axum::{extract::State, http::StatusCode, routing::post, Json, Router}; use hogflare::pipeline::PipelineClient; use reqwest::{Client, Url}; -use serde_json::Value; +use serde_json::{json, Value}; use tokio::{ net::TcpListener, process::Command, @@ -50,6 +50,45 @@ pub async fn spawn_pipeline_stub( Ok((endpoint, receiver, handle)) } +pub async fn spawn_replay_sql_stub( + rows: Vec, +) -> Result<(Url, mpsc::Receiver, JoinHandle<()>), Box> { + let (sender, receiver) = mpsc::channel(16); + + #[derive(Clone)] + struct StubState { + rows: Vec, + sender: mpsc::Sender, + } + + async fn handle_query( + State(state): State, + Json(payload): Json, + ) -> Json { + if let Some(query) = payload.get("query").and_then(Value::as_str) { + let _ = state.sender.send(query.to_string()).await; + } + + Json(json!({ "result": { "rows": state.rows } })) + } + + let app = Router::new() + .route("/", post(handle_query)) + .with_state(StubState { rows, sender }); + + let listener = TcpListener::bind("127.0.0.1:0").await?; + let address = listener.local_addr()?; + let endpoint = Url::parse(&format!("http://{}/", address))?; + + let handle = tokio::spawn(async move { + if let Err(err) = axum::serve(listener, app.into_make_service()).await { + eprintln!("replay sql stub terminated: {err}"); + } + }); + + Ok((endpoint, receiver, handle)) +} + pub async fn spawn_app( pipeline_endpoint: Url, ) -> Result<(SocketAddr, JoinHandle<()>), Box> { @@ -185,6 +224,40 @@ pub async fn spawn_app_with_runtime_options_and_person_pipeline( Ok((address, server_handle)) } +pub async fn spawn_app_with_replay( + pipeline_endpoint: Url, + replay_config: hogflare::replay::ReplayConfig, +) -> Result<(SocketAddr, JoinHandle<()>), Box> { + let pipeline_client = PipelineClient::new(pipeline_endpoint, None, Duration::from_secs(5))?; + let replay_client = hogflare::replay::ReplayClient::new(replay_config)?; + + let listener = TcpListener::bind("127.0.0.1:0").await?; + let address = listener.local_addr()?; + + let server_handle = tokio::spawn(async move { + if let Err(err) = hogflare::serve_with_person_pipeline_and_replay( + listener, + Arc::new(pipeline_client), + None, + Some(Arc::new(replay_client)), + None, + Arc::new(hogflare::groups::MemoryGroupStore::new()), + hogflare::groups::GroupTypeMap::default(), + None, + None, + None, + None, + Arc::new(hogflare::feature_flags::FeatureFlagStore::empty()), + ) + .await + { + eprintln!("hogflare server terminated: {err}"); + } + }); + + Ok((address, server_handle)) +} + pub async fn wait_for_events( receiver: &mut mpsc::Receiver>, ) -> Result, Box> { diff --git a/tests/posthog_endpoints.rs b/tests/posthog_endpoints.rs index ee9819f..c3d347d 100644 --- a/tests/posthog_endpoints.rs +++ b/tests/posthog_endpoints.rs @@ -6,11 +6,11 @@ use chrono::Utc; use flate2::{write::GzEncoder, Compression}; use helpers::{ cleanup, spawn_app_with_options, spawn_app_with_options_and_debug, - spawn_app_with_options_debug_and_person_pipeline, spawn_app_with_runtime_options, - spawn_pipeline_stub, wait_for_events, + spawn_app_with_options_debug_and_person_pipeline, spawn_app_with_replay, + spawn_app_with_runtime_options, spawn_pipeline_stub, spawn_replay_sql_stub, wait_for_events, }; use hmac::{Hmac, Mac}; -use hogflare::{feature_flags::FeatureFlagStore, groups::GroupTypeMap}; +use hogflare::{feature_flags::FeatureFlagStore, groups::GroupTypeMap, replay::ReplayConfig}; use reqwest::{Client, StatusCode}; use serde_json::{json, Value}; use sha2::Sha256; @@ -772,6 +772,310 @@ async fn posthog_compatibility_endpoints_forward_events() -> Result<(), Box Result<(), Box> { + let rows = vec![ + json!({ + "uuid": "chunk-2", + "event": "$snapshot_items", + "distinct_id": "replay-user", + "created_at": "2026-05-22T10:00:02Z", + "api_key": "phc_replay", + "properties": { + "$session_id": "session-1", + "$snapshot_items": [ + { "type": 4, "timestamp": 2000, "data": { "href": "https://app.test/page" } } + ] + } + }), + json!({ + "uuid": "chunk-1", + "event": "$snapshot_items", + "distinct_id": "replay-user", + "created_at": "2026-05-22T10:00:01Z", + "api_key": "phc_replay", + "properties": { + "$session_id": "session-1", + "$snapshot_items": [ + { "type": 2, "timestamp": 1000, "data": { "node": { "id": 1 } } } + ] + } + }), + json!({ + "uuid": "chunk-other", + "event": "$snapshot", + "distinct_id": "other-user", + "created_at": "2026-05-22T10:00:03Z", + "api_key": "phc_other", + "properties": { + "session_id": "session-other", + "events": [ + { "type": 4, "timestamp": 3000, "data": {} } + ] + } + }), + json!({ + "uuid": "event-1", + "event": "Checkout Started", + "distinct_id": "replay-user", + "created_at": "2026-05-22T10:00:02Z", + "api_key": "phc_replay", + "properties": { + "$session_id": "session-1", + "$current_url": "https://app.test/page", + "plan": "pro" + } + }), + json!({ + "uuid": "funnel-1", + "event": "Viewed Pricing", + "distinct_id": "funnel-user", + "created_at": "2026-05-22T10:01:00Z", + "api_key": "phc_replay", + "properties": { + "$session_id": "funnel-session", + "$current_url": "https://app.test/pricing" + } + }), + json!({ + "uuid": "funnel-2", + "event": "Checkout Started", + "distinct_id": "funnel-user", + "created_at": "2026-05-22T10:01:10Z", + "api_key": "phc_replay", + "properties": { + "$session_id": "funnel-session", + "$current_url": "https://app.test/checkout" + } + }), + json!({ + "uuid": "funnel-3", + "event": "Viewed Pricing", + "distinct_id": "stuck-user", + "created_at": "2026-05-22T10:02:00Z", + "api_key": "phc_replay", + "properties": { + "$session_id": "stuck-session", + "$current_url": "https://app.test/pricing" + } + }), + json!({ + "uuid": "funnel-4", + "event": "Viewed Pricing", + "distinct_id": "stuck-user", + "created_at": "2026-05-22T10:02:03Z", + "api_key": "phc_replay", + "properties": { + "$session_id": "stuck-session", + "$current_url": "https://app.test/pricing" + } + }), + json!({ + "uuid": "chunk-friction", + "event": "$snapshot_items", + "distinct_id": "friction-user", + "created_at": "2026-05-22T10:03:00Z", + "api_key": "phc_replay", + "properties": { + "$session_id": "friction-session", + "$snapshot_items": [ + { "type": 4, "timestamp": 1000, "data": { "href": "https://app.test/pricing" } }, + { "type": 3, "timestamp": 1100, "data": { "source": 2, "type": 2, "x": 42, "y": 52 } }, + { "type": 3, "timestamp": 1700, "data": { "source": 2, "type": 2, "x": 44, "y": 50 } }, + { "type": 3, "timestamp": 2200, "data": { "source": 2, "type": 2, "x": 43, "y": 51 } }, + { "type": 3, "timestamp": 40000, "data": { "source": 3, "x": 0, "y": 1600 } } + ] + } + }), + json!({ + "uuid": "chunk-journey", + "event": "$snapshot_items", + "distinct_id": "journey-user", + "created_at": "2026-05-22T10:04:00Z", + "api_key": "phc_replay", + "properties": { + "$session_id": "journey-session", + "$snapshot_items": [ + { "type": 4, "timestamp": 1000, "data": { "href": "https://app.test/start" } } + ] + } + }), + json!({ + "uuid": "journey-event", + "event": "Product Viewed", + "distinct_id": "journey-user", + "created_at": "2026-05-22T10:04:10Z", + "api_key": "phc_replay", + "properties": { + "$session_id": "journey-session", + "$current_url": "https://app.test/product", + "sku": "sku_123" + } + }), + ]; + + let (pipeline_endpoint, _pipeline_rx, pipeline_handle) = spawn_pipeline_stub().await?; + let (replay_endpoint, mut replay_queries, replay_handle) = spawn_replay_sql_stub(rows).await?; + let replay_config = ReplayConfig::new( + "account-id".to_string(), + "bucket-name".to_string(), + "r2-sql-token".to_string(), + Some("default.hogflare_events".to_string()), + Some(500), + Some(replay_endpoint), + )?; + let (address, server_handle) = spawn_app_with_replay(pipeline_endpoint, replay_config).await?; + + let base_url = format!("http://{}", address); + let client = Client::builder().timeout(Duration::from_secs(5)).build()?; + + let ui_response = client.get(format!("{}/replay", base_url)).send().await?; + assert!(ui_response.status().is_success()); + let ui = ui_response.text().await?; + assert!(ui.contains("Replay Explorer")); + assert!(ui.contains("Activity timeline")); + assert!(ui.contains("Date range")); + assert!(ui.contains("type=\"datetime-local\"")); + assert!(ui.contains("data-date-preset=\"24h\"")); + assert!(ui.contains("Hide context")); + assert!(ui.contains(">Search<")); + assert!(ui.contains("Funnel steps")); + assert!(ui.contains("Friction signal")); + assert!(ui.contains("Person journey")); + assert!(ui.contains("rrweb-player")); + assert!(!ui.contains("Raw summary")); + + let sessions_response = client + .get(format!("{}/replay/api/sessions", base_url)) + .query(&[ + ("api_key", "phc_replay"), + ("distinct_id", "replay-user"), + ("limit", "25"), + ]) + .send() + .await?; + assert!(sessions_response.status().is_success()); + let sessions: Value = sessions_response.json().await?; + assert_eq!(sessions["sessions"].as_array().unwrap().len(), 1); + assert_eq!(sessions["sessions"][0]["session_id"], "session-1"); + assert_eq!(sessions["sessions"][0]["chunk_count"], 2); + assert_eq!(sessions["sessions"][0]["event_count"], 2); + assert_eq!(sessions["sessions"][0]["duration_ms"], 1000); + + let first_query = tokio::time::timeout(Duration::from_secs(2), replay_queries.recv()) + .await? + .expect("expected replay sql query"); + assert!(first_query.contains("from default.hogflare_events")); + assert!(first_query.contains("api_key = 'phc_replay'")); + assert!(first_query.contains("distinct_id = 'replay-user'")); + assert!(first_query.contains("event in ('$snapshot', '$snapshot_items')")); + + let replay_events_response = client + .get(format!("{}/replay/api/events", base_url)) + .query(&[ + ("api_key", "phc_replay"), + ("distinct_id", "replay-user"), + ("event_name", "Checkout Started"), + ("url", "page"), + ]) + .send() + .await?; + assert!(replay_events_response.status().is_success()); + let replay_events: Value = replay_events_response.json().await?; + assert_eq!(replay_events["events"].as_array().unwrap().len(), 1); + assert_eq!(replay_events["events"][0]["event"], "Checkout Started"); + assert_eq!(replay_events["events"][0]["session_id"], "session-1"); + assert_eq!(replay_events["events"][0]["url"], "https://app.test/page"); + assert_eq!( + replay_events["events"][0]["properties"][0]["key"], + "$current_url" + ); + + let event_query = tokio::time::timeout(Duration::from_secs(2), replay_queries.recv()) + .await? + .expect("expected replay event sql query"); + assert!(event_query.contains("event not in ('$snapshot', '$snapshot_items')")); + assert!(event_query.contains("event = 'Checkout Started'")); + + let events_response = client + .get(format!("{}/replay/api/sessions/session-1", base_url)) + .query(&[ + ("api_key", "phc_replay"), + ("distinct_id", "replay-user"), + ("at_ms", "250"), + ]) + .send() + .await?; + assert!(events_response.status().is_success()); + let events: Value = events_response.json().await?; + assert_eq!(events["session"]["session_id"], "session-1"); + assert_eq!(events["chunks"].as_array().unwrap().len(), 2); + assert_eq!(events["events"].as_array().unwrap().len(), 2); + assert_eq!(events["activity"].as_array().unwrap().len(), 2); + assert_eq!(events["replay_anchor_ms"], 250); + assert_eq!(events["events"][0]["timestamp"], 1000); + assert_eq!(events["events"][1]["timestamp"], 2000); + + let funnel_response = client + .get(format!("{}/replay/api/funnels", base_url)) + .query(&[ + ("api_key", "phc_replay"), + ("steps", "Viewed Pricing,Checkout Started"), + ("limit", "25"), + ]) + .send() + .await?; + assert!(funnel_response.status().is_success()); + let funnel: Value = funnel_response.json().await?; + assert_eq!(funnel["steps"].as_array().unwrap().len(), 2); + assert!(funnel["sessions"] + .as_array() + .unwrap() + .iter() + .any( + |session| session["session_id"] == "funnel-session" && session["status"] == "converted" + )); + assert!(funnel["sessions"] + .as_array() + .unwrap() + .iter() + .any(|session| session["session_id"] == "stuck-session" && session["status"] == "stuck")); + + let friction_response = client + .get(format!("{}/replay/api/friction", base_url)) + .query(&[("api_key", "phc_replay"), ("distinct_id", "friction-user")]) + .send() + .await?; + assert!(friction_response.status().is_success()); + let friction: Value = friction_response.json().await?; + assert_eq!(friction["sessions"].as_array().unwrap().len(), 1); + assert!(friction["sessions"][0]["signals"] + .as_array() + .unwrap() + .iter() + .any(|signal| signal["kind"] == "rage_click")); + + let person_response = client + .get(format!("{}/replay/api/person", base_url)) + .query(&[("api_key", "phc_replay"), ("distinct_id", "journey-user")]) + .send() + .await?; + assert!(person_response.status().is_success()); + let person: Value = person_response.json().await?; + assert_eq!(person["sessions"].as_array().unwrap().len(), 1); + assert_eq!(person["events"].as_array().unwrap().len(), 1); + assert!(person["timeline"] + .as_array() + .unwrap() + .iter() + .any(|item| item["kind"] == "event" && item["title"] == "Product Viewed")); + + cleanup(server_handle, pipeline_handle).await; + replay_handle.abort(); + let _ = replay_handle.await; + Ok(()) +} + #[tokio::test(flavor = "multi_thread", worker_threads = 2)] async fn anonymous_identify_transition_enriches_events_and_person( ) -> Result<(), Box> { diff --git a/wrangler.toml.example b/wrangler.toml.example index f873a29..d97f903 100644 --- a/wrangler.toml.example +++ b/wrangler.toml.example @@ -6,6 +6,10 @@ compatibility_date = "2025-01-09" CLOUDFLARE_PIPELINE_ENDPOINT = "https://.ingest.cloudflare.com" CLOUDFLARE_PERSONS_PIPELINE_ENDPOINT = "https://.ingest.cloudflare.com" CLOUDFLARE_PIPELINE_TIMEOUT_SECS = "10" +# Optional replay UI Iceberg query config. Store HOGFLARE_REPLAY_R2_SQL_TOKEN as a secret. +# HOGFLARE_REPLAY_ACCOUNT_ID = "" +# HOGFLARE_REPLAY_BUCKET = "" +# HOGFLARE_REPLAY_EVENTS_TABLE = "default.hogflare_events" [[durable_objects.bindings]] name = "PERSONS" From bcaf93475e4baab96b58064357ae6b5aef854a12 Mon Sep 17 00:00:00 2001 From: Nico Ritschel Date: Fri, 22 May 2026 13:43:34 -0700 Subject: [PATCH 2/8] Polish replay docs and side panels --- README.md | 707 ++------------------------------ docs/assets/replay-explorer.jpg | Bin 0 -> 124761 bytes docs/data-model.md | 72 ++++ docs/deployment.md | 284 +++++++++++++ docs/import-posthog.md | 98 +++++ docs/posthog-compatibility.md | 180 ++++++++ docs/session-replay.md | 87 ++++ src/replay_ui.html | 338 +++++++++++---- tests/posthog_endpoints.rs | 3 +- 9 files changed, 1031 insertions(+), 738 deletions(-) create mode 100644 docs/assets/replay-explorer.jpg create mode 100644 docs/data-model.md create mode 100644 docs/deployment.md create mode 100644 docs/import-posthog.md create mode 100644 docs/posthog-compatibility.md create mode 100644 docs/session-replay.md diff --git a/README.md b/README.md index a627983..561e7fe 100644 --- a/README.md +++ b/README.md @@ -1,16 +1,27 @@ # Hogflare -Hogflare +Hogflare -Hogflare is a Cloudflare Workers ingestion layer for PostHog SDKs. It supports PostHog-style ingestion, stateful persons/groups, and SDK feature flags, then streams events and person snapshots into Cloudflare Pipelines so data lands in R2 as Iceberg/Parquet. +Hogflare is a Cloudflare Workers ingestion layer for PostHog SDKs. It supports PostHog-style ingestion, stateful persons and groups, SDK feature flags, and a read-only session replay explorer, then streams events and person snapshots into Cloudflare Pipelines so data lands in R2 as Iceberg/Parquet. -#### What works today +![Hogflare replay explorer](docs/assets/replay-explorer.jpg) -- Ingestion endpoints: `/capture`, `/identify`, `/alias`, `/batch`, `/e`, `/engage`, `/groups`, `/s` -- Persons and groups: `$set`, `$set_once`, `$unset`, aliasing, and group properties -- SDK config and feature flags: `/array/:token/config`, `/flags`, and `/decide` are evaluated in the Worker -- Request enrichment: Cloudflare IP/geo fields added when missing -- Queryable people: append-only person snapshots can be written to a separate Iceberg table +## What Works Today + +- PostHog-compatible ingestion endpoints: `/capture`, `/identify`, `/alias`, `/batch`, `/e`, `/engage`, `/groups`, `/s` +- Persons and groups: `$set`, `$set_once`, `$unset`, aliasing, group properties, and group slots +- SDK config and feature flags: `/array/:token/config`, `/flags`, and `/decide` +- Session replay ingestion and read-only replay explorer backed by R2 SQL over Iceberg rows +- Request enrichment with Cloudflare IP and geo fields +- Queryable event and person snapshots in R2 Data Catalog-backed Iceberg tables + +## Docs + +- [Deployment](docs/deployment.md): Cloudflare Pipeline setup, Wrangler config, secrets, deployment, verification, local fake pipeline, and cleanup. +- [Session Replay](docs/session-replay.md): replay ingestion, explorer UI, API routes, filters, and local demo commands. +- [PostHog Compatibility](docs/posthog-compatibility.md): SDK setup, endpoint behavior, persons, groups, feature flags, signing, and enrichment. +- [Import Existing PostHog Data](docs/import-posthog.md): host-side backfill importer for existing PostHog projects. +- [Data Model](docs/data-model.md): event and person row shapes plus DuckDB/R2 SQL query examples. ## Architecture @@ -39,680 +50,40 @@ flowchart TB Worker -->|"person snapshots"| PersonsPipeline["Persons Pipeline"] EventsPipeline --> EventsR2["R2 Data Catalog
events table"] PersonsPipeline --> PersonsR2["R2 Data Catalog
persons table"] -``` - -## Why? - -PostHog is a nice-to-use web & product analytics platform. However, self-hosting PostHog is prohibitively complex so most users seem to rely on the cloud offering. This is an alternative for cost-conscious data folks & businesses interested in a low maintenance way to ingest web & product analytics directly into a managed data lake. - -A [hobby deployment of PostHog](https://github.com/PostHog/posthog/blob/master/docker-compose.hobby.yml) includes: postgres, redis, redis7, clickhouse, zookeeper, kafka, worker, web, plugins, proxy, objectstorage, seaweedfs, asyncmigrationscheck, temporal, elasticsearch, temporal-admin-tools, temporal-ui, temporal-django-worker, cyclotron-janitor, capture, replay-capture, property-defs-rs, livestream, feature-flags, cymbal - -Admittedly, PostHog does a *lot* more than this package, but some folks really just want the basics! - -## Quick start (Cloudflare) - -1. Create R2 Data Catalog-backed Pipelines resources. -2. Copy `wrangler.toml.example` to `wrangler.toml` and set the stream endpoints. -3. Set Wrangler secrets. -4. Build and deploy the Worker. -5. Send a capture/identify verification flow and query the Iceberg tables. - -The examples below use stable table names for a fresh deployment: `default.hogflare_events` and `default.hogflare_persons`. If you use versioned names during migration, substitute those names consistently in the sink commands and queries. - -### Create Pipelines Resources - -Set these values before creating sinks: - -```bash -export R2_BUCKET="" -export R2_CATALOG_TOKEN="" -``` - -`R2_CATALOG_TOKEN` is the token used by R2 Data Catalog/R2 SQL clients such as DuckDB or PyIceberg. The bucket must have R2 Data Catalog enabled before creating `r2-data-catalog` sinks. - -Create the events stream, sink, and pipeline: - -```bash -bunx wrangler pipelines streams create hogflare_events_stream \ - --schema-file scripts/events-pipeline-schema.json \ - --http-enabled true \ - --http-auth true - -bunx wrangler pipelines sinks create hogflare_events_sink \ - --type r2-data-catalog \ - --bucket "$R2_BUCKET" \ - --namespace default \ - --table hogflare_events \ - --catalog-token "$R2_CATALOG_TOKEN" \ - --roll-interval 60 - -bunx wrangler pipelines create hogflare_events_pipeline \ - --sql "INSERT INTO hogflare_events_sink SELECT * FROM hogflare_events_stream;" -``` - -Create the persons stream, sink, and pipeline if you want queryable people in Iceberg: - -```bash -bunx wrangler pipelines streams create hogflare_persons_stream \ - --schema-file scripts/persons-pipeline-schema.json \ - --http-enabled true \ - --http-auth true - -bunx wrangler pipelines sinks create hogflare_persons_sink \ - --type r2-data-catalog \ - --bucket "$R2_BUCKET" \ - --namespace default \ - --table hogflare_persons \ - --catalog-token "$R2_CATALOG_TOKEN" \ - --roll-interval 60 - -bunx wrangler pipelines create hogflare_persons_pipeline \ - --sql "INSERT INTO hogflare_persons_sink SELECT * FROM hogflare_persons_stream;" -``` - -Each stream creation command prints an HTTP endpoint like `https://.ingest.cloudflare.com`. Use those endpoints in `wrangler.toml`. - -### Wrangler config - -Copy the example and fill in the stream endpoints: - -```bash -cp wrangler.toml.example wrangler.toml -``` - -```toml -name = "hogflare" -main = "build/index.js" # generated entrypoint from worker-build for the Rust worker -compatibility_date = "2025-01-09" - -[vars] -CLOUDFLARE_PIPELINE_ENDPOINT = "https://.ingest.cloudflare.com" -CLOUDFLARE_PERSONS_PIPELINE_ENDPOINT = "https://.ingest.cloudflare.com" -CLOUDFLARE_PIPELINE_TIMEOUT_SECS = "10" - -# Optional -# POSTHOG_TEAM_ID = "1" -# POSTHOG_GROUP_TYPE_0 = "company" -# POSTHOG_GROUP_TYPE_1 = "team" -# POSTHOG_GROUP_TYPE_2 = "project" -# POSTHOG_GROUP_TYPE_3 = "org" -# POSTHOG_GROUP_TYPE_4 = "workspace" -# POSTHOG_SESSION_RECORDING_ENDPOINT = "/s/" - -[[durable_objects.bindings]] -name = "PERSONS" -class_name = "PersonDurableObject" - -[[durable_objects.bindings]] -name = "PERSON_ID_COUNTER" -class_name = "PersonIdCounterDurableObject" - -[[durable_objects.bindings]] -name = "GROUPS" -class_name = "GroupDurableObject" - -[[migrations]] -tag = "v1" -new_sqlite_classes = ["PersonDurableObject"] - -[[migrations]] -tag = "v2" -new_sqlite_classes = ["PersonIdCounterDurableObject", "GroupDurableObject"] -``` - -### Configuration Reference - -| Setting | Required | Notes | -| --- | --- | --- | -| `CLOUDFLARE_PIPELINE_ENDPOINT` | Yes | Events stream HTTP endpoint from `wrangler pipelines streams create`. | -| `CLOUDFLARE_PIPELINE_AUTH_TOKEN` | Yes, for authenticated streams | Bearer token used for events stream HTTP ingest. | -| `CLOUDFLARE_PERSONS_PIPELINE_ENDPOINT` | No | Persons stream endpoint. Set this to write person snapshots to Iceberg. | -| `CLOUDFLARE_PERSONS_PIPELINE_AUTH_TOKEN` | No | Falls back to `CLOUDFLARE_PIPELINE_AUTH_TOKEN` when omitted. | -| `CLOUDFLARE_PIPELINE_TIMEOUT_SECS` | No | Defaults to 10 seconds. | -| `POSTHOG_API_KEY` | No | Default project token returned by `/decide` when request/header token is absent. | -| `POSTHOG_TEAM_ID` | No | Optional team id attached to event and person rows. | -| `POSTHOG_GROUP_TYPE_0..4` | No | Maps PostHog group types to `group0..group4`; set `POSTHOG_GROUP_TYPE_0=company` to populate `group0` for company groups. | -| `POSTHOG_SESSION_RECORDING_ENDPOINT` | No | Returned in `/decide` session recording config. | -| `HOGFLARE_REPLAY_ACCOUNT_ID` | No | Enables the `/replay` UI API when set with bucket and token. | -| `HOGFLARE_REPLAY_BUCKET` | No | R2 bucket name backing the R2 Data Catalog warehouse. | -| `HOGFLARE_REPLAY_R2_SQL_TOKEN` | No | R2 SQL/Data Catalog token used server-side to query replay rows. Store as a secret. | -| `HOGFLARE_REPLAY_EVENTS_TABLE` | No | Iceberg events table queried by replay APIs. Defaults to `default.hogflare_events`. | -| `HOGFLARE_REPLAY_QUERY_LIMIT` | No | Maximum snapshot rows a replay API request can read. Defaults to `5000`. | -| `POSTHOG_SIGNING_SECRET` | No | Enables HMAC request signature checks. | -| `PERSON_DEBUG_TOKEN` | No | Enables `/__debug/person/:id` for deployment verification. | -| `HOGFLARE_FEATURE_FLAGS` | No | JSON flag config used by `/decide` and `/flags`. | -### Secrets - -Use a Cloudflare API token that can write to Pipelines for `CLOUDFLARE_PIPELINE_AUTH_TOKEN`. The same token can usually be reused for the persons stream. - -```bash -bunx wrangler secret put CLOUDFLARE_PIPELINE_AUTH_TOKEN -# Optional. If omitted, the persons pipeline uses CLOUDFLARE_PIPELINE_AUTH_TOKEN. -bunx wrangler secret put CLOUDFLARE_PERSONS_PIPELINE_AUTH_TOKEN - -# Optional. -bunx wrangler secret put POSTHOG_SIGNING_SECRET -bunx wrangler secret put PERSON_DEBUG_TOKEN -bunx wrangler secret put HOGFLARE_FEATURE_FLAGS -bunx wrangler secret put HOGFLARE_REPLAY_R2_SQL_TOKEN + ReplayUI["Replay Explorer"] -->|"R2 SQL"| EventsR2 ``` -### Deploy - -```bash -worker-build --release -bunx wrangler deploy -``` +## Why -## Verify Deployment +PostHog is a nice-to-use web and product analytics platform. Self-hosting PostHog is prohibitively complex, so most users rely on the cloud offering. Hogflare is an alternative for cost-conscious data teams and businesses that want a low-maintenance way to ingest web and product analytics directly into a managed data lake. -```bash -export HOGFLARE_URL="https://.workers.dev" -export HOGFLARE_API_KEY="phc_verify_$(date -u +%Y%m%d%H%M%S)" -export HOGFLARE_ANON_ID="${HOGFLARE_API_KEY}_anon" -export HOGFLARE_USER_ID="${HOGFLARE_API_KEY}_user" -``` +A [hobby deployment of PostHog](https://github.com/PostHog/posthog/blob/master/docker-compose.hobby.yml) includes postgres, redis, redis7, clickhouse, zookeeper, kafka, worker, web, plugins, proxy, objectstorage, seaweedfs, asyncmigrationscheck, temporal, elasticsearch, temporal-admin-tools, temporal-ui, temporal-django-worker, cyclotron-janitor, capture, replay-capture, property-defs-rs, livestream, feature-flags, and cymbal. -Send an anonymous capture: +PostHog does much more than this package, but some teams only need the warehouse-first basics. -```bash -curl -X POST "$HOGFLARE_URL/capture" \ - -H "Content-Type: application/json" \ - -d "{ - \"api_key\": \"$HOGFLARE_API_KEY\", - \"event\": \"verify-anon-capture\", - \"distinct_id\": \"$HOGFLARE_ANON_ID\", - \"properties\": { - \"\$set\": { \"initial_referrer\": \"docs\" }, - \"\$set_once\": { \"first_seen_source\": \"readme\" } - } - }" -``` +## Replay Demo -Identify the user and link the anonymous ID: +The branch includes a local replay fixture that makes the explorer usable without Cloudflare credentials: ```bash -curl -X POST "$HOGFLARE_URL/identify" \ - -H "Content-Type: application/json" \ - -d "{ - \"api_key\": \"$HOGFLARE_API_KEY\", - \"distinct_id\": \"$HOGFLARE_USER_ID\", - \"properties\": { - \"\$anon_distinct_id\": \"$HOGFLARE_ANON_ID\", - \"\$set\": { \"email\": \"verify@example.com\", \"plan\": \"pro\" }, - \"\$set_once\": { \"signup_source\": \"readme\" } - } - }" +REPLAY_DEMO_PORT=4666 bun scripts/replay_demo_stub.mjs ``` -Send a post-identify capture: - -```bash -curl -X POST "$HOGFLARE_URL/capture" \ - -H "Content-Type: application/json" \ - -d "{ - \"api_key\": \"$HOGFLARE_API_KEY\", - \"event\": \"verify-identified-capture\", - \"distinct_id\": \"$HOGFLARE_USER_ID\", - \"properties\": { \"button\": \"verify\" } - }" -``` - -Wait for the sink roll interval, then query R2 SQL: - -```bash -export R2_WAREHOUSE="_" -export WRANGLER_R2_SQL_AUTH_TOKEN="$R2_CATALOG_TOKEN" - -bunx wrangler r2 sql query "$R2_WAREHOUSE" \ - "select event, distinct_id, person_id, person_properties - from default.hogflare_events - where api_key = '$HOGFLARE_API_KEY' - order by created_at asc" - -bunx wrangler r2 sql query "$R2_WAREHOUSE" \ - "select operation, canonical_distinct_id, person_id, distinct_ids, merged_properties - from default.hogflare_persons - where api_key = '$HOGFLARE_API_KEY' - order by updated_at asc" -``` - -Expected result: the three event rows share one `person_id`, and the persons table has `capture`, `identify`, `capture` snapshots. After identify, `distinct_ids` should include both the anonymous and identified IDs. - -## HMAC signing (optional) - -If `POSTHOG_SIGNING_SECRET` is set, requests must include a valid signature. - ```bash -payload='[ - { - "api_key": "phc_example", - "event": "purchase", - "distinct_id": "user_12345", - "properties": { "amount": 29.99 } - } -]' - -signature=$(printf '%s' "$payload" | openssl dgst -sha256 -hmac "$POSTHOG_SIGNING_SECRET" | awk '{print $2}') - -curl -X POST https://.workers.dev/capture \ - -H "Content-Type: application/json" \ - -H "X-POSTHOG-SIGNATURE: sha256=$signature" \ - -d "$payload" -``` - -Note: `X-HUB-SIGNATURE` with `sha1=` is also accepted for GitHub-style webhook compatibility. - -## PostHog SDK config - -### Browser (posthog-js) - -```js -import posthog from "posthog-js"; - -posthog.init("", { - api_host: "https://.workers.dev", - capture_pageview: true, -}); +APP_ADDR=127.0.0.1:4567 \ +CLOUDFLARE_PIPELINE_ENDPOINT=http://127.0.0.1:4666/ \ +HOGFLARE_REPLAY_ACCOUNT_ID=demo-account \ +HOGFLARE_REPLAY_BUCKET=demo-bucket \ +HOGFLARE_REPLAY_R2_SQL_TOKEN=demo-token \ +HOGFLARE_REPLAY_R2_SQL_ENDPOINT=http://127.0.0.1:4666/ \ +HOGFLARE_REPLAY_EVENTS_TABLE=default.hogflare_events \ +HOGFLARE_REPLAY_QUERY_LIMIT=500 \ +cargo run --bin hogflare ``` -### Server (posthog-node) - -```js -import { PostHog } from "posthog-node"; - -const client = new PostHog("", { - host: "https://.workers.dev", -}); - -client.capture({ - distinctId: "user_123", - event: "purchase", - properties: { amount: 29.99 }, -}); +Open: -await client.shutdown(); +```text +http://127.0.0.1:4567/replay?api_key=phc_demo&distinct_id=replay-user&limit=100&session_id=demo-session-1&at_ms=1500 ``` - -### Other SDKs - -Set the SDK host/base URL to your Worker (`https://.workers.dev`) and use your project API key. Most SDKs use either `api_host` (browser/mobile) or `host` (server). - -## Local development (fake pipeline) - -The repo includes a lightweight fake pipeline (FastAPI + DuckDB) used by tests. - -```bash -docker compose up --build -d fake-pipeline -``` - -```bash -# .env.local (not committed) -CLOUDFLARE_PIPELINE_ENDPOINT=http://127.0.0.1:8088/ -CLOUDFLARE_PERSONS_PIPELINE_ENDPOINT=http://127.0.0.1:8088/ -CLOUDFLARE_PIPELINE_TIMEOUT_SECS=5 -``` - -```bash -cargo run -``` - -## Query data (DuckDB) - -```sql -INSTALL httpfs; -INSTALL iceberg; -LOAD httpfs; -LOAD iceberg; - -CREATE SECRET r2_catalog_secret ( - TYPE ICEBERG, - TOKEN '' -); - -ATTACH '_' AS iceberg_catalog ( - TYPE ICEBERG, - ENDPOINT 'https://catalog.cloudflarestorage.com//' -); - -SELECT count(*) FROM iceberg_catalog.default.hogflare_events; -SELECT count(*) FROM iceberg_catalog.default.hogflare_persons; -SELECT * FROM iceberg_catalog.default.hogflare_persons LIMIT 5; -``` - -If you used versioned table names during a migration, substitute those names here. - -## Cleanup - -Delete Pipelines resources in dependency order: pipelines first, then streams and sinks. - -```bash -bunx wrangler pipelines list -bunx wrangler pipelines delete --force - -bunx wrangler pipelines streams list -bunx wrangler pipelines streams delete --force - -bunx wrangler pipelines sinks list -bunx wrangler pipelines sinks delete --force -``` - -`wrangler r2 sql query` is read-only. To drop an Iceberg table from R2 Data Catalog, use the Iceberg catalog API. One local option is PyIceberg: - -```bash -R2_CATALOG_TOKEN="" uv run --with pyiceberg python - <<'PY' -import os -from pyiceberg.catalog.rest import RestCatalog - -catalog = RestCatalog( - name="hogflare", - warehouse="_", - uri="https://catalog.cloudflarestorage.com//", - token=os.environ["R2_CATALOG_TOKEN"], -) - -catalog.drop_table(("default", ""), purge_requested=True) -PY -``` - -## Import existing PostHog data - -Hogflare includes a host-side importer for backfilling an existing PostHog project into the same Cloudflare Pipeline sink used by the Worker. It reads PostHog's private API with a personal API key, then writes normalized rows to the pipeline: - -- persons as `$identify` rows -- groups as `$groupidentify` rows -- historical events from HogQL with original `timestamp`, `created_at`, and PostHog event `uuid` when available - -The importer writes historical rows directly to the pipeline. It does not mutate Worker Durable Object state. - -Required inputs: - -```bash -export POSTHOG_PROJECT_ID="" -export POSTHOG_PERSONAL_API_KEY="phx_..." -export CLOUDFLARE_PIPELINE_ENDPOINT="https://.ingest.cloudflare.com" -export CLOUDFLARE_PIPELINE_AUTH_TOKEN="" # if your stream requires it -``` - -Optional inputs: - -```bash -export POSTHOG_HOST="https://us.posthog.com" # or https://eu.posthog.com / self-hosted URL -export POSTHOG_ENVIRONMENT_ID="" # recommended for current PostHog persons/groups APIs -export HOGFLARE_API_KEY="phc_..." -export POSTHOG_TEAM_ID="1" -export POSTHOG_GROUP_TYPE_0="company" -export IMPORT_FROM="2025-01-01" -export IMPORT_TO="2025-02-01" -export IMPORT_BATCH_SIZE="500" -export IMPORT_PERSONS_OFFSET="0" # resume guardrails -export IMPORT_EVENTS_OFFSET="0" -export IMPORT_EVENTS_AFTER_TIMESTAMP="2024-09-21T03:24:11Z" -export IMPORT_EVENTS_AFTER_UUID="0192129b-c354-77b4-b496-9be7ec571fb4" -export IMPORT_EVENT_UUIDS_FILE="/tmp/missing-event-uuids.txt" -export IMPORT_EVENT_WINDOW_DAYS="7" -export IMPORT_EVENT_WINDOW_HOURS="6" # use days or hours, not both -export IMPORT_MAX_PERSONS="1000" # optional guardrails for smoke tests -export IMPORT_MAX_GROUPS="1000" -export IMPORT_MAX_EVENTS="1000" -export IMPORT_STATE_FILE=".hogflare-import-state.jsonl" -export IMPORT_TARGET_ACCOUNT_ID="" -export IMPORT_TARGET_BUCKET="" -export IMPORT_TARGET_TABLE="default.hogflare_events_v3" -export WRANGLER_R2_SQL_AUTH_TOKEN="" -export IMPORT_CLOUDFLARE_API_TOKEN="" # optional auto flush discovery -export IMPORT_PIPELINE_FLUSH_SECS="300" # fallback if Pipelines read is unavailable -``` - -Production imports require R2 SQL target checks by default. The importer uses stable import -keys, queries the target before each batch, and skips rows that are already present. -Cloudflare Pipeline/R2 is append-only and does not enforce uniqueness by itself. Passing -`--no-target-check` or `IMPORT_TARGET_CHECKS=false` opts out and should only be used for -local tests. - -Retry behavior is intentionally conservative. Import sends are not blindly retried after a -transport or response error because the pipeline may have accepted the batch even if the -client did not receive the response. The importer aligns its wait window to the Cloudflare -Pipeline sink rolling policy when `IMPORT_CLOUDFLARE_API_TOKEN` can read Pipelines. Without -that API access, it uses `IMPORT_PIPELINE_FLUSH_SECS`, defaulting conservatively to 300 -seconds. The wait is `max(60s, 2 * flush + 30s)`, unless `IMPORT_TARGET_WAIT_SECS` is set -explicitly. - -The local state file makes normal same-machine resumes cheap, but it is not a substitute for -target checks if the state file is lost, multiple importers run concurrently, or a send has an -unknown commit state. - -Run a dry run first: - -```bash -cargo run --bin import_posthog -- --dry-run -``` - -Run the import: - -```bash -cargo run --bin import_posthog -``` - -You can also pass flags instead of env vars: - -```bash -cargo run --bin import_posthog -- \ - --posthog-host https://us.posthog.com \ - --project-id 12345 \ - --environment-id 67890 \ - --personal-api-key "$POSTHOG_PERSONAL_API_KEY" \ - --pipeline-endpoint "$CLOUDFLARE_PIPELINE_ENDPOINT" \ - --pipeline-auth-token "$CLOUDFLARE_PIPELINE_AUTH_TOKEN" \ - --hogflare-api-key phc_example \ - --from 2025-01-01 \ - --to 2025-02-01 \ - --persons-offset 0 \ - --events-offset 0 \ - --events-after-timestamp 2024-09-21T03:24:11Z \ - --events-after-uuid 0192129b-c354-77b4-b496-9be7ec571fb4 \ - --event-uuids-file /tmp/missing-event-uuids.txt \ - --event-window-hours 6 \ - --max-persons 1000 \ - --max-groups 1000 \ - --max-events 1000 \ - --import-state-file .hogflare-import-state.jsonl \ - --target-account-id "$CLOUDFLARE_ACCOUNT_ID" \ - --target-bucket hogflare \ - --target-table default.hogflare_events_v3 \ - --target-auth-token "$WRANGLER_R2_SQL_AUTH_TOKEN" \ - --cloudflare-api-token "$CLOUDFLARE_API_TOKEN" -``` - -Use `--skip-persons`, `--skip-groups`, or `--skip-events` to import only part of the project. -Use `--skip-person-output` when resuming an event import after person rows were already written; it still loads people for event hydration. - -## PostHog compatibility - -### Ingestion endpoints - -- `/capture` (single or batch payloads) -- `/identify` -- `/alias` -- `/batch` (mixed events) -- `/e` (event payloads) -- `/engage` -- `/groups` -- `/s` (session replay payloads) - -### Persons - -Identify, capture `$set` / `$set_once` / `$unset`, and alias events update a person record stored in a Durable Object. The record tracks distinct_id aliases, person properties, and a sequential `id` plus a UUID. Events include: - -- `person_id` (the person UUID) -- `person_created_at` -- `person_properties` - -The Durable Object is the source of truth for the current person record. When `CLOUDFLARE_PERSONS_PIPELINE_ENDPOINT` is configured, Hogflare also writes append-only person snapshots to the persons pipeline so the state is queryable in Iceberg. - -### Groups - -- `/groups` (`$groupidentify` payloads) are forwarded. -- Group properties are stored in a Group DO and attached to events as `group_properties`. -- Group slots (`group0`..`group4`) are mapped by `POSTHOG_GROUP_TYPE_0..4`. - -### Session replay - -- SDK config advertises `sessionRecording: false` when `POSTHOG_SESSION_RECORDING_ENDPOINT` is unset, so the Worker can keep replay off remotely. Set `POSTHOG_SESSION_RECORDING_ENDPOINT=/s/` to turn replay on and route uploads through Hogflare's ingestion path. -- `/s` accepts PostHog replay payloads, including gzip/gzip-js compressed browser SDK requests. -- Modern `$snapshot` payloads are normalized to `$snapshot_items` rows before they are sent through Cloudflare Pipelines into R2. -- Legacy raw chunk payloads are still accepted as `$snapshot` rows. -- `/replay` serves the read-only replay explorer for browsing sessions, searching analytics events, funnel drop-offs, computed friction signals, and person journeys. -- `/replay/api/sessions` lists replay sessions by reading `$snapshot_items` and legacy `$snapshot` rows from Iceberg through R2 SQL. -- `/replay/api/events` searches analytics events, excluding replay recording rows, so product engineers can jump from an event to the matching replay session. -- `/replay/api/funnels` classifies sessions as converted, stuck, or dropped for an ordered `steps` list of event names. -- `/replay/api/friction` computes replay-derived signals such as rage clicks, dead clicks, form thrash, long idle gaps, repeated navigation, and deep scroll without follow-up. -- `/replay/api/person` joins a distinct ID's replay sessions and analytics events into one journey timeline. -- `/replay/api/sessions/:session_id` returns normalized rrweb events plus an activity timeline for one session. - -Replay APIs require `HOGFLARE_REPLAY_ACCOUNT_ID`, `HOGFLARE_REPLAY_BUCKET`, and -`HOGFLARE_REPLAY_R2_SQL_TOKEN`. The token stays server-side in the Worker; the browser only calls -Hogflare's replay API. `api_key`, `distinct_id`, `session_id`, `url`, `event_name`, `steps`, -`signal`, `date_from`, `date_to`, `min_duration_secs`, `max_duration_secs`, `min_events`, -`max_events`, and `limit` query parameters can be used to narrow replay reads. Session deep links -use `session_id` plus `at_ms`. - -### Feature flags - -Feature flags and SDK remote config are evaluated in the Worker and exposed via `/array/:token/config`, `/decide`, and `/flags`. - -Configuration is a JSON blob in `HOGFLARE_FEATURE_FLAGS`. It can be either: - -- `{ "flags": [ ... ] }` -- `[ ... ]` (array of flag definitions) - -Supported fields per flag: - -| Field | Type | Notes | -| --- | --- | --- | -| `key` | string | Flag key | -| `active` | bool | Defaults to `true` | -| `type` | `"boolean"` \| `"multivariate"` | Defaults to boolean | -| `rollout_percentage` | number | 0–100 | -| `variants` | array | `[{ key, rollout_percentage, payload? }]` | -| `payload` | json | Used for boolean flags | -| `variant_payloads` | map | `{ "variant_key": { ... } }` | -| `conditions` | array | See filters below | -| `group_type` | string | Enables group-based rollout | -| `evaluation_environments` | array | Optional env gating | -| `salt` | string | Optional bucketing salt | -| `id`, `version`, `description` | metadata | Returned in flag details | - -Filters support these operators: - -- `eq` (default), `is_not` -- `in`, `not_in` -- `contains` -- `regex` -- `is_set` -- `gt`, `gte`, `lt`, `lte` - -Value comparisons coerce strings/booleans/numbers when possible (e.g. `"21"` >= `18`). - -Request fields honored by `/flags` and `/decide`: - -- `flag_keys_to_evaluate` — only evaluate these keys -- `evaluation_environments` — only evaluate flags whose `evaluation_environments` includes one of these -- `person_properties`, `group_properties`, `groups` — override state for evaluation - -#### Bucketing - -Rollout bucketing is deterministic: - -- Hash: `sha1("{salt}:{hash_id}")` -- `hash_id` is `distinct_id` for person flags, or the group key when `group_type` is set -- Bucket = `hash % 100` (0–99) -- `salt` defaults to the flag `key` if not provided - -Example: - -```json -{ - "flags": [ - { - "key": "pro-flag", - "active": true, - "rollout_percentage": 100, - "id": 12, - "version": 3, - "description": "Pro users", - "salt": "pro-flag-salt", - "conditions": [ - { - "properties": [ - { "key": "plan", "value": ["pro", "enterprise"], "operator": "in" }, - { "key": "age", "value": 18, "operator": "gte" } - ] - } - ], - "payload": { "tier": "pro" } - } - ] -} -``` - -Limitations: cohorts and event-based filters are not supported. - -### Signing - -- If `POSTHOG_SIGNING_SECRET` is set, requests must include a valid HMAC signature. - -### Enrichment - -Hogflare adds Cloudflare request data into `properties` when those keys are not already present: - -- `$ip` from `CF-Connecting-IP` -- `$geoip_*` from Cloudflare request metadata (country, city, region, lat/long, timezone) -- `cf_*` fields: `cf_asn`, `cf_as_organization`, `cf_colo`, `cf_metro_code`, `cf_ray` - -## Event shape in R2 - -Each row is a `PipelineEvent` with these columns: - -| Field | Type / Notes | -| --- | --- | -| `uuid` | string (UUID v4) | -| `team_id` | int64 (optional) | -| `source` | string | -| `event` | string | -| `distinct_id` | string | -| `timestamp` | RFC3339 timestamp (optional) | -| `created_at` | RFC3339 timestamp | -| `properties` | JSON | -| `context` | JSON | -| `person_id` | string (person UUID) | -| `person_created_at` | RFC3339 timestamp | -| `person_properties` | JSON | -| `group0..group4` | string (group key slots) | -| `group_properties` | JSON (by group type) | -| `api_key` | string | -| `extra` | JSON | - -## Person shape in R2 - -Each row is a `PersonPipelineRecord` snapshot with these columns: - -| Field | Type / Notes | -| --- | --- | -| `uuid` | string (snapshot UUID v4) | -| `team_id` | int64 (optional) | -| `source` | string | -| `operation` | capture, identify, alias, engage, session_recording | -| `person_id` | string (person UUID) | -| `person_int_id` | int64 | -| `canonical_distinct_id` | string | -| `distinct_ids` | string list / array | -| `created_at` | person creation timestamp | -| `updated_at` | snapshot timestamp | -| `version` | person version | -| `properties` | JSON `$set` properties | -| `properties_set_once` | JSON `$set_once` properties | -| `merged_properties` | JSON merged person properties | -| `api_key` | string | -| `source_event_uuid` | event row UUID that produced the snapshot | diff --git a/docs/assets/replay-explorer.jpg b/docs/assets/replay-explorer.jpg new file mode 100644 index 0000000000000000000000000000000000000000..914c49715cb184f38408a03e70a4c3293e780e63 GIT binary patch literal 124761 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 =V+T0}8!OsjIILH$ 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' +); + +ATTACH '_' AS iceberg_catalog ( + TYPE ICEBERG, + ENDPOINT 'https://catalog.cloudflarestorage.com//' +); + +SELECT count(*) FROM iceberg_catalog.default.hogflare_events; +SELECT count(*) FROM iceberg_catalog.default.hogflare_persons; +SELECT * FROM iceberg_catalog.default.hogflare_persons LIMIT 5; +``` + +If you used versioned table names during a migration, substitute those names here. + +## Event Shape In R2 + +Each row is a `PipelineEvent` with these columns: + +| Field | Type / Notes | +| --- | --- | +| `uuid` | string (UUID v4) | +| `team_id` | int64 (optional) | +| `source` | string | +| `event` | string | +| `distinct_id` | string | +| `timestamp` | RFC3339 timestamp (optional) | +| `created_at` | RFC3339 timestamp | +| `properties` | JSON | +| `context` | JSON | +| `person_id` | string (person UUID) | +| `person_created_at` | RFC3339 timestamp | +| `person_properties` | JSON | +| `group0..group4` | string (group key slots) | +| `group_properties` | JSON by group type | +| `api_key` | string | +| `extra` | JSON | + +## Person Shape In R2 + +Each row is a `PersonPipelineRecord` snapshot with these columns: + +| Field | Type / Notes | +| --- | --- | +| `uuid` | string (snapshot UUID v4) | +| `team_id` | int64 (optional) | +| `source` | string | +| `operation` | capture, identify, alias, engage, session_recording | +| `person_id` | string (person UUID) | +| `person_int_id` | int64 | +| `canonical_distinct_id` | string | +| `distinct_ids` | string list / array | +| `created_at` | person creation timestamp | +| `updated_at` | snapshot timestamp | +| `version` | person version | +| `properties` | JSON `$set` properties | +| `properties_set_once` | JSON `$set_once` properties | +| `merged_properties` | JSON merged person properties | +| `api_key` | string | +| `source_event_uuid` | event row UUID that produced the snapshot | diff --git a/docs/deployment.md b/docs/deployment.md new file mode 100644 index 0000000..9e9b5b7 --- /dev/null +++ b/docs/deployment.md @@ -0,0 +1,284 @@ +# Deployment + +## Quick Start + +1. Create R2 Data Catalog-backed Pipelines resources. +2. Copy `wrangler.toml.example` to `wrangler.toml` and set the stream endpoints. +3. Set Wrangler secrets. +4. Build and deploy the Worker. +5. Send a capture/identify verification flow and query the Iceberg tables. + +The examples below use stable table names for a fresh deployment: `default.hogflare_events` and `default.hogflare_persons`. If you use versioned names during migration, substitute those names consistently in the sink commands and queries. + +## Create Pipeline Resources + +Set these values before creating sinks: + +```bash +export R2_BUCKET="" +export R2_CATALOG_TOKEN="" +``` + +`R2_CATALOG_TOKEN` is the token used by R2 Data Catalog/R2 SQL clients such as DuckDB or PyIceberg. The bucket must have R2 Data Catalog enabled before creating `r2-data-catalog` sinks. + +Create the events stream, sink, and pipeline: + +```bash +bunx wrangler pipelines streams create hogflare_events_stream \ + --schema-file scripts/events-pipeline-schema.json \ + --http-enabled true \ + --http-auth true + +bunx wrangler pipelines sinks create hogflare_events_sink \ + --type r2-data-catalog \ + --bucket "$R2_BUCKET" \ + --namespace default \ + --table hogflare_events \ + --catalog-token "$R2_CATALOG_TOKEN" \ + --roll-interval 60 + +bunx wrangler pipelines create hogflare_events_pipeline \ + --sql "INSERT INTO hogflare_events_sink SELECT * FROM hogflare_events_stream;" +``` + +Create the persons stream, sink, and pipeline if you want queryable people in Iceberg: + +```bash +bunx wrangler pipelines streams create hogflare_persons_stream \ + --schema-file scripts/persons-pipeline-schema.json \ + --http-enabled true \ + --http-auth true + +bunx wrangler pipelines sinks create hogflare_persons_sink \ + --type r2-data-catalog \ + --bucket "$R2_BUCKET" \ + --namespace default \ + --table hogflare_persons \ + --catalog-token "$R2_CATALOG_TOKEN" \ + --roll-interval 60 + +bunx wrangler pipelines create hogflare_persons_pipeline \ + --sql "INSERT INTO hogflare_persons_sink SELECT * FROM hogflare_persons_stream;" +``` + +Each stream creation command prints an HTTP endpoint like `https://.ingest.cloudflare.com`. Use those endpoints in `wrangler.toml`. + +## Wrangler Config + +Copy the example and fill in the stream endpoints: + +```bash +cp wrangler.toml.example wrangler.toml +``` + +```toml +name = "hogflare" +main = "build/index.js" # generated entrypoint from worker-build for the Rust worker +compatibility_date = "2025-01-09" + +[vars] +CLOUDFLARE_PIPELINE_ENDPOINT = "https://.ingest.cloudflare.com" +CLOUDFLARE_PERSONS_PIPELINE_ENDPOINT = "https://.ingest.cloudflare.com" +CLOUDFLARE_PIPELINE_TIMEOUT_SECS = "10" + +# Optional +# POSTHOG_TEAM_ID = "1" +# POSTHOG_GROUP_TYPE_0 = "company" +# POSTHOG_GROUP_TYPE_1 = "team" +# POSTHOG_GROUP_TYPE_2 = "project" +# POSTHOG_GROUP_TYPE_3 = "org" +# POSTHOG_GROUP_TYPE_4 = "workspace" +# POSTHOG_SESSION_RECORDING_ENDPOINT = "/s/" + +[[durable_objects.bindings]] +name = "PERSONS" +class_name = "PersonDurableObject" + +[[durable_objects.bindings]] +name = "PERSON_ID_COUNTER" +class_name = "PersonIdCounterDurableObject" + +[[durable_objects.bindings]] +name = "GROUPS" +class_name = "GroupDurableObject" + +[[migrations]] +tag = "v1" +new_sqlite_classes = ["PersonDurableObject"] + +[[migrations]] +tag = "v2" +new_sqlite_classes = ["PersonIdCounterDurableObject", "GroupDurableObject"] +``` + +## Configuration Reference + +| Setting | Required | Notes | +| --- | --- | --- | +| `CLOUDFLARE_PIPELINE_ENDPOINT` | Yes | Events stream HTTP endpoint from `wrangler pipelines streams create`. | +| `CLOUDFLARE_PIPELINE_AUTH_TOKEN` | Yes, for authenticated streams | Bearer token used for events stream HTTP ingest. | +| `CLOUDFLARE_PERSONS_PIPELINE_ENDPOINT` | No | Persons stream endpoint. Set this to write person snapshots to Iceberg. | +| `CLOUDFLARE_PERSONS_PIPELINE_AUTH_TOKEN` | No | Falls back to `CLOUDFLARE_PIPELINE_AUTH_TOKEN` when omitted. | +| `CLOUDFLARE_PIPELINE_TIMEOUT_SECS` | No | Defaults to 10 seconds. | +| `POSTHOG_API_KEY` | No | Default project token returned by `/decide` when request/header token is absent. | +| `POSTHOG_TEAM_ID` | No | Optional team id attached to event and person rows. | +| `POSTHOG_GROUP_TYPE_0..4` | No | Maps PostHog group types to `group0..group4`; set `POSTHOG_GROUP_TYPE_0=company` to populate `group0` for company groups. | +| `POSTHOG_SESSION_RECORDING_ENDPOINT` | No | Returned in `/decide` session recording config. | +| `HOGFLARE_REPLAY_ACCOUNT_ID` | No | Enables the `/replay` UI API when set with bucket and token. | +| `HOGFLARE_REPLAY_BUCKET` | No | R2 bucket name backing the R2 Data Catalog warehouse. | +| `HOGFLARE_REPLAY_R2_SQL_TOKEN` | No | R2 SQL/Data Catalog token used server-side to query replay rows. Store as a secret. | +| `HOGFLARE_REPLAY_EVENTS_TABLE` | No | Iceberg events table queried by replay APIs. Defaults to `default.hogflare_events`. | +| `HOGFLARE_REPLAY_QUERY_LIMIT` | No | Maximum snapshot rows a replay API request can read. Defaults to `5000`. | +| `POSTHOG_SIGNING_SECRET` | No | Enables HMAC request signature checks. | +| `PERSON_DEBUG_TOKEN` | No | Enables `/__debug/person/:id` for deployment verification. | +| `HOGFLARE_FEATURE_FLAGS` | No | JSON flag config used by `/decide` and `/flags`. | + +## Secrets + +Use a Cloudflare API token that can write to Pipelines for `CLOUDFLARE_PIPELINE_AUTH_TOKEN`. The same token can usually be reused for the persons stream. + +```bash +bunx wrangler secret put CLOUDFLARE_PIPELINE_AUTH_TOKEN +# Optional. If omitted, the persons pipeline uses CLOUDFLARE_PIPELINE_AUTH_TOKEN. +bunx wrangler secret put CLOUDFLARE_PERSONS_PIPELINE_AUTH_TOKEN + +# Optional. +bunx wrangler secret put POSTHOG_SIGNING_SECRET +bunx wrangler secret put PERSON_DEBUG_TOKEN +bunx wrangler secret put HOGFLARE_FEATURE_FLAGS +bunx wrangler secret put HOGFLARE_REPLAY_R2_SQL_TOKEN +``` + +## Deploy + +```bash +worker-build --release +bunx wrangler deploy +``` + +## Verify Deployment + +```bash +export HOGFLARE_URL="https://.workers.dev" +export HOGFLARE_API_KEY="phc_verify_$(date -u +%Y%m%d%H%M%S)" +export HOGFLARE_ANON_ID="${HOGFLARE_API_KEY}_anon" +export HOGFLARE_USER_ID="${HOGFLARE_API_KEY}_user" +``` + +Send an anonymous capture: + +```bash +curl -X POST "$HOGFLARE_URL/capture" \ + -H "Content-Type: application/json" \ + -d "{ + \"api_key\": \"$HOGFLARE_API_KEY\", + \"event\": \"verify-anon-capture\", + \"distinct_id\": \"$HOGFLARE_ANON_ID\", + \"properties\": { + \"\$set\": { \"initial_referrer\": \"docs\" }, + \"\$set_once\": { \"first_seen_source\": \"readme\" } + } + }" +``` + +Identify the user and link the anonymous ID: + +```bash +curl -X POST "$HOGFLARE_URL/identify" \ + -H "Content-Type: application/json" \ + -d "{ + \"api_key\": \"$HOGFLARE_API_KEY\", + \"distinct_id\": \"$HOGFLARE_USER_ID\", + \"properties\": { + \"\$anon_distinct_id\": \"$HOGFLARE_ANON_ID\", + \"\$set\": { \"email\": \"verify@example.com\", \"plan\": \"pro\" }, + \"\$set_once\": { \"signup_source\": \"readme\" } + } + }" +``` + +Send a post-identify capture: + +```bash +curl -X POST "$HOGFLARE_URL/capture" \ + -H "Content-Type: application/json" \ + -d "{ + \"api_key\": \"$HOGFLARE_API_KEY\", + \"event\": \"verify-identified-capture\", + \"distinct_id\": \"$HOGFLARE_USER_ID\", + \"properties\": { \"button\": \"verify\" } + }" +``` + +Wait for the sink roll interval, then query R2 SQL: + +```bash +export R2_WAREHOUSE="_" +export WRANGLER_R2_SQL_AUTH_TOKEN="$R2_CATALOG_TOKEN" + +bunx wrangler r2 sql query "$R2_WAREHOUSE" \ + "select event, distinct_id, person_id, person_properties + from default.hogflare_events + where api_key = '$HOGFLARE_API_KEY' + order by created_at asc" + +bunx wrangler r2 sql query "$R2_WAREHOUSE" \ + "select operation, canonical_distinct_id, person_id, distinct_ids, merged_properties + from default.hogflare_persons + where api_key = '$HOGFLARE_API_KEY' + order by updated_at asc" +``` + +Expected result: the three event rows share one `person_id`, and the persons table has `capture`, `identify`, `capture` snapshots. After identify, `distinct_ids` should include both the anonymous and identified IDs. + +## Local Development + +The repo includes a lightweight fake pipeline used by tests. + +```bash +docker compose up --build -d fake-pipeline +``` + +```bash +# .env.local (not committed) +CLOUDFLARE_PIPELINE_ENDPOINT=http://127.0.0.1:8088/ +CLOUDFLARE_PERSONS_PIPELINE_ENDPOINT=http://127.0.0.1:8088/ +CLOUDFLARE_PIPELINE_TIMEOUT_SECS=5 +``` + +```bash +cargo run --bin hogflare +``` + +## Cleanup + +Delete Pipelines resources in dependency order: pipelines first, then streams and sinks. + +```bash +bunx wrangler pipelines list +bunx wrangler pipelines delete --force + +bunx wrangler pipelines streams list +bunx wrangler pipelines streams delete --force + +bunx wrangler pipelines sinks list +bunx wrangler pipelines sinks delete --force +``` + +`wrangler r2 sql query` is read-only. To drop an Iceberg table from R2 Data Catalog, use the Iceberg catalog API. One local option is PyIceberg: + +```bash +R2_CATALOG_TOKEN="" uv run --with pyiceberg python - <<'PY' +import os +from pyiceberg.catalog.rest import RestCatalog + +catalog = RestCatalog( + name="hogflare", + warehouse="_", + uri="https://catalog.cloudflarestorage.com//", + token=os.environ["R2_CATALOG_TOKEN"], +) + +catalog.drop_table(("default", ""), purge_requested=True) +PY +``` diff --git a/docs/import-posthog.md b/docs/import-posthog.md new file mode 100644 index 0000000..cafaf3f --- /dev/null +++ b/docs/import-posthog.md @@ -0,0 +1,98 @@ +# Import Existing PostHog Data + +Hogflare includes a host-side importer for backfilling an existing PostHog project into the same Cloudflare Pipeline sink used by the Worker. It reads PostHog's private API with a personal API key, then writes normalized rows to the pipeline: + +- persons as `$identify` rows +- groups as `$groupidentify` rows +- historical events from HogQL with original `timestamp`, `created_at`, and PostHog event `uuid` when available + +The importer writes historical rows directly to the pipeline. It does not mutate Worker Durable Object state. + +## Required Inputs + +```bash +export POSTHOG_PROJECT_ID="" +export POSTHOG_PERSONAL_API_KEY="phx_..." +export CLOUDFLARE_PIPELINE_ENDPOINT="https://.ingest.cloudflare.com" +export CLOUDFLARE_PIPELINE_AUTH_TOKEN="" # if your stream requires it +``` + +## Optional Inputs + +```bash +export POSTHOG_HOST="https://us.posthog.com" # or https://eu.posthog.com / self-hosted URL +export POSTHOG_ENVIRONMENT_ID="" # recommended for current PostHog persons/groups APIs +export HOGFLARE_API_KEY="phc_..." +export POSTHOG_TEAM_ID="1" +export POSTHOG_GROUP_TYPE_0="company" +export IMPORT_FROM="2025-01-01" +export IMPORT_TO="2025-02-01" +export IMPORT_BATCH_SIZE="500" +export IMPORT_PERSONS_OFFSET="0" # resume guardrails +export IMPORT_EVENTS_OFFSET="0" +export IMPORT_EVENTS_AFTER_TIMESTAMP="2024-09-21T03:24:11Z" +export IMPORT_EVENTS_AFTER_UUID="0192129b-c354-77b4-b496-9be7ec571fb4" +export IMPORT_EVENT_UUIDS_FILE="/tmp/missing-event-uuids.txt" +export IMPORT_EVENT_WINDOW_DAYS="7" +export IMPORT_EVENT_WINDOW_HOURS="6" # use days or hours, not both +export IMPORT_MAX_PERSONS="1000" # optional guardrails for smoke tests +export IMPORT_MAX_GROUPS="1000" +export IMPORT_MAX_EVENTS="1000" +export IMPORT_STATE_FILE=".hogflare-import-state.jsonl" +export IMPORT_TARGET_ACCOUNT_ID="" +export IMPORT_TARGET_BUCKET="" +export IMPORT_TARGET_TABLE="default.hogflare_events_v3" +export WRANGLER_R2_SQL_AUTH_TOKEN="" +export IMPORT_CLOUDFLARE_API_TOKEN="" # optional auto flush discovery +export IMPORT_PIPELINE_FLUSH_SECS="300" # fallback if Pipelines read is unavailable +``` + +Production imports require R2 SQL target checks by default. The importer uses stable import keys, queries the target before each batch, and skips rows that are already present. Cloudflare Pipeline/R2 is append-only and does not enforce uniqueness by itself. Passing `--no-target-check` or `IMPORT_TARGET_CHECKS=false` opts out and should only be used for local tests. + +Retry behavior is intentionally conservative. Import sends are not blindly retried after a transport or response error because the pipeline may have accepted the batch even if the client did not receive the response. The importer aligns its wait window to the Cloudflare Pipeline sink rolling policy when `IMPORT_CLOUDFLARE_API_TOKEN` can read Pipelines. Without that API access, it uses `IMPORT_PIPELINE_FLUSH_SECS`, defaulting conservatively to 300 seconds. The wait is `max(60s, 2 * flush + 30s)`, unless `IMPORT_TARGET_WAIT_SECS` is set explicitly. + +The local state file makes normal same-machine resumes cheap, but it is not a substitute for target checks if the state file is lost, multiple importers run concurrently, or a send has an unknown commit state. + +## Dry Run + +```bash +cargo run --bin import_posthog -- --dry-run +``` + +## Run Import + +```bash +cargo run --bin import_posthog +``` + +You can also pass flags instead of env vars: + +```bash +cargo run --bin import_posthog -- \ + --posthog-host https://us.posthog.com \ + --project-id 12345 \ + --environment-id 67890 \ + --personal-api-key "$POSTHOG_PERSONAL_API_KEY" \ + --pipeline-endpoint "$CLOUDFLARE_PIPELINE_ENDPOINT" \ + --pipeline-auth-token "$CLOUDFLARE_PIPELINE_AUTH_TOKEN" \ + --hogflare-api-key phc_example \ + --from 2025-01-01 \ + --to 2025-02-01 \ + --persons-offset 0 \ + --events-offset 0 \ + --events-after-timestamp 2024-09-21T03:24:11Z \ + --events-after-uuid 0192129b-c354-77b4-b496-9be7ec571fb4 \ + --event-uuids-file /tmp/missing-event-uuids.txt \ + --event-window-hours 6 \ + --max-persons 1000 \ + --max-groups 1000 \ + --max-events 1000 \ + --import-state-file .hogflare-import-state.jsonl \ + --target-account-id "$CLOUDFLARE_ACCOUNT_ID" \ + --target-bucket hogflare \ + --target-table default.hogflare_events_v3 \ + --target-auth-token "$WRANGLER_R2_SQL_AUTH_TOKEN" \ + --cloudflare-api-token "$CLOUDFLARE_API_TOKEN" +``` + +Use `--skip-persons`, `--skip-groups`, or `--skip-events` to import only part of the project. Use `--skip-person-output` when resuming an event import after person rows were already written; it still loads people for event hydration. diff --git a/docs/posthog-compatibility.md b/docs/posthog-compatibility.md new file mode 100644 index 0000000..c964f14 --- /dev/null +++ b/docs/posthog-compatibility.md @@ -0,0 +1,180 @@ +# PostHog Compatibility + +## SDK Config + +### Browser + +```js +import posthog from "posthog-js"; + +posthog.init("", { + api_host: "https://.workers.dev", + capture_pageview: true, +}); +``` + +### Server + +```js +import { PostHog } from "posthog-node"; + +const client = new PostHog("", { + host: "https://.workers.dev", +}); + +client.capture({ + distinctId: "user_123", + event: "purchase", + properties: { amount: 29.99 }, +}); + +await client.shutdown(); +``` + +### Other SDKs + +Set the SDK host/base URL to your Worker (`https://.workers.dev`) and use your project API key. Most SDKs use either `api_host` for browser/mobile clients or `host` for server clients. + +## Ingestion Endpoints + +- `/capture` accepts single event payloads. +- `/identify` links and updates people. +- `/alias` creates aliases. +- `/batch` accepts mixed event payloads. +- `/e` accepts browser event payloads. +- `/engage` accepts people updates. +- `/groups` accepts `$groupidentify` payloads. +- `/s` accepts session replay payloads. + +## Persons + +Identify, capture `$set` / `$set_once` / `$unset`, and alias events update a person record stored in a Durable Object. The record tracks distinct ID aliases, person properties, and a sequential `id` plus a UUID. + +Events include: + +- `person_id` +- `person_created_at` +- `person_properties` + +The Durable Object is the source of truth for the current person record. When `CLOUDFLARE_PERSONS_PIPELINE_ENDPOINT` is configured, Hogflare also writes append-only person snapshots to the persons pipeline so the state is queryable in Iceberg. + +## Groups + +- `/groups` (`$groupidentify` payloads) are forwarded. +- Group properties are stored in a Group DO and attached to events as `group_properties`. +- Group slots (`group0`..`group4`) are mapped by `POSTHOG_GROUP_TYPE_0..4`. + +## Feature Flags + +Feature flags and SDK remote config are evaluated in the Worker and exposed via `/array/:token/config`, `/decide`, and `/flags`. + +Configuration is a JSON blob in `HOGFLARE_FEATURE_FLAGS`. It can be either: + +- `{ "flags": [ ... ] }` +- `[ ... ]` + +Supported fields per flag: + +| Field | Type | Notes | +| --- | --- | --- | +| `key` | string | Flag key | +| `active` | bool | Defaults to `true` | +| `type` | `"boolean"` or `"multivariate"` | Defaults to boolean | +| `rollout_percentage` | number | 0 to 100 | +| `variants` | array | `[{ key, rollout_percentage, payload? }]` | +| `payload` | JSON | Used for boolean flags | +| `variant_payloads` | map | `{ "variant_key": { ... } }` | +| `conditions` | array | See filters below | +| `group_type` | string | Enables group-based rollout | +| `evaluation_environments` | array | Optional environment gating | +| `salt` | string | Optional bucketing salt | +| `id`, `version`, `description` | metadata | Returned in flag details | + +Filters support these operators: + +- `eq` (default), `is_not` +- `in`, `not_in` +- `contains` +- `regex` +- `is_set` +- `gt`, `gte`, `lt`, `lte` + +Value comparisons coerce strings, booleans, and numbers when possible. For example, `"21"` can be compared with `18`. + +Request fields honored by `/flags` and `/decide`: + +- `flag_keys_to_evaluate` +- `evaluation_environments` +- `person_properties` +- `group_properties` +- `groups` + +## Bucketing + +Rollout bucketing is deterministic: + +- Hash: `sha1("{salt}:{hash_id}")` +- `hash_id` is `distinct_id` for person flags, or the group key when `group_type` is set +- Bucket: `hash % 100` +- `salt` defaults to the flag `key` if not provided + +Example: + +```json +{ + "flags": [ + { + "key": "pro-flag", + "active": true, + "rollout_percentage": 100, + "id": 12, + "version": 3, + "description": "Pro users", + "salt": "pro-flag-salt", + "conditions": [ + { + "properties": [ + { "key": "plan", "value": ["pro", "enterprise"], "operator": "in" }, + { "key": "age", "value": 18, "operator": "gte" } + ] + } + ], + "payload": { "tier": "pro" } + } + ] +} +``` + +Limitations: cohorts and event-based filters are not supported. + +## HMAC Signing + +If `POSTHOG_SIGNING_SECRET` is set, requests must include a valid signature. + +```bash +payload='[ + { + "api_key": "phc_example", + "event": "purchase", + "distinct_id": "user_12345", + "properties": { "amount": 29.99 } + } +]' + +signature=$(printf '%s' "$payload" | openssl dgst -sha256 -hmac "$POSTHOG_SIGNING_SECRET" | awk '{print $2}') + +curl -X POST https://.workers.dev/capture \ + -H "Content-Type: application/json" \ + -H "X-POSTHOG-SIGNATURE: sha256=$signature" \ + -d "$payload" +``` + +`X-HUB-SIGNATURE` with `sha1=` is also accepted for GitHub-style webhook compatibility. + +## Enrichment + +Hogflare adds Cloudflare request data into `properties` when those keys are not already present: + +- `$ip` from `CF-Connecting-IP` +- `$geoip_*` from Cloudflare request metadata +- `cf_*` fields: `cf_asn`, `cf_as_organization`, `cf_colo`, `cf_metro_code`, `cf_ray` diff --git a/docs/session-replay.md b/docs/session-replay.md new file mode 100644 index 0000000..3259f1c --- /dev/null +++ b/docs/session-replay.md @@ -0,0 +1,87 @@ +# Session Replay + +![Hogflare replay explorer](assets/replay-explorer.jpg) + +Hogflare stores replay uploads in the same events table as analytics events, then serves a read-only replay explorer from `/replay`. The UI is for product analytics workflows: browse recent sessions, search events, inspect funnel drop-offs, review computed friction signals, and follow a person journey. + +## Ingestion + +- SDK config advertises `sessionRecording: false` when `POSTHOG_SESSION_RECORDING_ENDPOINT` is unset. +- Set `POSTHOG_SESSION_RECORDING_ENDPOINT=/s/` to route replay uploads through Hogflare. +- `/s` accepts PostHog replay payloads, including gzip/gzip-js compressed browser SDK requests. +- Modern `$snapshot` payloads are normalized to `$snapshot_items` rows before they are sent through Cloudflare Pipelines into R2. +- Legacy raw chunk payloads are still accepted as `$snapshot` rows. + +## Replay API Config + +Replay APIs require: + +| Setting | Notes | +| --- | --- | +| `HOGFLARE_REPLAY_ACCOUNT_ID` | Cloudflare account id for the R2 SQL endpoint. | +| `HOGFLARE_REPLAY_BUCKET` | R2 bucket name backing the R2 Data Catalog warehouse. | +| `HOGFLARE_REPLAY_R2_SQL_TOKEN` | R2 SQL/Data Catalog token. Store as a secret. | +| `HOGFLARE_REPLAY_EVENTS_TABLE` | Optional Iceberg table. Defaults to `default.hogflare_events`. | +| `HOGFLARE_REPLAY_QUERY_LIMIT` | Optional maximum rows read per replay API request. Defaults to `5000`. | +| `HOGFLARE_REPLAY_R2_SQL_ENDPOINT` | Optional override used by tests and local demos. | + +The token stays server-side in the Worker. The browser only calls Hogflare's replay API. + +## Routes + +- `/replay` serves the explorer UI. +- `/replay/api/sessions` lists replay sessions by reading `$snapshot_items` and legacy `$snapshot` rows from Iceberg through R2 SQL. +- `/replay/api/events` searches analytics events while excluding replay recording rows. +- `/replay/api/funnels` classifies sessions as converted, stuck, or dropped for an ordered `steps` list of event names. +- `/replay/api/friction` computes replay-derived signals such as rage clicks, dead clicks, form thrash, long idle gaps, repeated navigation, and deep scroll without follow-up. +- `/replay/api/person` joins a distinct ID's replay sessions and analytics events into one journey timeline. +- `/replay/api/sessions/:session_id` returns normalized rrweb events plus an activity timeline for one session. + +## Filters + +These query parameters can narrow replay reads: + +- `api_key` +- `distinct_id` +- `session_id` +- `url` +- `event_name` +- `steps` +- `signal` +- `date_from` +- `date_to` +- `min_duration_secs` +- `max_duration_secs` +- `min_events` +- `max_events` +- `limit` + +Session deep links use `session_id` plus `at_ms`. + +## Local Demo + +Start the replay SQL demo stub: + +```bash +REPLAY_DEMO_PORT=4666 bun scripts/replay_demo_stub.mjs +``` + +Start Hogflare against the stub: + +```bash +APP_ADDR=127.0.0.1:4567 \ +CLOUDFLARE_PIPELINE_ENDPOINT=http://127.0.0.1:4666/ \ +HOGFLARE_REPLAY_ACCOUNT_ID=demo-account \ +HOGFLARE_REPLAY_BUCKET=demo-bucket \ +HOGFLARE_REPLAY_R2_SQL_TOKEN=demo-token \ +HOGFLARE_REPLAY_R2_SQL_ENDPOINT=http://127.0.0.1:4666/ \ +HOGFLARE_REPLAY_EVENTS_TABLE=default.hogflare_events \ +HOGFLARE_REPLAY_QUERY_LIMIT=500 \ +cargo run --bin hogflare +``` + +Open: + +```text +http://127.0.0.1:4567/replay?api_key=phc_demo&distinct_id=replay-user&limit=100&session_id=demo-session-1&at_ms=1500 +``` diff --git a/src/replay_ui.html b/src/replay_ui.html index a873865..9717a2a 100644 --- a/src/replay_ui.html +++ b/src/replay_ui.html @@ -58,13 +58,19 @@ .app { display: grid; - grid-template-columns: minmax(320px, 380px) minmax(560px, 1fr) minmax(330px, 420px); + --rail-track: minmax(320px, 380px); + --inspector-track: minmax(330px, 420px); + grid-template-columns: var(--rail-track) minmax(560px, 1fr) var(--inspector-track); height: 100vh; min-height: 0; } + .app.rail-collapsed { + --rail-track: 44px; + } + .app.inspector-collapsed { - grid-template-columns: minmax(320px, 380px) minmax(560px, 1fr); + --inspector-track: 44px; } .rail, @@ -76,10 +82,16 @@ .rail { display: grid; - grid-template-rows: auto minmax(0, 1fr); + grid-template-rows: minmax(0, 1fr) auto; border-right: 1px solid var(--line); } + .rail-content { + display: grid; + grid-template-rows: auto minmax(0, 1fr); + min-height: 0; + } + .stage { display: grid; grid-template-rows: auto minmax(0, 1fr); @@ -87,15 +99,22 @@ } .app.inspector-collapsed .stage { - border-right: 0; + border-right: 1px solid var(--line); } .inspector { + display: grid; + grid-template-rows: minmax(0, 1fr) auto; + } + + .inspector-content { display: grid; grid-template-rows: auto auto minmax(0, 1fr) auto; + min-height: 0; } - .app.inspector-collapsed .inspector { + .app.rail-collapsed .rail-content, + .app.inspector-collapsed .inspector-content { display: none; } @@ -394,6 +413,79 @@ font-size: 11px; } + .sr-only { + position: absolute; + width: 1px; + height: 1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + white-space: nowrap; + } + + .panel-dock { + display: flex; + align-items: center; + min-height: 52px; + border-top: 1px solid transparent; + background: var(--surface); + padding: 10px; + } + + .rail-dock { + justify-content: flex-end; + } + + .inspector-dock { + justify-content: flex-start; + } + + .panel-toggle { + display: inline-flex; + align-items: center; + justify-content: center; + width: 32px; + height: 32px; + border: 1px solid rgba(185, 194, 204, 0.72); + border-radius: 999px; + background: var(--surface); + color: var(--muted); + box-shadow: 0 4px 14px rgba(16, 24, 40, 0.08); + transition: + border-color 140ms ease, + color 140ms ease, + transform 140ms ease, + background 140ms ease; + } + + .panel-toggle:focus-visible { + border-color: var(--accent); + box-shadow: + 0 0 0 2px var(--accent-soft), + 0 4px 14px rgba(16, 24, 40, 0.08); + outline: none; + } + + .panel-toggle svg { + display: none; + width: 17px; + height: 17px; + stroke-width: 2; + } + + .panel-toggle[data-state="expanded"] .panel-icon-expanded, + .panel-toggle[data-state="collapsed"] .panel-icon-collapsed { + display: block; + } + + .app.rail-collapsed .panel-dock, + .app.inspector-collapsed .panel-dock { + align-items: flex-end; + justify-content: center; + min-height: 0; + border-top: 0; + padding: 10px 6px; + } + @media (hover: hover) { .button:hover { background: #2a2d2a; @@ -403,8 +495,12 @@ .button.subtle:hover, .preset-button:hover, .row-button:hover, - .timeline-row:hover { + .timeline-row:hover, + .panel-toggle:hover { background: var(--surface-soft); + border-color: var(--line-strong); + color: var(--ink); + transform: translateY(-1px); } } @@ -665,13 +761,19 @@ } .app { - grid-template-columns: 340px minmax(0, 1fr); + --rail-track: 340px; + --inspector-track: minmax(0, 1fr); + grid-template-columns: var(--rail-track) minmax(0, 1fr); height: auto; min-height: 100vh; } + .app.rail-collapsed { + --rail-track: 44px; + } + .app.inspector-collapsed { - grid-template-columns: 340px minmax(0, 1fr); + --inspector-track: minmax(0, 1fr); } .inspector { @@ -679,13 +781,19 @@ min-height: 520px; border-top: 1px solid var(--line); } + + .app.inspector-collapsed .inspector { + min-height: 44px; + } } @media (max-width: 760px) { .app { + --rail-track: 1fr; grid-template-columns: 1fr; } + .app.rail-collapsed, .app.inspector-collapsed { grid-template-columns: 1fr; } @@ -718,13 +826,14 @@
-
@@ -863,16 +1014,6 @@

Replay Explorer

-
@@ -886,48 +1027,91 @@

Replay Explorer

@@ -948,6 +1132,7 @@

Session context

submitButton: document.getElementById("submitButton"), clear: document.getElementById("clear"), reload: document.getElementById("reload"), + toggleRail: document.getElementById("toggleRail"), toggleInspector: document.getElementById("toggleInspector"), copyLink: document.getElementById("copyLink"), resultsLabel: document.getElementById("resultsLabel"), @@ -989,6 +1174,7 @@

Session context

playerWidth: 0, playerHeight: 0, playerResizeTimer: null, + railCollapsed: false, inspectorCollapsed: false, }; @@ -1805,10 +1991,23 @@

Session context

setStatus("copied", true); } + function setRailCollapsed(collapsed) { + state.railCollapsed = collapsed; + els.app.classList.toggle("rail-collapsed", collapsed); + els.toggleRail.dataset.state = collapsed ? "collapsed" : "expanded"; + els.toggleRail.setAttribute("aria-label", collapsed ? "Show filters" : "Hide filters"); + els.toggleRail.setAttribute("title", collapsed ? "Show filters" : "Hide filters"); + els.toggleRail.setAttribute("aria-pressed", String(collapsed)); + els.toggleRail.setAttribute("aria-expanded", String(!collapsed)); + window.requestAnimationFrame(schedulePlayerResize); + } + function setInspectorCollapsed(collapsed) { state.inspectorCollapsed = collapsed; els.app.classList.toggle("inspector-collapsed", collapsed); - els.toggleInspector.textContent = collapsed ? "Show context" : "Hide context"; + els.toggleInspector.dataset.state = collapsed ? "collapsed" : "expanded"; + els.toggleInspector.setAttribute("aria-label", collapsed ? "Show context" : "Hide context"); + els.toggleInspector.setAttribute("title", collapsed ? "Show context" : "Hide context"); els.toggleInspector.setAttribute("aria-pressed", String(collapsed)); els.toggleInspector.setAttribute("aria-expanded", String(!collapsed)); window.requestAnimationFrame(schedulePlayerResize); @@ -1857,6 +2056,7 @@

Session context

els.frictionMode.addEventListener("click", () => switchMode("friction")); els.personMode.addEventListener("click", () => switchMode("person")); els.reload.addEventListener("click", runSearch); + els.toggleRail.addEventListener("click", () => setRailCollapsed(!state.railCollapsed)); els.toggleInspector.addEventListener("click", () => setInspectorCollapsed(!state.inspectorCollapsed), ); diff --git a/tests/posthog_endpoints.rs b/tests/posthog_endpoints.rs index c3d347d..7584c75 100644 --- a/tests/posthog_endpoints.rs +++ b/tests/posthog_endpoints.rs @@ -937,7 +937,8 @@ async fn replay_ui_lists_and_loads_session_events() -> Result<(), BoxSearch<")); assert!(ui.contains("Funnel steps")); assert!(ui.contains("Friction signal")); From a6225d436ee98349a6017bec5f1d9e08c2500480 Mon Sep 17 00:00:00 2001 From: Nico Ritschel Date: Fri, 22 May 2026 14:21:25 -0700 Subject: [PATCH 3/8] Expand replay player surface --- docs/assets/replay-explorer.jpg | Bin 124761 -> 184972 bytes src/replay_ui.html | 70 +++++++++++++++++++++++++++----- 2 files changed, 60 insertions(+), 10 deletions(-) diff --git a/docs/assets/replay-explorer.jpg b/docs/assets/replay-explorer.jpg index 914c49715cb184f38408a03e70a4c3293e780e63..0f5c29eaa49158fc4b5672cc18a42b1d93922889 100644 GIT binary patch literal 184972 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 literal 124761 zcmeFZ2V9fewl9j6C5lQ3AWaQDp-2e`2#Z1jK$(u)uXq!4;X za3Q^F0s(0jq&Evqu|0I{ea_x%?|1LH=e+ygJ@2=_{C+dvnBS~p%rfSj|1rNm|Ne^W zxG~%a&b4O`7uTNMAJ_K@u1j18_a8WTVE@5`2M%&`AN+;qI1kUELp*{U?%VUDz<+u6?cFUd_nu!4?S6JV z&b4RX-n|EYImo@Ad;g)mdk=H%*}HE)-vR!E0)nTlxm7PBtcWBQ@JeuUeg!~HT_flg z`4_2Q-GoF?t`90(r6HGwgf)>iSlsO@HWaS~zgyiVbN2N+Ir;Zbc2gJI&GwJyuX+DW zeK+^rk6^ytPrF6q+PinpzI_LNgy7q=_w+t~)%}PAR|M29-Vy}167wrq@4k<79oe@V zly4s&*Lkk5R{xgRf9S>NacJ`MfPoGpt+!TTyr1fMe&gC_a=61w70Gbaq3aMx`5VbI z4okCFM_hN<3;w_TktnxtVg0w01-4h&B98{6(j3IKGdn`(!iY>0pi7SB>~5faNu^z9 zvh`asqaF+9QPW_S8|8|$ZX(o)A2(MxIj4#pEOgg^G zAGoMUdVkaS$PZ_arHS+-7xtYW&TmNm9u?t@yq^wWf8~#`08-Hg5fGY^hZO1j>h2dT zQ<^;m7Y9UR~u=gxAF@qtdt{lS5YNCGO zSj|1vlE!6v6cWv%o6`w;a2X@ptu95Qg&GE^z-E#~-*mZYM6=WIeMSJb1!j)<;5_e` zcuTd(gfqYhI=$3K^3kdVd}1eHsF{2D_ei7JCO{suL!(Wg?F#9f+b@i$T%Daq-mIsG z$LGitB``vH!g+}?vWC-cu~NlM@ps`;%5`9oS(lNY!446d8Ci$NUr>6a9)5~B4|l6? zKDzG?XF9$5v)%!)kP)SOem1}EQg^SjLh4N z75IASU~{kY@&0{Vp&jMvQ#sYPCYRA$9O^JS(g*)#P>eX#tqZ9casLk>9pU^)Q&ucO{t^AY%*sJ z9z(uDFu;j-Ez7nGAEoP2Dl)eI+R<(`;NszWhHC-ExC_i;s0Qbg8(aB|@kk%6Ah(rn`Jh z3Dx3Wx)ABaRs`Szh!K3uHaXhU!sIKyofwRdyPMNdTJQ78jTXAbK#Jq=WK3E^+oA>} z-9lD8A2H-Af@Ya!-Zl|gr3%{MvRo-*?e|Zf|rHi6=;(!Xmhfb zWvLAhn^~(JP&>#&?vI(JNS=F*YQ@=3{t`hJw)##7%nOZm?A6_l`gHhAkzmiW7KZx45XhmMmlaYZF7<2fi3 z3AfoSFrs(Z_pqc52&CB;vGBM92ccGA?j<(gAANj=4kKC@VlYZdkxXpjs` zOLNpjlz=YmI%j2~Xi6+4$w0#pAvGxFv@dazH(>|~oj3T8_;8LO4t3vj(FR34$parI z0zPvV2xt(9{uYCmsDqE(I1@t$WpA5Ul~Q{*9V*IDSi7Yvl)wkExS5{64D>YFuS*tJ z9%~&(uIoDmfl9P^ShG7;Rll?rcaWn6N((|OZS!p!A{zsIP~9<%kNDhl0H0NF3~e|s z(k!n_)mQf-!~IDRsP+op{;KWxiqX1$DvV&;;o1WhDUH`zZxDOhgdg}~a+0m(h3A(| zHPdx-bhX8l_kNNrb=P2~${K+x;(;~WFnnFn@_POb0RaF2l;a2E!l6E5?p5}&AAy3A z-u}etcPuN`8+)S!tA%mz{na0%Ks}SmPdW;tY~R=+lt*+7nr{B;Kd1XxE`1~y?WM#E z7dRlKBsx4?33}uj(yBN-5RsqEa-Bn&j-u++ls`{yZo-?JR_5rD^3;e^?_XF4=}F&# zmD5xox%|RfnyOe!%@sGdzrGBF`@3Nf)H&UVRlluyo!m5Ue^pIF@J&5E8=1SWAn%bn zMWK`C#y5m))(DjxH7#wv5Qa@pjuLjmCv%jN9W%3ptj8h-Y#R9NA1zS1=N+$}>~x!1 zhWe=Ts^t+^?Q1fC?G&;jg7_F5jFjTT)&<*lCpB+pN6XtASWO8$>o*qnFF0CsO>!x= zym2=pP;Yy8KRvmk3a($_0pSX z{rrW&>En%Cy-W^+s0Rkh%R?55Ug zqSltlBq?QY6|0pllN}gYL5mypEx9(A(`7slMZH4ZN4_3j?@{t_B?MH_HX8VC{D$P~=n?B_4M9$| zRV~IoJxfDPD`O=XSY!Pj_Uo(NPA@+Bnw|)?p@Wn+kc;z0h zF99RNLHWkqef6Cyc9k~N;8WPnXaKS8eF2sFjm9u|r3MN+fkW5uY0(+#GR>E-iHjM& zGYz(T(;AeZdz^Hv#!tya#wJpp;~-9ZeO6LEAD?pEqNntj;<(AhTS!GK#864l@3fQo z00Ygd3>F{%pu<$eRYdDXm9XP6q2z&Y0PzpsBKW-7dgD4e1E zV>G_}yQ<>NlSzVY8!jfeX#SKPjq!2XRpKgM7B~tSh)t|??~j?AF(H%bQx;}3mrk~8 zu!5#QbSlkMr_@k^N|T)BbTDEYMID9s&XA`mROsBmfTc4!efR*;+ZF`(D>%^pKFMWs$BfeuiUv?QG>3 zI<(B_@>lIkXbTsZg&hnmOQ8}fJHSG#Vd7~%#LyIgV8d&dswh<_>WE=_1IbJYatP_z!_veZ6z@eEOYlaDPkE$CKf%pj7%&Q)-H{Je_bP{_HBmhIkasI zs>E5o8dhO;V914qZkeMd;F4jqw&?IsZg`*%rCjU_Z){hbKMNqbeO$SDKNV z0k=_9Pj@@_D2%?}vqyq?y z1+{FO{Bqtv6kku_1^5AEoRF5oBhCFqgtaOP)>^F~bS3NQU_Cs`wMM+^nZc#l>3Cka z0@?s^(ZR6{>SMbSQ!ef2u7KM>t7q4~jF=bB``G`yB_}vUSs`iqW7K`62+Z^Y00Eg8 zg(NJDQ~+qCRSSAtUCqkvV;pGyXQQvx-?_lXr07+-t)VZ>Q-7U$0Dn<|Ux9q4A;ak& zf;H&`q~HUh%uMDDeoa+9f2VF=Nx#04lhLmBa?!1^Zvrnr^_ScKAO&DqQvEikp|TP= z*WI*MI@NU3QsT|NuE6Zb6wX;mIati^qaL^iRhmf5rZUPwg*s!=U*(+&zV%w1%oGy) zP2Fh0i&hw^RIpTf+eQcKG0AC^8XwhuNm{E6nA1QDvF$w<^>*24Apv^jgR(%xx>=64 zq>{IcPy^5&(SovO03Sj}YtPOv&$=q&j_l*6cc_NmEzT?Qzu{riFlM!oJpeZrfB;1j$zaIqp96>a*VDiIp2Vy{5_)MSE7 z=BKvfUWBfyl>JWE2s=i}I#dvqU!h4`i`HpaMSfkoI##>T?@WJer14O)3$k-5;Z>g* zxw^h|0H(=g(rl|hAdpg4<~Fpl%=XTP<+&C;a3^}}x@Yo*Re#NNHH(to_#1q+c1i=0 zAr9$_8|lLz55~KSgvKJK^-Ux01+K_|wv9V{ zPnJ&=w{EoYbxpTd+cWr>c1t9Wf}9F)mJ~p%YcW(i^gRF0NmSC%^rQ4XH03M@7it$h z+~sg&om>lX|7A{J=|z09n$rXarJNUeub3J|iQBnRkV2isl=vF}LD-@-QuM6S$#%wu z0kK)N%R)cdsksJ$f1U3o?m9R z%{qFgY^qwY1QQ8-jy>pLNRL0Mb>~;|by_~IhQCritNH2fs@9?dIY3XuXw&23(qQJv z>&jZFn8kooJ3$F<>A9!+JyLpW&N@hAPy9-35WTPH^F`Y!=SFGmV~*Z(@^jkjXC)F3 zt|vTyAf^Mx6y?Zb-!>zhv$s$-#a2MMi`-ZKLo?K#uB!b{3OrABzv~sMJC3q%H@*f$ z(kUtKQ;SmoL_j3grV6HUt&X>-js8v?6v`7&UPK~k83>niOtd~|=W&~MHJon?BFM8! zY>@XJq)S82XdN9JU+{EiEph1C-7z^r6@zu~K-t$pSD3AV?QLYDOk$dcCoReRs+5wu zi&JUv??;6mLpQK|CAnqCe?OB+r#&YQXlw*Ee}E{t2h*LbgRz^ZM=MG#fL$7Ixw|TS zjn*wM_m#Aj*IHK)+hnp9!9(n8TQvwRJA{t*=jVF?8@T#=;?*e|&p1~7la-gwd2Q+G zq%ayRUsG{lSl}lYrGtda4=VMwp!01P1pxiQb^|E*TbNmIj@)IgAYaxBfY8QDhl>xl zrP##sXT(;%e28v(_ITSDpKI|+y;Z~DU>nW7xUhYh>LQibE?4Mk+W!WsDSKyl6gdQIc6B*LTq*n(y zRQKpHSplJa_p}ZZySG^s@zAt}T{YLv2Q(!RT6}Tfe<*rL1&_QckHHX1Dreue9wD?& z4X>0Is$z`Gl20{}JHvJ8Pm25=>w9c%`UK*xwIxRh#Njk5Nc)Ix!ll(7Uvoz`KhOFW z-lcIx8qxjnrL=Dt`I;v zt8~`zOdlmC+nep0e)qZ30hkSNytEEmo0m;9 zI5jcL4_eEj`&W+CjnsT1n96ar1vXymvM}O#jJ)4+6+Y$8gw|wJvp&TmIJ2GfMX5Y{ zZMp=ne#d@RVUV-VwmkvNPRfPY28YL{_%9&t?_`|Gf@LZO8Y>dsl#L7g3#v1Sn*UF`UD$;SAG*s?NrsK zW+4tBGo#F$N+Q6nIBNI2P3KC|vCyvR1pA)O7xVPz|A=* zlqvJx8#rRw7sb*S$)1OIUEuftY?i30lk}$162!>WE>)unyQyDEEvcFI*I9h0+|^W9 z-LmJwFG#>rJbZQvx9C8|+G{I$ST8SumZqfr=()e-!y!yJJ1L^jLK>l9PuTH&xRJ*$A*BW(C<+%^Ontgs!&lF%XGB!1yCvc8263-Umuw9}a2A&(43txp* zQ4IeFwcoH=w~b_tNVYBq(F{@gjN{_7nM!8a@{21Mqghv0u<{BDi?*9hBoS5&W4TgH zTH-wK6K}jd;?n2UoEk!KQO#)RN;!QFzgCB8oC?`U^+3Ud6syJH{cAMfz?9!aV0+izk%3@@}300OZx4JE0+ z4hJ6fm;d5#s(;QN>8@d#rPC&PwR?Vd$-6MdrO*0A-ZMXv0EAhizI&z4p z+#_01vb>Bm5>H*=D7@g8XJ0iXR>)!zabIW|_Hp#sNapg3!i-CX9q}@Xyc|8Yffq|n zZ?u1A3Dv(`X0|K(VFlH2`_hW1VY0^BS7}9IlI5D3kXRtFa&QE^*4_xR?`61GnDNr- zQM{7(HW$$rcF{f%ug;=kDYsgb*-~yw8f0W^Zcg`7VDG_^mWpa*kIhE!Cz9-ZFdodr z3)*@d*q=m-ib~CR3pLOY$?OQ0Q&YN+7*P#(6ZY430vxek^2*_nLU>OI#(V~+ENvGI ztW1ET~~r!7$T7u1u+j@M#wOUHgsZCV@Q-hQsn(C3NXFYL9=ZDAhZH6Jlnx!#mjE9SX@@!+#TA{<+ z$3DeR&Wv9(?G4u_$(m9ZMZ4{XL&;MB->mJF+$d6hvL-q8kb@4;IEf%m0%E1go(9+! zl(9!g4GLp<{Y;xQhV(`F5@O#y1_Q>haz#A?;1q1AZp!i1gN3#p`%&>|06-nYQLNIG zE#N5mc-HJ3pOB^g4@c+!+Q&cEku({%@ogO$zno@75BvPhFOOpc;RONi(8ei0w)Y!b zCt1i{o7d?H_T!-LoFn}PV61A7hY2M`3omx^@i&+D$nRXAZXVab1nMYkLx;@)@iIDfXRnEpz>U6eRr>PIt+s#z*R+G zxSI&r=#^o~He(YU@tjjg{=ZEN2{m^wuXNse@z2uySzUn4v2lyl;!pNJsMrUl-JHg$ z-a6E>;OP| zbfnF~d_>KJlBNa>m}yq`>N^z09U)ng-?91}tu395@l;tGZ zrhuW9uN*#HSj;f3;k#%gCZ>khq@1I1;<^(ly}6c2H4L3%u{ zf5Pr%#=vi9vkl* zj9kVQOpER3WBAg!owT4vuF(QAC7+y_7?;TtdUk?%A111%sYMgbBI?0Yj}@fL@+?JP z{-`f;q2{D-b#;Hd-Kq!l@mz4;(UV76;rosxmY&ny)lp8^a6B$uE+oXNqjMxB-;#CXd;o7g<;M6k&_L6^)na5ea?tWkkH-zpj(w_3Pb$C z3XEp$jIjk^kYn~i~XkoW-eZhF?518-izlZAqUHU))+MX44;g*S%JC+PGsYD_F1 z<&+*~cy#HgV!lKWHdNsRyk-z=-DDR&*x##XW%;HG0g%mJK zlaagKAUZES^ND?7HH27U^>uB&U~)n5iR zLCht#1*No>XDbAD`n+2SQj@M|v4!w-HIxpdD38qbg~@K1yQPs?M1^&obT7sJ4I#prZ0n3e{qd~t|EPdmum5t zLd<9cobHcAZj=q4c8)tr?3r?wi8VuON@)!G?e}X_EJOKL!5JlKBaDTBFXn4zix>VQ zS_ju&qdzbi$he4~hopO~XP-u!&+^~moQDq2QgJxWFQZG&b9U0m#3d%O64)Tl2(uG> znUokjt95xzOIRlbS)Z6-{jAO6-1S0^+N_^A6K)2iD{+!AQV8ZGBcm4DJeda7y_IX1 zQMG?f+48vg^emS^eZz$x#2(%F2VDQZ^Jv(byL?1BLQP*col8}J@>ucEs|)(S{ew98 z|Du^#nSCD4ZHx5ZTfFzH0@?F~wPOWx=`zz^Sk`6^T^K7dbd%HgO>;r}O@SHtBV)=s zTGLpCj8Ro7lu&CJpDU`6wq@1UjhJ{o*18xNa?n-KqBKGPtT1KU-jru#UkSuB0)m64 zpZgNc6tCZtD!A9(BRQ5y?E;PQ^+ohDnr?8?U_PUUbUH9KH}iIg>GllKd0sK059gM( zp!1ny|5=IY7I)`@PfHZFFvASV(OT$t+w+hd$!n8m;-Ll?tJX`U4J^75Q^GSwR%JG^*QMWbqz3E@ZRqzXX^ z*p#OZ&5nr}vh183xo&FkUTa;FH(vR0Y!3`_P|9+FMk=*aAp497-bhh?Yb1OPHD~Td zYzv}0?jleMDI?m$?=Pu!Q!^yT5U7Tbml=$~7<|zJ-dQU4l6B&Uw%vv!4sxWB8U}f5 zpzT;XnT8>6ZqNp=h^W8&db-0$jP566s=>M>2JmkuNXFx8heZBb#)wLNqk{ z%7pu2Nl-7fu%BL9?3;*9uh=>NVj~L&n{RwR@({N4u35BwCR1^9r=CAU!AZs>M-hB| zWX!53Vse6Lvm|@WFzWi%5sXZtnZtkIk__7KauGB@!T+N-OaL|G}(hqq;?+iQQu^ZgkRu>W6F zr{UO9bo;RD90mkYjEk%N&Sj~5={pzwCseUp<;BBY;M^;9lnlyD!Vh4kxNTcZVCnaH z^v)n%GBRlooKE4R7X~7sC6P)HbM*}IMRA58C>95Gk0cqmqpFDFj1Z|RNH1q)IP+_& zL=~!f#=i~~p0WB^X?uLTruR3lcNXJd^W}2i5Z)){jzMSWaXM(%sv-|F3S!mp)zo?g$FBcIY3QK9kh!M5GeO6eIlP{`wT8y%Un7{W@vHuXxJjk!puyu3Nbhe>D~g7 zfxBQ3ZG;l;oAkM4k~30OL<4IYN$Nb2td4Qj-v3{G8VdE5#mCfXFOPK>7Ck0f%( z4}GX2SgAFhyUE+SKo>rE=R`p;>M@Fu3hzuH2D?C}`iC9XWj+n^n_H<8q{>)3cEXqG zh3rgw?J4-;>%=0t&TXJJNy^1^Zo-vE)Hl!jtJ5I|C8E0uG=%(^JM+Rt}r=ncRdqVbgAA}ILj@eMJA$UMD(s09K7 zK>?`aWvmMybo?zfhIVB1wUpyuZ^j~`4Psuud%fvTf*CZ>NQNABP=QkpiWUH~&I!2| zX@Yy=r}AXkgK`zvi>Ac<}`|=9#OA zp1znK)W|BC!RA3y!%|9M7>}jK4Pmv+HLiu=MSbOZyc=dA%S?&iN|S6@42`UGvS-+H z+=zVYASF(OleagnvZ#nC>!Ew9n3SJzkHvv_B8^kqSNd(%V2@$j{*9pg2t2rHUw)Ov zRX-^@=uG|d(I-_GF9^P!hm>gmyl zeR<8l6#whal4A&0P@`__SCxAPHYIM7rC7;MaEj<$gFS5#!eI4Nr!8Mu5yp zyQVkG&ZSw!c-a|yk)D3{D=Hj|_B+!Gn@9Le?;p9p6Rv-2bIUxxCS1}?GO&)-tToW9t_kfdu%9R{xCXAf$uH|em3)2I6=&Ni zaUfFI8sH?jzz}EYsyoNfv(nzfG@m}TSE6WqJioHABqBpIy?V&Ud)YfLXL!g8yoBO= z8j;fPS4yX*)vWsCp0TFnx)!Uiig#oXkkcCDs)SYq@S>fJ3C1h8v#{Ujqz93jh^}$s z;3l~jFWm5t9rj+0zNYVY2sg5T(ay~xafKR zGQdanJ}N>0Vw2!%7AGnid-CY`s4UI47B-kr`J%_~>xHoT^LmR>B=nVaFM^-B9s+T= zJX6l-E_*tF!X%+fKaCH=jN{kA!j;V-km?~LjZ9@!g}r+h`H4G)K{3_OWgI7o6x~8J z5KsB~8?DnD09Ypm=kj^@o!)XC&`Ma!fZBM)7mTQ)Wa+()Y9z-*9K_fsITPl$2wcKeH#9&-Yy9GB*(b*X7tZSizb-_b_0N7I*jM zuUV`e#J_PDE6*qNiRocB3f{z!cLmcjh-~C|aiZ=B-Ju_tz}?gj9_R$4%m1 z*WflEynii%v~H9KU9kbqb;o*Rb=5#+TJ(uKW4uN|I`S2UXU0ITe&O#My~Of{qR)~7sJKmJ@;kc5`%cn zH6ZL-db8>TT5%5z$t>f$bhh{vFZbj_k*A%jz;gvfsm4*JTROcZQ-WUf?1|AFWO-x} zcW$s$tc|O^ZoCd=r^JN!4j}i4S|bg`Mp_j)mZFuncZ@d-aL+f?{yfs}k&9S5f90iS ziuBuNgB9JmX8_c3wzY{hS|iZ9ofA&#o$;|9HrWNC&p^$S@3vPraTh)TRq$ZOF(19J z#^vHDIV8n^a6;l>mSmp~NDhDn=1jZ5Hlp z+}U-Ixn%%?h$r^W45R?u%)ZJ&?k!3R|2Cwf=z3dEl159}RDiaRG=a0JNuix_?O`Q! zYFzEIrM8(0dr}TozC=%em*#*@7e|=LZ}$5RL1O3)qV%{&y}`lL&vCZdw!ZcEq*PDX zmnEhQL1e;0S!s>MrCr3uQURAjq^R?k!(9HlNAC}{Kfp7j5i&aMlW|>z^ifJKC(Ji4 zZl1|`G&d)gpI+S<;&Sf(bQR0Sb+|qOJM0-*~@2U>34yftWYH(zI>q00E>i#c>>c>jD0yAaVI(341#eN>73=gUsf7n~o zG#8T`?Z&}-1>*n+#5sPz?yj{Ibty=jF1hNE(m3C2`{?sJuo$vBEluY`?(B?WqzR-t)8ps&oG)Q}JGSara8$$N1o*HVUdE~b)c!Ol@if;ch9nSdT z?}Grm%%lwb{^u6(9azL;4W(E(5_E}?V?3?@EqNbLO?_9gEY_Wq)-~M>xLaE>R z7)#F>`pzXhbKp0wz;_FSd_t;m)64=`S%;K6Bv{`-*S1p&Y)?QTF%J3Ew8e%|>6zqT zWuoGQU&SmeyczD~(6ZP`I?W>Axh%E`21+amoVmYWR~Xl>nk-3p?2yH4@xs-tV=`7F zHnixgoqp}I!_rq5gy@<%&ZZWWYH{x^wKP)t(+LDv+Bljll{;EM9B2gkW5~P6>s|HX zY2J>mevEAVd0xzAg@7%%@fL9G({_V+qKirBR7ja#|NGU$zpE|{Fa+D!-djfUfPqxQ zxBI?T0YqnD7I8S+l~YG4u^;f{db0A%yR`vZzq}h*?@ldtW39N_O{9p&G_=&N1z*1@ z8!8h$AXr^*ou!B;j@GQvGnUH;^btMO(_Mpvw1>ejmhrkV`^aAAzsc^SG{Oq&Q`{l- zwP$89OSDbZHhu>dv~lNOS%Akx2ix7L3D}ed z$6;unkL+h4h&IV3A(>1f9HLN4i{tkZu9U={N|DY))8UDO1lNY%5@@hg$wUBj=~6B$ zLimY>b1qq2DCHRinmP7R`e~+-i;vUOP)1rXKKt39W&dBM&5f_S=PDG&X_)~w1F#6k zzV)%t-MynSnFG>|s~(ESMzu@RG`t!+c2~2F9L3bfko&uEaEzG-Et*wWrF~LrQ>ke( zJ_BGg!2$5y6u7>plk+M)0w%Ud$~-H&FvYKPut0o-LF|p8W)V?*DDAYO`N_lFlvepE zGiXxpCn0phQe0{9m`Y=J7LmU@CMyvtbc+^q<$*{XJpCR($=(3(*&^GM`em!pf9{g+ zag52mXC{zy>}Tv2dmQxMS}c8ms9njdi-e9IYy)tV9d!s!)>}*ETH8%;7yUQt-o6O9 z1*IwE6%@M*-tX9dWT&Ei*vH``5WvN&vjRTWE)!?GBx;`l{H$dr;LQ92unsD7`t1sy zf&ApP6Cw|LrN!vNo!VdG|>J(*=>QK5n*|OrJGI z2LDJi$L1@>kL$vjtfk^N6H2zjEQ+5@ZyZYji^B_%c;?Zxpr(p*o04SwPH}Td2`N_(&HVpvbo39GX z6_vC0w^9Qe4>nX+2dd>t2TzTO3}c)^ZMvfdn{%wf>Td9c=@f4Jf7r`tRxCbD358sw zoDGv#MWdAX^-fA3A6&>%lY3{BVy%9&sXw@J3vaYGH3L~$N}g)!=Gny-AxfY=2*sFK zcc?xcIKJ3#@<)N9{z!Wd3;S5g2H>Rf|E>>g~ z)|}0W$jsKYmVDZ**dWA0CarUQ2$yW{+S7m7#A-=bWp2x zv4VdvHX|A6CXu1c7?}rs`MrN6`K`r|Gx|y&qwV6)ySBMU9K+qR(|Ttwym_NNT(3SL z#}{_rGdZTYJN$sbPhJ!cG#!p6_I@T~VtrC3XhtIJz;eBgAeD7#v!`3d%cKrT1 z(;T>c>Sx?fL4o>nKjNz!wL8z~J31a~DEtwT{nv=z|BCp(#GI!;B=Uo+^FO#6@ssSF ze&vz-gXKS|_C2XTnR@PrG{l}e9;xctW&MdC@)G&&k7(*Ye0~b!rxgDsjKAgS-!tbV z_6M(2>-Q=CP3u2W^|LkW4I($P=?`xoet5F~w+Ku|zGg;s9QnlQxD%%jUfjEX-@>0} z<~@J0hx~V=ls!YhA>#+MRO1o}wK^w z-^t~6{FZj*X$MuFma?u{o5A5T@6@()M?zs!AHNB`9K0=|^yGCLRkq!SHlbw7oBOWP zKvlG<>aE{+-&#|NE!vIy$XB`6vDmMYOCuELnsWE%4$s>sEk zwR&o6^h+toIH3B@gv*CrYk$0Bm@$Z|5xqcH)KAUtF&$4Kh0YXP7!CRn0gRiB_xo!0 zC0x^ssx*M_Jn&7R`H5wg;Mr(d_W&)c7hgseAqDJye&bNum?I}HQxBJD`y%(=YEDzL z>`VLv?l|_h<+Hh&uaW5}7>-|`R&F7F%uOm(TYS?*d1J1IBb*Vc{cOge@T^O)^&bAIE#6rR^Puf8|MYYBYn4!?Vq!I7gGh*=`aI>^21ST z(v~e+o<5UQhC6cVS##%bl5bGM2kjC!1ZpsNj8A}qTz{mQ%vVhHfJ?yaE=Hr?5WB~b zt`!bPDTuW&>!q5f&|L$gp~SQkrTJ_{eOw0}U#&iyib|EX!z#nwLkjR_FPpBR%zCr> z_?wkd9=t8Fw=o{Ipc_@nT|prvUc@=B^9*+uJef&4Z0eEV&$|~IH-@c^2rXc#Jl1p> z^1p*U9xqyuEI^5Kbam9!*}1C7M7MYpV^x%yJ&Pcz)y)vH^Ao^=a;m0b_vBX1+ZG%8 zn3I2)oRMhUl5t4$uBjAs3tH7sMiixqVw(fLD6k)O!SF{ar*{-w(j-ZlC*}!Gh%Ebd z)YtK5v1U<518U;KglYsNpRo&jmm6X~1)nUav4r#!9OHovwXO~y)AF_3!Sz=@<{XqB z)je8DVfg4*wu0TEUwn(kp5a_mJlW^eDx-O5ZLf>lMtFK;i)|rq9W(3+NEkjvyspmZ zWfYa`?;7S%dywh*BZi~=rIbP=p?9p(YCI814)Jjso%212@d`y zGPw=Dwkb>deL%0s_hjfqDT4Eer}I#XXzV9CSwd3y4c}spwMv}X{>03ueNs}l8uSiB zx-0aQvr+&O_?PUUbX@x9Kze#+dON8$^!!%za%S1rB_9E)A@v9`MkT$nuki_B>C}3+ zQ{s0n!_?(?KV9FQnP6S_F|{T%F|ss(<`ar;9w6{UpC~SS;^d;Npol+f-$Da%27R#w z8SXDPojk6sWx0%;c4}k@wb8`X=@mSN{K61YNiw9d4&=l)>eNeX<}+b&hR_$1S;$KW zo^>Mu)~d_EF>N+Tw2Yz}I~C1&YFIbn{VIZ`!78oA6j;rU)HZK zFw$TcmOL9ca(v(ywF}4hZ2WB({PCU~xhYrvGAr&cNZmky4lY#8veM#!xgzO`)o5e$ za7huoVbD&!z;QEpids7dZBCrVCumt{gbA><%R!<&v+dKFhLY{%9Fftk@YNBpnt$bY zE}?I?V=j^fIuZ=5(leFBZ4=Vt6}E1goQs*kqCPd0E*GtROQMn04GONC11w@0{P#w~ zQe}E{>_W7ep(-gB(5D`>o7L-;;Res8Foq$dOir( z#+uV`pxXA!@a(U`bJjInus`$UACFJW8A)E%9~19?1zVt@UA_awwsb0gz5qCTrJKG{ zx#P00M*N_9k%;8s#MjR?Wt?d36~d4Q&z9V;;e+WwPal*R9yX7h+lvZS;5B~`p(Jyu zMmg~*1@4cdcBx7aM206KYZ_DMk6HA*0X|vws(pSl!k_}C?(Mr(xlk86zmXP<^)Sy8 zUxlY%#_c$m6{wARbS~MK#bsFo=b*055gPu;4SR-%^+ToM#Im@BOmvgzwebpN;Dg=? zScG-H19^Q1?chHd{tz~wWk`FEYL|*#!3Crt_I7?kF)M2vlPW7hvqwR)GuG9&Y`FIR znIF6Keh+9kt72lpBe>X!Id=e(uv+)X=fp(7bxu|Ji`R^+SDJtS@8}odGd^4882?dW z;{i+EW)@D?=3k&@v5Zx*s`O@sKz%w{hJz3oaVxp%*F5u~F!`~L6p@+=TTu9KTjQTn z+8LEUedG0gDUr4WkTZI7) z(fgj520khygh>pMv)UBDrv2mO!qfcBr19xq?Q3i-wTD;n>rMJn;S3$Nf<#m+qUP-B`dQxKlKJ1!lt;6~e6LT;9`>l)RphqVKjeF}~ zQEgoBS3Ij&MMGBo-U69*5UsKc62FTh?Tv2rCFmZCKhfqASA&v(j~6L+(*`qCZrNEH501ipVszx6xUEoz+KaKzn*w==zb z_%eP>R(JK!XRYsBHrB{8*4SM<=if1Xc1L;-*U1ZiO79<#4c47!;_Q3PQQo64DRwut zsEm;&mc$p^pI23->{SH>Hn{lG`=*redf9uX!yjC!IeS(9W1K-0hhuF4fRd&;&v6?m zs@m+Dp2IITd(`mY8^mUV+COFb7xJIrBtMkeSDbj$zVT~r+WxK}-e{5H4mr}DW2Ea7 z0uEr5Is~9TWzAZ0$fa|A;MMCY`p#7t!Ce|{fXggOJ2EauBR%9vg<>qsQetryC2_UE zxB$KIf1Wqj{+w;<*XZzZWOB>q$?~^Z7gCjCtX`jWa+ZoQzRzMq7w3rf3?jj#!FShM zSMK8PNbhe1Yb)#Fr!ji>2S-~V_TFU-SF#Sww9eNX_jP)#iRJIVI4GchKL7d}AN*s6 zwaX=lhItA~Bryy?Ek(i{oI?4`nZ=EK4he26?eFH=EJ>CTCn4wRDNct)W9GHX9-Z{c z%_7>)n50~sdE;shDi%p&QyOuE3kN4yi=ik|1X0KzwF<-Qk z4ysHQ(tAcOsA(eFr-gc8Ll|}0r7HR3&`-Jb5sqLZO&Js#0uB<5Q*v{MOZ(fM_Q%_R zov!&Cc@$!5G^zJcvvz@iYecOnI~sxm^Wo5 zhJ}>46BJM8Akw!C7c|Bvtk$rCMbPk#*nmsMPTH)6^4`$x(eu{llA<&`2K8fw(8;p9H)%bU(7IG@?7I&T6=tQDc~0`-F~hv@ z#NI6<@RaXTY0u~ON=8bE(n`pwe{a#MX)6y`sPQWqD|!F^CStJl;hT#TTD(*KjG`W= zp84xV^F$xM;D$A9cCC;72)SVp<*2OTNhf9TJL=@v36e}KXQH$L{L=p6 zJsAtkK3sQQ?PvdK(VGQlca<_2TsEH9@i6Leev}aw%7J1>rEI!6$VMh}$VWo0AbB#9 z`C%HLnCEB~6k8!kDQu_Hq-+a|5@kGFGz(Y@6)!bW1~S{S9?;qHf&C0JCGjjfN^nQC z_8zP9#_mxq***2sO#im#c2kN!qkq_}TOumiyxPAs?Kmx3FbQ!{%rn=Zb4!*v3fH60 zn63ts$=Y==r*3-i*@JpfZ#F&*+(RnT4sTjjyw_I%;)%XkDi#@?#nz{wMd_rSx*B6zV8hTWQN534N@;IaNOs_?7RWK$cJmyR%DhbN$zi;x=%x zo2xH^A$G%of#qPe(ZO;Y6D8t>xrzvIYhZ%8;`!qxw)8@{F6h_oT8&+Fq22CLt($>1 zfX|T{N3GR|QR>C(*UPV=YkbDH4bp5jT$`EwbJD5ZWl$Ijqr?&jm2fk{=>pQk@~Nzj zVzS}s+xyFQe$7ug;vRsq>F(1`Q9`0B4XIQ*1K&^_6@0@EMp32`A8H$qSbX!KE;Z%@s{WWrwVPZ;cK0-u!hEUGBI zHe=%nLqSa@d(%wHcXkrAy+D`kG12B@*P{B4R5Z#Kq^N1frdVwwBOPQ?lyP6QE(Se6 zlVEe(_RNE}+1v83p5(+JpBh)HL4%v)<_Z=`-7zB-jsyqg&jHVio|*br-sbW3;lp&L zHYzgEGROzdp7OvuHPJPtDfSIH86!?xFE8uLoR=3>(L3PbqiR!|N|Jr5NNSV57Tf39 zJvjiw0&WuO0!n5Bc~7+keY~2?L&eedXVUDXEn-*jL_YnJMy zP1ZM+UzaOx%ZRqFO|_Hkv33$nB5u2SOdUpu#4I~SNL3Dy5u&VX%>C4wU6C1rY{Kd5wdc#4@DauB(VUrcL3MbryryQ4?^(!~u>i(ry??s*W%$+#j zf6oZ{H8afjJD1uX>;D_wQ8mCQFv1$3W_>_|&}&g)(Glqp!}@wV68uAXJh$jn=*K>H zaim=gx@{wE9JgIFLioSfd+(^Gwtj8Yz3qy+5wXzRh9;p&2}qNT5JJa5LLfAyN+@bb zK&o5aQUU=3gc6z(N(u?RBnYU0bdW&kV55a9N*D0vefN3q9p{|ye&0QReB+)m?#&-r zb7f|Y%$2p0HP`cd3drAhx`JCy|s4B8(qrMv+Vb7=|f`hQpTwcXT%zzSKOv z)GN09s{cf$S=zC8QjDj+MX^{aNMn|r(Iag(sl6)|C1dr-Y(s0&OTjGB;G>(ht6t>8 z^C7o=Q$4{%x(v*pD=6s9(juH5J*3vEib%J!Oq6;Uv z?U3c8XfxJ zjtW8TADsiH1;6nmIT{0<&)Q@9jjJJm=H>)Y7{Q-sJdFUX z0g4#bHxET`{X9_P*oOkr!XcNC)YapXo>sJMpl2YdY<_s5dUrpGrM&fW(2wi8r|Caclk@D2vEs=TKElRm3;K`i1^5k@c6FZe_Y&4 z*}jyHn2m&eo!U?PLWJHeOuw_WK(>5(p|7>UWC1QZw*VCsOobW2X3LfKeJ2HkMDzP6 ztsYD$yq0Z7efXoYYW>_=tZIubsjtBku;C+-R8Z)6T46AtDnwtI!!@IUfle6nCl%yc%2seMyX)!En3DknKHodSlNi*jnqS9VbcoHBFNGl-^?P_i?4epOFs{O*b zx(Wo6w4_^UGx#b&ZBUqaQm+xryvncI#l8Q)i+^7R_|GR&He}dzOD;cZ>7UEIs4@`g z==b0MSoYZcV~2y6;ot$3e)VfUq~ARL{QWdq?&h116WNl>W`=`ZcKJ zqv_-a6~?1qtv0ra2h5TChq9Nxiwu30TDg~T>rmBy_ij~m+meSqi=ePyy|RWF^h^4; zn%-4k*VoDQ4eo#M5Ac}u-+PGn-8vgw(?$6e`OiH}A8dRq8y4R2=YQkwLpjydSOi+$ z=|gXD67hx>Bg}6KY*lb@PP(FHWQ#KLd2tuU7hLH&=i=}=O1&+72k!s<9UWNXx9cti zH{Rh0RTr`a1snzZ(LfcYtf3EXf0|~}r1&r*_-3Ipz8v6-p7yjSdA#KwTC(0@DPyPyXUHj)pWvI%i1PtaW+g~D;@A3Beib@T=_2#Qn)7nH*!tIe$d` ziX(`@=U$fF6bm|9V4okHl6hUaXr-X@+q?UtPB;D7Y#&;ByK9Eu7|3n`JD%;Gz-wK){MSbjF!b4- z>$<~iTa(i6Tg2lh)c_;VoH*j3W5K4&7&EgM(C@6;RJoGM`0ZV3p{1Br#5o(VszYDf z$l#L8vso}3qdWybEZqu8lou^@K2^pqP?z9#xX>nc*@PdLwGB z(b}Pnr@18i*R9W0=R)-!bKRk@={YZDxGHVA4&7@`w1EYf!HLb+A+yrD^pCIdTHxXW zw$RV8?m=@?)jXz^-x4|i?F`ixzCaFj?WHvOES^Upiw16k%3x|hgM%`V;tqOaB+NK3 zGW^GLgPq?bwA!tew!E^xEWJV9Z@*uB(~dPTSCQY91_aUrJyB#nv{Q3)Wub|9!{uxC zu~v^al&>QX!f&4RzvOM=9t&4a(?9^(gKT7bWY~n@QOcK4)5jl`VryqqqVM!%2)moH zQ;kZDW~)8TM|qQIJX(t~Lz9Oq;j%iSKTEiGg7G?5$q(04KMw@k{5vliR8uO@ z|2l`gbUFD*?g=KJTn#i=y)oZPcA99*YHRxJiy)xRBV%sK-8S2PL3)Xk3f@XRV|DcLXZ^|?p=h_QmcuTG z?Gj&x6O3o95{BxNJZiXWP@84;I))LysyuorJpezqp@PW!KChBqn53RiCVX+O5EJ0f zjg4p<3X~nJ0XNG}8uarGWv%aG3=JOT_r`KlzM-lFRpwgK?5V!|S=A@FYg?lX(up0I zci){FZ5rLAo9G8^FbZWcoLJ15?5k6|F*>(&6H`t*-d{T2PpJ$Od^;0vM$ksS>qx~X z&IXwS8OaePuja2s4m>np#o+kr{Wt-HqtB=a4_Y&8|849WBvp9ls)T39Bl+~mrysY@ z%bpTiMOipA!_OM3s;H8YQ_gcWY`xQxH@8FHV(4Zcp1p}~NIrv0Fk{i@WsS+IAhD^= zwE4old1`l;iQeiUw|vr; zy#58@t#apKj zl^5D~t~6{*Uuu6~G{gZ~fJs-nSXFuIZN&@~7YrgIhd+k`kslDDfhAhYPSL!#ylR|O zLeu=!4}TCitbTp%E~-fA-D;}`NAnIG`+MSfwB<(bxnD`x-M)QbfLxJl_vOz8y%g?= z@FUUkM~5MQ*E>r8u6Km&R;_n)G|5uUqT%r0{St_DOS&RJ=XsC*`f z(d|~#SG7D8>bOi#3)X8h%&*160!YWG030%%dc_nu9VoUnyxZ$oI0XSZC}OMEbWWC9 z$gP#x>I>vyb%D$T>BqD|;CGsIG0p{bLhEDBCF<>@OA{nJZFRf0x*C=?f^Y8nd#xoV z29qpYXiEL!frST9=%MT$LdWgOSpVK+R9rF+@C_@1@GMtaivg z3Fig)Y7b3#l-6247*3V9?{YyQ!7mfE?EyImILk3xVpF3Vwo~0!$Gs4mXTPw>v49+H z@}$x{u$Z0*baPrz)p;#fzAr7!v)mCKU}VUKe;R-%8-kq0b-%r>iT&0*q!l;F_rCKi z<#_rA*{fE$P)L>K-VFgi7(2^Kf?Qr@v@q%JoU7#_;UpL;L$@o?-EKbBe5#xDgQys> zyPv0yG(_xOMQWXw^%s1*I}%XNWAW*I)a0epC zwebw<4~&UOta4S|qnU{4<4t!GWDKJ@#%=k7?*`uv7~dG|%B)djgPUp&$MFthB_v}t z&O;eW62q4zFK0RcOsXq_M=k^{bz&zLuD?Q9st^4X~4Ul^2=DBQuFODn?G?OcYqX9~=!WcObOOj~#^e zLLxlSV-Y){EpL695z@Fmcj4vml<%DK!i3`@lqtuKc(-C7tZ|+^!LO!aKOk_K;3ixf z`MlF+1UZjFo+CV$&v{3m+|9_MEC6Mu*?A+%{y%!U&x?c4At@Bzi1;u|R0yin=`nHd zQ@JCp-L2f#Kt6|eJ9aq?WQ9->cIxR^FQV9Jzx|S4!cllTnj-H|g%ZC3ng3QSulQ|- zt%GGm7VtD4>;_bvW)zzM9kOoqEtFk;pQ^aFt~Y|{S^miK#NG*3~GEGg zrG0r^Vb%)54Yf!vpH4iu(5#SMjdReJUk#FQRih*EZ)OEjEVaJaM^%ch23)= zn!ML*EwCWcdk&47Oj6T|L`#ZU+a^=z63iuwB)gPeFwc> ztk}6N&Af2^+PirbACwdsnf@{R8&m`FmIq~dBpG##=?TAT!%;nh_WcK!{vpzVS?f^b z&W8+_bpqaUF?d*cRj2tHidQoNn*q~BTs%FfV1G)cTB|s_;%SE?i{8HwR)N-IRB6L}D57?Z0 z%3}2mn3`8)N;|s@C)oJ72Z0-=VEnT8hnxvbtM`kS1+enew9{l{uq4!NKodxgWG*-c zL!hvxxg=TRloXyQ*$>!l>sM?(QeDF}XC!Ba#{K07>c)PfDW-OM@@^zY9eV-E7gXg} z3zpjkEP9;h=>b@m@+jE9!(D#SPAp9xu{Aig^KVNxU-cVxncr_*Ss(w9ei;ePABE<_ zMZBU;sofNKe&|5NzuTI>@_(wE{uOFv^%9JC-y*`e=~zX9S_^nW!2k;`8z!<4+1B*i{tv-?~M9JX`U)%*w0si&Y=g(R5f^FL0xf;xuN!>UU7Y@ zCX-16F1p|?l5_VDge1W>bAHFXE_d(&VeW`n2llb=gA1=y`fVVh`EL2pHvXX2LKRtd z`*q9WvVJNN>iAl?)4+pHbEr8;sZ3tdcz@nOP_1y^Gaw++_nsz7z2k|9wsuNUahSZs zMn3?AcOVTk1kIpj;8wmPh?ghaM6N_57b`Uhvn@@7x>lG<7o_JE<}*@}eoLWM#nnO8^B))(m%rdf zs1nmG5f$)hNpW9Kii3lLA{xMA1-5l1Sly!s1Z1w|3h}ciOfurlp|%REtR8$~I}tZC z?FiJ=E?|+EFsqlGpuxB531q?dS}NQE6QHQ2R5$*|@U$-+YSS5BS8v{Pv&58sCGnR) zw<37SiyWF`)mTm&Y0Y?LrYGykak6!v>*QBX;x;Vj&e{W;^!6`uMNAW z9uWNFKOEd&Z3hgj<}!8rn#&szB6@A(%jHa1qxQ&!U~s zpn-C*&iVtrWRRoeCex0w$($a~hGc&}cQHy@+}~eOVA0=8%Tz&;QiNtQV%`-eCZfqo zxVoh}N(u~A8-Cv!9t~GCLK;@WR1@$E5=ODzkmkX>30g)#-6kVtz-;{%cIiqngYkZz zopl!2Mw{$4NQiaM5R`~n0JUR+VAw`^@yG&h*x?&(OVT^C0em$*h7rjj@XH~OTH14l z8ur5iq~zaQV9OS&9L5-(nbMnMq>XvqnG^oMGoGHnm4~|>@gwqWqGna*DQg2#xZKv% zG1kzdVyHoE#igb)REM9P8S9!D)7aYx`IkR8!Q27&YA(UtYdr?>(hmLxe8L6X4|_eAo8fNe389Mx;i&tF!;=9#-Usb2mqXl=2y`(Ih^Qh8pTAPlA zrb2;?dNiG?bF~(l+{ZE=8P+8ZMH@^zCM}Alpsox37M_y+OciM0a00-hyjnsl5BhJ8VcEh; zHMgg>P2PRo)k%&I6r|9iJtGcLh5C3tP8&cKh6|C;t&EhN)gLK8F52D;#Gc@qR?so<%td>`pLkHp=rxRkKgS@H_9`N1XfH#VVjs@vi z>XzMj$;(~|kGCsMoauTsRuf=kRDS4T$>JSDi#hci*84K9CFZwkusPkHvJL~!fgN3$ z?E~0lYijbDJ=z15p9&t&pp=+=nL&k~fmy%Z(CZ{bTIkPl63;#5J<8wUNk;l-+9m^m zjtlI~M#}rwtjjz6n_Gs~PM{-`6cVJEtmNztuO9Sv@!bf<=>~5Ycpf4J$2b0FtRw8N z$g65}&{LiSx^6X;Fo)JjV#Sas@DGbSOK;E0Og6-#Y~(#nzt?DLT7&k2d3utT`raoj z98HT_D#OGhe;bXp^L|~q(~O_5fxD4Ol(dHBglE-Xrq3*nK%#w)oQ!?X6YCz9!i8ig z$^^qq+SOQPz7!4?ye&nz?&iJMl<+B%VUo2dH z=lX!Zv7*I;S-+U9kxa~F_GvJ9*DrMe3HqViBB5`I8^psk>Mf_s+#sd4oUu z>-!2oV8gL<76f_*W0H~z1Dnf&xmpR5R@=Yt6TcCk`FQtd%Dk;yC|@LX?NEh(9&pu0 zZq}%d4F)qb`usF4Dg)?;-r27gWD5owFP7ljYJ5rccN^1gF8{t;Ifzbt5qfA&-10F` z>2dXP9TuBH<0j2h7_f+n74|ZCUdKx<|Dj!SWCzI*{^aA@mf96+)N!61r>`1DdE7Cx zLlom~VVp*+N1D!h%71NJ+o`G*oyZ;t(T3w2QK)G)aYg{fNX6DA|;56l_*if-cFgZd8MwF_`LozJov2La$~>MoK?{_nTX5 zT&7|ylC>q_P8nQf--5;arIFn}kl29;(L#H?jNq+m66tDr+t$ju*jgxPEG^q{` zRKC@SYw>!3d5BQ-AL<=7qJ{4Una4k-=4itU+RCbWeUtlpSjG4nRoAT1DfgtyJL=63 zfF(sYlE(lZ4ndYy7BqU;EOvYEX5!@*YTnDe(k}^wSfTR`$Av}fI1xHx)4SY`#*C8o zI60X;$|{C)E*5o`&AM$G$*h-HtZt-(8s#OrW6}E6-`cwMb^>J_@-pv?D6a$jf(E^L zosa082fEa6hYbt0Au?Le+?a2Di(pv8^Wq+8t+OMX9s}ZnEpk}pQ+$81 z%7D*VH)V3Ym$`F#j`r^W9a)AIi2cXuqU7EocZ(&jp?B zTL5)bS7jDkP*Pp6aL4c8uk0w16v4VsR}EvydjVn6vE)^mCx!)Zr>ZZxeHmZpFnAey zkRMpkW~Wn66ys_gy0etN^swg{53@_VUE7fAb0miIC7x190QmdY#K{_=%k` zmrMXgBD(`|MIC9IAHWefc|P;kmMQcN1Vkc8Z=)JhL1LiSXiEEZ8Z}Y&)n7JuHfj-L%3B3Hr#H!@OZk{_ z_NU>V=U+yzcKQ1H5!F+;#U3l*gwE7+Mvg4{BWG@?)k(;2k(> z1|kFT;O;jG!}~i(zCVwqiMYd|KtGOM?^!(xWhlRGAZR}YBDbJlB@w@;)Be|bDTG8n zMg)#|OqT6A2z@P|alJh<_47c|nYrkzwM=4!R<(b-wqKo0iA=fCqoJOfDn?h@x_Bbd zQjJdo=v&`UQ4Nt(Inr)HFqFV1Eje}1o9C@PkA(FrUQ07$$xm&9DMQY#=Mr)Dq`L1a z*jutQt#UtPjY{n?fyUQfNsv0lh1GuV%5A2k{xes$xAo_Niu2K(`MP8ST*J`_;lF?b zS}W#xoj(tpN?QWZbodB4*M0o_hU{eOH6-vM=(K9oZhxLH}>c#cV;5I$Y8qvbkRF~A6-cS21Glx8hOHpK=-uM zn;UWn)dXfU8q0UBTgX^DBFysHyJ|m2P=T>)pkT+e(Jp!)EP?F^9VoeymAaJclUgRa z=pA6)pR$o~>#FFp$j;M6Z(f=}uZ?Qz0sM(=v(4pN{yls%P53&s`&&`lx>DwClK!(h zTS>PE($$>BEc`X?B1f)%1 z){_#&_6VQfrX^dLB8SCcJ44kq+5lROB$`~Zs{x;#sGqFpUFHsi!}K2z{%k6&i6QUc89L*hHB!eAm#kTj4~yK;X4D~)tFfLPFKA~ z1M}yB9jk-q5>Lf#loxrOcwPW-TiZ18CrWp8yGb`T=Iqz;OK>LqA%vo`e^0H0s6X4X zR473dX!rY`7oD7Il^mN}DF=L)HOor)<%bURwutv%?&$&gK!fPcbDfroO5SEOj;i$U z1>9PfpA86_c7fVq!V8y6tU(`01COZicc;Dp6{eJ8I3k{}_^Lw1o!E z)Ngt=gzbCRpvSD+`{%wEp`UNOZ4MhVo{?e=p}mZ_0H!Oww=R8TIyfm@Hsv8dMLNe! zz%GNv1j^_5L-5 z+C`=Na6??C-o>RjoxsJe2QATUHYc;g1dA0G3--q zl$MObP)EWury__U4aG5xtp`Qnu zcFl7wQHOuAlq5b~l-#hL^1Ab{TEm|MkOuQQ`D2Dl30#u@(wr9<%@q_=4dukZ?4F8VWuJ8<7$ zdo&%{R+xChqL1mzH!%0BHgXit`Znjz$=&fwyA+AD8oxAf{I3F+2`ehGg0-`o@!gZ} zVD5ik&*(qg-2dC^|3KleAiU%I?9Qn7o_MoYLK6I?r!NX9?eU;amx(Vc7z$hF@;`Ak z0ik~M9LHaZb7Is&2KdgLeCj2cu!0u`CKdE{jCbI;9TZlLEco@B0K{57@HD3u!$;T( zqXko?Q+qS;z6y*AFje4?k@H=^F)FJfVp!DmwV66tD!Of<`p2Cg48f=!OO zrq8oY$=Cl1e{py4`5SWS7eUC)9kUtoC%<@t9mtPf41AbQ2j?>A=i%`6)W9l1SQ*EG?yUrK zT!z713Jif_fybNWX;&#KW+JqXN7YY6qHdVf@B`Zv`yV-c6idCkAsgePBoqU^eczUI z%Y8T-ZmgQrnq#NsDp907RKI6e4w&53DUur1#Lw*~b0KSRyUXNQOBs{Z3;mYrfovGM zTFwm~MuxF>BCh@!TCZmWQV68ZB-mATaP7wv_*6v837IHCyscZ+FhfsL2G&$$=HrEy zVSMv|Xcaq7pl6Jn+Z%Wd9oTSjE=ld>^=Zo+af*k1Q8ekI7e$#q$h7)F4;+P_rcDDD zeJ$Yny903ohG4DhaVOs-nH2|x{XtZ8W3SsbZW7Pbs6l(farF18^9M5u`vuNhXcP(3 zilfgoy`(4MtKjA37iYqRk<;$PLAx0UAP_k1JUCg0)i!<1;k<#v<3By`w`xh1^Pu62 z39-H`8r{=~eb1^=Tl1=jd~6e0MCIvRl|uiW+VCZRbGg(*G;XyfNL;jNjei+mOUn+Z zM}@$&LGd30zlA+>8&x~6=z7S$zyD-v-UUh0CJ0HHcFO7n&+*3NJPxj50|*~6BK38b zntZAV)powL^sX-S2-BRo1|N^(peZ%xMJn4~jYefOKWl-$k?JIiW|QoH(**ZtHnwd4qHwSi9%%>nrc*0o%3Er zdfc?G*lqDM7yH;9E)G{KamkP?&G$#+^-==OMPIs83(ewpHYK^jgQ)M-%j1}Ok*Njo z7t=?yj0J~tI6kdPUZgEx6O18CzR z;0jtY6H}u@IJ*$$*OGYq`KaTYa0jcQ*xM-63rM%6P_!1^_HeE=c0Vx+p~9x zfFj>KQ!!dx(tJE07218hwg>3?&b)VR8^=)xPioHV9%;nFz;H%rg%I$&O2(W)bM^OuEQ zj=-h#q)#g?r5m4*ZM>`Ov}q=aP1QLjZL;%#d5$6Nx#E{O3swY?fA)ozX z*V7ah#mJ7@Jn;X&_TTS2_`cwjutVc3p}+s*IK^7LtB@QX@FjFxjxlkR-1)=Z{~~jW z8W%T)KH^&j{Fxc=$np4cel6|Pxi=OAZ!9H)5*LM5ZJO`yztI=|ha`Bnze83&)cenG zTt{-PD1e#o@w~;FUv}`hETsUm*k~NWZf~=1JzXo+m*swI>Tr3?OZLI+Bwcb#)eCq_ zX#QXjfVZDY_<5i?8@TLgkUvgE*S~zoI3ig9!>kQQpy;1pVpLFEzIcp|4=2dpkK!5(&h=AE(oen_}yG9Vy#FT*3x*v$&n5G+* zb|^}5uI42lp$7V&8~B`)H64|T;pEfsB_p-dwr>mr(f2hgLvbrE1Kff(9fMFW9(O5!M3N5y$ z-gz^r!9Go7s#TP8N;W}*dmBg9ew|^1fz=5MhGb2z`FCR)7DfbpM}OJ&KGM&0sN5IX z^)+%YEO<-JVfYE)gdwzhZCrwIFP5l8_1M))`1C@o+>Qs46>(66K{-BFN27afgDN)B zp6;$SwH3K$|KC(5`aM109Nuuo)R} z;oyk~$CO2}_-_>jqn7-?r5+V(rU@V~$L!LejL}qftY0F^;njRxS61gE8{wrjwl}#7 zX|#JJ_dN-Gf_{>}TUwK1&8Zaf1=Z`F_ad7K|d`dnHG-v|8>js=6u^-T0YsR5C_6^WyIrM7G!)S ziF#L#zT(g6$+gv*H_k+TUL#)5I9fX zK#a3o}h-3ZKeDKOj_9IiL$K;h}_Jns{%@4g1v# zXuUsqUa|Ela4fOi-1c0&AG=0U3ZWK?trEUKwIzKPUTL1E0rCq;d4Vl(CR$Lls$Y?x7;+G=b7e2j`JLYgxJrEeH zXH3I#!6MRt*Xv1b)nJ!<_PD*{WNpM_A48NldALC1_fag$tW(<(m38SQ~!Uu8cNqw7x8&Y+z^_ZBw0jrr=3xcB9=@Nn;iLLzeH} zY->Wct)`z^t>QZBPZvBMP-jAJ5S};DeC;++4dz-sFso?5&hwcN<>@%{%A!++PY>N9^+F-Jy=nG#WHi_=c13GISLo^(Gy?uMy+r$U+S^U`421!fhnO(WVcym}1 zM8?Bia1sXq@%_!%GW)*3EMaA!?h7=wpz?Y!uoy=dV3-#eLEj~~-}4M~76B;1XHf-9 zTLpc-Yi+tGQzPMP(I@-a;-}x|lW}}dOB`_v@7Ul<8|a?Pb3oQOPVO^S`?}Sq&5hOP zpC0Ugr83-b88)NBO-ZRSAuM+!_KHHQQIktBaLqL4@{2dyE5sXcb!v!}*VDTID2GeV z5TelpX(fa%$a3#omEZ*`9Fh6*g115CP)hM-YhIRnKLFZJjXt{buQN^J5F^RFYF`)=5+{eW!W%J0j$HFl0cqa@^*3|=M8VR137 zWql*UHE5U3iOA&S={Vv9FfQft+&$Sb~XH*_qH;Dl=D<*tzb0uVh&M|K@jSz%39{Ra6TtiL`$577@6+3?7sO1<%fOq{3!gQf&R$yW#n_ZSHV|2?{F-M^(fI+Ty%H zJ-#*Uc8qTgkjz%Z8Uh(Q1r9u+(}h%8QIb=+)$pFMWp=-(+lR2FWc2bRTIv0`;6T@7 zpCbG88aMwy=UAd6k)E>@fZ#J^23_2*R+=9xqT&jZGWuW!p3g>k!trPb9pceVL?|ZB zr#YTZ7)zJXG{u*DznA}T&Oy)vR^i0t>vUv44)Jq^Vh4pRiy~a)Bxng&DYT7y%+0pO zMh^!f3tH{8$Cxk+WUGr%|Iq1X!1m44(>ZZy3a4RE`KcOXtZ`h z9&upvNhqFXJR4k~go*T>-$yQVwaqvK1rn|oXF~~ST|Q-;?)%Q8GY4`u8%Yk-c9#)bxvjXLv81$0?&h- zma(HH7+fazQS7p7FYR4EQuaxU)pJ$CXnw+Vg1Bx%#U()7yMl?X1jnLajZb}}_7drL z>?g3EGGg1(IoS!xK+nA|$Y~Tkc=@b^P;JOWml#CrN&0Ne`v6MJ22Jy4obe z`KNTn)0cEPePAhHAdPP4&BE6aJBc*f-~=4eXQbY5RBAN5WK2n6 z_)4NIrHPE7AaXJ&CuWI9+JN?r;nS>3=jJ}su;*nd#0ryEDaFaQ^4Uj&JJigN4fI8> z4@PjVM?S8<53YBAQvuy?5-a*00E)O9>&*|bS&m!QbR}OjocmmWmHvpkXG(cDR}L*2iR&CsAU1D%7hzSv!vfbtNh=VO`Xo{GvW5kr3JxiQrV_P{nY_ zCBO#}TB4+GG#$wz2=eniUbb2m)jDaK$}RM*k_UrO1iS2u8)YM#Yx1PJ5|)WlwsA|U z8BL4&;t8^LGQlV;=eac3(X(8c8n$EQz?OU>rP^E>5a=1ZYBFmnnYB^hw&{gt&(o&B zY{q6_2JCL(saw236ga4!!{RXsf_AV@K%Q5*msOZ!Nfst(z!KC{4pVq;*CHi2U@m22 z6f={r;6B0LQzX!G6Adh6ElT4NV#z1+i3|MM#YQ>ZKjYOV*nBMyFycpdt4)Z#T^lzY z;Ve16?KG>`m18Vlp;F9GPm`JU6~SeV;abV|PBt+1Rja^Zbps)}EG!H2-a> zB+`9`IkVdv6A`RA16?l=u`Cerg!zyzs(1g-J=C7VL*e>%gLUuyziUq@tzW%xsKUA_ zaZ>qtxBhAUhYftQ?Y|p_>buwXK5zeW%lz+#K>yb-n{iWz4HW)vsQtZ_@c+A;|0_G@ z@6izAIKkSWb`ekPK6_=H%3ZixD@}?Ni(Czl^4WUuqvhN0lz+c|aPc=os}@gPXmbl3 zU4=I;7z$-B6R-X+c3EcYO89Em78%o*N0wml>1-j3^%u&%|GV$$=!B7uaUU(wH5pOd zkx@RmeXrMdrR=6d(Wlmx3vFJx(U)Jj{ti6;cjL<6gZ%S9jqa=At!7UnXh$CjK+fwRsSYN1*BopUjyVr}S)sd5x*1J{@R-W$*8CE(GWlJ*HkXaMaV9BkR??&UA}_T{s3Hr1)s zWG;gqyMkafIs*B(gs~hd#;PK| zrQ6)Dt-ib#Ms)_?TGUJ8G>_!Wct0KyrqS?@da3|L0@SwPz^rKerxl#(C0Hv&Toumh z2E({YzB-wYxIxPi&G#2WQyVYRn?CxDb_A(fEQk`Ad?OcN0lQHm!BhMDn!9j8Uebx< zR|}9?T6YUEy@7%W2)z+f43{0b+U{ASDmEh&1;6!0Scr8yLVfLh8C;AtCUuwE?JEzz zkTX}u`g7(Vz}Wx%ar|En8p6`H8$L@FyKRRp|Lc&8zU-IGp9lQXSNKmwKM$K3Q*azoPKdcoaI!z^Q{$dZcYb$*Vjx))RkWa7YXKNC&5{ z<>PX}HY&0^RHiCE@O;UIRGLN|IzPajK;Ht&c&q~@YWN0SKMx#T`>zxB7jLIQ)P`oN=%c< zaxFn^yKdWc=E=N^635AB=Qb`FQr=Aa#YfzzT4tMu^D=r6_tado(?I!v*!A)1S(iJIDJ8RO&c|CYp-fAueqF-@B~K7q1FLO>a$^UDnPsQW z9$aiAIzY!;_F_=1OguW#Iq$5G*l6};S`o>@_^QJRGKrRf1~Ts%7Uj*>e9?`aJE9!Z zz@{H?mm!SgqG6qB2DW%R1L{(+`7H!_5BtyZoyG$vPIVAYxZuAb$b(Z(Xe zHNEQh+z6jPl#yiD5GHo*ScaSH&jSYB5J@BJ(IQj9vu(umwEcxdj>x5#505zu&>(uaU7WE$MX zW8(eQ-Jxf01KL_Y5T8NA6NXpk#++e^BzT2Gjw~6Dcqt6m-02;v{0@O03Vb8!5oJss z-eB}~!`MJ&ctUcaZpvIx+GpRGFX=Z;U8am19u|gMg#sMZJYnGRm^9}NL)Lpviy_$B z)Pn2xoAEFi#aJ9HASgBDi|9+DKj=YZ$JyL3m{aHo$v?K;tEV9CCqKb=b2575&-aC3 z+zE_d`%m00=Swphm|&}vP;wsJh5pBfOFMK+ts8xK5GmDJ<}Ih%%#Ky23DB|&QB-K&it0CJ6k_9H=)udX9r8KVY8B=17F zAd4TAL!j5$nv`qlpEIt~Ul+4pTjdxyxF(ZwkxrT$J?vE&f-}?y;TC~TETqqnZ+P*R!UiAs=1>^?^KQgM$ z=(Y0Fmv@S3#JNm%-i=50wL-CUiKy|Ug!ezHxwr=L}9U)A6|+`qp>RoQe$ChmEI zwVZq=tm_x4K!ln*sn9{vx`m0(E20Jj@0uTf(fl>Gl)ZD^yQv@%wiB%R-fm5rt;imn zss03+71JU5UyR;BN1jylFRN;jZnEKL!9)g2rYF=hQacjr_ndyjMs_V?vi=YD-aD?T zZCw|}zAUITMe33&p-Bk{2o?w-R09d2qjVCAh9*H^*(ia40Yfhegp!b8fPeu33%!>R zIw;bcg^q$ZuC?|#>+F5*zUSQUe)o62``!5mVaz$&d}kZu9nbqb32gd*kl*N#KvX86 zd;!A}Y|j7fRxh)~>^CKQD9`)A(j3IJ^DqUiwz6i~T9m3z+yn?G>iR2!*Ax2Z4tf?OZ)+T$Ff{se@-#i?U}k(ck<)sp{5VfBzaDiduQ;QXv49DeS&0n1hb-#z@ZjfPatq(#qmAcg z2~q8A9ZPuO8e6~*4u`=V(i8C8$%M;dNs${7)ObU{;>A%wg@3kp!Ok*nsZ^Wn;}Vop z&A>OTm2t3fM%>SH;tf>`3>Mr+>)+8;a{1s~f!`W_W7E8xx=nTLIRKo zU7NubS`FN4>r)qD8HNr!TbiL0jW&CZk%>~PJN(Ak+fOHN)nGfL%hr#Si(o}zWkfXE z{O@HuX?lWwn+G_*)Bzqm-Ios-oD9(VXqk_I%-cix*h)^^tuft^dIe2)s3zN2-+mtB z?lYTL6P3-`9lMO(a%ulwMRaoq3j4HgaZ9*$gH?>^Zzjzc)H^&1 zfeZV>m+oLBTP!0yGDA==?9NrMm*S8<9bYnm%Y5wY%vk@LnE`G2mudH-uP<^cvfs$kqz7m7%r&hf zoJXUk^w|=GQ=ppR>f&Vhc;te-%G5W|T1QWv!RILCOfpx<3_*En2W|tcdvP znxiRfNxyrTla~+M@6#hbAr}?X<%*#?w!V$u-_8CE#TBAupqjresQBz2bDjHrlK!Nsir@{IZGV581W%3XA78(P9-n8ax9$PkhrW zZo{*|>hfry7l~YRN^*K3#%L_B8wSbo*R;+(0kg_=70-rp_NdV88akP9qZz$Q;C2i+ zGpuj)*-cGU)J@oq`VIQ+Ze;|-g6t0FtxQ~DNdP0^2S+v;owYA|t~2p#BK*;ZONW1x!rojf2`Oti{?W~S8mt2m zVj@W5Z00ULv%b4cQo~B|H{L(p+7oD9f9vF;`YB|zp_QpuR!VXMwZ^zs@qll$7d62^ zs7;YSY+mP)kz``ZpTSNCCbP}3`%E-{aBPJ~zhvX*zF(BImE1xN;*8sbyQ9wyuy`oWPd{jRxT@G*~{8@a%k@hRB0T6$o9Pb7<)cqL0}> z)9Xn5Fr^kg)AISN0`g51wClzTUHE}n5Jt`$BU^Jwk3Dl~EsW{+KMT$Jy)s?*J+JIj zV(;O9SN4#Y;FVREtzgdI8;-ee@JHK!%Wi(Y><5RMS>%&H&*CNT|8eDw?^DnkcC!FK zHwUL@r%el%BsO5(x?u$?Uqb*M=Zj6;exmZ+>wiX|UigFZOPQqFaYDfD(YarL;n?~6 ziQAtPUkwoTPv#+Py{u!u1^?h!duz6%Kd814o(rr4FAeyV*(a)%(Y?ka;k&Nwx!wDi zlf7Qot51+A&)<6M<4w!gPZs)Y>XWk4#5n&vk&kB9ME>UJdHX?O2eJW@q%vf+&jb6_e%TQP}gZ1J<~`!k|;02GGpSjd;!+BNP;Y z5Y|0npU|#lzOJzGS7ZAjloynrZaM$t&tUkT3X8@JvE!gf-Vo5VilN}#CK&OO-JV8HW z8ScQJC(xywdK=^Y@=RUy$ArgRSJc=f_s|a89AeMaoueQqZ*Lc`FBozhUkbeP7|zw4 z*^2!cr!EPHa>{8AM+*uCr;T>bRR1C16XtrAgJVCGsVldtD}?iZF(iTXtC;t%oBCPg zU~XZA^-P3@!2GRJ1LmxE?|gXkv4;#h5Hwu%0*8QNL*Y4_1$DSSLEg`bHi6M-3C!8)S05bb*r!=ENz6~mc|I?s zq~sDZkjkc0E4j_P@65da4ErSa0Z36rPAsPOIT5!?<#h(MFguNO9?P7wD!{z`hfB zkNw8MaW4dqLuh!hSN7NUt?}fiX{OyRxIee$iqwubbqAWy)ikg>z`^mKT3~cQVr2I%!2xjB#NJ>*KsskD?r7f2OuPQmCXujO@U>$G z-?@o5kIG;pi0mm+NQ0 zjY+>{LGBiPIQR4DvHih+%XIoLd9FT_{+U((XTJUab+a3m>K9Vc8l=LQs?q7InPy{C z|7$kvw99G5Wm0&hK0E~E!|ZbWWxn|Ma! ztZkhvAG%^!O^=azGXBF;g*+Q%0J67n>sE*C1U?>yP{&Z0TefTi;$X)vVN3+xUYL_9 zEGq2PM0)m;q$J|jTtHQtn^k+qU-mVrnx@qqtH0opHLNzNoJTjctTJv3A<;=wYSD`7EGD?X)A4;CM9UyHCxqTP_d z3@RJX#g2uQRV0vV08HJK{c(ajN{?JDy|Sk2(d?Gqc;VmO{bN!g6BTFTfDnmbW*HE z!phT3IF=1n%Xsp0!MyKLJc-(CpK^Mrss?{RpP92e|*^C+!N0^OI(B|>#% z2Ll58#|hgp+%^1-GR|pgEyqVBe2j9_DnZ|QSC_bx1#Di)^!t50*4iTboa_~kQM=IN zNP;aX0yDd6=etWBF(c&bLl6)>A8%1%RLbf(7;G<}6 zel@a=sfh5ak1@9|H=S^M3ewGzQPPk_UQ}5sFx#fLu$y%8TL$@5uaZFo? zs;)8g`}JW*Ev~-swoB6Em$^vy7%ndw{VPCh?@JFrC6#=S0q5fL?ej}~mr$#%c1v6N}V?j7<|TnHTQ2 zF4X5m;JyOI@Jl#XaHWD5DQcR&sd#7bYF_ZNu*Qb;Gp>#?Gsy@^eF76I26vM zP*GK)d<>jfn#fgLqcsvE??vlZKh3JOd_4sVq_D&8vu!0y!#O|oqL(1^YobR3c;U-7 zL4BGYgalM+h5n)ifK4r=w(@jl%(+sOYZ<|annKXI;FaUaGuzzwnXTfN1Pdg|YSi`o z@QnXOB+|Orhbou;aV@n*IBD5(%-$cQCNPRNk#?RA^*S}|WHm%iGgud>m_cP=@lxLh z;Kl>vnMcBLOL*KpAJpJfl?K@#rYtYswdQs#(s@v|>|G4S&OcG|9>EjPn5bYzqON(7 z;wns7dP+kJ=i(*>qG*8#BW&Z`D3egWQUJqAz#WUc3U?Rh9p$S|UEhyqmIM3y`RFE; zBzJHG@b(O&tIBi@O=_;*q?%Z=*Zl4@K;L5*nmt7iOA6Y?GL2+=R)IhttgADdc|~lD z3w}1!tD5=Ae{Jn$r~)%JaqITSXpz`zO&@G@nD?yn ze*A2;aDak1Y}911c*}2b`d)8ulenmC#a(W78(9r&e+)*88tsQ`m}!vtY*R2<>QoK0 zvUN0`1MtNhuL}-H6_{EhD1U<44nftk3O!l3?uL5nS+H*OGR@8owaA(HrPh8Un9ske zt@oe*%y?hF2zW*;#;-Je0NSY^7#UR0X_kTRvgqflk>^f2MS@AhHLx( zcwdP6e-%ibhy_Vll^03wSG)fd0%$COVYEeJ#{$;E*pG{^)@MoaE?W_e-3tWQG+LY? zy`PRZp35{Lk0y7JOqYgmfgdg<-hPaiY}|PIdgKPqCbd7X9yuf*PU%TZXJT$B(uBF< zOJdGJ+;*V!SZc_$A3Yra&C#&f4o4`e6Vqlj^7t&;a@Pj)xm#1Sc_zs&N@BS)IPX-_ zc)*$+*>zq|V~D@S*&huoamL&H?mp|pMzZMqOcYdrX(T4Cd|pN*$jm73Vv{7$nDDjg zF>~3g0});>N9U>qjdjK%HEQ$VbG%mEb$k(N21=Jc`pCc~N+425zhDW4`vy3=Dq)^9m!LClK<>mxSKQ4}1#+Cn=9IJBBrsa%k z5+pa#@`=;1L>;;twugEdE+<0y|;ZUB%IFVo}dM;ywa z5~dMB%KU>6~nJ?vm$>#k!@Rr~Pw7SzJ#_yj^d zx63a(`S`mTs;d`MwbT;ql~^UkCe#3CqMpB$5%GmfDJ=imae}`Xnb0EGGdwGv%hZx3 zSZvA!xw5Bobr8rL(zDRxob}og4H7B)gX50Gr$iLYdv(Ysoq=aLVQk~|4h+U?y!}{z zVez)=y}OBN!x*cHV-+5$2h3H$l-@5SsqY;aacX*U%2JxH-9imtT*=9}d=FB9DJarv zAkPP_fKpN!9-SN8SkOA2HbA$T0t3xkvFU_Ucp6@RkR55(m;^OjfxjLl{U_&%7Wvx}Qm8ueqoKZQ!%Eh%rM>Q(b8vDQw{n2QeUPC4Fy1{@Vhowbgs9c^XK&zx-G3>BIq zAF{t372i*VaCxnCPS37$Q5%Xp1{?fXh?-86^J5hTyw3J>r6C2cX<9KRT;H>{E+2m~ z0%O@%ddUgj++wZ{ATfp%#yV{!Gkxfiwz*qab7gSDiQX#DY>68r16!7vO(^RD zo3g4(VdbWlwwem)vP$!|dFHPbbm`sU((kR6W3Hv2Ko!#q7Pkf;3kIAc&G&hH6KtLs z57FA(14G}fIgkWwkP&i`3 z0~y-i-?x~(F3ze{sdPj;EHa>`C$qtPDUY@FiisHIihSZXDrtzTnK?5%p8WkJ&+(pD zhS~wg-{hJO0FziRx@Fj>R0({_O-I0cS(N2j>!-bX$qfL4=fcOCWo(&gDZjRMM zT2qaD$JyMP$xXKbkEwnheSiU$2GuHMshD_Asni8M%*IhFq;FDc0#A-<2S{FqwrIn+ zz-o_W4*QV2prg7hgZ$?|yh;qBxeBde25BJz<2 z8_JqHVC_%+bV@3T8sw_J`e{bpG_Oit3?%OCEpAuNgaV;_a&s;S?cge?`9#Dw;qrer zvOdZTO$#w$tMc$lUl}SWpIAMARoY@RSeu}FdZOsttE|?vUr;>O&)J-dsb78~9$SCv z#g^w9lW;1!hf|*)HrUUh^V{DwaN24}(qcUpRopnD>_}{A`O^n}xZ}v-E5|s~PM!$k z1q3vgzvB$Nup=XQS-!kYSTBkhXKyy_S~{~9^a-YCD_`Oi7vlEtq3Gj3N(t%g%UiqK zwvg-M*V|?yC=~)g(*t~c-0J+2nv1$CVDozNF`kE{M8PId0UbJk5FnrLCtS=HaJR!! z^{4gemYc$C9<_h1PuQo@^fn23%!XB(kMS((E$WP>?6w?10ys< zn0|0RQZgHsAsoHbecSo-v!Q42n?78B_P|zEi2wTqHIGY5TQ`c{%!ei2tP;IuW}64} zAr=&7miK79XaUrM#YjMbMn+IBBKO%z$GSuveByAo= z??8*ERrjHD{4$!ke{btr*|j(EZy#U%@24VaeB`fzqHf&i?+5eQhhzUEs;l6y z931z#FaNu}1%L0ZbCjjU2PPkoURohwN zB4@6iy2N%vUg3ouSo!O9<4F2HF2$h_19u1t*HjXa6P|?=A4B+Q@z% zw!&Byf}ERMs|jggDtc5$LlxWzA4YUW6mpdooFF&<7?LeO=Us&vOFU6T8^0|^GJ zYRw~+=;ow=fu6eSSt*CayOfNrmE<7osTcX;u$K-0i0Vl<3MD|B#U`tObyifZtkoSy zYr3>Xec3S_R)cVH*S#hVZ-2qt^O18s-yHkmEWrG zjMjVJxKkh{Y4`^k*xGyul{Sy}b@3Z)$rR9ls)rx*lh$C;^eogrrS5sVhsl*$d5L3|@^nL=0Qm+U%6Of7AWwW%#Y6pDo>2sjijGb}gNLkr%vf zDT}=!ciSw+aL)ZfLNIB9*Q2~}lTl(h#DG?(C8Om_{7_)PXoqNTRh7*&**`#~7C_YB z3BKuu@G&O0r}xOc+LaF4kDnQ&DzYKK`7!fe)BxT9C5SmqNjkNak?Ml;6SFSDR|F9| zt0}eLku<=UL&hd8SY3JD^KaJW(FTpQHi01?O}8@ptnHw|Pgl$1HGS0W#RX3a$Fk}fw>CC`k``CB z>($H%8g9zFZ}4?TUaBeE2%$pCv3XiRShcV()xkHf8RZJpTTX)lXG!BNK8e}gEt7@4 zmxH^VP*}Yuy}8Jy6Y{JWlWwmy}0bPH1%BlD!4`T_{DvNK@6$5ExmsV_TuF=U}o9#^K!L15oZTdyp z7FOq+rId~aU#J?5KdQvpHUPvHELpYf10}HLc;kVM$k8~%@&YOLx?~=#8sChKdNrU+^N0Wnd-I4FlJC(^rLhHh zgawoIoW!VLC9V>rRo-CnRUp@ z*wl@E+J2b4O`op<|2O?VXOFYh)&vS_uM|L{o3m`!k~oescgO#T(+T?|U7G(upq}ON zGeqZ}?joa3Ii7N%*ZV>rAlJD2O}@vq1diWMJ^S1B{PXwVpKRf<#ISYgp9}^?v)vw& zhLb?~!X!>yC&}MWd~_b&K0v2Uvnd6~yka^l;d66qr)`fI_n7cg-w9d+k>wbB|KUgSealNjF7`=kc(kFY(h)u)wSA8nh zs{AwSkKt$ehL6}S*j#v@mgFwUGw%*@n4y(wbfOKJ`cyBnL=ti&3|{-Od;Yn%w(1QU z+*Xh)irnR5#CssHnB(Aqc834kFR|vyy0*DJ1`ExqaY+HGGGi(-!?=X6&CI=naHBD( zwx?g8sTO;I;dXM5cdyz7lB>VXK#f52vS4-)U{(6LZ^MmKr~6EPslR<$>H=w=*c<%i zmHqn5Okfr402u3hH4{JU-{QRWuc9EDPxU|#Dc z1W9{is&iI@B|R!BV2N2e&Z?Vh&6IjGzc6GbAF8Rn)=5S#+Pdqfuf&9Yqt-nDtO@yC zT;}ZcQh0DL_@%tJL^LJeaMz-k%7_JHxy+;8041Bd$hl`AmN!Hk zzXY?S7kl@&)*xVJ?Xqu`jL)dgO$*#iQzYK-@VnD!|N zl_RjF5ILDbUQ>%a_m&nhw@Aw{Hz+D#(bvjP#%wCJ7cx@VP*rz;!-n=EXH%i9)AJg= zi!j#pp-EzrWgcljvahFR8~ZNygJ1FdNlB2{>kb!&G;(2RIB>UR@y3<5xB;!%92JJkDakE?oQa@j5yb<+#meGetBbsld1HY|EGDV_Db&3nw_$Sj4cd&!{^yjI7_<_+b)N56Xl*Rxg(){uDy zZr++7Uldbw2`gfu$DnLS&5aEz*i-D;)WAMs3@7=WD5r`w5C}8H>bIxo!BLe%j;YXK zwrE74C(T&rNS_*V!D`IH`?`)>PFt8)^{#^d%q8{^Ku1tg*lsORjp#`dG~Aj*%hKa8 zN=04mr0V1^2Qm)FUTQq2S_VET4wiUAca*i(f?F|X5t5tI6v(^S9y67MV^~km5gsBt z`j?;L1J{GuZ;ti8YQENT0B7um)hkFy%TL2t`;F&lM#u`_kR-~dy7Zild6_ec5gjJl zdRC7G-{1F^!)1~NcZoHLs|W6$&Y=)XqFtXCJ;;}^mHmJhNiLOV8xi!q`{m!gZ2pqm zZ~BcH_O8|&0GYtV4+eES1M^dMw0@yd`xn(bMAeK&)GSHEyFyJTJ0xvvqQ#m#bDkqD zyiJlcSZ=Z^Kyo;U6cePLyE=+~xh|9vaU`neI>n35+k3qMGgL@L<~WQAc8U~$WW?W) zWL^w9$B_aXn~db*F(hDfMf)P9QsKS2Tkk!wGuP)ynF5AmPVNzUmKEE68p=DIRSKKd zzkD3F(2bCLQmU6kqvEQ{QKdOGEiMQ#S5WB~m*oOj=*^dN3tyyfEgI0AU=(7iyC2@E z!oQuVXE%~niyguEeNrX+`|%jaUhuHjUl1TgAJm=t0vFg zEhUu_L35Z&7+q**cz1_*86hL)($PNe5aW*|0oYUnXTvrfnTL0r zA!@M-N?;R-qC)H5Bjf7q@a*)yFBOZ5`qKk zfHmJz#VbmT-z;F}H=n}j9g&VFOrnPiWYZYt&4r|>>K;W@P{v8ooORWg`s#+;lL13Y;sKMhcB@gQuw~r@*VCr#M;ED~6z2F%EkV`zW1%qKWwMD^bAyu$ zT5>!Y31GXla)@c9m<8ZWFGjM#WA4HfWG0Q+eWeF2j;1Y4qbTmyHc=J!1DA&UZCo1j zlhkx2dHa=^I{|)W2*SB)SiinT=s_49R%s~zq%&rJ!>@&Ji^j{1u0{4kv|PZ|Y&Nwa zE-njsyoJv0Vp!DK)t%m;x zRp0wtCEY)pG~jO#m&BFoZPdj54m2<`Pd&7cZ63BGgl(gJDHqwMyT-QBZ*C`kn(n7D z&prHUx}U~8eDfXKbcg=~8QmK={p_-^IeYuAvUSaVaGd(0&f8bQrV-sr)=6U?+n)yh zM}f1=wVYBpKc0aBnkz9Y5d5Gb>#Gru7=k`GW!y|HWv?v5BfstaznZf#x}tr#7Tm2lA=hoV*16ey|x&rV5@%wKJyA$evFw z2Iap-B!sNy-0zPi2dE?w@l{eS$rvD;&v~0{JL+irouL)!_`LU`ygIr5%Vj|Hpr3d` zty*Usm_(=L7$i`ZJJ}8ko&u}L5LH_v!%yQ)I9U||ZWCXZnFkgYE~WQFx!@J10Y)oTo1bm)eV+bqwK06p zLgij~eXcm%C7Xw?a*4Z~K50pE8)G!jkfiM^-|;>#2|*1BAHRuD3Guk;Ez9SOn#G%g zRnR_22_)HjWGC+HA#tKpno>0EBXiZF&9q(f7|HV^(y-XFR6@^EmMbfP9py!xv9;Fd z6c9SV7Z$m<6ZeZ{I%ly9v_8&y<{rfs*xs5NE@?|izBB*YT(glY!s%(hIji=B=DDP- zW0tzSam~ff1iN*+XxFl&j?!UP?d~wJN-5d^XXSF=GMhWCg4Zw-RP0swEtkO05b6(G z6fap|j9tz1M|cqK@eX=f1-9`%c{}Jr=sy*ZXjNiK78;PijaSsN5e=rex*T$DjAs6|uY&Ef%4(H1I2CJ`Bz)FVgQv7ZY67WxmK9p7}#Kpg= zF-MybdS(X!uP$+0(eSbbEdVB?pJ=A3HRuX!SxwoIHVm6`0Ait_7T5XGRpFP%z|i{J zLSSy3OOlXsg1h&*)B_oXjQ9O?yQQL3-_8nlG)HLVqVwH@Yu&Y^!%DWC+Q)5AKsAlK z*m1Bv^+sf`shO&knbD}4(PLoiZUd6736{ySSP(`yY!8lE1W9Z5u z5IgYqr!sX>qL}lUWu(~p{nY<7;w$3xE9p49-pXQRh{fL7O?Ytsb@t{O^JCPpnDUwLTaoA zP_`@OH~m&_Xx#MNm5p5B4y{czCs824j#g51fYJC!v5!~|u@CbvH_Nf8LN*TN2FF{` zGBeAMQJLJ{zouKICS?7x?(wPvA-f8|3;?93(4T)NLW*|W+zr}0ctztdt?i@BfuavW z&*o-iqrFtu6Ph%On;QxX63!Tr;1Ff)4*hERqz!wPLyq$DZ~Z=!*Jt%`#rbeTYjcmJ zZ~oM*-b78P{=a!+o_;g@WYX#pmy}g$lQK{P-`O7HL!M?&qR|PTEP=s|YUfLc;~cSZ>$}@N)}0QG*Ds76=Z1H%j|x%F{+-w)Yv%&5I7^yqhz(m~ z1nQl7Lv`tO#E4Nj#H{>H363!#LQ?_OAT#E&%Hpyi7n^A(#Bc=8G-FGMQ~o_byi?UB z7TCVI!VE+@a`BfwxJ5s(lb9uw*2Gq;t`T-M^|$p;`WF*&95_PE!&zinwryD(KW#Ll zh|>44F3a`qEniNU(}#4%~D z_0(-VBK2&*Z!6E{OPXW_W2z*Ik?jQ2`?uF|j09dMl3`s#cT70Bmc<~7$l}zZ>5BDb z)6a-hzcYu$G+fZRsU7QH6OD^q-ABTYT#bj2a#^h}V~{Q=GB?uTJu1_*c|BF4)EW_D zlg?^O&l%v?*NUEmLwmqcV!-~iydo!%I3ZoL#lF>w{Np9{2Oms#?N-CU>=^22D4ai%_EIQ{K zB%M*WiH{bofvN*!@!YJLiQ8H!nh_73FGa}8rF(U^j%8^Gu{20?E^xbcn6EM>b6zrO z*7sj8*T47Q{s2+8tiJH}$N#z@y+7d35C2Yfb<0xGvj`e6P1L?)JNxucn)KX7L)COc z)z-p3)r+2Kr(J&g^}yWURlM&IvZ`p?#ZUY2uC4F*O1Z+{1_D5{k1eAU=SkrrrZd}o zK&N^SH);|V(CW_8OU=7qN_VJVv>c!B%zTf4?Oo37_$pBFWopG24>+OEMvBJ0Ta;Ny z7cAAj^^*(Jd?-kU5E>vQYFakHo(=2=h_$FjHI4-*EF8xCUg}Bzm3V2tdr`2-m!SX) zib;T+jCtXc;zVH8$c9h#c3*n&=zg2O=EVLc`A5e%Ew;V}sW%t?-QhG4bk&z&Gt&W2ixqczx6A?K>BM#RPah7+{;Z2Ik2Dzy_=bvw9^Ef{N^PKxBL_n4EV zsa0J#4{qFY?jP#%a|U66ou)3OpG@W=+t0+GO)Jp7bHYu|1exOs#-^;@Cve)g+%+%DyI-uH^`^}# zD5(~+gIJ$_X`accr^Kz`S1j$8ddcJz;DX0 zNy&b@a*QhbnzKdTUM_`=&vV`mMVrN_T^O>8DN00WWwprjOtlx1+B0RVQxO^0YxG16 zw%3vhPQIRrDBv>4dnb0!?|O?X0wzl(eXmaLX#s!=tONdlHu(5ZfZ!Rve(@wv=#pPrvpGwzj5zwv=T zRN^J4K9_i^2t;OlcR5KF<+Vs6+XoL1;fHeT%Tf59D =V+T0}8!OsjIILH$ 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 context inspectorCollapsed: false, }; + const playerControllerHeight = 80; + const modes = { sessions: { label: "Recent sessions" }, events: { label: "Analytics events" }, @@ -1397,6 +1412,7 @@

Session context

state.playerAnchorMs = 0; state.playerWidth = 0; state.playerHeight = 0; + els.player.style.minHeight = ""; els.player.innerHTML = ""; const wrap = document.createElement("div"); wrap.className = kind === "error" ? "error" : "empty"; @@ -1922,6 +1938,7 @@

Session context

const { width, height } = playerDimensions(); state.playerWidth = width; state.playerHeight = height; + els.player.style.minHeight = `${height + playerControllerHeight}px`; state.player = new rrwebPlayer({ target: els.player, props: { @@ -1932,6 +1949,7 @@

Session context

showController: true, }, }); + fitReplayViewport(); seekPlayer(state.playerAnchorMs); } @@ -1945,11 +1963,42 @@

Session context

function playerDimensions() { const wrap = els.player.parentElement; - const width = Math.max(640, Math.floor((wrap?.clientWidth || 0) - 32)); - const height = Math.max(360, Math.round(width * 0.5625)); + const width = Math.max(320, Math.floor(wrap?.clientWidth || els.player.clientWidth || 960)); + const availableHeight = Math.floor(wrap?.clientHeight || els.player.clientHeight || 0); + const aspectRatio = playerAspectRatio(); + const fullWidthHeight = Math.round(width / aspectRatio); + const constrainedHeight = + availableHeight > playerControllerHeight + 240 + ? Math.min(fullWidthHeight, availableHeight - playerControllerHeight) + : fullWidthHeight; + const height = Math.max(240, constrainedHeight); return { width, height }; } + function playerAspectRatio() { + const meta = state.playerEvents.find( + (event) => event?.type === 4 && event?.data?.width > 0 && event?.data?.height > 0, + ); + if (!meta) return 16 / 9; + return meta.data.width / meta.data.height; + } + + function fitReplayViewport() { + const applyFit = () => { + const frame = els.player.querySelector(".rr-player__frame"); + const wrapper = els.player.querySelector(".replayer-wrapper"); + if (!frame || !wrapper) return; + const naturalWidth = wrapper.offsetWidth; + const naturalHeight = wrapper.offsetHeight; + if (!naturalWidth || !naturalHeight) return; + const scale = Math.min(frame.clientWidth / naturalWidth, frame.clientHeight / naturalHeight); + wrapper.style.transform = `scale(${scale}) translate(-50%, -50%)`; + }; + window.requestAnimationFrame(applyFit); + window.setTimeout(applyFit, 0); + window.setTimeout(applyFit, 180); + } + function resizePlayer() { if (!state.playerEvents.length || typeof rrwebPlayer === "undefined") return; const { width, height } = playerDimensions(); @@ -1968,14 +2017,15 @@

Session context

try { if (state.player?.goto) { state.player.goto(offset, false); - return; - } - const replayer = state.player?.getReplayer?.(); - if (replayer?.play && replayer?.pause) { - replayer.play(offset); - window.setTimeout(() => replayer.pause(), 40); + } else if (state.player?.getReplayer) { + const replayer = state.player.getReplayer(); + if (replayer?.play && replayer?.pause) { + replayer.play(offset); + window.setTimeout(() => replayer.pause(), 40); + } } } catch (_) {} + fitReplayViewport(); }, 100); } From 6afeeb5f66ed163b24de7d2c86f3304b172991ae Mon Sep 17 00:00:00 2001 From: Nico Ritschel Date: Fri, 22 May 2026 14:40:59 -0700 Subject: [PATCH 4/8] Fix replay panel collapse layout --- docs/assets/replay-explorer.jpg | Bin 184972 -> 181933 bytes src/replay_ui.html | 63 +++++++++++++++++++++----------- 2 files changed, 41 insertions(+), 22 deletions(-) diff --git a/docs/assets/replay-explorer.jpg b/docs/assets/replay-explorer.jpg index 0f5c29eaa49158fc4b5672cc18a42b1d93922889..2fa0cade78cd7b29d1db415cf9462a2a3e572660 100644 GIT binary patch delta 117082 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 delta 116779 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

Hl=C`QXsrWCXjF}~ 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 Date: Fri, 22 May 2026 15:03:13 -0700 Subject: [PATCH 6/8] Unify replay context footer --- docs/assets/replay-explorer.jpg | Bin 186063 -> 185184 bytes src/replay_ui.html | 24 ++++++++++-------------- 2 files changed, 10 insertions(+), 14 deletions(-) diff --git a/docs/assets/replay-explorer.jpg b/docs/assets/replay-explorer.jpg index dfd51f65cd9db47e89b4f5c39d1ae9bfb29d8a5f..fb0b87fa88771aa96f91481a63f1f1e3f2a28a79 100644 GIT binary patch delta 1082 zcmV-A1jYN$tqb6$3xI?Hv;q>kmyoXlcLCD3aJT}Z0hf@k0(Sw^w{W-uq5+qXuL5@i z)cxwS0V@pxx0%QSj0b;Kbhq~LyF?k8m+u5elW+a-D@L<)%>9vA{pV(5_1!=Y{?fPp z?BDm|U;ZMG?JIxo&Hn&?CI0~8D?*9@&;HW4{_NlP;$QwEkL@de?#=%IekK0^;wjQz zTE%k}w34dLKJAE4%-cTp)%L5@0iXS)Z~fW7@5I0SMIYK${{WNURtN=Fg%kmwlh0Nd z1y+R=0iTo4Ru~vlt?wjWYD0gAg?=4=S4F3R^f5ieAGM#gIZD^|ZGOQ}> zsHM)_yZzOx)By}L#c-SAZOcY7v5oYPqOTv z&fl}<+p~3eEtie_N$~5!UM#!#F(lFaKbOQ>Ri>AHa<0i|YdlOZrG>7NPu!%ci5t2) zeAW7AMQIrs@}HPm@5E0NYM0*${9AwG&lX$gR}oF(co$xV*)C%HJZl0ZzE;mA+5YC_ zO`peI93QlY#BDFb)_R|fFV{(ZU%=Xh?w`8VRcTBF~`6W&}s!=rzsUPH4l z@F(zW-(Nuf(7zEi{{RK}o4~q0o#J)ymY1$csV<>>){$NLYX!QrOcl}kJAS`E%U-YI zKZCyxd|9p^5^MTFyu5!P$PLB9!8h5@?!4=CaSXdVZ$_@8QSgU{^}TOJ@jj<%=W2Qf z+8V}P?!Hgjqw=QtRkk+tmvFcOQnz^2 z0yP2?R&=%&@;gcum7DJrcaL}d@M}hwpY8#Zm%i=+9S?>WBDYPEF4d{1qJTgD+4~wu AL;wH) delta 1463 zcmb7^X-ty`7{}kX1EUNbXHh_m19T!KTEQtu9e5EW;BZtZ(5c}Z*ntCDD84umg7u1s zT|_LAqv0q_u0pXCX#vYp3M~UmEyaS$AxAmdLfiKpS+d0?+lPI7K0L?&dGdSyXmNFEG_0s6Vq2s`@EL_{z>Ga7-R=MfQs z|2x`=+5}73Kei%u2(T9Pf+n#9pOh0@(V18*I3Xn1lvIMfPl$^i#w|Hku~jgDvjCNk zU_dn`s|LjaqV^q6#~JT%H3Un1Z4-7}tEryWj@D}`3`f(r9VM25DK6bz?Yna`?$t@h z8mabb=F4czK=ZNm@R&v2z(f zgW)6$TqD2$t=>b8?!lRmGa?t8Z@x3ONvWZZ9|vZ@_=2P|!e{t&3N490FMl~3B_+3a zRoBk3UcXI(fhOLB%0s7y0Y*I+VnUCN;!I%p6Y*YuPXjS+cl=d*a(>Fsb0i8lF@=$S zY>Ukc-`^IZjIz)y!z++0X-ebSk_mh>3$<5$TzP@^7m-2`LMir*m2>mbGgeB?lRs5l z_UXlDQ6cJ)>rKT3w>g3!BDti62?IM*#TnKCIAdxC6=wiVE9l*jO$*vJIkwNGp~!vy zaO8=Ovy$vrPZrjqwC1-cwVk8?svPq|%2(P^9jm9<>(Fz`*6RtEs}$3IL4K;emH{kc zT;F^r)!04~Q$-fP;UdAv*&w|segHm81@yNC|6G}gy&B~`Zvx|;DaOe8Yy1@W?nYE+; z9^{wdwA!=5P{d$uCoKI7w>d22qk@6!;M8|z7w!jZ4(WZ=!X?{Lq5Z)k7|03P^w2;37+&x#TM_$Mvp|bhZWTCdrX~nw^0>zHSAZS z?GF)SMKu8?Wx+Q2MdgA4KIuaerDO8;*cEX{%@SUw91VkkLKD38r34YyH&peF{%hS* zmy=1;-$oP;&kv{sEAdx}hJX*+ZJ)=zLyNVg{T^~q`c*O(!_E@4%z7Vy%O~veTa+Lj6 zOFn&Opg7`%+O*`YoYVvZu|Y@uQ!0C{-8F%eYrARM7-j!!sKAi6vd~+G5G`V@@>=D&xY^5ceYb3RqrMHahx(LOo(!`o z$a1imbuf!yzEv8OP#6BT=*lieKls!;Vdn)f&vUF8*G8lkhTt8rS6@-@`+5xX;)o6k zvP88mZ1TS2HPIc`;jB*+Kjl0t&pJF>LpkUwE^48|z&cu}H7N|nJM6cye1AXp9~8Eq zPr$fvVh-e=KhDy&R4zdKn%%Je@Q`t)5#eTzWQ#hHw>Qzp(MTr*g1)N(8Ojz5kx3|e cDGup`+6Ir%Hyra@cK86&6ZvNr3IWUh0KnKDu>b%7 diff --git a/src/replay_ui.html b/src/replay_ui.html index d5b07d9..3513f32 100644 --- a/src/replay_ui.html +++ b/src/replay_ui.html @@ -446,7 +446,8 @@ } .inspector-dock { - justify-content: flex-start; + justify-content: space-between; + gap: 12px; } .panel-toggle { @@ -510,6 +511,10 @@ right: 12px; } + .app.inspector-collapsed #debugToggle { + display: none; + } + @media (hover: hover) { .button:hover { background: #2a2d2a; @@ -760,21 +765,18 @@ } .debug { + display: none; border-top: 1px solid var(--line); } - .debug-head { - display: flex; - justify-content: flex-end; - padding: 8px 12px; + .debug.is-open { + display: block; } .debug pre { - display: none; max-height: 220px; overflow: auto; margin: 0; - border-top: 1px solid var(--line); padding: 12px; color: var(--muted); font-family: var(--mono); @@ -784,10 +786,6 @@ word-break: break-word; } - .debug.is-open pre { - display: block; - } - .is-hidden { display: none !important; } @@ -1103,9 +1101,6 @@

Session context

-
- -
-
@@ -1149,6 +1144,7 @@

Session context

+ From ecebde5b0ba413f77fb9b5edae8bda8822db9193 Mon Sep 17 00:00:00 2001 From: Nico Ritschel Date: Fri, 22 May 2026 15:09:34 -0700 Subject: [PATCH 7/8] Scope replay collapsed dock positioning --- src/replay_ui.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/replay_ui.html b/src/replay_ui.html index 3513f32..285ad6e 100644 --- a/src/replay_ui.html +++ b/src/replay_ui.html @@ -488,8 +488,8 @@ display: block; } - .app.rail-collapsed .panel-dock, - .app.inspector-collapsed .panel-dock { + .app.rail-collapsed .rail-dock, + .app.inspector-collapsed .inspector-dock { position: fixed; top: auto; right: auto; From b2a21a2246c6220d71039d7c19e1c8bbcf481147 Mon Sep 17 00:00:00 2001 From: Nico Ritschel Date: Fri, 22 May 2026 15:18:23 -0700 Subject: [PATCH 8/8] Use Hogflare mark in replay toolbar --- docs/assets/replay-explorer.jpg | Bin 185184 -> 184170 bytes src/replay_ui.html | 41 ++++++++++++++++++++++++++++++-- tests/posthog_endpoints.rs | 2 ++ 3 files changed, 41 insertions(+), 2 deletions(-) diff --git a/docs/assets/replay-explorer.jpg b/docs/assets/replay-explorer.jpg index fb0b87fa88771aa96f91481a63f1f1e3f2a28a79..ca9f60811e138cec9c35e1d117bb3dbad4cd2bbf 100644 GIT binary patch delta 7421 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 SNMAorUw;c(Uw`Y>;{OHKVHUCg diff --git a/src/replay_ui.html b/src/replay_ui.html index 285ad6e..4b67e82 100644 --- a/src/replay_ui.html +++ b/src/replay_ui.html @@ -147,6 +147,21 @@ justify-content: space-between; } + .brand-mark { + display: inline-flex; + align-items: center; + justify-content: center; + width: 34px; + height: 40px; + color: var(--ink); + } + + .brand-mark svg { + display: block; + width: 34px; + height: 40px; + } + h1, h2, h3, @@ -195,6 +210,10 @@ background: var(--accent); } + .status[hidden] { + display: none !important; + } + .mode-switch { display: flex; gap: 5px; @@ -865,8 +884,26 @@

Ozlqr}0={?w3j%yh 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 Date: Fri, 22 May 2026 14:51:38 -0700 Subject: [PATCH 5/8] Keep replay toggles in bottom docks --- docs/assets/replay-explorer.jpg | Bin 181933 -> 186063 bytes src/replay_ui.html | 30 ++++++++++++++++++------------ 2 files changed, 18 insertions(+), 12 deletions(-) diff --git a/docs/assets/replay-explorer.jpg b/docs/assets/replay-explorer.jpg index 2fa0cade78cd7b29d1db415cf9462a2a3e572660..dfd51f65cd9db47e89b4f5c39d1ae9bfb29d8a5f 100644 GIT binary patch delta 116901 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 delta 117092 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