app_template é um corpo de mensagem aprovado. Um template é um texto fixo com
placeholders, então Your code is {#var#} aprova a mensagem em vez de um código específico.
A falha é um template que salva sem erros e não casa com nada
Conteúdo é fail-closed. “Não casa com nada” não significa que o template é ignorado — significa que o cliente para de enviar, e parece que nada está errado sob qualquer ângulo exceto o dele. Os quase-erros se comportam de forma diferente nos dois lados, deliberadamente:O gateway costumava recusar um placeholder malformado de imediato, o que parece mais seguro e não era:
o loader descarta um template que não consegue compilar, então um operador via um template aprovado
no painel enquanto toda mensagem coberta por ele era recusada. Estrito na autoria, tolerante mas
barulhento no load é a regra — o trabalho do painel é impedir que a linha seja escrita, o trabalho
do gateway em uma linha já no banco é manter a conta enviando e dizer o que fez.
Os três placeholders, escritos exatamente
Escreva o token em minúsculas sem espaços dentro. Essa é sua grafia e não diz nada sobre o que
ele aceita.
{#alp#} aceita espaços, apóstrofos, hífens e pontos finais, então your login, Priya Sharma,
O'Brien, Anne-Marie e St. John todos casam. Tanto o apóstrofo e hífen ASCII quanto os
tipográficos são aceitos, porque os tipográficos são o que sobrevive a um paste de um PDF. O que ele
ainda recusa são dígitos, e esse é o motivo inteiro para escolhê-lo em vez de {#var#}.
Um placeholder tipado é estritamente mais restrito que {#var#} — mesmo limite de comprimento, menos
caracteres permitidos — então escolher um só pode restringir o que um template aceita.
Quanto um placeholder pode representar
Uma variável casa com 1 a 30 caracteres por padrão.max_variable na saída de saúde também é a resposta para “a configuração foi alterada e nada
aconteceu” — ele reporta o teto realmente em vigor, então um poll de configuração que ainda não chegou
fica visível em vez de ser adivinhado.
Whitespace é comparado com folding
Qualquer sequência de espaços, tabs, quebras de linha, CRLF ou non-breaking spaces conta como um único espaço nos dois lados, e ambas as pontas são aparadas. Assim, um template registrado com uma quebra de linha antes de sua assinatura casa com tráfego que envia um espaço ali. Folding nunca junta duas palavras: um template que aprovafoo bar ainda não pode ser satisfeito por
foobar.
Isto é apenas comparação. A mensagem enviada à operadora é byte a byte o que chegou, e o template
armazenado é byte a byte o que foi colado — que é aquilo contra o que o registro DLT é auditável. O
preview do painel mostra o texto com folding, deliberadamente, para que um operador que colou um
corpo cheio de non-breaking spaces veja o que realmente será comparado.
O que o painel se recusa a salvar
Uma coisa é avisada em vez de recusada: um template cujo texto literal entre dois placeholders se
repete mais adiante no corpo. O matching guloso pode rejeitar uma mensagem que um engine com
backtracking aceitaria. Tal template geralmente ainda está correto, e este é o único modo de falha
invisível do matcher, então o ponto é torná-lo visível em vez de bloqueá-lo.
Templates e mensagens multi-segmento
No ingress SMPP, umsubmit_sm carregando um cabeçalho de segmento não é checado por conteúdo —
um segmento carrega um fragmento do corpo, então conteúdo ainda não pode ser julgado. Um match de
template portanto também não é o que estampa esse PDU.
O TLV coverage report do painel diz, por linha aprovada, quais tags mandatórias nada suprirá. Veja
Sender IDs.
Aprovação, e o custo de uma edição
Tudo o que um cliente submete pelo portal chegaPENDING. O gateway serve uma linha somente quando
está enabled e APPROVED. A partir do gateway 0.9.8, um cliente lendo a API de registros é
informado quando uma linha está aprovada mas desligada. Veja
Sender IDs, onde as mesmas duas colunas
são explicadas.
Não há chave natural em app_template, então um corpo duplicado é pego em código em vez de por uma
constraint: pedir novamente por um texto já solicitado ou aprovado é recusado com uma mensagem dizendo
qual, em vez de virar uma segunda linha que ninguém consegue distinguir da primeira.
Sender IDs
A outra metade da mesma aprovação, e o TLV coverage report.
Whitelisting reference
Cada propriedade, os três modos de stamping, e a checagem mandatória por-fornecedor.