Skip to content

feat(ingestion): verify events captured with the secret API key - #62888

Closed
Gilbert09 wants to merge 2 commits into
masterfrom
tom/secret-key-verified-events
Closed

Gilbert09 wants to merge 2 commits into
masterfrom
tom/secret-key-verified-events

Conversation

@Gilbert09

Copy link
Copy Markdown
Member

Problem

Server-side SDKs authenticate capture with the public project API key (phc_), which is world-readable by design — so nothing distinguishes an event genuinely sent by trusted server infrastructure from one forged by anyone holding the public key. For workflows that act automatically on ingested events (e.g. error-tracking automations), we need a way to know an event came from a holder of a server-side secret.

An earlier approach signed individual $exception events with per-team Ed25519 keys (#62750, #62751, posthog-python#657). This PR supersedes that with a much simpler transport-level mechanism: send events with the project's secret API token (phs_, already used for flags local evaluation and the conversations API), and every event ingested that way is marked verified.

Changes

  • Ingestion (plugin-server): TeamManager now also resolves teams by secret_api_token and secret_api_token_backup (so token rotation keeps working), and the shared resolve-team step sets a server-controlled $verified: true property on events captured with a secret token. Any client-supplied $verified on public-token events is stripped, so the property cannot be forged. Covers the analytics, error-tracking, and heatmap pipelines; a counter metric tracks verified/stripped events.
  • Billing / quota limiting: the quota-limit Redis sets now include each team's secret tokens alongside the public token. Capture enforces quota by the raw request token, so without this a team switching to phs_ capture would bypass billing limits.
  • Feature flags service: /flags requests now accept a phs_ token as the api_key (reusing the existing cached secret-token validation used by /flag_definitions), so an SDK configured with the secret key keeps evaluating flags. Unknown phs_ tokens 401 without polluting the public-token negative cache.
  • Taxonomy: $verified registered as a boolean event property.

No SDK changes are required — server SDKs send api_key verbatim, so setting api_key="phs_..." works as-is. Capture already accepts phs_ tokens at the edge (format-only validation) and the token is not persisted to ClickHouse.

Everything is inert until a team generates a secret token (existing rotate endpoint) and points an SDK at it; teams with NULL secret tokens see byte-identical behaviour. No migrations — unique indexes on both secret-token columns already exist.

Notes for reviewers:

  • Overflow / per-(token, distinct_id) rate-limit buckets treat phc_ and phs_ as separate keys — accepted.
  • Token-dropper blocklists are exact-string config, so ops must list a team's phs_ token too to fully block a team.
  • Session replay intentionally keeps rejecting phs_ tokens (its team service is public-token-only; server SDKs don't do replay).

How did you test this code?

  • nodejs: new parameterized unit tests for applyVerifiedProperty and the resolve-team step (secret/backup/forged/no-properties/null-secret cases), team-manager integration tests for secret-token resolution and cache warming, and two end-to-end ingestion tests (phs_ capture lands in ClickHouse with $verified: true; forged $verified via phc_ is stripped). Full event-preprocessing and error-tracking pipeline suites pass.
  • ee/billing: parameterized pytest coverage over no-secret / primary-only / primary+backup token sets for update_org_billing_quotas, update_all_orgs_billing_quotas, and the token helpers; full test_quota_limiting.py suite passes (74 tests).
  • rust/feature-flags: integration tests for /flags authenticated with the primary and backup secret token (200 + flags evaluated) and an unknown phs_ token (401 with Django-compatible error body).

Automatic notifications

  • Publish to changelog?
  • Alert Sales and Marketing teams?

Docs update

@Gilbert09 Gilbert09 self-assigned this Jun 11, 2026
@pr-assigner-resolver-posthog
pr-assigner-resolver-posthog Bot requested review from a team June 11, 2026 10:13
@pr-assigner-resolver-posthog

Copy link
Copy Markdown

👀 Auto-assigned reviewers

These soft owners were skipped because they only have minor changes here. Nothing blocks merge, so self-assign if you'd like a look:

  • @PostHog/team-product-analytics (posthog/taxonomy/)

Soft owners come from CODEOWNERS-soft and each product's product.yaml. Generated files and lockfiles are ignored when deciding ownership.

@github-actions

github-actions Bot commented Jun 11, 2026 •

Copy link
Copy Markdown
Contributor

Size Change: +391 kB (+0.61%)

Total Size: 64.4 MB

📦 View Changed
Filename Size Change
frontend/dist-report/exporter/_chunks/chunk 2.62 MB +383 kB (+17.12%) ⚠️
frontend/dist-report/posthog-app/_chunks/chunk 2.62 MB +7.96 kB (+0.3%)
ℹ️ View Unchanged
Filename Size Change
frontend/dist-report/decompression-worker/src/scenes/session-recordings/player/snapshot-processing/decompressionWorker 2.85 kB 0 B
frontend/dist-report/exporter/_parent/products/actions/frontend/pages/Action 27.9 kB 0 B
frontend/dist-report/exporter/_parent/products/actions/frontend/pages/Actions 5.66 kB 0 B
frontend/dist-report/exporter/_parent/products/ai_gateway/frontend/AIGatewayScene 13.2 kB 0 B
frontend/dist-report/exporter/_parent/products/ai_observability/frontend/AIObservabilityScene 120 kB 0 B
frontend/dist-report/exporter/_parent/products/ai_observability/frontend/AIObservabilitySessionScene 19.4 kB 0 B
frontend/dist-report/exporter/_parent/products/ai_observability/frontend/AIObservabilityTraceScene 132 kB 0 B
frontend/dist-report/exporter/_parent/products/ai_observability/frontend/AIObservabilityUsers 3.44 kB 0 B
frontend/dist-report/exporter/_parent/products/ai_observability/frontend/clusters/AIObservabilityClusterScene 21.8 kB 0 B
frontend/dist-report/exporter/_parent/products/ai_observability/frontend/clusters/AIObservabilityClustersScene 53.9 kB 0 B
frontend/dist-report/exporter/_parent/products/ai_observability/frontend/datasets/AIObservabilityDatasetScene 20.7 kB 0 B
frontend/dist-report/exporter/_parent/products/ai_observability/frontend/datasets/AIObservabilityDatasetsScene 4.07 kB 0 B
frontend/dist-report/exporter/_parent/products/ai_observability/frontend/evaluations/AIObservabilityEvaluation 60.6 kB 0 B
frontend/dist-report/exporter/_parent/products/ai_observability/frontend/evaluations/AIObservabilityEvaluationsScene 32.8 kB 0 B
frontend/dist-report/exporter/_parent/products/ai_observability/frontend/evaluations/EvaluationTemplates 671 B 0 B
frontend/dist-report/exporter/_parent/products/ai_observability/frontend/LLMASessionFeedbackDisplay 4.81 kB 0 B
frontend/dist-report/exporter/_parent/products/ai_observability/frontend/playground/AIObservabilityPlaygroundScene 37.5 kB 0 B
frontend/dist-report/exporter/_parent/products/ai_observability/frontend/prompts/LLMPromptScene 32.8 kB 0 B
frontend/dist-report/exporter/_parent/products/ai_observability/frontend/prompts/LLMPromptsScene 5.21 kB 0 B
frontend/dist-report/exporter/_parent/products/ai_observability/frontend/tags/AIObservabilityTag 32 kB 0 B
frontend/dist-report/exporter/_parent/products/ai_observability/frontend/tags/AIObservabilityTagsScene 11.8 kB 0 B
frontend/dist-report/exporter/_parent/products/business_knowledge/frontend/scenes/BusinessKnowledgeScene 23.3 kB 0 B
frontend/dist-report/exporter/_parent/products/conversations/frontend/components/Assignee/CyclotronJobInputAssignee 1.38 kB 0 B
frontend/dist-report/exporter/_parent/products/conversations/frontend/components/SlaBusinessHours/CyclotronJobInputBusinessHours 2.69 kB 0 B
frontend/dist-report/exporter/_parent/products/conversations/frontend/components/TicketTags/CyclotronJobInputTicketTags 783 B 0 B
frontend/dist-report/exporter/_parent/products/conversations/frontend/scenes/settings/SupportSettingsScene 5.73 kB 0 B
frontend/dist-report/exporter/_parent/products/conversations/frontend/scenes/ticket/SupportTicketScene 41.4 kB 0 B
frontend/dist-report/exporter/_parent/products/conversations/frontend/scenes/tickets/SupportTicketsScene 1.68 kB 0 B
frontend/dist-report/exporter/_parent/products/customer_analytics/frontend/CustomerAnalyticsScene 96.4 kB 0 B
frontend/dist-report/exporter/_parent/products/customer_analytics/frontend/scenes/CustomerAnalyticsConfigurationScene/CustomerAnalyticsConfigurationScene 6.48 kB 0 B
frontend/dist-report/exporter/_parent/products/customer_analytics/frontend/scenes/CustomerJourneyBuilderScene/CustomerJourneyBuilderScene 6.33 kB 0 B
frontend/dist-report/exporter/_parent/products/customer_analytics/frontend/scenes/CustomerJourneyTemplatesScene/CustomerJourneyTemplatesScene 9.23 kB 0 B
frontend/dist-report/exporter/_parent/products/data_warehouse/DataWarehouseScene 32.3 kB 0 B
frontend/dist-report/exporter/_parent/products/data_warehouse/frontend/scenes/NewSourceScene/NewSourceScene 2.88 kB 0 B
frontend/dist-report/exporter/_parent/products/data_warehouse/frontend/scenes/SchemaScene/SchemaScene 34.1 kB 0 B
frontend/dist-report/exporter/_parent/products/data_warehouse/frontend/scenes/SourceConnectScene/SourceConnectScene 7 kB 0 B
frontend/dist-report/exporter/_parent/products/data_warehouse/frontend/scenes/SourceScene/SourceScene 2.69 kB 0 B
frontend/dist-report/exporter/_parent/products/data_warehouse/frontend/scenes/SourcesScene/SourcesScene 7.49 kB 0 B
frontend/dist-report/exporter/_parent/products/early_access_features/frontend/EarlyAccessFeature 5.54 kB 0 B
frontend/dist-report/exporter/_parent/products/early_access_features/frontend/EarlyAccessFeatures 3.73 kB 0 B
frontend/dist-report/exporter/_parent/products/endpoints/frontend/EndpointScene 47.6 kB 0 B
frontend/dist-report/exporter/_parent/products/endpoints/frontend/EndpointsScene 27.4 kB 0 B
frontend/dist-report/exporter/_parent/products/engineering_analytics/frontend/scenes/EngineeringAnalyticsAuthorScene 5.31 kB 0 B
frontend/dist-report/exporter/_parent/products/engineering_analytics/frontend/scenes/EngineeringAnalyticsScene 21.5 kB 0 B
frontend/dist-report/exporter/_parent/products/engineering_analytics/frontend/scenes/PullRequestDetailScene 20.8 kB 0 B
frontend/dist-report/exporter/_parent/products/engineering_analytics/frontend/scenes/WorkflowRunDetailScene 6.42 kB 0 B
frontend/dist-report/exporter/_parent/products/engineering_analytics/frontend/scenes/WorkflowRunsScene 7.94 kB 0 B
frontend/dist-report/exporter/_parent/products/error_tracking/frontend/scenes/ErrorTrackingFingerprintsScene/ErrorTrackingIssueFingerprintsScene 7.66 kB 0 B
frontend/dist-report/exporter/_parent/products/error_tracking/frontend/scenes/ErrorTrackingIssueScene/ErrorTrackingIssueScene 102 kB 0 B
frontend/dist-report/exporter/_parent/products/error_tracking/frontend/scenes/ErrorTrackingScene/ErrorTrackingScene 42.6 kB 0 B
frontend/dist-report/exporter/_parent/products/feature_flags/frontend/FeatureFlagTemplatesScene 6.91 kB 0 B
frontend/dist-report/exporter/_parent/products/games/368Hedgehogs/368Hedgehogs 5.24 kB 0 B
frontend/dist-report/exporter/_parent/products/games/FlappyHog/FlappyHog 5.7 kB 0 B
frontend/dist-report/exporter/_parent/products/growth/frontend/IdentityMatchingScene 35.9 kB 0 B
frontend/dist-report/exporter/_parent/products/legal_documents/frontend/scenes/LegalDocumentNewScene 60.1 kB 0 B
frontend/dist-report/exporter/_parent/products/legal_documents/frontend/scenes/LegalDocumentsScene 6.37 kB 0 B
frontend/dist-report/exporter/_parent/products/links/frontend/LinkScene 25.4 kB 0 B
frontend/dist-report/exporter/_parent/products/links/frontend/LinksScene 5.15 kB 0 B
frontend/dist-report/exporter/_parent/products/live_debugger/frontend/LiveDebugger 19.6 kB 0 B
frontend/dist-report/exporter/_parent/products/logs/frontend/LogsScene 22.6 kB 0 B
frontend/dist-report/exporter/_parent/products/logs/frontend/scenes/LogsAlertDetailScene/LogsAlertDetailScene 18.5 kB 0 B
frontend/dist-report/exporter/_parent/products/logs/frontend/scenes/LogsAlertNotificationDetailScene/LogsAlertNotificationDetailScene 9 kB 0 B
frontend/dist-report/exporter/_parent/products/logs/frontend/scenes/LogsSamplingDetailScene/LogsSamplingDetailScene 6.11 kB 0 B
frontend/dist-report/exporter/_parent/products/logs/frontend/scenes/LogsSamplingNewScene/LogsSamplingNewScene 3.12 kB 0 B
frontend/dist-report/exporter/_parent/products/managed_migrations/frontend/ManagedMigration 15.2 kB 0 B
frontend/dist-report/exporter/_parent/products/mcp_analytics/frontend/MCPAnalyticsScene 109 kB 0 B
frontend/dist-report/exporter/_parent/products/mcp_analytics/frontend/MCPAnalyticsToolDetail 20.1 kB 0 B
frontend/dist-report/exporter/_parent/products/metrics/frontend/MetricsScene 18.1 kB 0 B
frontend/dist-report/exporter/_parent/products/posthog_ai/frontend/sandbox/components/tool/builtinToolRenderers 4.48 kB 0 B
frontend/dist-report/exporter/_parent/products/posthog_ai/frontend/sandbox/SandboxQuestionRenderer 1.76 kB 0 B
frontend/dist-report/exporter/_parent/products/product_analytics/frontend/insights/stickiness/StickinessBarChart/StickinessBarChart 4.17 kB 0 B
frontend/dist-report/exporter/_parent/products/product_analytics/frontend/insights/stickiness/StickinessLineChart/StickinessLineChart 4.05 kB 0 B
frontend/dist-report/exporter/_parent/products/product_analytics/frontend/insights/trends/TrendsBarChart/TrendsBarChart 9.6 kB 0 B
frontend/dist-report/exporter/_parent/products/product_analytics/frontend/insights/trends/TrendsLifecycleChart/TrendsLifecycleChart 5.87 kB 0 B
frontend/dist-report/exporter/_parent/products/product_analytics/frontend/insights/trends/TrendsLineChart/TrendsLineChart 5.82 kB 0 B
frontend/dist-report/exporter/_parent/products/product_analytics/frontend/insights/trends/TrendsPieChart/TrendsPieChart 5.01 kB 0 B
frontend/dist-report/exporter/_parent/products/product_analytics/frontend/insights/trends/TrendsSlopeChart/TrendsSlopeChart 2.6 kB 0 B
frontend/dist-report/exporter/_parent/products/replay_vision/frontend/observations/ReplayObservation 17.9 kB 0 B
frontend/dist-report/exporter/_parent/products/replay_vision/frontend/replay_scanners/ReplayScanner 41.3 kB 0 B
frontend/dist-report/exporter/_parent/products/replay_vision/frontend/replay_scanners/ReplayScannersScene 22.4 kB 0 B
frontend/dist-report/exporter/_parent/products/replay_vision/frontend/replay_scanners/ScannerEditorScene 25.2 kB 0 B
frontend/dist-report/exporter/_parent/products/revenue_analytics/frontend/revenueAnalyticsLogic 1.49 kB 0 B
frontend/dist-report/exporter/_parent/products/revenue_analytics/frontend/RevenueAnalyticsScene 29.8 kB 0 B
frontend/dist-report/exporter/_parent/products/session_summaries/frontend/SessionGroupSummariesTable 5.4 kB 0 B
frontend/dist-report/exporter/_parent/products/session_summaries/frontend/SessionGroupSummaryScene 23.3 kB 0 B
frontend/dist-report/exporter/_parent/products/skills/frontend/LLMSkillScene 1.47 kB 0 B
frontend/dist-report/exporter/_parent/products/skills/frontend/LLMSkillsScene 1.48 kB 0 B
frontend/dist-report/exporter/_parent/products/tasks/frontend/SlackTaskContextScene 9 kB 0 B
frontend/dist-report/exporter/_parent/products/tasks/frontend/TaskTracker 67.9 kB 0 B
frontend/dist-report/exporter/_parent/products/tracing/frontend/TracingScene 86.6 kB 0 B
frontend/dist-report/exporter/_parent/products/user_interviews/frontend/UserInterview 10.8 kB 0 B
frontend/dist-report/exporter/_parent/products/user_interviews/frontend/UserInterviewResponse 8.05 kB 0 B
frontend/dist-report/exporter/_parent/products/user_interviews/frontend/UserInterviews 6.46 kB 0 B
frontend/dist-report/exporter/_parent/products/visual_review/frontend/scenes/VisualReviewIndexScene 3 kB 0 B
frontend/dist-report/exporter/_parent/products/visual_review/frontend/scenes/VisualReviewRunScene 47.2 kB 0 B
frontend/dist-report/exporter/_parent/products/visual_review/frontend/scenes/VisualReviewRunsScene 8.23 kB 0 B
frontend/dist-report/exporter/_parent/products/visual_review/frontend/scenes/VisualReviewSettingsScene 11.6 kB 0 B
frontend/dist-report/exporter/_parent/products/visual_review/frontend/scenes/VisualReviewSnapshotHistoryScene 14.3 kB 0 B
frontend/dist-report/exporter/_parent/products/visual_review/frontend/scenes/VisualReviewSnapshotOverviewScene 19.8 kB 0 B
frontend/dist-report/exporter/_parent/products/workflows/frontend/TemplateLibrary/MessageTemplate 17 kB 0 B
frontend/dist-report/exporter/_parent/products/workflows/frontend/Workflows/WorkflowScene 113 kB 0 B
frontend/dist-report/exporter/_parent/products/workflows/frontend/WorkflowsScene 61.4 kB 0 B
frontend/dist-report/exporter/src/exporter/exporter 25.9 kB 0 B
frontend/dist-report/exporter/src/exporter/scenes/ExporterDashboardScene 6.64 kB 0 B
frontend/dist-report/exporter/src/exporter/scenes/ExporterHeatmapScene 20.1 kB 0 B
frontend/dist-report/exporter/src/exporter/scenes/ExporterInsightScene 7.21 kB 0 B
frontend/dist-report/exporter/src/exporter/scenes/ExporterInterviewScene 310 kB 0 B
frontend/dist-report/exporter/src/exporter/scenes/ExporterNotebookScene 2.9 MB 0 B
frontend/dist-report/exporter/src/exporter/scenes/ExporterRecordingScene 5.59 kB 0 B
frontend/dist-report/exporter/src/exporterSharedChunkAnchors 1.26 kB 0 B
frontend/dist-report/exporter/src/lib/components/ActivityLog/describers 129 kB 0 B
frontend/dist-report/exporter/src/lib/components/Cards/TextCard/TextCardMarkdownEditor 10.6 kB 0 B
frontend/dist-report/exporter/src/lib/components/MonacoDiffEditor 533 B 0 B
frontend/dist-report/exporter/src/lib/lemon-ui/LemonMarkdown/MermaidDiagram 2 kB 0 B
frontend/dist-report/exporter/src/lib/lemon-ui/LemonTextArea/LemonTextAreaMarkdown 790 B 0 B
frontend/dist-report/exporter/src/lib/lemon-ui/Link/Link 415 B 0 B
frontend/dist-report/exporter/src/lib/monaco/CodeEditor 448 B 0 B
frontend/dist-report/exporter/src/lib/monaco/CodeEditorImpl 26.5 kB 0 B
frontend/dist-report/exporter/src/lib/monaco/CodeEditorInline 649 B 0 B
frontend/dist-report/exporter/src/lib/monaco/vimMode 211 kB 0 B
frontend/dist-report/exporter/src/lib/ui/Button/ButtonPrimitives 482 B 0 B
frontend/dist-report/exporter/src/queries/nodes/WebVitals/WebVitals 11.5 kB 0 B
frontend/dist-report/exporter/src/queries/nodes/WebVitals/WebVitalsPathBreakdown 4.76 kB 0 B
frontend/dist-report/exporter/src/queries/Query/Query 5.08 kB 0 B
frontend/dist-report/exporter/src/queries/schema 955 kB 0 B
frontend/dist-report/exporter/src/scenes/approvals/changeRequestsLogic 622 B 0 B
frontend/dist-report/exporter/src/scenes/authentication/login/loginLogic 569 B 0 B
frontend/dist-report/exporter/src/scenes/authentication/shared/passkeyLogic 602 B 0 B
frontend/dist-report/exporter/src/scenes/data-pipelines/event-filtering/EventFilterScene 22.8 kB 0 B
frontend/dist-report/exporter/src/scenes/data-pipelines/TransformationsScene 8.09 kB 0 B
frontend/dist-report/exporter/src/scenes/experiments/notebook/NotebookCompactTable 1.54 kB 0 B
frontend/dist-report/exporter/src/scenes/hog-functions/misc/Diff 1.35 kB 0 B
frontend/dist-report/exporter/src/scenes/insights/views/BoxPlot/BoxPlot 4.49 kB 0 B
frontend/dist-report/exporter/src/scenes/insights/views/CalendarHeatMap/CalendarHeatMap 8.88 kB 0 B
frontend/dist-report/exporter/src/scenes/insights/views/RegionMap/RegionMap 30.3 kB 0 B
frontend/dist-report/exporter/src/scenes/insights/views/WorldMap/WorldMap 1.04 MB 0 B
frontend/dist-report/exporter/src/scenes/max/messages/adapters/CreateInsightWidget 5.73 kB 0 B
frontend/dist-report/exporter/src/scenes/max/messages/adapters/CreateNotebookWidget 1.8 kB 0 B
frontend/dist-report/exporter/src/scenes/max/messages/adapters/EditDiffRenderer 3.23 kB 0 B
frontend/dist-report/exporter/src/scenes/max/messages/adapters/ErrorTrackingWidget 5.55 kB 0 B
frontend/dist-report/exporter/src/scenes/max/messages/adapters/QueryWidget 5.67 kB 0 B
frontend/dist-report/exporter/src/scenes/max/messages/adapters/SearchSessionRecordingsWidget 5.58 kB 0 B
frontend/dist-report/exporter/src/scenes/max/messages/adapters/UpsertDashboardWidget 1.61 kB 0 B
frontend/dist-report/exporter/src/scenes/models/ModelsScene 20 kB 0 B
frontend/dist-report/exporter/src/scenes/models/NodeDetailScene 19 kB 0 B
frontend/dist-report/monaco-editor-worker/src/lib/monaco/workers/monacoEditorWorker 288 kB 0 B
frontend/dist-report/monaco-json-worker/src/lib/monaco/workers/monacoJsonWorker 419 kB 0 B
frontend/dist-report/monaco-typescript-worker/src/lib/monaco/workers/monacoTsWorker 7.02 MB 0 B
frontend/dist-report/posthog-app/_parent/products/actions/frontend/pages/Action 29.3 kB 0 B
frontend/dist-report/posthog-app/_parent/products/actions/frontend/pages/Actions 6.95 kB 0 B
frontend/dist-report/posthog-app/_parent/products/ai_gateway/frontend/AIGatewayScene 13.7 kB 0 B
frontend/dist-report/posthog-app/_parent/products/ai_observability/frontend/AIObservabilityScene 122 kB 0 B
frontend/dist-report/posthog-app/_parent/products/ai_observability/frontend/AIObservabilitySessionScene 19.9 kB 0 B
frontend/dist-report/posthog-app/_parent/products/ai_observability/frontend/AIObservabilityTraceScene 133 kB 0 B
frontend/dist-report/posthog-app/_parent/products/ai_observability/frontend/AIObservabilityUsers 4.23 kB 0 B
frontend/dist-report/posthog-app/_parent/products/ai_observability/frontend/clusters/AIObservabilityClusterScene 22.3 kB 0 B
frontend/dist-report/posthog-app/_parent/products/ai_observability/frontend/clusters/AIObservabilityClustersScene 54.4 kB 0 B
frontend/dist-report/posthog-app/_parent/products/ai_observability/frontend/datasets/AIObservabilityDatasetScene 21.2 kB 0 B
frontend/dist-report/posthog-app/_parent/products/ai_observability/frontend/datasets/AIObservabilityDatasetsScene 4.54 kB 0 B
frontend/dist-report/posthog-app/_parent/products/ai_observability/frontend/evaluations/AIObservabilityEvaluation 61.1 kB 0 B
frontend/dist-report/posthog-app/_parent/products/ai_observability/frontend/evaluations/AIObservabilityEvaluationsScene 34.1 kB 0 B
frontend/dist-report/posthog-app/_parent/products/ai_observability/frontend/evaluations/EvaluationTemplates 671 B 0 B
frontend/dist-report/posthog-app/_parent/products/ai_observability/frontend/LLMASessionFeedbackDisplay 4.81 kB 0 B
frontend/dist-report/posthog-app/_parent/products/ai_observability/frontend/playground/AIObservabilityPlaygroundScene 38.1 kB 0 B
frontend/dist-report/posthog-app/_parent/products/ai_observability/frontend/prompts/LLMPromptScene 34.1 kB 0 B
frontend/dist-report/posthog-app/_parent/products/ai_observability/frontend/prompts/LLMPromptsScene 5.69 kB 0 B
frontend/dist-report/posthog-app/_parent/products/ai_observability/frontend/tags/AIObservabilityTag 33.2 kB 0 B
frontend/dist-report/posthog-app/_parent/products/ai_observability/frontend/tags/AIObservabilityTagsScene 13 kB 0 B
frontend/dist-report/posthog-app/_parent/products/business_knowledge/frontend/scenes/BusinessKnowledgeScene 23.8 kB 0 B
frontend/dist-report/posthog-app/_parent/products/conversations/frontend/components/Assignee/CyclotronJobInputAssignee 1.38 kB 0 B
frontend/dist-report/posthog-app/_parent/products/conversations/frontend/components/SlaBusinessHours/CyclotronJobInputBusinessHours 2.7 kB 0 B
frontend/dist-report/posthog-app/_parent/products/conversations/frontend/components/TicketTags/CyclotronJobInputTicketTags 783 B 0 B
frontend/dist-report/posthog-app/_parent/products/conversations/frontend/scenes/settings/SupportSettingsScene 7.77 kB 0 B
frontend/dist-report/posthog-app/_parent/products/conversations/frontend/scenes/ticket/SupportTicketScene 35.2 kB 0 B
frontend/dist-report/posthog-app/_parent/products/conversations/frontend/scenes/tickets/SupportTicketsScene 2.15 kB 0 B
frontend/dist-report/posthog-app/_parent/products/customer_analytics/frontend/CustomerAnalyticsScene 96.6 kB 0 B
frontend/dist-report/posthog-app/_parent/products/customer_analytics/frontend/scenes/CustomerAnalyticsConfigurationScene/CustomerAnalyticsConfigurationScene 8.52 kB 0 B
frontend/dist-report/posthog-app/_parent/products/customer_analytics/frontend/scenes/CustomerJourneyBuilderScene/CustomerJourneyBuilderScene 7.58 kB 0 B
frontend/dist-report/posthog-app/_parent/products/customer_analytics/frontend/scenes/CustomerJourneyTemplatesScene/CustomerJourneyTemplatesScene 10 kB 0 B
frontend/dist-report/posthog-app/_parent/products/data_warehouse/DataWarehouseScene 2.04 kB 0 B
frontend/dist-report/posthog-app/_parent/products/data_warehouse/frontend/scenes/NewSourceScene/NewSourceScene 3.66 kB 0 B
frontend/dist-report/posthog-app/_parent/products/data_warehouse/frontend/scenes/SchemaScene/SchemaScene 34.6 kB 0 B
frontend/dist-report/posthog-app/_parent/products/data_warehouse/frontend/scenes/SourceConnectScene/SourceConnectScene 7.71 kB 0 B
frontend/dist-report/posthog-app/_parent/products/data_warehouse/frontend/scenes/SourceScene/SourceScene 3.37 kB 0 B
frontend/dist-report/posthog-app/_parent/products/data_warehouse/frontend/scenes/SourcesScene/SourcesScene 8.1 kB 0 B
frontend/dist-report/posthog-app/_parent/products/early_access_features/frontend/EarlyAccessFeature 6.97 kB 0 B
frontend/dist-report/posthog-app/_parent/products/early_access_features/frontend/EarlyAccessFeatures 4.21 kB 0 B
frontend/dist-report/posthog-app/_parent/products/endpoints/frontend/EndpointScene 48.9 kB 0 B
frontend/dist-report/posthog-app/_parent/products/endpoints/frontend/EndpointsScene 26.7 kB 0 B
frontend/dist-report/posthog-app/_parent/products/engineering_analytics/frontend/scenes/EngineeringAnalyticsAuthorScene 5.79 kB 0 B
frontend/dist-report/posthog-app/_parent/products/engineering_analytics/frontend/scenes/EngineeringAnalyticsScene 22 kB 0 B
frontend/dist-report/posthog-app/_parent/products/engineering_analytics/frontend/scenes/PullRequestDetailScene 21.3 kB 0 B
frontend/dist-report/posthog-app/_parent/products/engineering_analytics/frontend/scenes/WorkflowRunDetailScene 6.89 kB 0 B
frontend/dist-report/posthog-app/_parent/products/engineering_analytics/frontend/scenes/WorkflowRunsScene 8.42 kB 0 B
frontend/dist-report/posthog-app/_parent/products/error_tracking/frontend/scenes/ErrorTrackingFingerprintsScene/ErrorTrackingIssueFingerprintsScene 8.17 kB 0 B
frontend/dist-report/posthog-app/_parent/products/error_tracking/frontend/scenes/ErrorTrackingIssueScene/ErrorTrackingIssueScene 103 kB 0 B
frontend/dist-report/posthog-app/_parent/products/error_tracking/frontend/scenes/ErrorTrackingScene/ErrorTrackingScene 44.9 kB 0 B
frontend/dist-report/posthog-app/_parent/products/feature_flags/frontend/FeatureFlagTemplatesScene 6.92 kB 0 B
frontend/dist-report/posthog-app/_parent/products/games/368Hedgehogs/368Hedgehogs 5.24 kB 0 B
frontend/dist-report/posthog-app/_parent/products/games/FlappyHog/FlappyHog 5.7 kB 0 B
frontend/dist-report/posthog-app/_parent/products/growth/frontend/IdentityMatchingScene 36.3 kB 0 B
frontend/dist-report/posthog-app/_parent/products/legal_documents/frontend/scenes/LegalDocumentNewScene 60.6 kB 0 B
frontend/dist-report/posthog-app/_parent/products/legal_documents/frontend/scenes/LegalDocumentsScene 6.84 kB 0 B
frontend/dist-report/posthog-app/_parent/products/links/frontend/LinkScene 25.9 kB 0 B
frontend/dist-report/posthog-app/_parent/products/links/frontend/LinksScene 5.63 kB 0 B
frontend/dist-report/posthog-app/_parent/products/live_debugger/frontend/LiveDebugger 20 kB 0 B
frontend/dist-report/posthog-app/_parent/products/logs/frontend/components/LogsViewer/LogsViewerModal/LogsViewerModal 2.41 kB 0 B
frontend/dist-report/posthog-app/_parent/products/logs/frontend/LogsScene 23.8 kB 0 B
frontend/dist-report/posthog-app/_parent/products/logs/frontend/scenes/LogsAlertDetailScene/LogsAlertDetailScene 19.1 kB 0 B
frontend/dist-report/posthog-app/_parent/products/logs/frontend/scenes/LogsAlertNotificationDetailScene/LogsAlertNotificationDetailScene 9.54 kB 0 B
frontend/dist-report/posthog-app/_parent/products/logs/frontend/scenes/LogsSamplingDetailScene/LogsSamplingDetailScene 6.59 kB 0 B
frontend/dist-report/posthog-app/_parent/products/logs/frontend/scenes/LogsSamplingNewScene/LogsSamplingNewScene 3.6 kB 0 B
frontend/dist-report/posthog-app/_parent/products/managed_migrations/frontend/ManagedMigration 15.7 kB 0 B
frontend/dist-report/posthog-app/_parent/products/mcp_analytics/frontend/MCPAnalyticsScene 110 kB 0 B
frontend/dist-report/posthog-app/_parent/products/mcp_analytics/frontend/MCPAnalyticsToolDetail 20.6 kB 0 B
frontend/dist-report/posthog-app/_parent/products/metrics/frontend/MetricsScene 18.9 kB 0 B
frontend/dist-report/posthog-app/_parent/products/posthog_ai/frontend/sandbox/components/tool/builtinToolRenderers 4.48 kB 0 B
frontend/dist-report/posthog-app/_parent/products/posthog_ai/frontend/sandbox/SandboxQuestionRenderer 1.76 kB 0 B
frontend/dist-report/posthog-app/_parent/products/product_analytics/frontend/insights/stickiness/StickinessBarChart/StickinessBarChart 4.62 kB 0 B
frontend/dist-report/posthog-app/_parent/products/product_analytics/frontend/insights/stickiness/StickinessLineChart/StickinessLineChart 4.5 kB 0 B
frontend/dist-report/posthog-app/_parent/products/product_analytics/frontend/insights/trends/TrendsBarChart/TrendsBarChart 10 kB 0 B
frontend/dist-report/posthog-app/_parent/products/product_analytics/frontend/insights/trends/TrendsLifecycleChart/TrendsLifecycleChart 6.31 kB 0 B
frontend/dist-report/posthog-app/_parent/products/product_analytics/frontend/insights/trends/TrendsLineChart/TrendsLineChart 6.27 kB 0 B
frontend/dist-report/posthog-app/_parent/products/product_analytics/frontend/insights/trends/TrendsPieChart/TrendsPieChart 5.45 kB 0 B
frontend/dist-report/posthog-app/_parent/products/product_analytics/frontend/insights/trends/TrendsSlopeChart/TrendsSlopeChart 3 kB 0 B
frontend/dist-report/posthog-app/_parent/products/replay_vision/frontend/observations/ReplayObservation 20 kB 0 B
frontend/dist-report/posthog-app/_parent/products/replay_vision/frontend/replay_scanners/ReplayScanner 42.6 kB 0 B
frontend/dist-report/posthog-app/_parent/products/replay_vision/frontend/replay_scanners/ReplayScannersScene 23.6 kB 0 B
frontend/dist-report/posthog-app/_parent/products/replay_vision/frontend/replay_scanners/ScannerEditorScene 25.7 kB 0 B
frontend/dist-report/posthog-app/_parent/products/revenue_analytics/frontend/revenueAnalyticsLogic 1.86 kB 0 B
frontend/dist-report/posthog-app/_parent/products/revenue_analytics/frontend/RevenueAnalyticsScene 31.1 kB 0 B
frontend/dist-report/posthog-app/_parent/products/session_summaries/frontend/SessionGroupSummariesTable 5.88 kB 0 B
frontend/dist-report/posthog-app/_parent/products/session_summaries/frontend/SessionGroupSummaryScene 25.3 kB 0 B
frontend/dist-report/posthog-app/_parent/products/skills/frontend/LLMSkillScene 1.94 kB 0 B
frontend/dist-report/posthog-app/_parent/products/skills/frontend/LLMSkillsScene 1.96 kB 0 B
frontend/dist-report/posthog-app/_parent/products/tasks/frontend/SlackTaskContextScene 9.47 kB 0 B
frontend/dist-report/posthog-app/_parent/products/tasks/frontend/TaskTracker 27.5 kB 0 B
frontend/dist-report/posthog-app/_parent/products/tracing/frontend/TracingScene 87.1 kB 0 B
frontend/dist-report/posthog-app/_parent/products/user_interviews/frontend/UserInterview 10.8 kB 0 B
frontend/dist-report/posthog-app/_parent/products/user_interviews/frontend/UserInterviewResponse 8.52 kB 0 B
frontend/dist-report/posthog-app/_parent/products/user_interviews/frontend/UserInterviews 6.94 kB 0 B
frontend/dist-report/posthog-app/_parent/products/visual_review/frontend/scenes/VisualReviewIndexScene 3.48 kB 0 B
frontend/dist-report/posthog-app/_parent/products/visual_review/frontend/scenes/VisualReviewRunScene 47.7 kB 0 B
frontend/dist-report/posthog-app/_parent/products/visual_review/frontend/scenes/VisualReviewRunsScene 8.71 kB 0 B
frontend/dist-report/posthog-app/_parent/products/visual_review/frontend/scenes/VisualReviewSettingsScene 12.1 kB 0 B
frontend/dist-report/posthog-app/_parent/products/visual_review/frontend/scenes/VisualReviewSnapshotHistoryScene 14.7 kB 0 B
frontend/dist-report/posthog-app/_parent/products/visual_review/frontend/scenes/VisualReviewSnapshotOverviewScene 20.3 kB 0 B
frontend/dist-report/posthog-app/_parent/products/workflows/frontend/TemplateLibrary/MessageTemplate 17.6 kB 0 B
frontend/dist-report/posthog-app/_parent/products/workflows/frontend/Workflows/WorkflowScene 107 kB 0 B
frontend/dist-report/posthog-app/_parent/products/workflows/frontend/WorkflowsScene 62.5 kB 0 B
frontend/dist-report/posthog-app/src/index 62.4 kB 0 B
frontend/dist-report/posthog-app/src/layout/panel-layout/ai-first/tabs/NavTabChat 7.89 kB 0 B
frontend/dist-report/posthog-app/src/lib/components/ActivityLog/describers 130 kB 0 B
frontend/dist-report/posthog-app/src/lib/components/Cards/TextCard/TextCardMarkdownEditor 10.6 kB 0 B
frontend/dist-report/posthog-app/src/lib/components/MonacoDiffEditor 533 B 0 B
frontend/dist-report/posthog-app/src/lib/components/Shortcuts/utils/DebugCHQueriesImpl 20.1 kB 0 B
frontend/dist-report/posthog-app/src/lib/components/Support/supportRouterLogic 1.56 kB 0 B
frontend/dist-report/posthog-app/src/lib/lemon-ui/LemonMarkdown/MermaidDiagram 2 kB 0 B
frontend/dist-report/posthog-app/src/lib/lemon-ui/LemonTextArea/LemonTextAreaMarkdown 790 B 0 B
frontend/dist-report/posthog-app/src/lib/lemon-ui/Link/Link 415 B 0 B
frontend/dist-report/posthog-app/src/lib/monaco/CodeEditor 448 B 0 B
frontend/dist-report/posthog-app/src/lib/monaco/CodeEditorImpl 26.5 kB 0 B
frontend/dist-report/posthog-app/src/lib/monaco/CodeEditorInline 649 B 0 B
frontend/dist-report/posthog-app/src/lib/monaco/vimMode 211 kB 0 B
frontend/dist-report/posthog-app/src/lib/ui/Button/ButtonPrimitives 482 B 0 B
frontend/dist-report/posthog-app/src/queries/nodes/WebVitals/WebVitals 12.7 kB 0 B
frontend/dist-report/posthog-app/src/queries/nodes/WebVitals/WebVitalsPathBreakdown 5.13 kB 0 B
frontend/dist-report/posthog-app/src/queries/Query/Query 6.34 kB 0 B
frontend/dist-report/posthog-app/src/queries/schema 955 kB 0 B
frontend/dist-report/posthog-app/src/scenes/activity/explore/EventsScene 8.51 kB 0 B
frontend/dist-report/posthog-app/src/scenes/activity/explore/SessionsScene 9.85 kB 0 B
frontend/dist-report/posthog-app/src/scenes/activity/live/LiveEventsTable 6.58 kB 0 B
frontend/dist-report/posthog-app/src/scenes/agentic/AgenticAuthorize 5.51 kB 0 B
frontend/dist-report/posthog-app/src/scenes/approvals/ApprovalDetail 17.7 kB 0 B
frontend/dist-report/posthog-app/src/scenes/approvals/changeRequestsLogic 622 B 0 B
frontend/dist-report/posthog-app/src/scenes/audit-logs/AdvancedActivityLogsScene 43 kB 0 B
frontend/dist-report/posthog-app/src/scenes/AuthenticatedShell 207 kB 0 B
frontend/dist-report/posthog-app/src/scenes/authentication/account/AccountConnected 3.32 kB 0 B
frontend/dist-report/posthog-app/src/scenes/authentication/account/AgenticAccountMismatch 2.43 kB 0 B
frontend/dist-report/posthog-app/src/scenes/authentication/account/credential-review/CredentialReview 5.04 kB 0 B
frontend/dist-report/posthog-app/src/scenes/authentication/cli/CLIAuthorize 12.1 kB 0 B
frontend/dist-report/posthog-app/src/scenes/authentication/cli/CLILive 4.05 kB 0 B
frontend/dist-report/posthog-app/src/scenes/authentication/email-mfa-verify/EmailMFAVerify 3.04 kB 0 B
frontend/dist-report/posthog-app/src/scenes/authentication/invite-signup/InviteSignup 1.44 kB 0 B
frontend/dist-report/posthog-app/src/scenes/authentication/login-2fa/Login2FA 4.74 kB 0 B
frontend/dist-report/posthog-app/src/scenes/authentication/login/Login 1.42 kB 0 B
frontend/dist-report/posthog-app/src/scenes/authentication/login/loginLogic 569 B 0 B
frontend/dist-report/posthog-app/src/scenes/authentication/password-reset/PasswordReset 4.5 kB 0 B
frontend/dist-report/posthog-app/src/scenes/authentication/password-reset/PasswordResetComplete 3.06 kB 0 B
frontend/dist-report/posthog-app/src/scenes/authentication/shared/passkeyLogic 602 B 0 B
frontend/dist-report/posthog-app/src/scenes/authentication/signup/SignupContainer 1.42 kB 0 B
frontend/dist-report/posthog-app/src/scenes/authentication/two-factor-reset/TwoFactorReset 4.04 kB 0 B
frontend/dist-report/posthog-app/src/scenes/authentication/vercel/VercelConnect 5.03 kB 0 B
frontend/dist-report/posthog-app/src/scenes/authentication/vercel/VercelLinkError 2.3 kB 0 B
frontend/dist-report/posthog-app/src/scenes/authentication/verify-email/VerifyEmail 1.44 kB 0 B
frontend/dist-report/posthog-app/src/scenes/billing/AuthorizationStatus 768 B 0 B
frontend/dist-report/posthog-app/src/scenes/billing/Billing 717 B 0 B
frontend/dist-report/posthog-app/src/scenes/billing/BillingSection 21.7 kB 0 B
frontend/dist-report/posthog-app/src/scenes/cohorts/Cohort 33.9 kB 0 B
frontend/dist-report/posthog-app/src/scenes/cohorts/CohortCalculationHistory 7.3 kB 0 B
frontend/dist-report/posthog-app/src/scenes/cohorts/Cohorts 11 kB 0 B
frontend/dist-report/posthog-app/src/scenes/coupons/Coupons 895 B 0 B
frontend/dist-report/posthog-app/src/scenes/dashboard/Dashboard 7.76 kB 0 B
frontend/dist-report/posthog-app/src/scenes/dashboard/dashboards/Dashboards 22.6 kB 0 B
frontend/dist-report/posthog-app/src/scenes/dashboard/dashboards/templates/DashboardTemplateCopyScene 7.02 kB 0 B
frontend/dist-report/posthog-app/src/scenes/data-management/DataManagementScene 6.65 kB 0 B
frontend/dist-report/posthog-app/src/scenes/data-management/definition/DefinitionEdit 23.3 kB 0 B
frontend/dist-report/posthog-app/src/scenes/data-management/definition/DefinitionView 31.5 kB 0 B
frontend/dist-report/posthog-app/src/scenes/data-management/MaterializedColumns/MaterializedColumns 12.8 kB 0 B
frontend/dist-report/posthog-app/src/scenes/data-management/variables/SqlVariableEditScene 8.5 kB 0 B
frontend/dist-report/posthog-app/src/scenes/data-pipelines/batch-exports/BatchExportScene 67.8 kB 0 B
frontend/dist-report/posthog-app/src/scenes/data-pipelines/DataPipelinesNewScene 5.25 kB 0 B
frontend/dist-report/posthog-app/src/scenes/data-pipelines/DestinationsScene 5.68 kB 0 B
frontend/dist-report/posthog-app/src/scenes/data-pipelines/event-filtering/EventFilterScene 23.3 kB 0 B
frontend/dist-report/posthog-app/src/scenes/data-pipelines/legacy-plugins/LegacyPluginScene 22 kB 0 B
frontend/dist-report/posthog-app/src/scenes/data-pipelines/TransformationsScene 4.88 kB 0 B
frontend/dist-report/posthog-app/src/scenes/data-pipelines/WebScriptsScene 5.54 kB 0 B
frontend/dist-report/posthog-app/src/scenes/data-warehouse/DataWarehouseScene 2.02 kB 0 B
frontend/dist-report/posthog-app/src/scenes/data-warehouse/editor/EditorScene 4.91 kB 0 B
frontend/dist-report/posthog-app/src/scenes/debug/DebugScene 25.3 kB 0 B
frontend/dist-report/posthog-app/src/scenes/debug/hog/HogRepl 8.95 kB 0 B
frontend/dist-report/posthog-app/src/scenes/experiments/Experiment 227 kB 0 B
frontend/dist-report/posthog-app/src/scenes/experiments/Experiments 23.3 kB 0 B
frontend/dist-report/posthog-app/src/scenes/experiments/notebook/NotebookCompactTable 1.98 kB 0 B
frontend/dist-report/posthog-app/src/scenes/experiments/SharedMetrics/SharedMetric 12.3 kB 0 B
frontend/dist-report/posthog-app/src/scenes/experiments/SharedMetrics/SharedMetrics 1.81 kB 0 B
frontend/dist-report/posthog-app/src/scenes/exports/ExportsScene 5.53 kB 0 B
frontend/dist-report/posthog-app/src/scenes/feature-flags/FeatureFlag 117 kB 0 B
frontend/dist-report/posthog-app/src/scenes/feature-flags/FeatureFlags 3.9 kB 0 B
frontend/dist-report/posthog-app/src/scenes/groups/Group 23.5 kB 0 B
frontend/dist-report/posthog-app/src/scenes/groups/Groups 9.48 kB 0 B
frontend/dist-report/posthog-app/src/scenes/groups/GroupsNew 8.59 kB 0 B
frontend/dist-report/posthog-app/src/scenes/health-alerts/HealthAlertsScene 6.38 kB 0 B
frontend/dist-report/posthog-app/src/scenes/health/categoryDetail/HealthCategoryDetailScene 13.2 kB 0 B
frontend/dist-report/posthog-app/src/scenes/health/HealthScene 17.1 kB 0 B
frontend/dist-report/posthog-app/src/scenes/health/pipelineStatus/PipelineStatusScene 12.2 kB 0 B
frontend/dist-report/posthog-app/src/scenes/heatmaps/scenes/heatmap/HeatmapNewScene 5.15 kB 0 B
frontend/dist-report/posthog-app/src/scenes/heatmaps/scenes/heatmap/HeatmapRecordingScene 5.15 kB 0 B
frontend/dist-report/posthog-app/src/scenes/heatmaps/scenes/heatmap/HeatmapScene 7.87 kB 0 B
frontend/dist-report/posthog-app/src/scenes/heatmaps/scenes/heatmaps/HeatmapsScene 5.16 kB 0 B
frontend/dist-report/posthog-app/src/scenes/hog-functions/HogFunctionScene 60.6 kB 0 B
frontend/dist-report/posthog-app/src/scenes/hog-functions/misc/Diff 1.35 kB 0 B
frontend/dist-report/posthog-app/src/scenes/inbox/InboxScene 223 kB 0 B
frontend/dist-report/posthog-app/src/scenes/insights/InsightQuickStart/InsightQuickStart 8.16 kB 0 B
frontend/dist-report/posthog-app/src/scenes/insights/InsightScene 41.2 kB 0 B
frontend/dist-report/posthog-app/src/scenes/insights/views/BoxPlot/BoxPlot 4.93 kB 0 B
frontend/dist-report/posthog-app/src/scenes/insights/views/CalendarHeatMap/CalendarHeatMap 9.26 kB 0 B
frontend/dist-report/posthog-app/src/scenes/insights/views/RegionMap/RegionMap 30.7 kB 0 B
frontend/dist-report/posthog-app/src/scenes/insights/views/WorldMap/WorldMap 6.1 kB 0 B
frontend/dist-report/posthog-app/src/scenes/instance/AsyncMigrations/AsyncMigrations 14.3 kB 0 B
frontend/dist-report/posthog-app/src/scenes/instance/DeadLetterQueue/DeadLetterQueue 6.65 kB 0 B
frontend/dist-report/posthog-app/src/scenes/instance/QueryPerformance/QueryPerformance 12.4 kB 0 B
frontend/dist-report/posthog-app/src/scenes/instance/SystemStatus/SystemStatus 18.1 kB 0 B
frontend/dist-report/posthog-app/src/scenes/integrations/IntegrationsLandingScene 1.67 kB 0 B
frontend/dist-report/posthog-app/src/scenes/IntegrationsRedirect/IntegrationsRedirect 955 B 0 B
frontend/dist-report/posthog-app/src/scenes/marketing-analytics/MarketingAnalyticsScene 46.8 kB 0 B
frontend/dist-report/posthog-app/src/scenes/max/Max 20.5 kB 0 B
frontend/dist-report/posthog-app/src/scenes/max/messages/adapters/CreateInsightWidget 6.99 kB 0 B
frontend/dist-report/posthog-app/src/scenes/max/messages/adapters/CreateNotebookWidget 1.8 kB 0 B
frontend/dist-report/posthog-app/src/scenes/max/messages/adapters/EditDiffRenderer 3.23 kB 0 B
frontend/dist-report/posthog-app/src/scenes/max/messages/adapters/ErrorTrackingWidget 7.56 kB 0 B
frontend/dist-report/posthog-app/src/scenes/max/messages/adapters/QueryWidget 6.93 kB 0 B
frontend/dist-report/posthog-app/src/scenes/max/messages/adapters/SearchSessionRecordingsWidget 7.58 kB 0 B
frontend/dist-report/posthog-app/src/scenes/max/messages/adapters/UpsertDashboardWidget 1.61 kB 0 B
frontend/dist-report/posthog-app/src/scenes/models/ModelsScene 20.5 kB 0 B
frontend/dist-report/posthog-app/src/scenes/models/NodeDetailScene 19.8 kB 0 B
frontend/dist-report/posthog-app/src/scenes/moveToPostHogCloud/MoveToPostHogCloud 4.5 kB 0 B
frontend/dist-report/posthog-app/src/scenes/new-tab/NewTabScene 2.76 kB 0 B
frontend/dist-report/posthog-app/src/scenes/notebooks/NotebookCanvasScene 12.3 kB 0 B
frontend/dist-report/posthog-app/src/scenes/notebooks/NotebookPanel/NotebookPanel 14.3 kB 0 B
frontend/dist-report/posthog-app/src/scenes/notebooks/NotebookScene 18 kB 0 B
frontend/dist-report/posthog-app/src/scenes/notebooks/NotebooksScene 8.69 kB 0 B
frontend/dist-report/posthog-app/src/scenes/oauth/OAuthAuthorize 810 B 0 B
frontend/dist-report/posthog-app/src/scenes/onboarding/legacy/coupon/OnboardingCouponRedemption 1.34 kB 0 B
frontend/dist-report/posthog-app/src/scenes/onboarding/Onboarding 785 kB 0 B
frontend/dist-report/posthog-app/src/scenes/onboarding/shared/sdkHealth/SdkHealthScene 9.04 kB 0 B
frontend/dist-report/posthog-app/src/scenes/organization/ConfirmOrganization/ConfirmOrganization 4.5 kB 0 B
frontend/dist-report/posthog-app/src/scenes/organization/Create/Create 704 B 0 B
frontend/dist-report/posthog-app/src/scenes/organization/Deactivated 1.17 kB 0 B
frontend/dist-report/posthog-app/src/scenes/organization/PendingDeletion 2.24 kB 0 B
frontend/dist-report/posthog-app/src/scenes/persons/PersonScene 28.4 kB 0 B
frontend/dist-report/posthog-app/src/scenes/persons/PersonsScene 11.7 kB 0 B
frontend/dist-report/posthog-app/src/scenes/PreflightCheck/PreflightCheck 5.57 kB 0 B
frontend/dist-report/posthog-app/src/scenes/product-tours/ProductTour 273 kB 0 B
frontend/dist-report/posthog-app/src/scenes/product-tours/ProductTours 5.97 kB 0 B
frontend/dist-report/posthog-app/src/scenes/project-homepage/ProjectHomepage 27.2 kB 0 B
frontend/dist-report/posthog-app/src/scenes/project/Create/Create 982 B 0 B
frontend/dist-report/posthog-app/src/scenes/project/PendingDeletion 2.6 kB 0 B
frontend/dist-report/posthog-app/src/scenes/resource-transfer/ResourceTransfer 10.5 kB 0 B
frontend/dist-report/posthog-app/src/scenes/saved-insights/SavedInsights 3.47 kB 0 B
frontend/dist-report/posthog-app/src/scenes/session-recordings/detail/SessionRecordingDetail 8.55 kB 0 B
frontend/dist-report/posthog-app/src/scenes/session-recordings/file-playback/SessionRecordingFilePlaybackScene 11.2 kB 0 B
frontend/dist-report/posthog-app/src/scenes/session-recordings/kiosk/SessionRecordingsKiosk 16.6 kB 0 B
frontend/dist-report/posthog-app/src/scenes/session-recordings/player/modal/SessionPlayerModal 8.26 kB 0 B
frontend/dist-report/posthog-app/src/scenes/session-recordings/player/snapshot-processing/DecompressionWorkerManager 323 B 0 B
frontend/dist-report/posthog-app/src/scenes/session-recordings/playlist/SessionRecordingsPlaylistScene 11.7 kB 0 B
frontend/dist-report/posthog-app/src/scenes/session-recordings/SessionRecordings 7.68 kB 0 B
frontend/dist-report/posthog-app/src/scenes/session-recordings/settings/SessionRecordingsSettingsScene 8.88 kB 0 B
frontend/dist-report/posthog-app/src/scenes/sessions/SessionProfileScene 21.8 kB 0 B
frontend/dist-report/posthog-app/src/scenes/settings/SettingsMap 6.66 kB 0 B
frontend/dist-report/posthog-app/src/scenes/settings/SettingsScene 9.96 kB 0 B
frontend/dist-report/posthog-app/src/scenes/sites/Site 1.57 kB 0 B
frontend/dist-report/posthog-app/src/scenes/startups/StartupProgram 21.1 kB 0 B
frontend/dist-report/posthog-app/src/scenes/StripeConfirmInstall/StripeConfirmInstall 3.7 kB 0 B
frontend/dist-report/posthog-app/src/scenes/subscriptions/SubscriptionScene 17.5 kB 0 B
frontend/dist-report/posthog-app/src/scenes/subscriptions/SubscriptionsScene 7.02 kB 0 B
frontend/dist-report/posthog-app/src/scenes/surveys/forms/SurveyFormBuilder 3.02 kB 0 B
frontend/dist-report/posthog-app/src/scenes/surveys/Survey 7.48 kB 0 B
frontend/dist-report/posthog-app/src/scenes/surveys/Surveys 27.7 kB 0 B
frontend/dist-report/posthog-app/src/scenes/surveys/wizard/SurveyWizard 69.7 kB 0 B
frontend/dist-report/posthog-app/src/scenes/themes/CustomCssScene 4.91 kB 0 B
frontend/dist-report/posthog-app/src/scenes/toolbar-launch/ToolbarLaunch 3.97 kB 0 B
frontend/dist-report/posthog-app/src/scenes/Unsubscribe/Unsubscribe 1.71 kB 0 B
frontend/dist-report/posthog-app/src/scenes/web-analytics/SessionAttributionExplorer/SessionAttributionExplorerScene 12.3 kB 0 B
frontend/dist-report/posthog-app/src/scenes/web-analytics/WebAnalyticsScene 20.8 kB 0 B
frontend/dist-report/posthog-app/src/scenes/wizard/Wizard 4.45 kB 0 B
frontend/dist-report/posthog-app/src/sharedChunkAnchors 1.33 kB 0 B
frontend/dist-report/render-query/src/render-query/render-query 24.9 MB +362 B (0%)
frontend/dist-report/toolbar/src/toolbar/toolbar 11.3 MB +362 B (0%)

compressed-size-action

@greptile-apps

greptile-apps Bot commented Jun 11, 2026

Copy link
Copy Markdown
Contributor

Reviews (1): Last reviewed commit: "feat(flags): authenticate /flags request..." | Re-trigger Greptile

Comment thread rust/feature-flags/src/handler/authentication.rs
@veria-ai

veria-ai Bot commented Jun 11, 2026 •

Copy link
Copy Markdown
Contributor

PR overview

All previously flagged issues have been addressed. No open security concerns remain on this pull request.

Security review

No open security issues remain on this pull request.

Fixed/addressed: 6 · PR risk: 0/10

@pawel-cebula pawel-cebula left a comment •

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

FYI I mostly reviewed the quota-limiting part

Comment thread ee/billing/quota_limiting.py
@pawel-cebula
pawel-cebula self-requested a review June 12, 2026 11:34

@pawel-cebula pawel-cebula left a comment •

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good from quota limiting side, thx for addressing the suggestions.

@github-project-automation github-project-automation Bot moved this from In Review to Approved in Feature Flags Jun 12, 2026
@haacked haacked removed this from Feature Flags Jun 15, 2026
@haacked

haacked commented Jun 16, 2026

Copy link
Copy Markdown
Contributor

Sorry, just noticed this. Will take a look from the feature flags side.

@haacked haacked left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good from the feature flags side. Just some non-blocking suggestions.

Comment thread nodejs/src/common/utils/team-manager.ts
Comment thread nodejs/src/ingestion/common/steps/event-preprocessing/resolve-team.ts Outdated
Comment thread rust/feature-flags/src/handler/body_logger.rs Outdated
Comment thread nodejs/src/common/utils/team-manager.test.ts
Comment thread ee/billing/quota_limiting.py Outdated
@Piccirello

Copy link
Copy Markdown
Member

🔒 Security review notes (via Claude)

I reviewed this PR against its core invariant — $verified: true should appear iff the event was captured with the team's secret token. The event-property path is solid: capture forwards the raw client token, every producer into the events table routes through createResolveTeamStep → applyVerifiedProperty, and forged top-level $verified is stripped. Two things worth addressing:

1. $verified is still forgeable via $set / $set_once (Medium)

applyVerifiedProperty (nodejs/src/ingestion/event-preprocessing/resolve-team.ts) only strips the top-level event.properties['$verified']. It does not touch event.properties['$set']['$verified'] or $set_once.

A holder of the world-readable phc_ key can send:

{ "event": "...", "properties": { "$set": { "$verified": true } } }

This sets a person property $verified = true that is never stripped and is sticky across events. Under person-on-events, person.properties.$verified is queryable on the events table, so an automation (or an author using the blended event/person property filter UI) could key off it. The taxonomy entry added here says "Cannot be set by clients" — that holds only for the event property, not the person-property namespace.

Suggested fix: on the non-secret-token branch, also delete $verified from $set and $set_once (and for consistency on the secret-token branch too), with a parameterized test covering the $set/$set_once forgery case.

2. ProjectSecretAPIKeys authenticate /flags with no scope check (Low)

In rust/feature-flags/src/handler/authentication.rs, validate_secret_api_token also resolves ProjectSecret tokens and the is_project_secret flag is discarded, so any valid PSAK for the project can evaluate flags regardless of its scopes. This matches the existing /flag_definitions precedent and flag eval is project-scoped + read-only, so impact is limited — but it's a silent widening of what a PSAK grants.

Suggested fix: if PSAK scopes are meant to gate flag reads, enforce a feature_flag:read scope check when the token is a PSAK; otherwise document that flag evaluation is ungated for PSAKs.


Automated security review by Claude. Worth a human sanity-check before relying on $verified in automations.

@eli-r-ph

eli-r-ph commented Jun 19, 2026 •

Copy link
Copy Markdown
Contributor

👋 hey folks

Billing / quota limiting: the quota-limit Redis sets now include each team's secret tokens alongside the public token. Capture enforces quota by the raw request token, so without this a team switching to phs_ capture would bypass billing limits.

Looks like this isn't an immediate blocker to this PR (no capture change yet) but FYI:

Just to confirm - at the moment no capture-rs services touch the database (we save team resolution etc. for the ingestion workers on the other side of the initial Kafka topic) to ensure we don't lose data during DB incidents or slow down the pipeline with DB calls. We do check billing quotas from Redis in capture, and drop a substantial amount of events/second on this (without linking graphs, about 16k/sec as of this hour in prod US alone) so we probably need a story for this before the e2e ships.

If we opt to move quota checks entirely downstream, we will ship those events (and future ones...sometimes this can really spike) into the topic just to drop them downstream. Not a hard blocker, but something to consider

@Gilbert09
Gilbert09 force-pushed the tom/secret-key-verified-events branch from 992e917 to c877c2d Compare June 22, 2026 12:28
@posthog

posthog Bot commented Jun 22, 2026 •

Copy link
Copy Markdown
Contributor

👋 Visual changes detected for this PR.

Review and approve in PostHog Visual Review

If these changes are unexpected, they may be caused by a flaky test or a broken snapshot on master. Don't approve — rerun the job or wait for a fix.

Comment thread rust/feature-flags/src/handler/body_logger.rs Outdated
Comment thread nodejs/src/ingestion/common/steps/event-preprocessing/resolve-team.ts Outdated

Copy link
Copy Markdown
Member Author

Addressed in 49816d9: applyVerifiedProperty now scrubs $verified from $set, $set_once, and $unset (object and array forms) on non-secret-token events, so a forged $verified person property can no longer be smuggled in via person-property operations. Added unit + step-level tests covering each operation.

Copy link
Copy Markdown
Member Author

CI status

The branch is up to date with master, mergeable with no conflicts, and the review thread has been resolved with a code fix + tests.

The only remaining red check is Product tests (data-warehouse, workflows) (and the Django Tests Pass gate that depends on it). This is a pre-existing, master-wide failure unrelated to this PR — this PR touches no data_warehouse code.

Evidence:

  • The same two tests fail on plain master HEAD runs:
    • backend/models/test/test_managed_viewset.py::TestDataWarehouseManagedViewSetModel::test_sync_views_creates_views — AssertionError: False is not true (is_materialized)
    • backend/test/test_saved_query_dag_sync_integration.py::TestSavedQueryDagSyncIntegration::test_materialize_updates_node_type — 500 != 200
  • master's Backend CI went from green to red in the window whose only commit is revert(ci): use correct DOCKERHUB_USER secret name for Docker Hub auth #65256 (revert(ci): use correct DOCKERHUB_USER secret name for Docker Hub auth), a CI-only change to Docker Hub auth across all workflows.
  • The materialize integration tests pull a container image; with Docker Hub auth broken the pull fails, surfacing as the 500 / is_materialized=False. (The earlier transient semgrep failure on this PR was the same Docker-pull root cause.)
  • test_materialize_view and the other non-integration materialize tests pass — only the tests that need the pulled image fail.

This needs the master CI Docker Hub auth issue to be resolved (infra-side). Once master is green again, re-running / re-merging this branch will clear the check. Everything within this PR's control is green.

@Gilbert09
Gilbert09 force-pushed the tom/secret-key-verified-events branch from 059b901 to 543b294 Compare June 25, 2026 21:08
@scheduled-actions-posthog

Copy link
Copy Markdown
Contributor

This PR hasn't seen activity in a week! Should it be merged, closed, or further worked on? If you want to keep it open, please remove the stale label – otherwise this will be closed in another week. If you want to permanently keep it open, use the waiting label.

@Gilbert09
Gilbert09 force-pushed the tom/secret-key-verified-events branch from 05eaa1d to 6c1c095 Compare July 23, 2026 15:39
Comment thread rust/feature-flags/src/handler/body_logger.rs Outdated
Comment thread nodejs/src/common/utils/team-manager.ts
@github-actions

github-actions Bot commented Jul 23, 2026 •

Copy link
Copy Markdown
Contributor

🦔 Hogbox preview · ✅ ready

▶ Open the preview

🔑 Login test@posthog.com / 12345678 (demo data)
🧩 Running this PR's backend and frontend, on the PostHog :master base
🔗 Link stable across rebuilds — a re-push swaps the box underneath, the URL stays
🔒 Access tailnet only (PostHog VPN)
🛠️ Admin inspect & debug state in hogland
💤 Idle sleeps after ~30 min idle (snapshot to S3, zero node cost) and wakes on your next visit in ~30s, behind a brief "waking up" screen

commit b96cd9c · box box-88f7d04fce10 · ready in 613s (push → usable) · build log · rebuilds on every push, torn down on close

@trunk-io

trunk-io Bot commented Jul 28, 2026

Copy link
Copy Markdown

Merging to master in this repository is managed by Trunk.

  • To merge this pull request, check the box to the left or comment /trunk merge below.

After your PR is submitted to the merge queue, this comment will be automatically updated with its status. If the PR fails, failure details will also be posted here

@Gilbert09
Gilbert09 force-pushed the tom/secret-key-verified-events branch from 8fdf216 to b0a9401 Compare July 29, 2026 15:00
Comment thread rust/feature-flags/src/handler/body_logger.rs Outdated
@trunk-io

trunk-io Bot commented Aug 4, 2026 •

Copy link
Copy Markdown

Static Badge   Static Badge   Static Badge

View Full Report ↗︎ ⋅ Docs

Rebased onto master. Re-published to re-run the Playwright E2E job.
Comment thread ee/billing/quota_limiting.py

Copy link
Copy Markdown
Member Author

Rebased onto master; the transient Playwright E2E failure is resolved

This branch had drifted into a real conflict with master, so I brought it up to date and re-ran CI. Notes for whoever picks it up:

Conflict resolution. Three files conflicted, all resolved keeping both sides:

  • ee/billing/quota_limiting.py — master added INFORMATIONAL_USAGE_RESOURCES in the same place this branch added get_team_ingestion_tokens / sync_team_quota_limited_tokens. Both kept.
  • posthog/models/test/test_organization_model.py — competing import lines; both BillingPeriod and generate_random_token_secret kept.
  • nodejs/src/ingestion/common/steps/event-processing/prefetch-hog-functions-step.test.ts — deleted on master, and this branch's only change to it was adding secret_api_token_backup: null to a Team fixture. Took the deletion.

The PR's own diff is unchanged apart from that deleted file: still the same 26 files, no master-only files pulled into the diff. tsc over nodejs/ reports no new errors (only the pre-existing unbuilt-workspace-package ones), and resolve-team.test.ts + self-loop-guard.test.ts pass locally (84 tests).

The Playwright failure. On the first two runs after the rebase, Playwright E2E tests failed on a screenshot sent through ingestion renders in the trace view — twice, on a byte-identical tree, so not a flake in the retry sense. It is not caused by this branch:

  • that spec (products/ai_observability/frontend/e2e/multimodal-trace.spec.ts) and its fixture (common/fixtures/ai-multimodal/) do not exist at this PR's merge base — they landed on master after this branch was cut, and arrived here through the rebase;
  • this PR touches nothing in that path: not the AI subpipeline, not offload-ai-blobs-step, not the blob store, not capture, not the trace view. Its only ingestion change on that lane is applyVerifiedProperty, which on a public phc_ token does nothing but delete a $verified key if one is present;
  • because this PR touches posthog/** and ee/**, the spec selector forces the full suite, so specs that most PRs never run do execute here.

After merging the current master in, CI is green on b96cd9c (225 passing, 0 failures), which is consistent with the failure having been a master-side issue that has since been fixed.

Status: all 14 review threads resolved, CI green on the head commit, and the branch merges cleanly (mergeable: true). The only thing left is a human approval.

🦉 via talyn.dev

@scheduled-actions-posthog

Copy link
Copy Markdown
Contributor

This PR hasn't seen activity in a week! Should it be merged, closed, or further worked on? If you want to keep it open, please remove the stale label – otherwise this will be closed in another week. If you want to permanently keep it open, use the waiting label.

@scheduled-actions-posthog

Copy link
Copy Markdown
Contributor

This PR was closed due to lack of activity. Feel free to reopen if it's still relevant.

This branch was successfully deployed

1 active deployment
preview-pr-62888 — b96cd9c0 Deployed Aug 10, 2026 by github-actions[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants