79 lines
2.0 KiB
JSON
79 lines
2.0 KiB
JSON
{
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"$id": "ART-FE-FIELD-WEB-VITALS@1",
|
|
"type": "object",
|
|
"required": [
|
|
"schemaVersion",
|
|
"generatedAt",
|
|
"window",
|
|
"context",
|
|
"metrics",
|
|
"thresholds",
|
|
"eligibility",
|
|
"status",
|
|
"passed"
|
|
],
|
|
"properties": {
|
|
"schemaVersion": { "const": 1 },
|
|
"generatedAt": { "type": "string", "format": "date-time" },
|
|
"window": { "type": "object", "required": ["days", "start", "end"] },
|
|
"context": {
|
|
"type": "object",
|
|
"required": [
|
|
"source",
|
|
"sourceSystem",
|
|
"exportId",
|
|
"network",
|
|
"routeAggregation",
|
|
"releaseId",
|
|
"privacyApprovalRef",
|
|
"thresholdDecisionRef",
|
|
"validationFailures"
|
|
],
|
|
"properties": {
|
|
"source": { "type": "string" },
|
|
"sourceSystem": { "type": ["string", "null"] },
|
|
"exportId": { "type": ["string", "null"] },
|
|
"network": { "const": "production-real-user" },
|
|
"routeAggregation": { "const": "route-id-only" },
|
|
"releaseId": { "type": ["string", "null"] },
|
|
"privacyApprovalRef": { "type": ["string", "null"] },
|
|
"thresholdDecisionRef": { "type": ["string", "null"] },
|
|
"validationFailures": {
|
|
"type": "array",
|
|
"items": { "type": "string" }
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"thresholds": {
|
|
"type": "object",
|
|
"required": [
|
|
"p75LcpMs",
|
|
"p75Cls",
|
|
"p75InpMs",
|
|
"minimumEligibleSamples"
|
|
]
|
|
},
|
|
"metrics": {
|
|
"type": "object",
|
|
"required": ["p75LcpMs", "p75Cls", "p75InpMs"]
|
|
},
|
|
"eligibility": {
|
|
"type": "object",
|
|
"required": [
|
|
"consentRequired",
|
|
"totalSamples",
|
|
"eligibleSamples",
|
|
"minimumEligibleSamples",
|
|
"routeSamples"
|
|
]
|
|
},
|
|
"status": {
|
|
"enum": ["PASS", "FAIL_THRESHOLD", "FAIL_UNVERIFIED"]
|
|
},
|
|
"passed": { "type": "boolean" }
|
|
},
|
|
"additionalProperties": false
|
|
}
|