From e44de40ad7473e846a023949bd12636cb846f516 Mon Sep 17 00:00:00 2001 From: Shivani Bhardwaj Date: Wed, 2 Sep 2026 19:58:22 +0530 Subject: [PATCH] etc/schema: explicitly add all MQTT properties Add all the missing properties explicitly and disallow additionalProperties so any failure is loud and clear. --- etc/schema.json | 134 ++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 124 insertions(+), 10 deletions(-) diff --git a/etc/schema.json b/etc/schema.json index 52002507a4..7da3967e6e 100644 --- a/etc/schema.json +++ b/etc/schema.json @@ -4263,8 +4263,7 @@ } }, "properties": { - "type": "object", - "additionalProperties": true + "$ref": "#/$defs/mqtt.properties" }, "qos": { "type": "integer" @@ -4330,8 +4329,7 @@ "type": "string" }, "properties": { - "type": "object", - "additionalProperties": true + "$ref": "#/$defs/mqtt.properties" }, "protocol_string": { "type": "string" @@ -4366,8 +4364,7 @@ "type": "string" }, "properties": { - "type": "object", - "additionalProperties": true + "$ref": "#/$defs/mqtt.properties" }, "topic": { "type": "string" @@ -4389,8 +4386,7 @@ } }, "properties": { - "type": "object", - "additionalProperties": true + "$ref": "#/$defs/mqtt.properties" }, "qos": { "type": "integer" @@ -4478,6 +4474,9 @@ "message_id": { "type": "integer" }, + "properties": { + "$ref": "#/$defs/mqtt.properties" + }, "qos": { "type": "integer" }, @@ -4514,6 +4513,9 @@ "message_id": { "type": "integer" }, + "properties": { + "$ref": "#/$defs/mqtt.properties" + }, "qos": { "type": "integer" }, @@ -4554,8 +4556,7 @@ "type": "integer" }, "properties": { - "type": "object", - "additionalProperties": true + "$ref": "#/$defs/mqtt.properties" }, "qos": { "type": "integer" @@ -4594,6 +4595,9 @@ "message_id": { "type": "integer" }, + "properties": { + "$ref": "#/$defs/mqtt.properties" + }, "qos": { "type": "integer" }, @@ -4630,6 +4634,9 @@ "message_id": { "type": "integer" }, + "properties": { + "$ref": "#/$defs/mqtt.properties" + }, "qos": { "type": "integer" }, @@ -4701,6 +4708,9 @@ "message_id": { "type": "integer" }, + "properties": { + "$ref": "#/$defs/mqtt.properties" + }, "qos": { "type": "integer" }, @@ -9855,6 +9865,110 @@ "minimum": 0 } } + }, + "mqtt.properties": { + "type": "object", + "additionalProperties": false, + "$comment": "MQTT 5.0 properties, see MQTTProperty in rust/src/mqtt/mqtt_property.rs", + "properties": { + "assigned_client_identifier": { + "type": "string" + }, + "authentication_data": { + "type": "string" + }, + "authentication_method": { + "type": "string" + }, + "content_type": { + "type": "string" + }, + "correlation_data": { + "type": "string" + }, + "maximum_packet_size": { + "type": "integer" + }, + "maximum_qos": { + "type": "integer" + }, + "message_expiry_interval": { + "type": "integer" + }, + "payload_format_indicator": { + "type": "integer" + }, + "reason_string": { + "type": "string" + }, + "receive_maximum": { + "type": "integer" + }, + "request_problem_information": { + "type": "integer" + }, + "request_response_information": { + "type": "integer" + }, + "response_information": { + "type": "string" + }, + "response_topic": { + "type": "string" + }, + "retain_available": { + "type": "integer" + }, + "server_keep_alive": { + "type": "integer" + }, + "server_reference": { + "type": "string" + }, + "session_expiry_interval": { + "type": "integer" + }, + "shared_subscription_available": { + "type": "integer" + }, + "subscription_identifier": { + "type": "integer" + }, + "subscription_identifier_available": { + "type": "integer" + }, + "topic_alias": { + "type": "integer" + }, + "topic_alias_maximum": { + "type": "integer" + }, + "user_properties": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": false, + "required": [ + "key", + "value" + ], + "properties": { + "key": { + "type": "string" + }, + "value": { + "type": "string" + } + } + } + }, + "wildcard_subscription_available": { + "type": "integer" + }, + "will_delay_interval": { + "type": "integer" + } + } } } }