Pular para o conteúdo
supastack
Explorar a documentação

For AI agents: fetch the complete documentation index at /llms.txt, the full documentation corpus at /llms-full.txt, the agent skill at /skill.md, or this page as Markdown at /pt/docs/modules/observability.md (or send Accept: text/markdown).

Auditoria, analítica e erros

Compreende a atividade com contexto de workspace e dados de eventos higienizados.

Encontre informações úteis quando uma ação falha

Observabilidade significa ver o que seu aplicativo fez. Comece com o terminal executando seu servidor Web: repita uma ação com falha e leia o primeiro erro e qualquer ID de correlação, um rótulo que vincula mensagens da mesma solicitação. Compartilhe o comando, horário e erro higienizado ao pedir ajuda; não compartilhe arquivos .env ou tokens.

Para relatórios de erros hospedados, siga Integridade e operações para definir as configurações de monitoramento suportadas em apps/web/.env.local ou no painel do ambiente do host. Salve e reinicie o servidor. Acione uma falha de teste controlada em um ambiente de teste e confirme se ela aparece com o contexto de espaço de trabalho correto. O monitoramento configurado não prova que recebeu um evento.

ALERT_WEBHOOK_URL é um destino HTTPS opcional para alertas de falha na entrega de webhook de trabalhos e terminais. Se precisar, crie um endpoint de entrada compatível e salve seu servidor URL; caso contrário, deixe-o vazio. Peça a um agente para simular uma falha e confirmar exatamente um alerta, sem segredos no texto. Não acione trabalhos remunerados ou falhas nas contas dos clientes para este teste.

Mantém um rasto de auditoria por workspace

Os registos de auditoria capturam alterações como atualizações de configuração de fornecedor dentro de um workspace. Resolve o workspace autenticado antes de ler ou escrever esses registos e preserva esse limite ao adicionar eventos próprios do produto.

Regista a ação e os identificadores necessários para a compreender. Credenciais de fornecedor e outros valores sensíveis devem ficar fora dos payloads de auditoria e dos logs.

Captura eventos de produto

O pacote de observabilidade expõe um adaptador AnalyticsClient e valores AnalyticsEvent delimitados por workspace. Cada evento carrega um nome, uma identidade distinct, um workspaceId e propriedades opcionais.

Usa createObservability para encaminhar eventos através do teu cliente de analítica configurado. Propriedades estruturadas são higienizadas antes da entrega; mantém também texto livre sensível fora de nomes de evento e valores de propriedade.

Reporta erros com contexto seguro

O ErrorClient captura exceções com etiquetas workspaceId e contexto adicional estruturado. A camada de observabilidade partilhada higieniza exceções e contexto sensível antes de os reencaminhar para o cliente configurado.

Usa adaptadores locais para verificar eventos e exceções capturados sem chamar um fornecedor de monitorização. Testa que as etiquetas de workspace permanecem presentes e que credenciais são removidas antes de ativar um destino externo.

Siga uma solicitação em tarefas, jobs e webhooks

Os limites de entrada geram um ID de correlação corr_<uuid> que vincula a solicitação de origem ao trabalho que ela aciona. O envio de tarefas de IA carimba o ID na carga útil da tarefa e no evento ai_task_submitted, cada receptor de webhook de faturamento emite um por solicitação e o agendador emite um por trabalho despachado.

O mesmo ID utiliza as propriedades de evento job.completed e ai_task_completed, extras captureException, a carga útil do razão webhook_event e cada meta de carga útil webhook_delivery - para que ele caia dentro do corpo assinado que um assinante recebe. Ids ausentes ou malformados são tolerados: o consumidor cria um novo id em vez de rejeitar linhas mais antigas.

Alerta sobre falhas reais

Configure ALERT_WEBHOOK_URL para qualquer terminal HTTPS que aceite um formato JSON POST {texto, nome, gravidade, contexto}; um webhook de entrada no estilo Slack funciona como está. Os alertas são disparados e esquecidos com um tempo limite de cinco segundos, uma entrega com falha registra um aviso do console e o alerta faz noops enquanto a variável não está definida.

Os alertas enviados são job.failed (aviso — um manipulador de trabalho lançado ou um tipo de trabalho é desconhecido) e webhook.delivery_failed (crítico — somente quando uma entrega de saída atinge a falha do terminal após sua tentativa final; as tentativas comuns permanecem silenciosas e cada linha de entrega alerta no máximo uma vez).

Meça durações e transmita logs estruturados

serverObservability.measure cronometra uma operação assíncrona e emite um evento analítico <name>.duration transportando DurationMs - em caso de sucesso e falha, sem mascarar o erro original. A execução da tarefa ai.task.execute já está empacotada, portanto, a duração da execução da tarefa chega ao cliente de análise configurado.

serverObservability.logger grava uma linha JSON por registro no stdout com campos base de ambiente e serviço; a camada de redação compartilhada remove segredos antes que qualquer linha seja emitida.

Perguntas frequentes

14 perguntas

O que é o supastack?

O supastack é uma base modular para construir produtos SaaS com IA. Reúne a infraestrutura comum para que possas concentrar-te nas funcionalidades próprias do teu produto.

Suporta web e mobile?

Sim. O supastack inclui apps Next.js e Expo como pontos de partida para experiências web e mobile.

Que autenticação está incluída?

O Better Auth cobre email/palavra-passe, OTP e login social. Os workspaces pessoais são aprovisionados com a conta para que os registos fiquem delimitados desde o primeiro dia.

Como é suportada a IA?

O supastack inclui IA multi-fornecedor configurável, registo de utilização, orçamentos e suporte encriptado de chaves próprias (BYOK).

Como são geridas as subscrições?

Para produtos construídos sobre o kit, a faturação Stripe, as subscrições e as permissões formam a base do acesso pago. Os segredos de fornecedor ficam no servidor.

Onde vive o código próprio do meu produto?

As funcionalidades próprias do produto ficam num codebase separado, enquanto o produto configura e integra os módulos base do supastack.

Como funciona o preço do supastack?

O kit é uma compra única com atualizações vitalícias: Uma framework por 249 $ (preço de lançamento temporário — 100 $ de desconto sobre o preço normal de 349 $) ou Todas as frameworks (Next.js, iOS, Android) por 499 $ (preço de lançamento temporário — 100 $ de desconto sobre o preço normal de 599 $), mais 75 $ por lugar de programador adicional. Sem subscrição do kit. O checkout neste site entrega a tua chave de licença por email, com acesso ao repo por convite GitHub.

Como é que os workspaces delimitam os meus dados?

Os registos do utilizador são delimitados por workspaceId. Identidade, permissões, utilização de IA, eventos de faturação e entradas de auditoria ficam dentro do limite do workspace pessoal.

Como funcionam os jobs em segundo plano?

O Trigger.dev é o runtime de jobs explícito. O contrato JobRunner só promete enqueue, status e cancel — a semântica de workflow permanece específica e explícita do Trigger.dev.

Como difere o email da divulgação?

O email transacional cobre fluxos de produto como avisos de conclusão de tarefas. A divulgação fria e as campanhas pertencem ao próprio produto, fora do módulo de email deste kit.

Como funcionam as compras no aplicativo móvel?

O aplicativo móvel inclui compras nativas e restauração via RevenueCat, com acesso verificado pelo servidor. Configure as contas das lojas e conclua os testes em dispositivos antes de publicar. A cobrança web permanece separada.

Onde residem as chaves dos fornecedores de IA?

As credenciais BYOK são encriptadas e ficam no servidor. As chaves são higienizadas nos logs; a utilização e os orçamentos ficam visíveis ao nível do workspace.

Quais métodos de pagamento o checkout aceita?

O checkout hospedado na Stripe aceita cartões e também pode oferecer Alipay e WeChat Pay quando essas carteiras estiverem ativadas na conta Stripe — útil para compradores na China. As autorizações de carteira são confirmadas de forma assíncrona, então a página da licença é atualizada assim que o pagamento é liquidado.

Posso solicitar um reembolso?

Depois de obter acesso ao repositório, o supastack é seu para sempre, portanto não pode ser reembolsado. Mas fique tranquilo: você recebe o código-fonte completo com atualizações vitalícias para criar e lançar produtos ilimitados para você ou seus clientes. Você apenas não pode revender o código nem redistribuir o repositório como starter kit ou modelo.

PT
Tema