Um login é uma forma de autenticar. Uma account é o que é faturado. Uma account pode conter
vários logins, e essa relação é estruturalmente carregadora.
Por que a account, não o login
Tetos de rate, saldo prepaid, limites de crédito e statements são todos indexados pela account.
Um limite por login permitiria que um cliente aumentasse seu próprio teto criando outro login.
Indexar pela account é o que faz o limite significar algo.
Os dois protocolos autenticam diferentemente
Para a API REST, configure tanto systemId quanto password. Uma credencial contendo apenas
um apiKey é configuração válida e não pode autenticar — é recusada com 403.
Dois campos, defaults opostos
Deliberado. O product seleciona o rate, portanto um login que pudesse nomear qualquer product poderia
escolher o próprio preço. Nomear um que não lhe foi concedido é recusado em vez de permitido por
omissão.
Rotacionando um segredo
Um cliente rotaciona o seu a partir do portal, e o novo segredo é mostrado exatamente uma vez. Um
operador também pode fazê-lo a partir da página da account.
Desabilitar um login derruba seus binds ativos. Esse é o comportamento pretendido — caso
contrário, uma credencial revogada continua enviando até a sessão eventualmente cair — mas significa
que desabilitar durante o horário comercial interrompe o tráfego imediatamente.
TLVs default em uma credencial
Valores fornecidos em nome do cliente quando o submit_sm deles não os carrega.
Aplicado depois das tags na mensagem — um valor que o cliente enviou sempre vence — e antes
do check mandatory.tlvs.submit do listener, portanto uma credencial pode satisfazer uma tag
requerida em nome de um cliente que nunca envia uma.
Defaults de TLV da credencial são snapshotados no bind. Diferente de roteamento e propriedades,
editá-los se aplica no próximo bind daquele cliente, não a sessões já conectadas.
A gramática, e por que 1400 e 0x1400 são tags diferentes, está em
Declarações de TLV.
Onde as credenciais vivem
Trocar para db contra um app_credential vazio recusa todo bind e toda chamada REST de uma
vez. O loader publica o mapa vazio em vez de fazer fallback para o arquivo.fireflo import credentials recusa incondicionalmente quando não deixaria credencial utilizável,
com flag ou sem flag — essa recusa existe precisamente para prevenir isso.
Chaves desconhecidas são avisadas, não rejeitadas
Portanto, uma configuração mais nova carrega em uma build mais antiga. Um typo é silenciosamente
descartado. Leia o log após editar se um campo parece não ter efeito.
O que um cliente vê do próprio
A partir do portal: seus logins, para onde enviar, e um botão de rotação. Nunca de outra account, e
nunca um segredo que ele não acabou de criar. Veja Acesso ao portal.