Versões
Gerenciamento de versões de configurações para controle de releases e rollback.
Endpoints
| Método | Endpoint | Descrição | Permissão |
|---|---|---|---|
| POST | /api/v1/decision-platform/configs/:configId/versions | Criar versão | DECISION_VERSIONS_CREATE |
| GET | /api/v1/decision-platform/configs/:configId/versions | Listar versões | DECISION_VERSIONS_READ |
| GET | /api/v1/decision-platform/configs/:configId/versions/latest | Obter última publicada | DECISION_VERSIONS_READ |
| GET | /api/v1/decision-platform/versions/:versionId | Obter versão | DECISION_VERSIONS_READ |
| POST | /api/v1/decision-platform/versions/:versionId/publish | Publicar versão | DECISION_VERSIONS_PUBLISH |
| POST | /api/v1/decision-platform/versions/:versionId/archive | Arquivar versão | DECISION_VERSIONS_CREATE |
Atributos
| Campo | Tipo | Descrição |
|---|---|---|
configId | string (UUID) | ID da configuração pai |
version | string | Versão semântica (ex: 1.0.0) |
status | enum | Status: DRAFT, PUBLISHED, ARCHIVED |
configSnapshot | object | Snapshot da configuração no momento da criação |
publishedAt | datetime | Data da publicação |
publishedBy | string | ID do usuário que publicou |
createdAt | datetime | Data de criação |
updatedAt | datetime | Data da última atualização |
Criar Versão
POST /api/v1/decision-platform/configs/:configId/versions
Cria uma nova versão da configuração. A versão captura um snapshot do estado atual.
Atributos
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
version | string | Sim | Versão semântica (ex: 1.0.0, 2.1.3) |
- cURL
- JavaScript
curl -X POST 'https://decision-platform.stg.catalisa.app/api/v1/decision-platform/configs/550e8400-e29b-41d4-a716-446655440001/versions' \
-H 'Authorization: Bearer SEU_TOKEN' \
-H 'Content-Type: application/json' \
-d '{
"data": {
"type": "platform-versions",
"attributes": {
"version": "1.0.0"
}
}
}'
const configId = '550e8400-e29b-41d4-a716-446655440001';
const response = await fetch(`https://decision-platform.stg.catalisa.app/api/v1/decision-platform/configs/${configId}/versions`, {
method: 'POST',
headers: {
'Authorization': `Bearer ${token}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
data: {
type: 'platform-versions',
attributes: {
version: '1.0.0',
},
},
}),
});
const { data } = await response.json();
console.log(`Versão criada: ${data.attributes.version}`);
Response (201 Created)
{
"data": {
"type": "platform-versions",
"id": "550e8400-e29b-41d4-a716-446655440010",
"links": {
"self": "/api/v1/decision-platform/versions/550e8400-e29b-41d4-a716-446655440010"
},
"attributes": {
"configId": "550e8400-e29b-41d4-a716-446655440001",
"version": "1.0.0",
"status": "DRAFT",
"configSnapshot": {
"name": "Análise de Crédito",
"key": "credit-analysis",
"defaultTimeoutMs": 30000,
"dataSources": []
},
"createdAt": "2024-01-15T11:00:00Z",
"updatedAt": "2024-01-15T11:00:00Z"
}
}
}
Listar Versões
GET /api/v1/decision-platform/configs/:configId/versions
Lista todas as versões de uma configuração.
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 |
- cURL
- JavaScript
curl 'https://decision-platform.stg.catalisa.app/api/v1/decision-platform/configs/550e8400-e29b-41d4-a716-446655440001/versions?filter[status]=PUBLISHED' \
-H 'Authorization: Bearer SEU_TOKEN'
const configId = '550e8400-e29b-41d4-a716-446655440001';
const params = new URLSearchParams({
'filter[status]': 'PUBLISHED',
});
const response = await fetch(`https://decision-platform.stg.catalisa.app/api/v1/decision-platform/configs/${configId}/versions?${params}`, {
headers: {
'Authorization': `Bearer ${token}`,
},
});
const { data, meta } = await response.json();
console.log(`Total de versões: ${meta.totalItems}`);
Obter Última Versão Publicada
GET /api/v1/decision-platform/configs/:configId/versions/latest
Retorna a versão publicada mais recente da configuração.
- cURL
- JavaScript
curl 'https://decision-platform.stg.catalisa.app/api/v1/decision-platform/configs/550e8400-e29b-41d4-a716-446655440001/versions/latest' \
-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}/versions/latest`, {
headers: {
'Authorization': `Bearer ${token}`,
},
});
const { data } = await response.json();
console.log(`Versão atual: ${data.attributes.version}`);
console.log(`Publicada em: ${data.attributes.publishedAt}`);
Publicar Versão
POST /api/v1/decision-platform/versions/:versionId/publish
Publica uma versão, tornando-a a versão ativa para execuções.
- cURL
- JavaScript
curl -X POST 'https://decision-platform.stg.catalisa.app/api/v1/decision-platform/versions/550e8400-e29b-41d4-a716-446655440010/publish' \
-H 'Authorization: Bearer SEU_TOKEN'
const versionId = '550e8400-e29b-41d4-a716-446655440010';
const response = await fetch(`https://decision-platform.stg.catalisa.app/api/v1/decision-platform/versions/${versionId}/publish`, {
method: 'POST',
headers: {
'Authorization': `Bearer ${token}`,
},
});
const { data } = await response.json();
console.log(`Status: ${data.attributes.status}`); // PUBLISHED
console.log(`Publicada em: ${data.attributes.publishedAt}`);
Response (200 OK)
{
"data": {
"type": "platform-versions",
"id": "550e8400-e29b-41d4-a716-446655440010",
"attributes": {
"configId": "550e8400-e29b-41d4-a716-446655440001",
"version": "1.0.0",
"status": "PUBLISHED",
"publishedAt": "2024-01-15T12:00:00Z",
"publishedBy": "550e8400-e29b-41d4-a716-446655440099",
"updatedAt": "2024-01-15T12:00:00Z"
}
}
}
Arquivar Versão
POST /api/v1/decision-platform/versions/:versionId/archive
Arquiva uma versão, removendo-a do uso ativo.
- cURL
- JavaScript
curl -X POST 'https://decision-platform.stg.catalisa.app/api/v1/decision-platform/versions/550e8400-e29b-41d4-a716-446655440010/archive' \
-H 'Authorization: Bearer SEU_TOKEN'
const versionId = '550e8400-e29b-41d4-a716-446655440010';
const response = await fetch(`https://decision-platform.stg.catalisa.app/api/v1/decision-platform/versions/${versionId}/archive`, {
method: 'POST',
headers: {
'Authorization': `Bearer ${token}`,
},
});
const { data } = await response.json();
console.log(`Status: ${data.attributes.status}`); // ARCHIVED
Ciclo de Vida da Versão
Estados
DRAFT (Rascunho)
- Versão recém-criada
- Não pode ser usada em execuções
- Pode ser publicada
PUBLISHED (Publicada)
- Versão ativa e disponível para uso
- Apenas uma versão pode estar publicada por vez
- Publicar nova versão arquiva a anterior automaticamente
ARCHIVED (Arquivada)
- Versão removida do uso ativo
- Mantida para histórico e auditoria
- Não pode ser reativada
Erros Comuns
| Código | Erro | Descrição |
|---|---|---|
| 400 | VALIDATION | Versão em formato inválido (deve ser semver) |
| 404 | NOT_FOUND | Configuração ou versão não encontrada |
| 409 | CONFLICT | Versão já existe para esta configuração |
| 409 | CONFLICT | Versão não está em DRAFT (para publicar) |