diff --git a/hassio/addons/validate.py b/hassio/addons/validate.py index 6d5d83f3a..91477c9e6 100644 --- a/hassio/addons/validate.py +++ b/hassio/addons/validate.py @@ -81,7 +81,7 @@ from ..const import ( STATE_STOPPED, ) from ..discovery.validate import valid_discovery_service -from ..validate import ALSA_DEVICE, DOCKER_PORTS, NETWORK_PORT, SHA256, UUID_MATCH +from ..validate import ALSA_DEVICE, DOCKER_PORTS, NETWORK_PORT, TOKEN, UUID_MATCH _LOGGER = logging.getLogger(__name__) @@ -220,7 +220,7 @@ SCHEMA_ADDON_USER = vol.Schema({ vol.Required(ATTR_VERSION): vol.Coerce(str), vol.Optional(ATTR_IMAGE): vol.Coerce(str), vol.Optional(ATTR_UUID, default=lambda: uuid.uuid4().hex): UUID_MATCH, - vol.Optional(ATTR_ACCESS_TOKEN): SHA256, + vol.Optional(ATTR_ACCESS_TOKEN): TOKEN, vol.Optional(ATTR_INGRESS_TOKEN, default=secrets.token_urlsafe): vol.Coerce(str), vol.Optional(ATTR_OPTIONS, default=dict): dict, vol.Optional(ATTR_AUTO_UPDATE, default=False): vol.Boolean(), diff --git a/hassio/validate.py b/hassio/validate.py index 126ff3547..dc51de046 100644 --- a/hassio/validate.py +++ b/hassio/validate.py @@ -40,6 +40,7 @@ ALSA_DEVICE = vol.Maybe(vol.Match(r"\d+,\d+")) CHANNELS = vol.In([CHANNEL_STABLE, CHANNEL_BETA, CHANNEL_DEV]) UUID_MATCH = vol.Match(r"^[0-9a-f]{32}$") SHA256 = vol.Match(r"^[0-9a-f]{64}$") +TOKEN = vol.Match(r"^[0-9a-f]{32,256}$") def validate_repository(repository): @@ -94,7 +95,7 @@ DOCKER_PORTS = vol.Schema( SCHEMA_HASS_CONFIG = vol.Schema( { vol.Optional(ATTR_UUID, default=lambda: uuid.uuid4().hex): UUID_MATCH, - vol.Optional(ATTR_ACCESS_TOKEN): SHA256, + vol.Optional(ATTR_ACCESS_TOKEN): TOKEN, vol.Optional(ATTR_BOOT, default=True): vol.Boolean(), vol.Inclusive(ATTR_IMAGE, "custom_hass"): DOCKER_IMAGE, vol.Inclusive(ATTR_LAST_VERSION, "custom_hass"): vol.Coerce(str), @@ -142,9 +143,6 @@ SCHEMA_AUTH_CONFIG = vol.Schema({SHA256: SHA256}) SCHEMA_INGRESS_CONFIG = vol.Schema( - { - vol.Required(ATTR_SESSION, default=dict): vol.Schema( - {vol.Coerce(str): vol.Coerce(float)} - ) - } + {vol.Required(ATTR_SESSION, default=dict): vol.Schema({TOKEN: vol.Coerce(float)})}, + extra=vol.REMOVE_EXTRA, )