Skip to main content
Cada benefício integrado precisa declarar um arquivo de JSON de metadados que descreve suas informações básicas, parâmetros de autenticação, opções configuráveis e as ações que ele suporta. Esse arquivo serve para suprir metadados sobre o Benefício, que ficarão disponíveis no portal benStore, informando o que é necessário para a o uso do benefício (por exemplo: tokens, URLs de API, parâmetros adicionais etc).

Estrutura do Template

O arquivo benefit.manifest.json possui os campos necessário para descrever todos os dados necessárias.
{
  "benefitName": "Nome do Benefício",
  "supportingText": "Texto curto explicando o propósito do benefício",
  "shortDescription": "Resumo das principais vantagens do benefício",
  "description": "Descrição completa do benefício e seu funcionamento.",
  ....
}

Descrição

🔹 benefitName: Nome comercial do benefício. 🔹 auth: Lista de informação que a integração benSDK utilizará para autenticação que é configurável via portal benStore. Cada item representa uma variável para sua autenticação (como token, URL, client ID, etc). 🔹 availiableActions: Determina quais ações são automatizadas no benefício, elas se tornam configuráveis pelo portal benStore. Geralmente é o mesmo definido no benefit-definition.ts. 🔹 options: Define parâmetros que podem ser personalizados no portal benStore, e ficará disponível para uso no SDK. Eles são exibidos na interface do portal e podem alterar o comportamento do benefício.
  • key: identificador único do campo
  • label: nome exibido no painel
  • type: tipo do valor (BOOLEAN, TEXT, MAP, etc)
  • jsonSchema: validação do valor informado

Onde o Template é Usado

Durante a integração, usamos para:
  • Montar automaticamente a tela de configuração do benefício;
  • Validar credenciais e parâmetros antes de inicializar a execução;
  • Exibir o benefício corretamente no catálogo do portal benStore.

Ícone do benefício

É importante definir uma imagem PNG substituindo o arquivo ICON.png placeholder na raiz do projeto. Esse ícone será usado pelo portal benStore.

Exemplo

{
    "benefitName": "Benefício X",
    "supportingText": "Texto breve sobre o benefício",
    "shortDescription": "Descrição curta e objetiva do benefício",
    "description": "Descrição detalhada do benefício, explicando seus principais recursos e vantagens para os colaboradores.",
    "auth": [
        {
            "key": "api.token",
            "label": "Token da API",
            "description": "Token de autenticação fornecido pelo benefício",
            "type": "TEXT",
            "required": true,
            "jsonSchema": {
                "type": "string",
                "minLength": 2
            }
        },
        {
            "key": "api.url",
            "label": "URL da API",
            "description": "URL base do endpoint do provedor",
            "type": "TEXT",
            "required": true,
            "jsonSchema": {
                "type": "string",
                "minLength": 1
            }
        }
    ],
    "provider": "benefits-orchestrator",
    "category": "Outros",
    "products": [
        {
            "productID": "PRODUCT_A",
            "productName": "Produto A"
        }
    ],
    "availiableActions": [
        "GRANT",
        "REVOKE",
        "DEDUCTION"
    ],
    "options": [
        {
            "key": "option.booleanFlag",
            "label": "Opção Booleana",
            "description": "Ativa ou desativa determinada funcionalidade",
            "type": "BOOLEAN",
            "default": false,
            "required": true,
            "jsonSchema": {
                "type": "boolean"
            }
        },
        {
            "key": "option.referenceID",
            "label": "ID de referência externa",
            "description": "Identificador vinculado a um sistema externo",
            "type": "TEXT",
            "default": "placeholder-id",
            "required": true,
            "jsonSchema": {
                "type": "string",
                "minLength": 1
            }
        }
    ]
}