Guia de desenvolvimento de aplicativos Marketplace
Nesta página
Os aplicativos Blesium são complementos que adicionam novos recursos aos painéis e produtos (CRM, ERP, comércio eletrônico, e-mail...) — como os aplicativos da App Store da Shopify ou do Slack. Não aplicativos móveis instalados no telefone.
Em suma: seu código é executado em seu próprio servidor. Você armazena apenas a identidade do seu aplicativo, as permissões que ele requer e seu preço no Blesium; quando um locatário instala seu aplicativo, ele funciona via API do Blesium.
Modelo de trabalho
Seu aplicativo é executado no modelo "HTTP remoto": o código não é carregado no Blesium, ele é executado além do limite da rede em seu servidor e se comunica com chamadas REST assinadas, protegidas por SSRF e limitadas em velocidade. Não há acesso direto ao banco de dados.
- No Blesium. → A identidade do aplicativo, categoria, produtos de destino, permissões solicitadas, preços e histórico de versões
- Você tem um. → A aplicação em si: lógica de negócios, interface, processamento de dados
- Acesso aos dados → Apenas via API, apenas dentro das permissões aprovadas pelo locatário
1. Defina sua aplicação
Campos a preencher ao criar uma nova aplicação a partir do console:
- Nome → Nome exibido na loja
- Lesma → Anexo de endereço; apenas letras minúsculas, números e hífens
- Categoria → Uma das seguintes listas canônicas
- Descrição → O que faz o aplicativo
- Produtos-alvo → crm · erp · b2b · correio · call center · loja · musavir
- Permissões necessárias → Escopos que seu aplicativo precisa para funcionar
- Preços → Grátis · Único · Assinatura
A categoria deve vir da lista canônica; uma chave fora da lista irá rejeitar o envio.
- integração → Conecta Blesium a um sistema externo
- relatório → Adiciona relatório/indicador ao painel
- tema → Tema visual
- automação → Automação de fluxo de trabalho
- sales_channel → Canal de vendas
- canal_de_mensagens → Canal de mensagens
- Envio → Carga/transporte
- widget → Painel de widgets
- sector_pack → Pacote de setor
- language_pack → Pacote de idiomas
- outros → Outros produtos
Se você for um desenvolvedor abrangente de produtos, poderá segmentar apenas os produtos que aprovar; um envio selecionado com um produto não abrangente será rejeitado.
2. Permissões
Seu aplicativo será executado apenas com as permissões solicitadas e aprovadas pelo locatário durante a instalação. Peça menos permissões: permissões desnecessariamente amplas perderão a confiança na autorização de instalação.
| Âmbito | O que ele fornece | Quando quiser |
|---|---|---|
| core.read | Ler dados principais | Locatários, usuários, assinaturas. |
| core.write | Escrever dados do kernel | Se criar/atualizar o registro do kernel |
| crm.leitura / crm.escrever | CRM de leitura/escrita | Se você está trabalhando com clientes, reuniões, solicitação de dados, |
| erp.read | Leitura do ERP | Se você estiver lendo dados de estoque, atual e fatura |
| b2b.read | Leitura B2B | Se você está lendo os dados de varejo/atacado, |
| shop.read | Leitura de E-Commerce | Se você ler os dados do produto, pedido, carrinho |
| mail.send | Enviar e-mail | Você está enviando e-mails em nome do locatário. |
| webhooks.subscribe | Subscreva a eventos | Se você quiser saber quando isso acontece |
A instalação registra as permissões concedidas pelo locatário; seu aplicativo só pode funcionar dentro dessas permissões.
3. Autenticação
Cada solicitação para a API do Blesium é assinada com uma chave de API. O formato da chave é blsk_{ortam}_{kimlik}_{gizli}, e a parte secreta é mostrada apenas uma vez no momento da criação.
curl https://firmaniz.blescript.com/api/v1/me \
-H "Authorization: Bearer blsk_live_ab12cd34_gizli-anahtariniz"Não coloque a chave no lado do cliente (navegador, aplicativo móvel) — mantenha-a apenas em seu próprio servidor. Se houver vazamento, desligue-o.
4. Ouça eventos com webhooks
Em vez de fazer perguntas constantemente, entre em contato quando isso acontecer. Cada entrega vem com três cabeçalhos:
- x-blesyum-event O nome do evento (ou. fatura.pago)
- x-blesyum-entrega → ID de entrega; use para eliminar duplicatas
- x-blesyum-assinatura → Assinatura HMAC-SHA256 do corpo bruto (hex)
Eventos que você pode assinar e quando eles são acionados:
- fatura.criado → Nova fatura criada
- fatura.pago Fatura paga
- fatura.refinanciado → Fatura devolvida
- assinatura.renovado → Assinatura renovada
- subscription.plan_changed → Plano de assinatura alterado
- subscription.canceled → Assinatura cancelada
- user.invited → Usuário convidado para a equipe
- user.joined → Usuário convidado se juntou
- ticket.criado → Pedido de suporte aberto
- ticket.respondido → Pedido de suporte respondido
Verifique a assinatura contra o corpo bruto, usando uma comparação de tempo fixo (não como convertido para JSON — diferenças de espaço quebrarão a assinatura):
import crypto from "node:crypto";
export function imzaDogrula(rawBody, header, secret) {
const beklenen = crypto.createHmac("sha256", secret).update(rawBody).digest("hex");
const a = Buffer.from(beklenen);
const b = Buffer.from(header ?? "");
return a.length === b.length && crypto.timingSafeEqual(a, b);
}Não processe solicitações de assinatura não verificadas. O mesmo ID de entrega pode voltar novamente (retentar) — torne suas operações resistentes à repetição.
5. Liberação
Campos que você insere ao publicar uma versão:
- Canal → estável ou beta
- Espalhar → Abertura gradual de 0–100%
- Estado → Transmitido ou retirado
Fluxo de publicação:
- Enviar versão — Insira o número da versão, canal e nota de alteração.
- Descompacte gradualmente — Dê a liberação para uma pequena fatia primeiro com uma porcentagem de distribuição.
- Aguarde a revisão: quando o aplicativo passar pela revisão, ele será lançado na loja.
- Reverter se necessário — Reverte a versão do problema; o registro não é excluído, a versão anterior é restaurada.
Mostrar o status do aplicativo no console:
| Estado | O que você quer dizer? | O que você faz? |
|---|---|---|
| Projeto | Ainda não enviado | Preencha os campos e envie |
| Em revisão | A equipa Blesium está à procura. | Aguarde; informações adicionais podem ser necessárias |
| Transmissão | Está listado na loja. | Você pode liberar versões. |
| Rejeitado | Submissão não aceita | Re-enviar corrigido |
| Em espera | Removido da transmissão | Corrigir o problema e obter suporte |
6. Checklist de pré-lançamento
- Você minimizou as permissões necessárias.
- Você valida a assinatura do webhook, não reprocessa a entrega repetida.
- A chave da API está apenas no lado do servidor; seu fluxo de backup de vazamento está pronto.
- Seu aplicativo não interrompe o trabalho do inquilino em caso de falha (soft drop).
- A descrição e as capturas de tela mostram o que o aplicativo realmente faz.
Abra uma solicitação de suporte onde você está preso — escreva-a com o slug do seu aplicativo para obter uma resposta mais rápida.