O que o cliente não valida
O cliente verifica a forma de uma solicitação antes de enviá-la:
- uma chave de configuração que o serviço não tem é recusada, com a lista das aceitas;
- um perfil ou uma configuração passados a um modo que não aceita nenhum são recusados;
- um operando que um modo não aceita é recusado;
- uma tentativa sobre um achado que recebe um texto onde cabe um digest é recusada, de modo que nada além de digests sai da máquina.
from stalwart_agents.client import Client
client = Client()
try:
client.verify_guardrail("policy.co", "execute_transfer_funds", "is_authenticated",
config={"no_such_key": 1})
except ValueError as refused:
print(refused)
Ele não verifica mais nada. Se uma combinação de escolhas pode responder à pergunta feita -- um
perfil que não pode produzir um certificado para uma tabela que exige um, uma enumeração sob um
perfil que a recusa -- é o serviço que diz, e ele o diz com um RefusedError cujo slug nomeia
a regra. Uma segunda cópia dessas regras no cliente seria uma segunda versão delas, e no dia em
que as duas divergissem um cliente seria recusado pela que ele não vê.
O cliente também não lê nenhum turno. Um plano, uma pergunta, um valor carregado e a contagem de
turnos que se pediu para reformular são do runtime (ou do seu qls-router), devolvidos no
context de cada plano e enviados de volta, sem alteração, com o próximo turno.