def validate_meta_keys()

in modular_api/helpers/utilities.py [0:0]


def validate_meta_keys(key: str) -> None:
    allowed_key_values = {*()}
    commands_base_path = Path(__file__).parent.parent.joinpath(
        'web_service/commands_base.json'
    )
    with open(commands_base_path, 'r') as file:
        data = json.load(file)

    queue = deque([data])
    while queue:
        node = queue.popleft()
        if isinstance(node, dict):
            for k, v in node.items():
                if k == 'name':
                    allowed_key_values.add(v)
                else:
                    queue.append(v)
        elif isinstance(node, list):
            queue.extend(node)

    if key not in allowed_key_values:
        raise ModularApiBadRequestException(
            f'Incorrect key name: \'{key}\'. Allowed values are only '
            f'parameters names from installed components, like \'tenant, '
            f'customer_id, region, etc.\''
        )