From f74e169c855be4daa5c2a6feee8a7ed707be2c4d Mon Sep 17 00:00:00 2001 From: Sean Rose Date: Fri, 3 May 2024 12:15:00 -0700 Subject: [PATCH] Ensure `version` property is required when present in legacy telemetry. --- schemas/telemetry/anonymous/anonymous.4.schema.json | 3 ++- schemas/telemetry/bhr/bhr.4.schema.json | 3 +++ .../normandy-login-study/normandy-login-study.4.schema.json | 3 +++ .../xfocsp-error-report/xfocsp-error-report.4.schema.json | 1 + scripts/assert-telemetry-version | 2 ++ templates/telemetry/anonymous/anonymous.4.schema.json | 5 +++-- templates/telemetry/bhr/bhr.4.schema.json | 5 ++++- .../normandy-login-study/normandy-login-study.4.schema.json | 5 ++++- .../xfocsp-error-report/xfocsp-error-report.4.schema.json | 1 + 9 files changed, 23 insertions(+), 5 deletions(-) diff --git a/schemas/telemetry/anonymous/anonymous.4.schema.json b/schemas/telemetry/anonymous/anonymous.4.schema.json index cdec563d9..b83a24f64 100644 --- a/schemas/telemetry/anonymous/anonymous.4.schema.json +++ b/schemas/telemetry/anonymous/anonymous.4.schema.json @@ -82,7 +82,8 @@ } }, "required": [ - "payload" + "payload", + "version" ], "title": "anonymous", "type": "object" diff --git a/schemas/telemetry/bhr/bhr.4.schema.json b/schemas/telemetry/bhr/bhr.4.schema.json index 9e14aa9db..3673f27a1 100644 --- a/schemas/telemetry/bhr/bhr.4.schema.json +++ b/schemas/telemetry/bhr/bhr.4.schema.json @@ -1491,6 +1491,9 @@ "type": "number" } }, + "required": [ + "version" + ], "title": "bhr", "type": "object" } diff --git a/schemas/telemetry/normandy-login-study/normandy-login-study.4.schema.json b/schemas/telemetry/normandy-login-study/normandy-login-study.4.schema.json index e33ef07fa..3429da901 100644 --- a/schemas/telemetry/normandy-login-study/normandy-login-study.4.schema.json +++ b/schemas/telemetry/normandy-login-study/normandy-login-study.4.schema.json @@ -227,6 +227,9 @@ "type": "number" } }, + "required": [ + "version" + ], "title": "normandy-login-study", "type": "object" } diff --git a/schemas/telemetry/xfocsp-error-report/xfocsp-error-report.4.schema.json b/schemas/telemetry/xfocsp-error-report/xfocsp-error-report.4.schema.json index c97914e1c..83cc424c3 100644 --- a/schemas/telemetry/xfocsp-error-report/xfocsp-error-report.4.schema.json +++ b/schemas/telemetry/xfocsp-error-report/xfocsp-error-report.4.schema.json @@ -123,6 +123,7 @@ } }, "required": [ + "version", "payload" ], "title": "xfocsp-error-report", diff --git a/scripts/assert-telemetry-version b/scripts/assert-telemetry-version index b2363a4d3..06d948f5a 100755 --- a/scripts/assert-telemetry-version +++ b/scripts/assert-telemetry-version @@ -36,6 +36,8 @@ def is_valid_telemetry_version(schema: Dict[str, Any]) -> (bool, Optional[str]): return False, f"invalid maximum version number" if not version["type"] in {"integer", "number"}: return False, f"version must be a number or integer" + if "version" in schema["properties"] and "version" not in schema.get("required", []): + return False, "version property must be required" return True, None diff --git a/templates/telemetry/anonymous/anonymous.4.schema.json b/templates/telemetry/anonymous/anonymous.4.schema.json index 1f87d00f7..b98fa23fd 100644 --- a/templates/telemetry/anonymous/anonymous.4.schema.json +++ b/templates/telemetry/anonymous/anonymous.4.schema.json @@ -25,6 +25,7 @@ } }, "required": [ - "payload" - ] + "payload", + "version" + ] } diff --git a/templates/telemetry/bhr/bhr.4.schema.json b/templates/telemetry/bhr/bhr.4.schema.json index b58a867c6..adde2d07a 100644 --- a/templates/telemetry/bhr/bhr.4.schema.json +++ b/templates/telemetry/bhr/bhr.4.schema.json @@ -80,5 +80,8 @@ } } } - } + }, + "required": [ + "version" + ] } \ No newline at end of file diff --git a/templates/telemetry/normandy-login-study/normandy-login-study.4.schema.json b/templates/telemetry/normandy-login-study/normandy-login-study.4.schema.json index 275d0b15a..785396471 100644 --- a/templates/telemetry/normandy-login-study/normandy-login-study.4.schema.json +++ b/templates/telemetry/normandy-login-study/normandy-login-study.4.schema.json @@ -99,5 +99,8 @@ } } } - } + }, + "required": [ + "version" + ] } diff --git a/templates/telemetry/xfocsp-error-report/xfocsp-error-report.4.schema.json b/templates/telemetry/xfocsp-error-report/xfocsp-error-report.4.schema.json index fbb073b69..b0937d1c2 100644 --- a/templates/telemetry/xfocsp-error-report/xfocsp-error-report.4.schema.json +++ b/templates/telemetry/xfocsp-error-report/xfocsp-error-report.4.schema.json @@ -63,6 +63,7 @@ } }, "required": [ + "version", "payload" ] }