Skip to content

Conversation

kbammarito
Copy link
Contributor

@kbammarito kbammarito commented Sep 10, 2025

Description

This PR adds document_id to serp_events_v2. It is needed to properly get policies_is_enterprise (where document_id is not null).

Also adds some other fields to make SAP and SERP equal.

Reviewer, please follow this checklist

@dataops-ci-bot

This comment has been minimized.

@kbammarito kbammarito marked this pull request as ready for review September 11, 2025 01:23
@kbammarito kbammarito requested a review from a team as a code owner September 11, 2025 01:23
@dataops-ci-bot

This comment has been minimized.

@dataops-ci-bot

This comment has been minimized.

@dataops-ci-bot

This comment has been minimized.

@kbammarito kbammarito marked this pull request as draft September 11, 2025 16:54
@dataops-ci-bot

This comment has been minimized.

Copy link
Contributor

@alekhyamoz alekhyamoz left a comment

Choose a reason for hiding this comment

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

lgtm

@kbammarito kbammarito marked this pull request as ready for review September 11, 2025 18:16
@kbammarito kbammarito marked this pull request as draft September 12, 2025 00:24
@dataops-ci-bot

This comment has been minimized.

@dataops-ci-bot
Copy link

Integration report for "Merge branch 'main' into add-document-id-to-serp-events"

sql.diff

Click to expand!
Only in /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop/metrics: schema.yaml
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/accounts_backend_derived/event_monitoring_live_v1/materialized_view.sql /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/accounts_backend_derived/event_monitoring_live_v1/materialized_view.sql
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/accounts_backend_derived/event_monitoring_live_v1/materialized_view.sql	2025-09-16 00:53:01.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/accounts_backend_derived/event_monitoring_live_v1/materialized_view.sql	2025-09-16 00:53:12.000000000 +0000
@@ -60,7 +60,7 @@
 FROM
   combined
 WHERE
-  DATE(submission_timestamp) >= "2025-09-15"
+  DATE(submission_timestamp) >= "2025-09-16"
 GROUP BY
   submission_date,
   window_start,
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/accounts_cirrus_derived/event_monitoring_live_v1/materialized_view.sql /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/accounts_cirrus_derived/event_monitoring_live_v1/materialized_view.sql
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/accounts_cirrus_derived/event_monitoring_live_v1/materialized_view.sql	2025-09-16 00:53:01.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/accounts_cirrus_derived/event_monitoring_live_v1/materialized_view.sql	2025-09-16 00:53:12.000000000 +0000
@@ -60,7 +60,7 @@
 FROM
   combined
 WHERE
-  DATE(submission_timestamp) >= "2025-09-15"
+  DATE(submission_timestamp) >= "2025-09-16"
 GROUP BY
   submission_date,
   window_start,
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/accounts_frontend_derived/event_monitoring_live_v1/materialized_view.sql /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/accounts_frontend_derived/event_monitoring_live_v1/materialized_view.sql
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/accounts_frontend_derived/event_monitoring_live_v1/materialized_view.sql	2025-09-16 00:53:01.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/accounts_frontend_derived/event_monitoring_live_v1/materialized_view.sql	2025-09-16 00:53:13.000000000 +0000
@@ -60,7 +60,7 @@
 FROM
   combined
 WHERE
-  DATE(submission_timestamp) >= "2025-09-15"
+  DATE(submission_timestamp) >= "2025-09-16"
 GROUP BY
   submission_date,
   window_start,
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/bedrock_derived/event_monitoring_live_v1/materialized_view.sql /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/bedrock_derived/event_monitoring_live_v1/materialized_view.sql
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/bedrock_derived/event_monitoring_live_v1/materialized_view.sql	2025-09-16 00:53:01.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/bedrock_derived/event_monitoring_live_v1/materialized_view.sql	2025-09-16 00:53:13.000000000 +0000
@@ -126,7 +126,7 @@
 FROM
   combined
 WHERE
-  DATE(submission_timestamp) >= "2025-09-15"
+  DATE(submission_timestamp) >= "2025-09-16"
 GROUP BY
   submission_date,
   window_start,
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/burnham_derived/event_monitoring_live_v1/materialized_view.sql /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/burnham_derived/event_monitoring_live_v1/materialized_view.sql
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/burnham_derived/event_monitoring_live_v1/materialized_view.sql	2025-09-16 00:53:01.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/burnham_derived/event_monitoring_live_v1/materialized_view.sql	2025-09-16 00:53:13.000000000 +0000
@@ -60,7 +60,7 @@
 FROM
   combined
 WHERE
-  DATE(submission_timestamp) >= "2025-09-15"
+  DATE(submission_timestamp) >= "2025-09-16"
 GROUP BY
   submission_date,
   window_start,
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/contextual_services/event_aggregates/schema.yaml /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/contextual_services/event_aggregates/schema.yaml
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/contextual_services/event_aggregates/schema.yaml	2025-09-16 00:53:01.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/contextual_services/event_aggregates/schema.yaml	2025-09-16 00:54:48.000000000 +0000
@@ -1,49 +1,49 @@
 fields:
-- mode: NULLABLE
-  name: submission_date
+- name: submission_date
   type: DATE
-- mode: NULLABLE
-  name: source
+  mode: NULLABLE
+- name: source
   type: STRING
-- mode: NULLABLE
-  name: event_type
+  mode: NULLABLE
+- name: event_type
   type: STRING
-- mode: NULLABLE
-  name: form_factor
+  mode: NULLABLE
+- name: form_factor
   type: STRING
-- mode: NULLABLE
-  name: country
+  mode: NULLABLE
+- name: country
   type: STRING
-- mode: NULLABLE
-  name: subdivision1
+  mode: NULLABLE
+- name: subdivision1
   type: STRING
-- mode: NULLABLE
-  name: advertiser
+  mode: NULLABLE
+- name: advertiser
   type: STRING
-- mode: NULLABLE
-  name: release_channel
+  mode: NULLABLE
+- name: release_channel
   type: STRING
-- mode: NULLABLE
-  name: position
+  mode: NULLABLE
+- name: position
   type: INTEGER
-- mode: NULLABLE
-  name: provider
+  mode: NULLABLE
+- name: provider
   type: STRING
-- mode: NULLABLE
-  name: match_type
+  mode: NULLABLE
+- name: match_type
   type: STRING
-- mode: NULLABLE
-  name: normalized_os
+  mode: NULLABLE
+- name: normalized_os
   type: STRING
-- mode: NULLABLE
-  name: suggest_data_sharing_enabled
+  mode: NULLABLE
+- name: suggest_data_sharing_enabled
   type: BOOLEAN
-- mode: NULLABLE
-  name: event_count
+  mode: NULLABLE
+- name: event_count
   type: INTEGER
-- mode: NULLABLE
-  name: user_count
+  mode: NULLABLE
+- name: user_count
   type: INTEGER
-- mode: NULLABLE
-  name: query_type
+  mode: NULLABLE
+- name: query_type
   type: STRING
+  mode: NULLABLE
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/contextual_services/event_aggregates_suggest/schema.yaml /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/contextual_services/event_aggregates_suggest/schema.yaml
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/contextual_services/event_aggregates_suggest/schema.yaml	2025-09-16 00:53:01.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/contextual_services/event_aggregates_suggest/schema.yaml	2025-09-16 00:54:42.000000000 +0000
@@ -1,40 +1,40 @@
 fields:
-- mode: NULLABLE
-  name: submission_date
+- name: submission_date
   type: DATE
-- mode: NULLABLE
-  name: form_factor
+  mode: NULLABLE
+- name: form_factor
   type: STRING
-- mode: NULLABLE
-  name: country
+  mode: NULLABLE
+- name: country
   type: STRING
-- mode: NULLABLE
-  name: advertiser
+  mode: NULLABLE
+- name: advertiser
   type: STRING
-- mode: NULLABLE
-  name: normalized_os
+  mode: NULLABLE
+- name: normalized_os
   type: STRING
-- mode: NULLABLE
-  name: release_channel
+  mode: NULLABLE
+- name: release_channel
   type: STRING
-- mode: NULLABLE
-  name: position
+  mode: NULLABLE
+- name: position
   type: INTEGER
-- mode: NULLABLE
-  name: provider
+  mode: NULLABLE
+- name: provider
   type: STRING
-- mode: NULLABLE
-  name: match_type
+  mode: NULLABLE
+- name: match_type
   type: STRING
-- mode: NULLABLE
-  name: suggest_data_sharing_enabled
+  mode: NULLABLE
+- name: suggest_data_sharing_enabled
   type: BOOLEAN
-- mode: NULLABLE
-  name: impression_count
+  mode: NULLABLE
+- name: impression_count
   type: INTEGER
-- mode: NULLABLE
-  name: click_count
+  mode: NULLABLE
+- name: click_count
   type: INTEGER
-- mode: NULLABLE
-  name: query_type
+  mode: NULLABLE
+- name: query_type
   type: STRING
+  mode: NULLABLE
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/debug_ping_view_derived/event_monitoring_live_v1/materialized_view.sql /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/debug_ping_view_derived/event_monitoring_live_v1/materialized_view.sql
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/debug_ping_view_derived/event_monitoring_live_v1/materialized_view.sql	2025-09-16 00:53:01.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/debug_ping_view_derived/event_monitoring_live_v1/materialized_view.sql	2025-09-16 00:53:13.000000000 +0000
@@ -60,7 +60,7 @@
 FROM
   combined
 WHERE
-  DATE(submission_timestamp) >= "2025-09-15"
+  DATE(submission_timestamp) >= "2025-09-16"
 GROUP BY
   submission_date,
   window_start,
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/experimenter_cirrus_derived/event_monitoring_live_v1/materialized_view.sql /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/experimenter_cirrus_derived/event_monitoring_live_v1/materialized_view.sql
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/experimenter_cirrus_derived/event_monitoring_live_v1/materialized_view.sql	2025-09-16 00:53:01.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/experimenter_cirrus_derived/event_monitoring_live_v1/materialized_view.sql	2025-09-16 00:53:13.000000000 +0000
@@ -60,7 +60,7 @@
 FROM
   combined
 WHERE
-  DATE(submission_timestamp) >= "2025-09-15"
+  DATE(submission_timestamp) >= "2025-09-16"
 GROUP BY
   submission_date,
   window_start,
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/fenix/broken_site_report/metadata.yaml /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/fenix/broken_site_report/metadata.yaml
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/fenix/broken_site_report/metadata.yaml	2025-09-16 00:53:01.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/fenix/broken_site_report/metadata.yaml	2025-09-16 01:05:24.000000000 +0000
@@ -1,6 +1,10 @@
-friendly_name: Broken Site Report
+friendly_name: App-specific view for Glean ping "broken-site-report"
 description: |-
-  Please provide a description for the query
+  This a view that UNIONs the stable ping tables
+  across all channels of the Glean application "Firefox for Android"
+  (org_mozilla_firefox.broken_site_report, org_mozilla_firefox_beta.broken_site_report, org_mozilla_fenix.broken_site_report, org_mozilla_fenix_nightly.broken_site_report, org_mozilla_fennec_aurora.broken_site_report).
+
+  It is used by Looker.
 owners: []
 labels: {}
 bigquery: null
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/fenix/crash/metadata.yaml /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/fenix/crash/metadata.yaml
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/fenix/crash/metadata.yaml	2025-09-16 00:53:01.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/fenix/crash/metadata.yaml	2025-09-16 01:05:24.000000000 +0000
@@ -1,6 +1,10 @@
-friendly_name: Crash
+friendly_name: App-specific view for Glean ping "crash"
 description: |-
-  Please provide a description for the query
+  This a view that UNIONs the stable ping tables
+  across all channels of the Glean application "Firefox for Android"
+  (org_mozilla_firefox.crash, org_mozilla_firefox_beta.crash, org_mozilla_fenix.crash, org_mozilla_fenix_nightly.crash, org_mozilla_fennec_aurora.crash).
+
+  It is used by Looker.
 owners: []
 labels: {}
 bigquery: null
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/fenix/funnel_retention_clients/schema.yaml /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/fenix/funnel_retention_clients/schema.yaml
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/fenix/funnel_retention_clients/schema.yaml	2025-09-16 00:53:01.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/fenix/funnel_retention_clients/schema.yaml	2025-09-16 00:54:42.000000000 +0000
@@ -26,6 +26,9 @@
 - name: adjust_network
   type: STRING
   mode: NULLABLE
+- name: install_source
+  type: STRING
+  mode: NULLABLE
 - name: retained_week_2
   type: BOOLEAN
   mode: NULLABLE
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/fenix/funnel_retention_week_4/schema.yaml /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/fenix/funnel_retention_week_4/schema.yaml
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/fenix/funnel_retention_week_4/schema.yaml	2025-09-16 00:53:01.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/fenix/funnel_retention_week_4/schema.yaml	2025-09-16 00:54:51.000000000 +0000
@@ -48,6 +48,9 @@
   description: 'The type of source of a client installation.
 
     '
+- name: install_source
+  type: STRING
+  mode: NULLABLE
 - name: new_profiles
   type: INTEGER
   mode: NULLABLE
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/firefox_crashreporter/crash/metadata.yaml /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/firefox_crashreporter/crash/metadata.yaml
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/firefox_crashreporter/crash/metadata.yaml	2025-09-16 00:53:01.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/firefox_crashreporter/crash/metadata.yaml	2025-09-16 01:05:26.000000000 +0000
@@ -1,6 +1,14 @@
-friendly_name: Crash
+friendly_name: Historical Pings for `firefox-crashreporter/crash`
 description: |-
-  Please provide a description for the query
+  A historical view of pings sent for the
+  `firefox-crashreporter/crash`
+  document type.
+
+  This view is guaranteed to contain only complete days
+  (per `submission_timestamp`)
+  and to contain only one row per distinct `document_id` within a given date.
+
+  Clustering fields: `normalized_channel`, `sample_id`
 owners: []
 labels:
   authorized: true
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/firefox_crashreporter_derived/event_monitoring_live_v1/materialized_view.sql /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/firefox_crashreporter_derived/event_monitoring_live_v1/materialized_view.sql
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/firefox_crashreporter_derived/event_monitoring_live_v1/materialized_view.sql	2025-09-16 00:53:01.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/firefox_crashreporter_derived/event_monitoring_live_v1/materialized_view.sql	2025-09-16 00:53:12.000000000 +0000
@@ -60,7 +60,7 @@
 FROM
   combined
 WHERE
-  DATE(submission_timestamp) >= "2025-09-15"
+  DATE(submission_timestamp) >= "2025-09-16"
 GROUP BY
   submission_date,
   window_start,
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop/broken_site_report/metadata.yaml /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop/broken_site_report/metadata.yaml
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop/broken_site_report/metadata.yaml	2025-09-16 00:53:01.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop/broken_site_report/metadata.yaml	2025-09-16 01:05:16.000000000 +0000
@@ -1,6 +1,14 @@
-friendly_name: Broken Site Report
+friendly_name: Historical Pings for `firefox-desktop/broken-site-report`
 description: |-
-  Please provide a description for the query
+  A historical view of pings sent for the
+  `firefox-desktop/broken-site-report`
+  document type.
+
+  This view is guaranteed to contain only complete days
+  (per `submission_timestamp`)
+  and to contain only one row per distinct `document_id` within a given date.
+
+  Clustering fields: `normalized_channel`, `sample_id`
 owners: []
 labels:
   authorized: true
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop/crash/metadata.yaml /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop/crash/metadata.yaml
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop/crash/metadata.yaml	2025-09-16 00:53:01.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop/crash/metadata.yaml	2025-09-16 01:05:16.000000000 +0000
@@ -1,6 +1,14 @@
-friendly_name: Crash
+friendly_name: Historical Pings for `firefox-desktop/crash`
 description: |-
-  Please provide a description for the query
+  A historical view of pings sent for the
+  `firefox-desktop/crash`
+  document type.
+
+  This view is guaranteed to contain only complete days
+  (per `submission_timestamp`)
+  and to contain only one row per distinct `document_id` within a given date.
+
+  Clustering fields: `normalized_channel`, `sample_id`
 owners: []
 labels:
   authorized: true
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop/ltv_states/schema.yaml /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop/ltv_states/schema.yaml
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop/ltv_states/schema.yaml	2025-09-16 00:53:01.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop/ltv_states/schema.yaml	2025-09-16 00:54:32.000000000 +0000
@@ -1,64 +1,66 @@
 fields:
-- description: Unique ID for the client installation.
-  mode: NULLABLE
-  name: client_id
+- name: client_id
   type: STRING
-- description: Sample ID - A number ranging from 0 - 99 based on client ID; used to pull a small sample of data related to a subset of clients over time
   mode: NULLABLE
-  name: sample_id
-  type: INT64
-- description: Submission Date
+  description: Unique ID for the client installation.
+- name: sample_id
+  type: INTEGER
   mode: NULLABLE
-  name: submission_date
+  description: Sample ID - A number ranging from 0 - 99 based on client ID; used to
+    pull a small sample of data related to a subset of clients over time
+- name: submission_date
   type: DATE
-- description: First Seen Date - The date this client was first seen
   mode: NULLABLE
-  name: first_seen_date
+  description: Submission Date
+- name: first_seen_date
   type: DATE
-- description: Days Since First Seen - The number of days since the client was first seen
   mode: NULLABLE
-  name: days_since_first_seen
-  type: INT64
-- description: Days Since Active
+  description: First Seen Date - The date this client was first seen
+- name: days_since_first_seen
+  type: INTEGER
   mode: NULLABLE
-  name: days_since_active
-  type: INT64
-- description: First Reported Country - The country this client ID was first reported from
+  description: Days Since First Seen - The number of days since the client was first
+    seen
+- name: days_since_active
+  type: INTEGER
   mode: NULLABLE
-  name: first_reported_country
+  description: Days Since Active
+- name: first_reported_country
   type: STRING
-- description: Attribution
   mode: NULLABLE
-  name: attribution
+  description: First Reported Country - The country this client ID was first reported
+    from
+- name: attribution
   type: RECORD
+  mode: NULLABLE
   fields:
-  - mode: NULLABLE
-    name: source
+  - name: source
     type: STRING
+    mode: NULLABLE
     description: Attribution Source
-  - mode: NULLABLE
-    name: medium
+  - name: medium
     type: STRING
+    mode: NULLABLE
     description: Attribution Medium
-  - mode: NULLABLE
-    name: campaign
+  - name: campaign
     type: STRING
+    mode: NULLABLE
     description: Attribution Campaign
-  - mode: NULLABLE
-    name: content
+  - name: content
     type: STRING
+    mode: NULLABLE
     description: Attribution Content
-  - mode: NULLABLE
-    name: experiment
+  - name: experiment
     type: STRING
+    mode: NULLABLE
     description: Attribution Experiment
-  - mode: NULLABLE
-    name: variation
+  - name: variation
     type: STRING
+    mode: NULLABLE
     description: Attribution Variation
-  - mode: NULLABLE
-    name: dltoken
+  - name: dltoken
     type: STRING
+    mode: NULLABLE
     description: Attribution Download Token
   - name: dlsource
     type: STRING
@@ -68,40 +70,43 @@
     type: STRING
     mode: NULLABLE
     description: Attribution UA
-- description: Active
-  mode: NULLABLE
-  name: active
-  type: INT64
-- description: Ad Clicks - The number of ad clicks from this client on the submission date
+  description: Attribution
+- name: active
+  type: INTEGER
   mode: NULLABLE
-  name: ad_clicks
-  type: INT64
-- description: Total Historic Ad Clicks - The number of ad clicks from this client on or before the submission date
+  description: Active
+- name: ad_clicks
+  type: INTEGER
   mode: NULLABLE
-  name: total_historic_ad_clicks
-  type: INT64
-- description: Days Seen Bytes
+  description: Ad Clicks - The number of ad clicks from this client on the submission
+    date
+- name: total_historic_ad_clicks
+  type: INTEGER
   mode: NULLABLE
-  name: days_seen_bytes
+  description: Total Historic Ad Clicks - The number of ad clicks from this client
+    on or before the submission date
+- name: days_seen_bytes
   type: BYTES
-- description: Pattern
   mode: NULLABLE
-  name: pattern
+  description: Days Seen Bytes
+- name: pattern
   type: INTEGER
-- description: Death Time
   mode: NULLABLE
-  name: death_time
+  description: Pattern
+- name: death_time
   type: INTEGER
-- description: Max Days
   mode: NULLABLE
-  name: max_days
+  description: Death Time
+- name: max_days
   type: INTEGER
-- description: Markov States
   mode: NULLABLE
-  name: markov_states
+  description: Max Days
+- name: markov_states
   type: RECORD
-  fields:
-  - description: Desktop States V1
     mode: NULLABLE
-    name: desktop_states_v1
+  fields:
+  - name: desktop_states_v1
     type: STRING
+    mode: NULLABLE
+    description: Desktop States V1
+  description: Markov States
diff -bur --no-dereference --new-file /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop/metrics/schema.yaml /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop/metrics/schema.yaml
--- /tmp/workspace/main-generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop/metrics/schema.yaml	1970-01-01 00:00:00.000000000 +0000
+++ /tmp/workspace/generated-sql/sql/moz-fx-data-shared-prod/firefox_desktop/metrics/schema.yaml	2025-09-16 00:52:06.000000000 +0000
@@ -0,0 +1,53813 @@
+fields:
+- name: additional_properties
+  type: STRING
+  mode: NULLABLE
+  description: A JSON string containing any payload properties not present in the
+    schema
+- name: client_info
+  type: RECORD
+  mode: NULLABLE
+  fields:
+  - name: android_sdk_version
+    type: STRING
+    mode: NULLABLE
+    description: The optional Android specific SDK version of the software running
+      on this hardware device.
+  - name: app_build
+    type: STRING
+    mode: NULLABLE
+    description: The build identifier generated by the CI system (e.g. "1234/A").
+      For language bindings that provide automatic detection for this value, (e.g.
+      Android/Kotlin), in the unlikely event that the build identifier can not be
+      retrieved from the OS, it is set to "inaccessible". For other language bindings,
+      if the value was not provided through configuration, this metric gets set to
+      `Unknown`.
+  - name: app_channel
+    type: STRING
+    mode: NULLABLE
+    description: The channel the application is being distributed on.
+  - name: app_display_version
+    type: STRING
+    mode: NULLABLE
+    description: The user visible version string (e.g. "1.0.3").  In the unlikely
+      event that the display version can not be retrieved, it is set to "inaccessible".
+  - name: architecture
+    type: STRING
+    mode: NULLABLE
+    description: The architecture of the device, (e.g. "arm", "x86").
+  - name: client_id
+    type: STRING
+    mode: NULLABLE
+    description: A UUID uniquely identifying the client.
+  - name: device_manufacturer
+    type: STRING
+    mode: NULLABLE
+    description: The manufacturer of the device the application is running on. Not
+      set if the device manufacturer can't be determined (e.g. on Desktop).
+  - name: device_model
+    type: STRING
+    mode: NULLABLE
+    description: The model of the device the application is running on. On Android,
+      this is Build.MODEL, the user-visible marketing name, like "Pixel 2 XL". Not
+      set if the device model can't be determined (e.g. on Desktop).
+  - name: first_run_date
+    type: STRING
+    mode: NULLABLE
+    description: The date of the first run of the application.
+  - name: locale
+    type: STRING
+    mode: NULLABLE
+    description: The locale of the application during initialization (e.g. "es-ES").
+      If the locale can't be determined on the system, the value is ["und"](https://unicode.org/reports/tr35/#Unknown_or_Invalid_Identifiers),
+      to indicate "undetermined".
+  - name: os
+    type: STRING
+    mode: NULLABLE
+    description: 'The name of the operating system. Possible values: Android, iOS,
+      Linux, Darwin, Windows, FreeBSD, NetBSD, OpenBSD, Solaris, unknown'
+  - name: os_version
+    type: STRING
+    mode: NULLABLE
+    description: The user-visible version of the operating system (e.g. "1.2.3").
+      If the version detection fails, this metric gets set to `Unknown`.
+  - name: telemetry_sdk_build
+    type: STRING
+    mode: NULLABLE
+    description: The version of the Glean SDK
+  - name: build_date
+    type: STRING
+    mode: NULLABLE
+    description: The date & time the application was built
+  - name: windows_build_number
+    type: INTEGER
+    mode: NULLABLE
+    description: The optional Windows build number, reported by Windows (e.g. 22000)
+      and not set for other platforms
+  - name: session_count
+    type: INTEGER
+    mode: NULLABLE
+    description: An optional running counter of the number of sessions for a client.
+  - name: session_id
+    type: STRING
+    mode: NULLABLE
+    description: An optional UUID uniquely identifying the client's current session.
+  - name: attribution
+    type: RECORD
+    mode: NULLABLE
+    fields:
+    - name: campaign
+      type: STRING
+      mode: NULLABLE
+      description: The attribution campaign (e.g. 'mozilla-org').
+    - name: content
+      type: STRING
+      mode: NULLABLE
+      description: The attribution content (e.g. 'firefoxview').
+    - name: medium
+      type: STRING
+      mode: NULLABLE
+      description: The attribution medium (e.g. 'organic' for a search engine).
+    - name: source
+      type: STRING
+      mode: NULLABLE
+      description: The attribution source (e.g. 'google-play').
+    - name: term
+      type: STRING
+      mode: NULLABLE
+      description: The attribution term (e.g. 'browser with developer tools for android').
+    - name: ext
+      type: JSON
+      mode: NULLABLE
+  - name: distribution
+    type: RECORD
+    mode: NULLABLE
+    fields:
+    - name: name
+      type: STRING
+      mode: NULLABLE
+      description: The distribution name (e.g. 'MozillaOnline').
+    - name: ext
+      type: JSON
+      mode: NULLABLE
+- name: document_id
+  type: STRING
+  mode: NULLABLE
+  description: The document ID specified in the URI when the client sent this message
+- name: events
+  type: RECORD
+  mode: REPEATED
+  fields:
+  - name: category
+    type: STRING
+    mode: NULLABLE
+  - name: extra
+    type: RECORD
+    mode: REPEATED
+    fields:
+    - name: key
+      type: STRING
+      mode: NULLABLE
+    - name: value
+      type: STRING
+      mode: NULLABLE
+  - name: name
+    type: STRING
+    mode: NULLABLE
+  - name: timestamp
+    type: INTEGER
+    mode: NULLABLE
+- name: metadata
+  type: RECORD
+  mode: NULLABLE
+  fields:
+  - name: geo
+    type: RECORD
+    mode: NULLABLE
+    fields:
+    - name: city
+      type: STRING
+      mode: NULLABLE
+    - name: country
+      type: STRING
+      mode: NULLABLE
+      description: An ISO 3166-1 alpha-2 country code
+    - name: db_version
+      type: STRING
+      mode: NULLABLE
+      description: The specific geo database version used for this lookup
+    - name: subdivision1
+      type: STRING
+      mode: NULLABLE
+      description: First major country subdivision, typically a state, province, or
+        county
+    - name: subdivision2
+      type: STRING
+      mode: NULLABLE
+      description: Second major country subdivision; not applicable for most countries
+    description: Results of a geographic lookup based on the client's IP address
+  - name: header
+    type: RECORD
+    mode: NULLABLE
+    fields:
+    - name: date
+      type: STRING
+      mode: NULLABLE
+      description: Date HTTP header
+    - name: dnt
+      type: STRING
+      mode: NULLABLE
+      description: DNT (Do Not Track) HTTP header
+    - name: x_debug_id
+      type: STRING
+      mode: NULLABLE
+      description: X-Debug-Id HTTP header
+    - name: x_pingsender_version
+      type: STRING
+      mode: NULLABLE
+      description: X-PingSender-Version HTTP header
+    - name: x_source_tags
+      type: STRING
+      mode: NULLABLE
+      description: X-Source-Tags HTTP header
+    - name: x_telemetry_agent
+      type: STRING
+      mode: NULLABLE
+      description: X-Telemetry-Agent HTTP header
+    - name: x_foxsec_ip_reputation
+      type: STRING
+      mode: NULLABLE
+      description: X-Foxsec-IP-Reputation header
+    - name: x_lb_tags
+      type: STRING
+      mode: NULLABLE
+      description: X-LB-Tags HTTP header
+    - name: parsed_date
+      type: TIMESTAMP
+      mode: NULLABLE
+    - name: parsed_x_source_tags
+      type: STRING
+      mode: REPEATED
+    - name: parsed_x_lb_tags
+      type: RECORD
+      mode: NULLABLE
+      fields:
+      - name: tls_version
+        type: STRING
+        mode: NULLABLE
+      - name: tls_cipher_hex
+        type: STRING
+        mode: NULLABLE
+    description: Headers included in the client's HTTP request
+  - name: isp
+    type: RECORD
+    mode: NULLABLE
+    fields:
+    - name: db_version
+      type: STRING
+      mode: NULLABLE
+      description: The specific geo ISP database version used for this lookup
+    - name: name
+      type: STRING
+      mode: NULLABLE
+      description: The name of the ISP associated with the client's IP address
+    - name: organization
+      type: STRING
+      mode: NULLABLE
+      description: The name of a specific business entity associated with the client's
+        IP address when available; otherwise the ISP name
+    description: Results of ISP lookup based on the client's IP address
+  - name: user_agent
+    type: RECORD
+    mode: NULLABLE
+    fields:
+    - name: browser
+      type: STRING
+      mode: NULLABLE
+    - name: os
+      type: STRING
+      mode: NULLABLE
+    - name: version
+      type: STRING
+      mode: NULLABLE
+    description: Parsed components of the client's user agent string
+- name: metrics
+  type: RECORD
+  mode: NULLABLE
+  fields:
+  - name: boolean
+    type: RECORD
+    mode: NULLABLE
+    fields:
+    - name: glean_core_migration_successful
+      type: BOOLEAN
+      mode: NULLABLE
+      description: Reports `true` if the client was successfully migrated from the
+        Android-specific implementation of the Glean SDK to the cross-platform one.
+    - name: glean_error_preinit_tasks_timeout
+      type: BOOLEAN
+      mode: NULLABLE
+      description: Set to true if the tasks that are queued prior to Glean initialization
+        time out.
+    - name: fog_failed_idle_registration
+      type: BOOLEAN
+      mode: NULLABLE
+      description: 'True if we failed to register with the idle service. Absent otherwise.
+
+        Means IPC probably isn''t working well.
+
+        Child-process data will likely be absent, or incomplete.
+
+        '
+    - name: browser_ui_proton_enabled
+      type: BOOLEAN
+      mode: NULLABLE
+      description: 'True if the Proton default theme is enabled.
+
+        '
+    - name: gifft_validation_main_ping_assembling
+      type: BOOLEAN
+      mode: NULLABLE
+      description: 'The value `true`, recorded when a Firefox Telemetry "main" ping
+        is about
+
+        to be assembled.
+
+        To be used to validate GIFFT.
+
+        '
+    - name: cookie_banners_service_detect_only
+      type: BOOLEAN
+      mode: NULLABLE
+      description: 'Tracks the value of the cookiebanners.service.detectOnly pref.
+
+        '
+    - name: startup_is_restored_by_macos
+      type: BOOLEAN
+      mode: NULLABLE
+      description: 'Recorded on every launch of a Firefox install on macOS, with a
+        boolean value indicating whether Firefox was restored by macOS or if it was
+        manually launched by a user.
+
+        '
+    - name: shopping_settings_component_opted_out
+      type: BOOLEAN
+      mode: NULLABLE
+      description: 'Indicates if the user has opted out of using the shopping component.
+
+        Set during shopping component init and updated when changed in browser.
+
+        '
+    - name: shopping_settings_has_onboarded
+      type: BOOLEAN
+      mode: NULLABLE
+      description: 'Indicates if the user has completed the Shopping product Onboarding
+
+        experience. Set during shopping component init and updated when changed
+
+        in browser.
+
+        '
+    - name: shopping_settings_nimbus_disabled_shopping
+      type: BOOLEAN
+      mode: NULLABLE
+      description: 'Indicates if Nimbus has disabled the use the shopping component.
+
+        '
+    - name: extensions_use_remote_policy
+      type: BOOLEAN
+      mode: NULLABLE
+      description: 'Corresponds to the value of `WebExtensionPolicy.useRemoteWebExtensions`.
+
+        '
+    - name: extensions_use_remote_pref
+      type: BOOLEAN
+      mode: NULLABLE
+      description: 'Corresponds to the value of `extensions.webextensions.remote`
+        pref.
+
+        '
+    - name: newtab_handoff_preference_enabled
+      type: BOOLEAN
+      mode: NULLABLE
+      description: 'Records whether the browser.newtabpage.activity-stream.improvesearch.handoffToAwesomebar
+        preference is enabled or disabled
+
+        '
+    - name: shopping_settings_disabled_ads
+      type: BOOLEAN
+      mode: NULLABLE
+      description: 'Indicates if the user has manually disabled ads. Set during shopping
+
+        component init and updated when changed in browser.
+
+        '
+    - name: gfx_status_headless
+      type: BOOLEAN
+      mode: NULLABLE
+      description: 'Boolean indicated whether graphics is running in headless (no
+        display) mode (Migrated from the geckoview metric of the same name).
+
+        '
+    - name: shopping_settings_auto_open_user_disabled
+      type: BOOLEAN
+      mode: NULLABLE
+      description: 'Indicates if the user has manually disabled the auto open sidebar
+        feature.
+
+        Set during shopping component init and updated when changed in browser.
+
+        '
+    - name: bounce_tracking_protection_enabled_at_startup
+      type: BOOLEAN
+      mode: NULLABLE
+      description: 'Keeps track of whether the feature is enabled at startup.
+
+        '
+    - name: bounce_tracking_protection_enabled_dry_run_mode_at_startup
+      type: BOOLEAN
+      mode: NULLABLE
+      description: 'Keeps track of whether the feature is enabled and running in dry-run
+        mode at startup.
+
+        '
+    - name: installation_first_seen_admin_user
+      type: BOOLEAN
+      mode: NULLABLE
+      description: 'Whether the installer is running from an elevated admin user
+
+        '
+    - name: installation_first_seen_default_path
+      type: BOOLEAN
+      mode: NULLABLE
+      description: '(optional, present if installer_type is "full") Whether the default
+        path was used
+
+        '
+    - name: installation_first_seen_from_msi
+      type: BOOLEAN
+      mode: NULLABLE
+      description: '(optional, present if installer_type is "full") Whether this was
+        an MSI install
+
+        '
+    - name: installation_first_seen_install_existed
+      type: BOOLEAN
+      mode: NULLABLE
+      description: 'Whether there was already an install in this location
+
+        '
+    - name: installation_first_seen_other_inst
+      type: BOOLEAN
+      mode: NULLABLE
+      description: 'Whether there was already any non-MSIX install on this system
+
+        '
+    - name: installation_first_seen_other_msix_inst
+      type: BOOLEAN
+      mode: NULLABLE
+      description: 'Whether there was already any MSIX install on this system
+
+        '
+    - name: installation_first_seen_profdir_existed
+      type: BOOLEAN
+      mode: NULLABLE
+      description: 'Whether the top-level profile directory existed
+
+        '
+    - name: installation_first_seen_silent
+      type: BOOLEAN
+      mode: NULLABLE
+      description: '(optional, present if installer_type is "full") Whether this was
+        a silent install
+
+        '
+    - name: genai_chatbot_enabled
+      type: BOOLEAN
+      mode: NULLABLE
+      description: 'Indicates if the chatbot feature is enabled.
+
+        '
+    - name: genai_chatbot_sidebar
+      type: BOOLEAN
+      mode: NULLABLE
+      description: 'Indicates if the chatbot feature would open in sidebar.
+
+        '
+    - name: genai_chatbot_shortcuts
+      type: BOOLEAN
+      mode: NULLABLE
+      description: 'Indicates if the chatbot feature would show shortcuts on selection.
+
+        '
+    - name: genai_chatbot_shortcuts_custom
+      type: BOOLEAN
+      mode: NULLABLE
+      description: 'Indicates if the chatbot feature would show shortcuts custom input.
+
+        '
+    - name: sslkeylogging_enabled
+      type: BOOLEAN
+      mode: NULLABLE
+      description: 'Records whether TLS key logging has been enabled via the environment
+        variable SSLKEYLOGFILE.
+
+        '
+    - name: a11y_always_underline_links
+      type: BOOLEAN
+      mode: NULLABLE
+      description: 'Bool tracking if the user has always underline links enabled in
+        firefox. This metric was generated to correspond to the Legacy Telemetry scalar
+        a11y.always_underline_links.
+
+        '
+    - name: a11y_backplate
+      type: BOOLEAN
+      mode: NULLABLE
+      description: 'Boolean tracking if the user has the backplate preference enabled
+        or disabled. This metric was generated to correspond to the Legacy Telemetry
+        scalar a11y.backplate.
+
+        '
+    - name: a11y_invert_colors
+      type: BOOLEAN
+      mode: NULLABLE
+      description: 'Boolean tracking if the user has an invert colors OS setting enabled.
+        This metric was generated to correspond to the Legacy Telemetry scalar a11y.invert_colors.
+
+        '
+    - name: a11y_use_system_colors
+      type: BOOLEAN
+      mode: NULLABLE
+      description: 'Bool tracking if the user has system colors enabled in firefox.
+        This metric was generated to correspond to the Legacy Telemetry scalar a11y.use_system_colors.
+
+        '
+    - name: browser_startup_abouthome_cache_shutdownwrite
+      type: BOOLEAN
+      mode: NULLABLE
+      description: 'True if the about:home startup cache was written via the AsyncShutdown
+        blocker. This metric was generated to correspond to the Legacy Telemetry scalar
+        browser.startup.abouthome_cache_shutdownwrite.
+
+        '
+    - name: datasanitization_privacy_clear_on_shutdown_cache
+      type: BOOLEAN
+      mode: NULLABLE
+      description: 'A boolean reporting the value of the privacy.clearOnShutdown.cache
+        pref. This metric was generated to correspond to the Legacy Telemetry scalar
+        datasanitization.privacy_clearOnShutdown_cache.
+
+        '
+    - name: datasanitization_privacy_clear_on_shutdown_cookies
+      type: BOOLEAN
+      mode: NULLABLE
+      description: 'A boolean reporting the value of the privacy.clearOnShutdown.cookies
+        pref. This metric was generated to correspond to the Legacy Telemetry scalar
+        datasanitization.privacy_clearOnShutdown_cookies.
+
+        '
+    - name: datasanitization_privacy_clear_on_shutdown_downloads
+      type: BOOLEAN
+      mode: NULLABLE
+      description: 'A boolean reporting the value of the privacy.clearOnShutdown.downloads
+        pref. This metric was generated to correspond to the Legacy Telemetry scalar
+        datasanitization.privacy_clearOnShutdown_downloads.
+
+        '
+    - name: datasanitization_privacy_clear_on_shutdown_formdata
+      type: BOOLEAN
+      mode: NULLABLE
+      description: 'A boolean reporting the value of the privacy.clearOnShutdown.formdata
+        pref. This metric was generated to correspond to the Legacy Telemetry scalar
+        datasanitization.privacy_clearOnShutdown_formdata.
+
+        '
+    - name: datasanitization_privacy_clear_on_shutdown_history
+      type: BOOLEAN
+      mode: NULLABLE
+      description: 'A boolean reporting the value of the privacy.clearOnShutdown.history
+        pref. This metric was generated to correspond to the Legacy Telemetry scalar
+        datasanitization.privacy_clearOnShutdown_history.
+
+        '
+    - name: datasanitization_privacy_clear_on_shutdown_offline_apps
+      type: BOOLEAN
+      mode: NULLABLE
+      description: 'A boolean reporting the value of the privacy.clearOnShutdown.offlineApps
+        pref. This metric was generated to correspond to the Legacy Telemetry scalar
+        datasanitization.privacy_clearOnShutdown_offlineApps.
+
+        '
+    - name: datasanitization_privacy_clear_on_shutdown_open_windows
+      type: BOOLEAN
+      mode: NULLABLE
+      description: 'A boolean reporting the value of the privacy.clearOnShutdown.openWindows
+        pref. This metric was generated to correspond to the Legacy Telemetry scalar
+        datasanitization.privacy_clearOnShutdown_openWindows.
+
+        '
+    - name: datasanitization_privacy_clear_on_shutdown_sessions
+      type: BOOLEAN
+      mode: NULLABLE
+      description: 'A boolean reporting the value of the privacy.clearOnShutdown.sessions
+        pref. This metric was generated to correspond to the Legacy Telemetry scalar
+        datasanitization.privacy_clearOnShutdown_sessions.
+
+        '
+    - name: datasanitization_privacy_clear_on_shutdown_site_settings
+      type: BOOLEAN
+      mode: NULLABLE
+      description: 'A boolean reporting the value of the privacy.clearOnShutdown.siteSettings
+        pref. This metric was generated to correspond to the Legacy Telemetry scalar
+        datasanitization.privacy_clearOnShutdown_siteSettings.
+
+        '
+    - name: datasanitization_privacy_sanitize_sanitize_on_shutdown
+      type: BOOLEAN
+      mode: NULLABLE
+      description: 'A boolean reporting the value of the privacy.sanitize.sanitizeOnShutdown
+        pref. This metric was generated to correspond to the Legacy Telemetry scalar
+        datasanitization.privacy_sanitize_sanitizeOnShutdown.
+
+        '
+    - name: gfx_os_compositor
+      type: BOOLEAN
+      mode: NULLABLE
+      description: 'Boolean indicating whether the os compositor is being used by
+        WebRender. Only collected in the first subsession. This metric was generated
+        to correspond to the Legacy Telemetry scalar gfx.os_compositor.
+
+        '
+    - name: gfx_supports_hdr
+      type: BOOLEAN
+      mode: NULLABLE
+      description: 'Does the hardware support accurate display of HDR content This
+        metric was generated to correspond to the Legacy Telemetry scalar gfx.supports_hdr.
+
+        '
+    - name: gfx_tmp_writable
+      type: BOOLEAN
+      mode: NULLABLE
+      description: 'Is the system temporary directory writable This metric was generated
+        to correspond to the Legacy Telemetry scalar gfx.tmp_writable.
+
+        '
+    - name: preferences_prefs_file_was_invalid
+      type: BOOLEAN
+      mode: NULLABLE
+      description: 'Set to true if a failure occurred reading profile/prefs.js. This
+        metric was generated to correspond to the Legacy Telemetry scalar preferences.prefs_file_was_invalid.
+
+        '
+    - name: networking_http3_enabled
+      type: BOOLEAN
+      mode: NULLABLE
+      description: 'True if HTTP3 is enabled at the start of a session. This metric
+        was generated to correspond to the Legacy Telemetry scalar networking.http3_enabled.
+
+        '
+    - name: migration_uninstaller_profile_refresh
+      type: BOOLEAN
+      mode: NULLABLE
+      description: 'Set when a profile refresh is initiated from the uninstaller.
+        This metric was generated to correspond to the Legacy Telemetry scalar migration.uninstaller_profile_refresh.
+
+        '
+    - name: os_environment_is_admin_without_uac
+      type: BOOLEAN
+      mode: NULLABLE
+      description: 'Indicates that the process is lauched with Admin privileges but
+        without UAC. This metric was generated to correspond to the Legacy Telemetry
+        scalar os.environment.is_admin_without_uac.
+
+        '
+    - name: os_environment_is_kept_in_dock
+      type: BOOLEAN
+      mode: NULLABLE
+      description: 'Whether this app was kept in macOS Dock on startup This metric
+        was generated to correspond to the Legacy Telemetry scalar os.environment.is_kept_in_dock.
+
+        '
+    - name: os_environment_is_taskbar_pinned
+      type: BOOLEAN
+      mode: NULLABLE
+      description: 'Whether the non-Private Browsing version of this app was pinned
+        to taskbar on startup This metric was generated to correspond to the Legacy
+        Telemetry scalar os.environment.is_taskbar_pinned.
+
+        '
+    - name: os_environment_is_taskbar_pinned_private
+      type: BOOLEAN
+      mode: NULLABLE
+      description: 'Whether the Private Browsing version of this app was pinned to
+        taskbar on startup This metric was generated to correspond to the Legacy Telemetry
+        scalar os.environment.is_taskbar_pinned_private.
+
+        '
+    - name: pictureinpicture_toggle_enabled
+      type: BOOLEAN
+      mode: NULLABLE
+      description: 'Whether the user has Picture-in-Picture enabled. This metric was
+        generated to correspond to the Legacy Telemetry scalar pictureinpicture.toggle_enabled.
+
+        '
+    - name: startup_is_cold
+      type: BOOLEAN
+      mode: NULLABLE
+      description: 'Whether or not this startup is the first startup since OS reboot
+        (according to our best guess.) This metric was generated to correspond to
+        the Legacy Telemetry scalar startup.is_cold.
+
+        '
+    - name: telemetry_data_upload_optin
+      type: BOOLEAN
+      mode: NULLABLE
+      description: 'User opted into sending Telemetry data again. This metric was
+        generated to correspond to the Legacy Telemetry scalar telemetry.data_upload_optin.
+
+        '
+    - name: contentblocking_cryptomining_blocking_enabled
+      type: BOOLEAN
+      mode: NULLABLE
+      description: 'True if cryptominer blocking is enabled globally at startup. This
+        metric was generated to correspond to the Legacy Telemetry scalar contentblocking.cryptomining_blocking_enabled.
+
+        '
+    - name: contentblocking_fingerprinting_blocking_enabled
+      type: BOOLEAN
+      mode: NULLABLE
+      description: 'True if fingerprinter blocking is enabled globally at startup.
+        This metric was generated to correspond to the Legacy Telemetry scalar contentblocking.fingerprinting_blocking_enabled.
+
+        '
+    - name: policies_is_enterprise
+      type: BOOLEAN
+      mode: NULLABLE
+      description: 'Attempt to determine if the user is an enterprise user based on
+        various signals. This metric was generated to correspond to the Legacy Telemetry
+        scalar policies.is_enterprise.
+
+        '
+    - name: widget_dark_mode
+      type: BOOLEAN
+      mode: NULLABLE
+      description: 'Whether the OS theme is dark. This metric was generated to correspond
+        to the Legacy Telemetry scalar widget.dark_mode.
+
+        '
+    - name: dom_parentprocess_private_window_used
+      type: BOOLEAN
+      mode: NULLABLE
+      description: 'Whether a private browsing window has been used in the session.
+        This metric was generated to correspond to the Legacy Telemetry scalar dom.parentprocess.private_window_used.
+
+        '
+    - name: browser_backup_enabled
+      type: BOOLEAN
+      mode: NULLABLE
+      description: 'True if the BackupService is enabled by default.
+
+        '
+    - name: browser_backup_pswd_encrypted
+      type: BOOLEAN
+      mode: NULLABLE
+      description: 'True if the BackupService is configured to encrypt backups.
+
+        '
+    - name: browser_backup_scheduler_enabled
+      type: BOOLEAN
+      mode: NULLABLE
+      description: 'True if the BackupService is configured to automatically create
+        backups in the background.
+
+        '
+    - name: devtools_shadowdom_reveal_link_clicked
+      type: BOOLEAN
+      mode: NULLABLE
+      description: 'Whether the user clicked on any "reveal" link. "reveal" links
+        are displayed in shadow dom trees in the markup view. This metric was generated
+        to correspond to the Legacy Telemetry scalar devtools.shadowdom.reveal_link_clicked.
+
+        '
+    - name: devtools_shadowdom_shadow_root_displayed
+      type: BOOLEAN
+      mode: NULLABLE
+      description: 'Whether the markup view displayed any #shadow-root element in
+        the UI. This metric was generated to correspond to the Legacy Telemetry scalar
+        devtools.shadowdom.shadow_root_displayed.
+
+        '
+    - name: devtools_shadowdom_shadow_root_expanded
+      type: BOOLEAN
+      mode: NULLABLE
+      description: 'Whether the user expanded any #shadow-root element. This metric
+        was generated to correspond to the Legacy Telemetry scalar devtools.shadowdom.shadow_root_expanded.
+
+        '
+    - name: formautofill_availability
+      type: BOOLEAN
+      mode: NULLABLE
+      description: 'A boolean sent once per session to represent whether the formautofill
+        is available in the build This metric was generated to correspond to the Legacy
+        Telemetry scalar formautofill.availability.
+
+        '
+    - name: primary_password_enabled
+      type: BOOLEAN
+      mode: NULLABLE
+      description: 'If a primary-password is enabled for this profile. Set soon after
+        browser startup. Does not update if a primary password is added or removed
+        after startup.
+
+        '
+    - name: formautofill_os_auth_enabled
+      type: BOOLEAN
+      mode: NULLABLE
+      description: 'Check at startup whether OS Authentication has been enabled for
+        credit cards.
+
+        '
+    - name: pwmgr_os_auth_enabled
+      type: BOOLEAN
+      mode: NULLABLE
+      description: 'Check at startup whether OS Authentication has been enabled for
+        passwords.
+
+        '
+    - name: update_suppress_prompts
+      type: BOOLEAN
+      mode: NULLABLE
+      description: 'When an update is available and app.update.auto is disabled, a
+        popup is opened prompting the user to download and install the update. The
+        pref app.update.suppressPrompts causes Firefox Nightly to wait up to 7 days
+        before showing the prompt, instead showing a badge and banner in the meantime.
+        It also prevents Nightly from showing update restart prompts, instead showing
+        a badge and banner immediately. This value is set for the users who set this
+        pref to true. This metric was generated to correspond to the Legacy Telemetry
+        scalar update.suppress_prompts.
+
+        '
+    - name: shopping_settings_auto_close_user_disabled
+      type: BOOLEAN
+      mode: NULLABLE
+      description: 'Indicates if the user has manually disabled the auto close sidebar
+        feature.
+
+        Set during shopping component init and updated when changed in browser.
+
+        '
+    - name: pwmgr_saving_enabled
+      type: BOOLEAN
+      mode: NULLABLE
+      description: 'Whether password saving is enabled globally.
+
+        Tracks the pref `signon.rememberSignons`.
+
+        '
+    - name: genai_linkpreview_enabled
+      type: BOOLEAN
+      mode: NULLABLE
+      description: 'Records if the user has link previews enabled
+
+        '
+    - name: addons_manager_compatibility_check_enabled
+      type: BOOLEAN
+      mode: NULLABLE
+      description: 'Whether application compatibility is enforced for add-ons.
+
+        '
+    - name: blocklist_enabled
+      type: BOOLEAN
+      mode: NULLABLE
+      description: 'Whether the extension blocklist is enabled.
+
+        Corresponds to the `extensions.blocklist.enabled` pref.
+
+        '
+    - name: browser_default_at_launch
+      type: BOOLEAN
+      mode: NULLABLE
+      description: 'Whether the shell service identified this app as the default browser.
+
+        Checked once near startup.
+
+        On Windows, this is operationalized as whether Firefox is the default
+
+        HTTP protocol handler and the default HTML file handler.
+
+        '
+    - name: e10s_enabled
+      type: BOOLEAN
+      mode: NULLABLE
+      description: 'Whether e10s is on, i.e. browser tabs open by default in a different
+
+        process.
+
+        See `nsIXULRuntime.browserTabsRemoteAutostart`
+
+        '
+    - name: fission_enabled
+      type: BOOLEAN
+      mode: NULLABLE
+      description: 'Whether fission is enabled this session, and subframes can load
+        in a
+
+        different process.
+
+        See `nsIXULRuntime.fissionAutostart`
+
+        '
+    - name: updater_available
+      type: BOOLEAN
+      mode: NULLABLE
+      description: 'Whether the app was built with the updater binary.
+
+        Corresponds to the value of the `MOZ_UPDATER` define.
+
+        '
+    - name: pkcs11_external_trust_anchor_module_loaded
+      type: BOOLEAN
+      mode: NULLABLE
+      description: Whether or not an external trust anchor module was loaded.
+    - name: search_engine_default_overridden_by_third_party
+      type: BOOLEAN
+      mode: NULLABLE
+      description: 'Set to true if the user''s default search engine has been allowed
+        to be
+
+        overridden by a third-party add-on or OpenSearch engine.
+
+        '
+    - name: search_engine_private_overridden_by_third_party
+      type: BOOLEAN
+      mode: NULLABLE
+      description: 'Set to true if the user''s default search engine has been allowed
+        to be
+
+        overridden by a third-party add-on or OpenSearch engine.
+
+        '
+    - name: fxa_account_enabled
+      type: BOOLEAN
+      mode: NULLABLE
+      description: 'Whether the user''s logged in to an FxA account.
+
+        '
+    - name: fxa_sync_enabled
+      type: BOOLEAN
+      mode: NULLABLE
+      description: 'Whether the weave service is present and enabled.
+
+        Implies `fxa.account_enabled`.
+
+        '
+    - name: gfx_d2d_enabled
+      type: BOOLEAN
+      mode: NULLABLE
+      description: 'Whether Direct2D is enabled. (Windows-only)
+
+        '
+    - name: gfx_dwrite_enabled
+      type: BOOLEAN
+      mode: NULLABLE
+      description: 'Whether DirectWrite is enabled. (Windows-only)
+
+        '
+    - name: gfx_headless
+      type: BOOLEAN
+      mode: NULLABLE
+      description: 'Whether the app''s running in headless mode (e.g. via `MOZ_HEADLESS`).
+
+        '
+    - name: system_has_win_package_id
+      type: BOOLEAN
+      mode: NULLABLE
+      description: 'Whether the app has a package identity.
+
+        Windows only.
+
+        '
+    - name: system_is_wow_64
+      type: BOOLEAN
+      mode: NULLABLE
+      description: 'Whether we''re in Windows32-on-Windows64 mode.
+
+        Windows only.
+
+        '
+    - name: system_is_wow_arm_64
+      type: BOOLEAN
+      mode: NULLABLE
+      description: 'Whether we''re in Windows32-on-WindowsForArm64 mode.
+
+        Windows only.
+
+        '
+    - name: tabgroup_smart_tab_enabled
+      type: BOOLEAN
+      mode: NULLABLE
+      description: 'Records if the user has smart tab groups enabled
+
+        '
+    - name: update_settings_auto_download
+      type: BOOLEAN
+      mode: NULLABLE
+      description: 'Whether app updates are set to auto-download.
+
+        '
+    - name: update_settings_background
+      type: BOOLEAN
+      mode: NULLABLE
+      description: 'Whether updates can be delivered in the background.
+
+        '
+    - name: update_settings_enabled
+      type: BOOLEAN
+      mode: NULLABLE
+      description: 'Whether updates are available.
+
+        '
+    - name: newtab_activity_stream_ctor_success
+      type: BOOLEAN
+      mode: NULLABLE
+      description: 'Records technical data about whether Activity Stream construction
+        completed successfully
+
+        '
+    - name: newtab_addon_ready_success
+      type: BOOLEAN
+      mode: NULLABLE
+      description: 'Records technical data about whether waiting for the newtab built-in
+        addon readyPromise succeeded.
+
+        '
+    - name: browser_startup_kiosk_mode
+      type: BOOLEAN
+      mode: NULLABLE
+      description: 'True when the browser was started in kiosk mode.
+
+        '
+    - name: extensions_button_prefers_hidden_button
+      type: BOOLEAN
+      mode: NULLABLE
+      description: 'Records whether the user prefers the Extensions Button to be hidden.
+        Corresponds to the inverse value of the `exceptions.unifiedExtensions.button.always_visible`
+        pref.
+
+        '
+    - name: genai_linkpreview_ai_optin
+      type: BOOLEAN
+      mode: NULLABLE
+      description: 'Records if the user has opted-in to use AI for key points generation
+
+        '
+    - name: genai_linkpreview_key_points
+      type: BOOLEAN
+      mode: NULLABLE
+      description: 'Records if the user defaults to expanded state for key point generation
+
+        '
+    - name: ipprotection_enabled
+      type: BOOLEAN
+      mode: NULLABLE
+      description: 'True if IP Protection is running.
+
+        '
+    - name: content_analysis_allow_url_regex_list_set
+      type: BOOLEAN
+      mode: NULLABLE
+      description: Whether the allow_url_regex_list pref is set to a non-default value.
+    - name: content_analysis_bypass_for_same_tab_operations
+      type: BOOLEAN
+      mode: NULLABLE
+      description: The bypass_for_same_tab_operations pref that is set via enterprise
+        policy.
+    - name: content_analysis_deny_url_regex_list_set
+      type: BOOLEAN
+      mode: NULLABLE
+      description: Whether the deny_url_regex_list pref is set to a non-default value.
+    - name: content_analysis_show_blocked_result
+      type: BOOLEAN
+      mode: NULLABLE
+      description: The show_blocked_result pref that is set via enterprise policy.
+    - name: genai_chatbot_menu
+      type: BOOLEAN
+      mode: NULLABLE
+      description: 'Indicates if the chatbot menu is shown without provider.
+
+        '
+    - name: genai_chatbot_page
+      type: BOOLEAN
+      mode: NULLABLE
+      description: 'Indicates if the chatbot page level features are enabled.
+
+        '
+    - name: contentblocking_tp_allowlist_baseline_enabled
+      type: BOOLEAN
+      mode: NULLABLE
+      description: 'True if the tracking protection allowlist convenience option is
+        enabled. Updates on "idle daily".
+
+        '
+    - name: contentblocking_tp_allowlist_convenience_enabled
+      type: BOOLEAN
+      mode: NULLABLE
+      description: 'True if the tracking protection allowlist baseline option is enabled.
+        Updates on "idle daily".
+
+        '
+    - name: newtab_addon_xpi_used
+      type: BOOLEAN
+      mode: NULLABLE
+      description: 'True if a downloaded XPI file is where the newtab resources are
+        being mapped from.
+
+        '
+  - name: counter
+    type: RECORD
+    mode: NULLABLE
+    fields:
+    - name: glean_error_preinit_tasks_overflow
+      type: INTEGER
+      mode: NULLABLE
+      description: 'The number of tasks that overflowed the pre-initialization buffer.
+
+        Only sent if the buffer ever overflows.
+
+
+        In Version 0 this reported the total number of tasks enqueued.
+
+        '
+    - name: glean_validation_app_forceclosed_count
+      type: INTEGER
+      mode: NULLABLE
+      description: This metric counts how many times a dirty bit was detected when
+        starting the Glean SDK, on Android. This dirty bit is set to `true` when Android's
+        lifecycle `ON_START` is hit and flipped back to false on `ON_STOP`. When an
+        application is force-closed, it might not get the `ON_STOP` and so the value
+        would stay `true`. The next time Glean starts, it will increment this counter.
+    - name: glean_validation_baseline_ping_count
+      type: INTEGER
+      mode: NULLABLE
+      description: The number of baseline pings sent during the lifetime of this metrics
+        ping.
+    - name: glean_upload_deleted_pings_after_quota_hit
+      type: INTEGER
+      mode: NULLABLE
+      description: 'The number of pings deleted after the quota
+
+        for the size of the pending pings directory or number of files is hit.
+
+        Since quota is only calculated for the pending pings directory,
+
+        and deletion request ping live in a different directory,
+
+        deletion request pings are never deleted.
+
+        '
+    - name: glean_upload_pending_pings
+      type: INTEGER
+      mode: NULLABLE
+      description: 'The total number of pending pings at startup.
+
+        This does not include deletion-request pings.
+
+        '
+    - name: fog_ipc_replay_failures
+      type: INTEGER
+      mode: NULLABLE
+      description: 'The number of times the ipc buffer failed to be replayed in the
+
+        parent process.
+
+        '
+    - name: glean_validation_foreground_count
+      type: INTEGER
+      mode: NULLABLE
+      description: 'On mobile, the number of times the application went to foreground.
+
+        '
+    - name: glean_error_io
+      type: INTEGER
+      mode: NULLABLE
+      description: 'The number of times we encountered an IO error
+
+        when writing a pending ping to disk.
+
+        '
+    - name: glean_time_invalid_timezone_offset
+      type: INTEGER
+      mode: NULLABLE
+      description: 'Counts the number of times we encountered an invalid timezone
+        offset
+
+        when trying to get the current time.
+
+        A timezone offset is invalid if it is outside [-24h, +24h].
+
+        If invalid a UTC offset is used (+0h).
+
+        '
+    - name: power_total_cpu_time_ms
+      type: INTEGER
+      mode: NULLABLE
+      description: 'Total CPU time used by all processes in ms.
+
+        '
+    - name: browser_engagement_active_ticks
+      type: INTEGER
+      mode: NULLABLE
+      description: 'The number of five-second intervals (''ticks'') the user was considered
+
+        ''active''.
+
+
+        ''active'' means keyboard or mouse interaction with the application.
+
+        It doesn''t take into account whether or not the window has focus or is in
+
+        the foreground, only if it is receiving these interaction events.
+
+
+        Migrated from Telemetry''s `browser.engagement.active_ticks`.
+
+        '
+    - name: browser_engagement_uri_count
+      type: INTEGER
+      mode: NULLABLE
+      description: 'The number of total non-unique http(s) URIs visited, including
+        page
+
+        reloads, after the session has been restored. URIs on minimized or
+
+        background tabs may also be counted. Private browsing uris are included.
+
+
+        Migrated from Telemetry''s
+
+        `browser.engagement.total_uri_count_normal_and_private_mode`.
+
+        '
+    - name: fog_ipc_flush_failures
+      type: INTEGER
+      mode: NULLABLE
+      description: 'The number of times we failed to flush all non-parent-process
+        data,
+
+        throwing even partial results into the trash.
+
+        If this number is high, we might consider writing custom `MozPromise`-
+
+        handling code instead of using `MozPromise::All`.
+
+        '
+    - name: power_total_gpu_time_ms
+      type: INTEGER
+      mode: NULLABLE
+      description: 'Total GPU time used by all p

⚠️ Only part of the diff is displayed.

Link to full diff

@kbammarito kbammarito marked this pull request as ready for review September 16, 2025 01:22
@kbammarito kbammarito added this pull request to the merge queue Sep 16, 2025
Merged via the queue into main with commit 5cb73be Sep 16, 2025
22 checks passed
@kbammarito kbammarito deleted the add-document-id-to-serp-events branch September 16, 2025 02:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants