Pular para o conteúdo principal

API de Catálogo

Gerencie o catálogo de software utilizado nas operações de deploy.

Endpoints

GET /api/catalog

Auth: Obrigatória

Parâmetros de consulta:

ParâmetroTipoDescrição
categorystringFiltrar por categoria (correspondência exata, insensível a maiúsculas/minúsculas)
searchstringFiltrar por nome ou editor (correspondência parcial)

Resposta (200):

[
{
"id": 1,
"name": "Google Chrome",
"winget_id": "Google.Chrome",
"category": "browser",
"publisher": "Google LLC",
"builtin": true
},
{
"id": 51,
"name": "My Custom App",
"winget_id": "MyOrg.CustomApp",
"category": "internal",
"publisher": "My Organisation",
"builtin": false
}
]

POST /api/catalog

Auth: Obrigatória

Corpo da requisição:

{
"name": "My Custom App",
"winget_id": "MyOrg.CustomApp",
"category": "internal",
"publisher": "My Organisation"
}

Resposta (201): O objeto do item do catálogo criado.

Auditoria: Registrado como catalog_created.


PATCH /api/catalog/{catalog_item_id}

Auth: Obrigatória

Restrição: Os administradores só podem atualizar suas próprias entradas personalizadas. Entradas nativas (builtin: true) não podem ser atualizadas.

Corpo da requisição (todos os campos são opcionais):

{
"name": "My Custom App v2",
"category": "productivity"
}

Resposta (200): Objeto do item do catálogo atualizado.

Auditoria: Registrado como catalog_updated.


DELETE /api/catalog/{catalog_item_id}

Auth: Obrigatória

Restrição: Apenas entradas personalizadas. Entradas nativas não podem ser excluídas.

Resposta (204): Sem conteúdo. A entrada é excluída logicamente (ocultada das listas, mantida no histórico de jobs).

Respostas de erro:

CódigoCausa
403Tentativa de excluir uma entrada nativa
404Item do catálogo não encontrado

Auditoria: Registrado como catalog_deleted.