Webhooks
Configurar Webhooks
Defina notify_url nas suas Assembly Instructions, no mesmo nível de steps. Quando a Assembly
atinge um estado terminal, a Transloadit envia um HTTP POST para essa URL.
Qualquer status de 200 até, mas sem incluir,
300 confirma a entrega. Redirecionamentos e erros de cliente ou servidor são tratados como falhas. Por padrão,
a Transloadit repete as tentativas que falham 5 vezes, com um fator exponencial de 1,97.
A confirmação indica o recebimento, não o processamento bem-sucedido. Inspecione o
estado ok ou o código error do payload verificado
para distinguir Assemblies concluídas, canceladas e com falha. Um reenvio de Notification
também pode entregar um Assembly Status não terminal; não presuma que toda entrega significa conclusão.
Limitar o payload da Notification
Por padrão, um Webhook inclui o Assembly Status completo. Defina notification_payload como um array
que contenha qualquer combinação destes filtros compatíveis:
without_params: os campos brutosparams,templateemerged_paramsdas Assembly Instructions, no nível superior, são omitidos.without_result_meta_data:metaé omitido de cada arquivo emresults.without_results: o objetoresultsno nível superior é omitido.without_upload_meta_data:metaé omitido de cada arquivo emuploads.without_uploads: o arrayuploadsno nível superior é omitido.
Os reenvios de Notification reutilizam os filtros fornecidos na requisição original da Assembly. Os filtros definidos apenas
em um Template não são preservados no reenvio, portanto um reenvio pode incluir dados omitidos da
Notification inicial. Forneça notification_payload na requisição original da Assembly quando os reenvios precisarem
usar os mesmos filtros.
O esquema do payload abaixo permite essas omissões. O campo meta de um upload pode estar ausente mesmo quando o
upload permanece em uploads. Os demais campos mantêm seu significado no Assembly Status. Aceite campos
adicionais para manter a compatibilidade, mas não dependa de campos de diagnóstico não documentados.
Verificar a assinatura
Os Webhooks de Assembly usam o tipo de mídia application/x-www-form-urlencoded. O
campo transloadit contém a string serializada exata do Assembly Status JSON, e o
campo signature contém seu HMAC em hexadecimal com letras minúsculas.
Para verificar um Webhook:
- Leia os campos de formulário
transloaditesignaturesem modificar a string do payload. - Calcule um digest hexadecimal
HMAC-SHA1sobre os bytes da string exata detransloadit, usando o Auth Secret confiável selecionado conforme descrito abaixo. - Compare o digest calculado com
signatureusando uma comparação segura contra ataques de temporização. - Faça o parse de
transloaditcomo JSON somente depois que as assinaturas corresponderem.
A Notification inicial de uma Assembly usa o Auth Secret da Auth Key que autenticou sua
criação, inclusive quando ela foi criada por uma reexecução de Assembly. Os reenvios de Notification primeiro buscam
a Auth Key registrada no Assembly Status como api_auth_key_id. Se essa chave não estiver registrada,
não puder ser localizada, tiver sido excluída ou sua busca falhar, o reenvio de Notification usará o
Auth Secret de quem fez a chamada autenticada de reenvio.
As reexecuções de Assembly mantêm o api_auth_key_id histórico da Assembly de origem. Por exemplo, se a chave A criar
uma Assembly e a chave B a reexecutar, a Notification inicial da nova Assembly será assinada com o
segredo de B. O reenvio dessa Notification pode usar o segredo de A, mesmo quando B chama ambos os endpoints de reexecução e reenvio
e ambas as chaves permanecem ativas. Mantenha disponíveis para o verificador os segredos aplicáveis da Assembly de origem
e da criação por reexecução; não presuma que todas as entregas de uma mesma Assembly usam o mesmo segredo.
Selecione os segredos de verificação a partir de uma configuração confiável no servidor para o Workspace e a Assembly esperados, e não a partir de campos do payload não verificado. Quando mais de um segredo configurado for aplicável, aceite a requisição somente se sua assinatura corresponder a um desses segredos confiáveis. Se nenhum corresponder, rejeite a requisição; não ignore a verificação para aceitar um reenvio.
Ao contrário das assinaturas atuais de requisições à API, a signature do Webhook é um digest
sha1 sem prefixo, por compatibilidade com versões anteriores. Trate o payload como não confiável e rejeite a requisição
quando qualquer um dos campos estiver ausente, a assinatura estiver malformada ou a comparação falhar.
Use um dos auxiliares de verificação dos nossos SDKs quando disponível. Se você implementar a verificação por conta própria, não serialize novamente o JSON após o parse antes de calcular o HMAC: espaços em branco e a ordem das chaves dos objetos fazem parte da sequência de bytes assinada.
import { createHmac, timingSafeEqual } from 'node:crypto'
// authSecret must come from trusted server-side configuration.
function verifyTransloaditWebhook({ authSecret, payload, signature }) {
if (typeof payload !== 'string' || typeof signature !== 'string') return false
if (!/^[0-9a-f]+$/.test(signature)) return false
const expected = createHmac('sha1', authSecret).update(payload, 'utf8').digest()
if (signature.length !== expected.length * 2) return false
const received = Buffer.from(signature, 'hex')
return received.length === expected.length && timingSafeEqual(received, expected)
}
Ativar uma assinatura mais forte
Defina notification_signature_algo como sha256 ou sha384 ao criar ou atualizar uma
Auth Key. Essa configuração é independente do
signature_algo da chave, que controla a assinatura de requisições à API. As chaves existentes e novas têm null como padrão;
omitir a configuração na atualização preserva seu valor, e defini-la como null desativa o cabeçalho adicional.
As chaves com essa opção ativada adicionam um cabeçalho Transloadit-Signature contendo
sha256:<lowercase hex digest> ou sha384:<lowercase hex digest>. O campo de formulário legado signature
permanece inalterado. Ambas as assinaturas abrangem os bytes UTF-8 da string JSON filtrada exata
no campo de formulário transloadit decodificado, antes da codificação de URL. Não assine o corpo HTTP codificado
nem faça o parse e a nova serialização do JSON antes de verificá-lo.
As Notifications iniciais usam as configurações da chave carregadas no momento da autenticação da Assembly. Alterar uma chave não altera as Assemblies já em andamento. Os reenvios explícitos de Notification buscam em conjunto o segredo atual e o algoritmo de Notification da chave registrada; as configurações de quem fez a chamada são usadas em conjunto se a busca da chave histórica recorrer à alternativa descrita acima. As novas tentativas automáticas mantêm o algoritmo selecionado e o payload serializado para aquela entrega.
Implante um verificador que reconheça o novo cabeçalho antes de ativá-lo. Quando sua integração passar a exigir a assinatura mais forte, rejeite cabeçalhos ausentes ou inválidos e rejeite algoritmos diferentes daquele configurado no seu verificador. Nunca recorra silenciosamente ao campo SHA-1. Durante a migração, implante primeiro todos os emissores de Notifications e manipuladores de reenvio. Aguarde a atualização dos caches de configurações das chaves e a conclusão das Assemblies anteriores, e confirme que o cabeçalho chega nas entregas de Assemblies criadas após a alteração antes de exigi-lo. Depois que os destinatários passarem a exigir o cabeçalho, prefira avançar o emissor para uma versão mais recente: revertê-lo para uma versão que ofereça apenas o formato legado interrompe as entregas, a menos que os destinatários primeiro restaurem a compatibilidade com Notifications apenas no formato legado.
import { createHmac, timingSafeEqual } from 'node:crypto'
// expectedAlgorithm and authSecret come from trusted server-side configuration.
function verifyStrongTransloaditWebhook({ authSecret, expectedAlgorithm, payload, signature }) {
if (expectedAlgorithm !== 'sha256' && expectedAlgorithm !== 'sha384') return false
if (typeof payload !== 'string' || typeof signature !== 'string') return false
const prefix = `${expectedAlgorithm}:`
if (!signature.startsWith(prefix)) return false
const hex = signature.slice(prefix.length)
if (!/^[0-9a-f]+$/.test(hex)) return false
const expected = createHmac(expectedAlgorithm, authSecret).update(payload, 'utf8').digest()
if (hex.length !== expected.length * 2) return false
return timingSafeEqual(Buffer.from(hex, 'hex'), expected)
}
A verificação da assinatura autentica o payload; ela não impede entregas duplicadas. Torne o processamento idempotente usando a identidade verificada da Assembly e o estado da própria aplicação.
Campos de formulário do webhook
Esquema JSON completo
A Transloadit envia somente os campos listados para este objeto.
| Campo | Tipo e descrição |
|---|---|
signatureobrigatório | stringHMAC-SHA1 hexadecimal em minúsculas da string transloadit exata, sem prefixo de algoritmo. Use um Auth Secret confiável e uma comparação segura contra ataques de temporização. Padrão de validação (expressão regular)^[0-9a-f]{40}$ |
transloaditobrigatório | stringTexto JSON exato do Assembly Status filtrado. Verifique a assinatura sobre esta string sem modificações antes de interpretá-la como JSON. |
Payload JSON verificado
Esquema JSON completo
| Campo | Tipo e descrição | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
account_id | null | string | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
account_name | null | string | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
account_slug | null | string | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
api_auth_key_id | null | string | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
assemblyId | string | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
assembly_id | stringO ID único desta Assembly. Você pode armazená-lo em um banco de dados quando uma Assembly é criada e usá-lo para corresponder às Notifications recebidas. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
assembly_ssl_url | null | stringA URL única usada para consultar o status atual desta Assembly, porém pronta para ser
usada por SSL/HTTPS. Todas as requisições de API enviadas para a | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
assembly_url | null | stringA URL única usada para consultar o status atual desta Assembly. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
build_id | stringIdentificador de build opcional para a solução de problemas pelo suporte. Trate-o como opaco; ele pode mudar entre Assemblies. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
bytes_expected | numberO número de bytes que esta Assembly espera que sejam enviados. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
bytes_received | numberO número de bytes que foram enviados para esta Assembly até agora. Isso é usado principalmente por clientes para exibir o progresso do upload. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
bytes_usage | number | nullO número total de bytes que esta Assembly processou e que contam para a sua fatura de uso. A soma de | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
client_agent | null | stringO user agent de quem fez o upload não é exposto; este campo obsoleto é sempre | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
client_ip | null | stringO endereço IP de quem faz o upload não é exposto; este campo obsoleto é sempre | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
client_referer | null | stringA URL de referrer de quem enviou o arquivo não é exposta; este campo obsoleto é sempre | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
companion_url | null | stringA URL do servidor Companion com o qual esta Assembly pode se comunicar. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
cron_input_file_limit | integer (mínimo: 1, máximo: 1000)Número máximo efetivo de arquivos de entrada para uma Assembly agendada. A recuperação automática após falhas mantém esse limite, inclusive quando as Instructions salvas estão desativadas. Assemblies comuns omitem esse campo. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
executing_jobs | Array<string>Esquema do item do arraystring | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
execution_duration | number | nullO tempo que a Transloadit levou para executar esta Assembly, em segundos. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
execution_start | null | string | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
expected_tus_uploads | number | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
fields | objectUm mapa de chave/valor com campos de formulário adicionais para integrações que não podem usar o encapsulamento de Esquema de propriedade adicionalqualquer valor | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
finished_tus_uploads | number | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
has_dupe_jobs | boolean | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ignored_error_count | number | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ignored_errors | Array<object>Esquema do item do array
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
info |
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
info. | number | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
instance | null | string | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
is_infinite | boolean | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
jobs_queue_duration | number | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
last_job_completed | null | string | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
merged_params | null | string | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
message | stringUma mensagem legível por humanos que explica o estado desta Assembly. Nem sempre está presente. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
notify_duration | number | nullTempo decorrido de entrega em segundos, incluindo as tentativas automáticas de reenvio e os atrasos entre elas. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
notify_error | null | string | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
notify_response_code | number | null | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
notify_response_data | null | string | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
notify_start | null | string | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
notify_status | null | string | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
notify_url | null | string | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
num_input_files | number | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
params | null | string | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
parent_assembly_status | qualquer valor | nullQualquer um dos esquemas a seguir pode ser aplicado: qualquer valorqualquer valornull | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
parent_id | null | string | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
previousStep | stringNome do Step anterior associado ao erro, quando disponível. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
queue_duration | number | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
region | string | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
results | objectOs arquivos de resultado que a Transloadit produziu até agora. Cada chave é o nome do Step que produziu um arquivo. Os Robots de armazenamento não produzem arquivos, portanto os nomes dos seus Steps são omitidos. Quando ocorre um Esquema de propriedade adicionalArray<object>Detalhes adicionais do esquema estão disponíveis no JSON Schema completo. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
running_jobs | Array<string>Esquema do item do arraystring | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
start_date | stringA data e a hora em que o upload começou para esta Assembly. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
started_jobs | Array<string>Esquema do item do arraystring | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
started_tus_uploads | number | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
step | stringNome do Step associado ao erro, quando disponível. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
template | null | string | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
template_id | null | string | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
template_name | null | string | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
transloadit_client | null | string | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
tus_uploads | Array<object>Esquema do item do array
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
tus_url | stringA URL do servidor tus usado por esta Assembly para uploads resumíveis. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
update_stream_url | null | stringA URL de um stream de server-sent events do qual você pode obter atualizações de status em tempo real desta Assembly. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
upload_duration | numberO tempo que o uploader levou para enviar os arquivos, em segundos. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
upload_meta_data_extracted | boolean | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
uploads | Array<object>Um array de arquivos enviados para esta Assembly. Para mais informações, consulte a documentação de metadados. Esquema do item do array
Qualquer um dos esquemas a seguir pode ser aplicado: propriedades obrigatórias: basename, ext, field, id, mime, name, size, type, url: object
Variante 2: object
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
uppyserver_url | null | string | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
usage_tags | string | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
virusname | string | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
warnings | Array<object>Esquema do item do array
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
websocket_url | null | stringA URL de um servidor Websocket (usa Socket.IO) a partir do qual você pode obter atualizações de status em tempo real desta Assembly. |
Qualquer um dos esquemas a seguir pode ser aplicado:
ok: "ASSEMBLY_EXECUTING" | "ASSEMBLY_REPLAYING" | "ASSEMBLY_UPLOADING"
A Transloadit pode enviar campos adicionais.
| Campo | Tipo e descrição |
|---|---|
error | nuncaIndica um status de erro. Esta chave só está presente se a Assembly tiver falhado. Novos códigos de erro podem ser adicionados. Trate códigos não reconhecidos como falhas e preserve seus valores para inspeção programática. Este valor é proibido. |
okobrigatório | "ASSEMBLY_EXECUTING" | "ASSEMBLY_REPLAYING" | "ASSEMBLY_UPLOADING"Indica um status de ciclo de vida sem erro, incluindo os estados de upload, execução, abortado e cancelado. O processamento bem-sucedido é indicado por |
ok: string
A Transloadit pode enviar campos adicionais.
| Campo | Tipo e descrição |
|---|---|
error | nuncaIndica um status de erro. Esta chave só está presente se a Assembly tiver falhado. Novos códigos de erro podem ser adicionados. Trate códigos não reconhecidos como falhas e preserve seus valores para inspeção programática. Este valor é proibido. |
okobrigatório | stringIndica um status de ciclo de vida sem erro, incluindo os estados de upload, execução, abortado e cancelado. O processamento bem-sucedido é indicado por Valores permitidos (6)
|
propriedades obrigatórias: error
A Transloadit pode enviar campos adicionais.
| Campo | Tipo e descrição |
|---|---|
cmd | string | Array<string | number>Detalhes opcionais do comando de processamento para resolução de problemas. Os detalhes de diagnóstico podem variar; use o código Qualquer um dos esquemas a seguir pode ser aplicado: stringArray<string | number>Array<string | number>Esquema do item do arraystring | number |
errorobrigatório | string (comprimento mínimo: 1)Indica um status de erro. Esta chave só está presente se a Assembly tiver falhado. Novos códigos de erro podem ser adicionados. Trate códigos não reconhecidos como falhas e preserve seus valores para inspeção programática. Valores conhecidos (370); outros valores são possíveis
|
exitCode | number | nullStatus de saída opcional de um comando de processamento que falhou. Os detalhes de diagnóstico podem variar; use o código |
exitSignal | null | stringSinal opcional que encerrou um comando de processamento. Os detalhes de diagnóstico podem variar; use o código |
file | string |
headers | objectEsquema de propriedade adicionalqualquer valor |
is_private_address | boolean |
name | string |
numRetries | number |
ok | null |
playwright_error_code | string |
reason | null | string | number | boolean | Array<qualquer valor> | objectDetalhes de diagnóstico opcionais. Não presuma que este valor seja uma string nem o exiba diretamente; use Qualquer um dos esquemas a seguir pode ser aplicado: nullstringnumberbooleanArray<qualquer valor>Array<qualquer valor>Esquema do item do arrayqualquer valorobjectobjectEsquema de propriedade adicionalqualquer valor |
response_code | number | null |
retries | number |
retryable | boolean |
stderr | stringSaída de diagnóstico opcional de um comando de processamento, para solução de problemas. Os detalhes do diagnóstico podem variar; use o código |
stdout | stringSaída padrão opcional de um comando de processamento, para solução de problemas. Os detalhes de diagnóstico podem variar; use o código |
url | string |
url_host | null | string |