alexa-samples / alexa-smarthome

Resources for Alexa Smart Home developers.
https://alexa.design/smarthome
Other
687 stars 336 forks source link

Schema validation for endpointId using (.) periods #186

Closed michaelsantunes closed 1 year ago

michaelsantunes commented 2 years ago

Hello,

I have a question about validation schemas: _https://github.com/alexa/alexa-smarthome/blob/master/validation_schemas/alexa_smart_home_message_schema.json_

Basically when we answer an Alexa Discovery for example when we build the answer specifically in payload.endpoints.endpointId we always add a period(.) in the json.

Bellow a simple example:

"payload": { "endpoints": [ { "endpointId": "my.device:contactsendor001",

My question is: The endpointId in the json schema, if you look in the pattern condition, the endpointId does not allow a "period" (.) "properties": { "endpointId": { "type": "string", "pattern": "^[a-zA-Z0-9_\\-=#;:?@&]*$", "minLength": 1, "maxLength": 256 }

On documentation is the same rule: https://developer.amazon.com/en-US/docs/alexa/device-apis/alexa-discovery-objects.html#endpoint-object

However, I have never problems in sending a response with period, Alexa always accept this condition.

So the question is: Why on the documentation and schema validation it is required not to send a period, but even sending to Alexa, is valid?

aszk commented 1 year ago

I can't share the reason however I'd strongly recommend avoiding .(period/dot) for endpointId. We don't support that so we could change the current condition anytime and we probably don't share the change when we update it.