From 067e7fa747bf19f89d9c9594886992caeb99d422 Mon Sep 17 00:00:00 2001 From: Vessel9817 <151808241+Vessel9817@users.noreply.github.com> Date: Wed, 15 Jul 2026 18:37:09 -0400 Subject: [PATCH 1/2] Migrated to draft-07 Signed-off-by: Vessel9817 <151808241+Vessel9817@users.noreply.github.com> --- src/schema-validation.jsonc | 3 --- src/schemas/json/host.json | 24 ++++++++++++------------ 2 files changed, 12 insertions(+), 15 deletions(-) diff --git a/src/schema-validation.jsonc b/src/schema-validation.jsonc index cb1b30437e6..bda9c878ee4 100644 --- a/src/schema-validation.jsonc +++ b/src/schema-validation.jsonc @@ -1229,9 +1229,6 @@ "hammerkit.json": { "externalSchema": ["base.json"] }, - "host.json": { - "unknownKeywords": ["examples"] - }, "hugo-theme.json": { "externalSchema": ["base.json"] }, diff --git a/src/schemas/json/host.json b/src/schemas/json/host.json index aa1ff6fe67b..15d527991c9 100644 --- a/src/schemas/json/host.json +++ b/src/schemas/json/host.json @@ -1,5 +1,6 @@ { - "$schema": "http://json-schema.org/draft-04/schema#", + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "https://json.schemastore.org/host.json", "definitions": { "aggregator": { "description": "Configuration settings for the function result aggregator.", @@ -34,7 +35,7 @@ "pattern": "^(-1|(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d)$" }, { - "enum": [null] + "type": "null" } ] }, @@ -912,7 +913,7 @@ "type": "string" }, { - "enum": [null] + "type": "null" } ], "default": null @@ -994,7 +995,7 @@ "type": "string" }, { - "enum": [null] + "type": "null" } ], "default": null @@ -1026,7 +1027,7 @@ "type": "string" }, { - "enum": [null] + "type": "null" } ], "default": null @@ -1043,7 +1044,7 @@ "type": "string" }, { - "enum": [null] + "type": "null" } ], "default": null @@ -1102,7 +1103,7 @@ "pattern": "^(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d$" }, { - "enum": [null] + "type": "null" } ] }, @@ -1114,7 +1115,7 @@ "pattern": "^(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d$" }, { - "enum": [null] + "type": "null" } ] }, @@ -1126,7 +1127,7 @@ "pattern": "^(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d$" }, { - "enum": [null] + "type": "null" } ] } @@ -1204,7 +1205,7 @@ }, "version": { "description": "The version of the Azure Functions host.json schema. This is NOT the version of the Azure Functions host.", - "enum": ["2.0"] + "const": "2.0" }, "extensions": { "type": "object", @@ -1635,7 +1636,7 @@ }, "telemetryMode": { "description": "Used to enable output of logs and traces in an OpenTelemetry output format to one or more endpoints that support OpenTelemetry.", - "enum": ["OpenTelemetry"] + "const": "OpenTelemetry" }, "configurationProfile": { "description": "Configuration profile to use for the Function App. Settings defined by the configuration profile will be implicitly applied to the Function App.", @@ -1664,7 +1665,6 @@ "additionalProperties": false } }, - "id": "https://json.schemastore.org/host.json", "oneOf": [ { "$ref": "#/definitions/version-1" From 673ce8f01e10e203d9ecc115761913d8916c960e Mon Sep 17 00:00:00 2001 From: Vessel9817 <151808241+Vessel9817@users.noreply.github.com> Date: Wed, 15 Jul 2026 18:39:57 -0400 Subject: [PATCH 2/2] Enabled strict validation Signed-off-by: Vessel9817 <151808241+Vessel9817@users.noreply.github.com> --- src/schema-validation.jsonc | 1 - src/schemas/json/host.json | 17 +++++++++++++++-- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/src/schema-validation.jsonc b/src/schema-validation.jsonc index bda9c878ee4..111ac8941c2 100644 --- a/src/schema-validation.jsonc +++ b/src/schema-validation.jsonc @@ -158,7 +158,6 @@ "grunt-watch-task.json", "helmfile.json", "hemtt-0.6.2.json", - "host.json", "hws-config.json", "install.json", "jasonette.json", diff --git a/src/schemas/json/host.json b/src/schemas/json/host.json index 15d527991c9..c95ae892445 100644 --- a/src/schemas/json/host.json +++ b/src/schemas/json/host.json @@ -12,6 +12,7 @@ "default": 1000 }, "flushTimeout": { + "type": "string", "description": "The aggregation duration. The aggregator will flush periodically based on this value.", "pattern": "^(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d$", "default": "00:00:30" @@ -53,26 +54,31 @@ "type": "object", "properties": { "lockPeriod": { + "type": "string", "description": "The period that function level locks are taken for (they will auto renew).", "pattern": "^(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d$", "default": "00:00:15" }, "listenerLockPeriod": { + "type": "string", "description": "The period that listener locks are taken for.", "pattern": "^(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d$", "default": "00:01:00" }, "listenerLockRecoveryPollingInterval": { + "type": "string", "description": "The time interval used for listener lock recovery if a listener lock couldn't be acquired on startup.", "pattern": "^(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d$", "default": "00:01:00" }, "lockAcquisitionTimeout": { + "type": "string", "description": "The maximum amount of time the runtime will try to acquire a lock.", "pattern": "^(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d$", "default": "00:01:00" }, "lockAcquisitionPollingInterval": { + "type": "string", "description": "The interval between lock acquisition attempts.", "pattern": "^(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d$" } @@ -89,11 +95,13 @@ "default": true }, "healthCheckInterval": { + "type": "string", "description": "The time interval between the periodic background health checks", "pattern": "^(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d$", "default": "00:00:10" }, "healthCheckWindow": { + "type": "string", "description": "A sliding time window used in conjunction with the healthCheckThreshold setting.", "pattern": "^(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d$", "default": "00:02:00" @@ -200,6 +208,7 @@ "type": "integer" }, "visibilityTimeout": { + "type": "string", "description": "The visibility timeout that will be applied to messages that fail processing.", "pattern": "^(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d$", "default": "00:00:00" @@ -811,6 +820,7 @@ "default": 20 }, "evaluationInterval": { + "type": "string", "description": "The interval at which the current rate of telemetry is reevaluated.", "pattern": "^(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d$", "default": "01:00:00" @@ -821,11 +831,13 @@ "default": 100 }, "samplingPercentageIncreaseTimeout": { + "type": "string", "description": "When the sampling percentage value changes, this property determines how soon afterwards Application Insights is allowed to raise sampling percentage again to capture more data.", "pattern": "^(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d$", "default": "00:00:01" }, "samplingPercentageDecreaseTimeout": { + "type": "string", "description": "When the sampling percentage value changes, this property determines how soon afterwards Application Insights is allowed to lower sampling percentage again to capture less data.", "pattern": "^(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d$", "default": "00:00:01" @@ -984,6 +996,7 @@ "default": true }, "reconnectInterval": { + "type": "string", "description": "How often we reconnect to the Snapshot Debugger endpoint. Allowable range is one minute to one day.", "pattern": "^(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d$", "default": "00:15:00" @@ -1200,8 +1213,7 @@ "items": { "type": "string", "minLength": 1 - }, - "additionalProperties": false + } }, "version": { "description": "The version of the Azure Functions host.json schema. This is NOT the version of the Azure Functions host.", @@ -1294,6 +1306,7 @@ "default": 1000 }, "operationTimeout": { + "type": "string", "description": "A time span value expressed in hh:mm:ss.", "pattern": "^(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d$", "default": "00:01:00"