Configurações
Gerenciamento de configurações de decisão (Platform Configs) que orquestram o Decision Engine com fontes de dados.
Endpoints
| Método | Endpoint | Descrição | Permissão |
|---|---|---|---|
| POST | /api/v1/decision-platform/configs | Criar configuração | DECISION_VERSIONS_CREATE |
| GET | /api/v1/decision-platform/configs | Listar configurações | DECISION_VERSIONS_READ |
| GET | /api/v1/decision-platform/configs/:id | Obter configuração | DECISION_VERSIONS_READ |
| GET | /api/v1/decision-platform/configs/:id/full | Obter com relações | DECISION_VERSIONS_READ |
| PATCH | /api/v1/decision-platform/configs/:id | Atualizar configuração | DECISION_VERSIONS_CREATE |
| DELETE | /api/v1/decision-platform/configs/:id | Excluir configuração | DECISION_PROJECTS_DELETE |
| POST | /api/v1/decision-platform/configs/:id/publish | Publicar configuração | DECISION_VERSIONS_CREATE |
Atributos
| Campo | Tipo | Descrição |
|---|---|---|
decisionId | string (UUID) | ID da decisão no Decision Engine |
name | string | Nome da configuração |
key | string | Chave única (lowercase, hyphens) |
description | string | Descrição opcional |
status | enum | Status: DRAFT, PUBLISHED, ARCHIVED |
defaultTimeoutMs | number | Timeout padrão (1000-300000ms) |
maxTimeoutMs | number | Timeout máximo permitido |
callbackUrl | string | URL para callbacks assíncronos |
callbackHeaders | object | Headers para callbacks |
createdAt | datetime | Data de criação |
updatedAt | datetime | Data da última atualização |
Status da Configuração
| Status | Descrição |
|---|---|
DRAFT | Rascunho, pode ser editada |
PUBLISHED | Publicada, disponível para execução |
ARCHIVED | Arquivada, não pode ser executada |
Criar Configuração
POST /api/v1/decision-platform/configs
Cria uma nova configuração de decisão.
Atributos
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
decisionId | string | Sim | ID da decisão no Decision Engine |
name | string | Sim | Nome da configuração |
key | string | Sim | Chave única (ex: credit-analysis) |
description | string | Não | Descrição |
defaultTimeoutMs | number | Não | Timeout padrão (default: 30000) |
maxTimeoutMs | number | Não | Timeout máximo (default: 30000) |
callbackUrl | string | Não | URL para callbacks assíncronos |
callbackHeaders | object | Não | Headers para callbacks |
- cURL
- JavaScript
curl -X POST 'https://decision-platform.stg.catalisa.app/api/v1/decision-platform/configs' \
-H 'Authorization: Bearer SEU_TOKEN' \
-H 'Content-Type: application/json' \
-d '{
"data": {
"type": "platform-configs",
"attributes": {
"decisionId": "550e8400-e29b-41d4-a716-446655440000",
"name": "Análise de Crédito",
"key": "credit-analysis",
"description": "Configuração para análise de crédito de pessoas físicas",
"defaultTimeoutMs": 30000,
"callbackUrl": "https://api.empresa.com/webhooks/decisions"
}
}
}'
const response = await fetch('https://decision-platform.stg.catalisa.app/api/v1/decision-platform/configs', {
method: 'POST',
headers: {
'Authorization': `Bearer ${token}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
data: {
type: 'platform-configs',
attributes: {
decisionId: '550e8400-e29b-41d4-a716-446655440000',
name: 'Análise de Crédito',
key: 'credit-analysis',
description: 'Configuração para análise de crédito de pessoas físicas',
defaultTimeoutMs: 30000,
callbackUrl: 'https://api.empresa.com/webhooks/decisions',
},
},
}),
});
const { data } = await response.json();
console.log(`Configuração criada: ${data.id}`);
Response (201 Created)
{
"data": {
"type": "platform-configs",
"id": "550e8400-e29b-41d4-a716-446655440001",
"links": {
"self": "/api/v1/decision-platform/configs/550e8400-e29b-41d4-a716-446655440001"
},
"attributes": {
"decisionId": "550e8400-e29b-41d4-a716-446655440000",
"name": "Análise de Crédito",
"key": "credit-analysis",
"description": "Configuração para análise de crédito de pessoas físicas",
"status": "DRAFT",
"defaultTimeoutMs": 30000,
"maxTimeoutMs": 30000,
"callbackUrl": "https://api.empresa.com/webhooks/decisions",
"createdAt": "2024-01-15T10:30:00Z",
"updatedAt": "2024-01-15T10:30:00Z"
}
},
"links": {
"self": "/api/v1/decision-platform/configs/550e8400-e29b-41d4-a716-446655440001"
}
}
Listar Configurações
GET /api/v1/decision-platform/configs
Lista todas as configurações com suporte a paginação e filtros.
Query Parameters
| Parâmetro | Tipo | Descrição |
|---|---|---|
page[number] | integer | Número da página |
page[size] | integer | Itens por página |
filter[status] | enum | Filtrar por status |
filter[decisionId] | UUID | Filtrar por decisão |
- cURL
- JavaScript
curl 'https://decision-platform.stg.catalisa.app/api/v1/decision-platform/configs?filter[status]=PUBLISHED' \
-H 'Authorization: Bearer SEU_TOKEN'
const params = new URLSearchParams({
'filter[status]': 'PUBLISHED',
});
const response = await fetch(`https://decision-platform.stg.catalisa.app/api/v1/decision-platform/configs?${params}`, {
headers: {
'Authorization': `Bearer ${token}`,
},
});
const { data, meta } = await response.json();
console.log(`Total de configs: ${meta.totalItems}`);
Obter Configuração com Relações
GET /api/v1/decision-platform/configs/:id/full
Obtém uma configuração com suas versões e data sources.
- cURL
- JavaScript
curl 'https://decision-platform.stg.catalisa.app/api/v1/decision-platform/configs/550e8400-e29b-41d4-a716-446655440001/full' \
-H 'Authorization: Bearer SEU_TOKEN'
const configId = '550e8400-e29b-41d4-a716-446655440001';
const response = await fetch(`https://decision-platform.stg.catalisa.app/api/v1/decision-platform/configs/${configId}/full`, {
headers: {
'Authorization': `Bearer ${token}`,
},
});
const { data } = await response.json();
console.log(`Versões: ${data.relationships.versions.data.length}`);
console.log(`Data Sources: ${data.relationships.dataSources.data.length}`);
Response (200 OK)
{
"data": {
"type": "platform-configs",
"id": "550e8400-e29b-41d4-a716-446655440001",
"attributes": {
"name": "Análise de Crédito",
"key": "credit-analysis",
"status": "PUBLISHED"
},
"relationships": {
"versions": {
"data": [
{
"type": "platform-versions",
"id": "550e8400-e29b-41d4-a716-446655440010",
"attributes": {
"version": "1.0.0",
"status": "PUBLISHED"
}
}
]
},
"dataSources": {
"data": [
{
"type": "platform-data-sources",
"id": "550e8400-e29b-41d4-a716-446655440020",
"attributes": {
"name": "Consulta Serasa",
"type": "HTTP"
}
}
]
}
}
}
}
Publicar Configuração
POST /api/v1/decision-platform/configs/:id/publish
Publica uma configuração, tornando-a disponível para execução.
- cURL
- JavaScript
curl -X POST 'https://decision-platform.stg.catalisa.app/api/v1/decision-platform/configs/550e8400-e29b-41d4-a716-446655440001/publish' \
-H 'Authorization: Bearer SEU_TOKEN'
const configId = '550e8400-e29b-41d4-a716-446655440001';
const response = await fetch(`https://decision-platform.stg.catalisa.app/api/v1/decision-platform/configs/${configId}/publish`, {
method: 'POST',
headers: {
'Authorization': `Bearer ${token}`,
},
});
const { data } = await response.json();
console.log(`Status: ${data.attributes.status}`); // PUBLISHED
Erros Comuns
| Código | Erro | Descrição |
|---|---|---|
| 400 | VALIDATION | Dados inválidos (key inválida, timeout fora do range) |
| 404 | NOT_FOUND | Configuração ou decisão não encontrada |
| 409 | CONFLICT | Key já existe na organização |
| 409 | CONFLICT | Configuração não está em DRAFT (para publicar) |