Instalar, configurar e remover
Instala um módulo na loja, liga ou desliga, remove, e liga ou desliga vários de uma vez.
Instalar um módulo cria a instalação na sua loja; ligar é um passo à parte (is_enabled). Instalar já liga o módulo e também liga os módulos de que ele depende. Todas as rotas exigem manage_modules ou manage_settings. Os ids dos caminhos são os do catálogo central, obtidos em Catálogo de módulos.
Instalar
/api/v1/admin/modules/{moduleId}/installAdminInstalar um módulo
Parâmetros de caminho
moduleIduuidobrigatórioId do módulo no catálogo central (campo
id de Catálogo de módulos). Não é o slug.Corpo da requisição
configobjectConfiguração inicial, conforme o
config_schema do módulo. Corpo vazio também é aceito (instala sem configuração).Exemplo de requisição (instalar)
Resposta (instalar)
201Módulo instalado
Campos da resposta
iduuidId da instalação (diferente do id do módulo).
tenant_iduuidLoja.
module_iduuidId do módulo no catálogo central.
module_namestringNome do módulo.
module_slugstringSlug do módulo.
is_enabledbooleanSe está ligado na loja. Instalado não significa ligado.
configobjectConfiguração da instalação.
settingsobjectAjustes próprios do módulo (veja Ajustes do módulo).
installed_atstringQuando foi instalado.
updated_atstringÚltima alteração.
Erros (instalar)
| Status | Quando | Corpo |
|---|---|---|
| 401 | Sem token, token inválido ou expirado. | {"error":"missing authorization header"} |
| 403 | O usuário não tem manage_modules nem manage_settings (basta um dos dois). | {"error":"insufficient privileges","privilege_required_any":["manage_modules","manage_settings"]} |
| 400 | moduleId não é um UUID (por exemplo, o slug foi enviado no lugar do id). | {"error":"invalid moduleId","detail":"moduleId must be a valid UUID"} |
| 400 | Corpo inválido, ou o módulo é privado de outra loja. | {"error":"failed to install module","detail":"..."} |
| 404 | Nenhum módulo do catálogo tem esse id. Nada é gravado. | {"error":"module not found","detail":"nenhum módulo do catálogo central tem o id ..."} |
Ligar ou configurar
/api/v1/admin/modules/{moduleId}/configAdminLigar, desligar ou reconfigurar
Parâmetros de caminho
moduleIduuidobrigatórioId do módulo no catálogo central (campo
id de Catálogo de módulos). Não é o slug.Corpo da requisição
is_enabledbooleanobrigatóriotrue liga, false desliga. Se omitido, vale false: o módulo é desligado.configobjectNova configuração. Substitui a anterior inteira.
Exemplo de requisição (configurar)
Resposta (configurar)
200Instalação atualizada
Campos da resposta
iduuidId da instalação (diferente do id do módulo).
tenant_iduuidLoja.
module_iduuidId do módulo no catálogo central.
module_namestringNome do módulo.
module_slugstringSlug do módulo.
is_enabledbooleanSe está ligado na loja. Instalado não significa ligado.
configobjectConfiguração da instalação.
settingsobjectAjustes próprios do módulo (veja Ajustes do módulo).
installed_atstringQuando foi instalado.
updated_atstringÚltima alteração.
Erros (configurar)
| Status | Quando | Corpo |
|---|---|---|
| 401 | Sem token, token inválido ou expirado. | {"error":"missing authorization header"} |
| 403 | O usuário não tem manage_modules nem manage_settings (basta um dos dois). | {"error":"insufficient privileges","privilege_required_any":["manage_modules","manage_settings"]} |
| 400 | Corpo que não é JSON válido. | {"error":"invalid request body","detail":"..."} |
| 400 | moduleId não é UUID. | {"error":"invalid moduleId","detail":"moduleId must be a valid UUID"} |
| 404 | O módulo não está instalado nesta loja. | {"error":"module not installed on this storefront"} |
| 500 | Falha ao gravar. | {"error":"failed to update module config"} |
Remover
/api/v1/admin/modules/{moduleId}AdminRemover um módulo da loja
Parâmetros de caminho
moduleIduuidobrigatórioId do módulo no catálogo central (campo
id de Catálogo de módulos). Não é o slug.Exemplo de requisição (remover)
Resposta (remover)
200Módulo removido
Campos da resposta
messagestringTexto fixo de confirmação, em inglês.
Erros (remover)
| Status | Quando | Corpo |
|---|---|---|
| 401 | Sem token, token inválido ou expirado. | {"error":"missing authorization header"} |
| 403 | O usuário não tem manage_modules nem manage_settings (basta um dos dois). | {"error":"insufficient privileges","privilege_required_any":["manage_modules","manage_settings"]} |
| 400 | moduleId não é UUID, o módulo não existe ou outros módulos instalados dependem dele. | {"error":"failed to uninstall module","detail":"cannot uninstall: modules [payout-batches] depend on this module"} |
Ligar ou desligar em lote
/api/v1/admin/modules/bulk-toggleAdminLigar ou desligar vários módulos
Corpo da requisição
module_idsarrayobrigatórioIds de módulos (do catálogo central) de módulos já instalados.
is_enabledbooleanobrigatóriotrue liga, false desliga.simulatebooleanpadrão: falsetrue não aplica nada: devolve a prévia do que mudaria e um confirm_token válido por cerca de uma hora.filterobjectEm vez de
module_ids, um critério de seleção. Veja a nota abaixo.confirm_tokenstringToken de uma simulação anterior, para aplicar exatamente aquela seleção.
Exemplo de requisição (lote)
Resposta (lote)
200Aplicado
200Simulação (`simulate: true`)
Campos da resposta
toggledintegerMódulos para os quais a ligação foi executada. Conta também ids que não estão instalados (veja a nota).
totalintegerIds recebidos.
simulatebooleanSó na simulação.
samplearraySó na simulação: amostra com
id, name, before e after.confirm_tokenstringSó na simulação.
expires_atstringSó na simulação: validade do token.
Erros (lote)
| Status | Quando | Corpo |
|---|---|---|
| 401 | Sem token, token inválido ou expirado. | {"error":"missing authorization header"} |
| 403 | O usuário não tem manage_modules nem manage_settings (basta um dos dois). | {"error":"insufficient privileges","privilege_required_any":["manage_modules","manage_settings"]} |
| 400 | Corpo que não é JSON válido. | {"error":"invalid request body","detail":"..."} |
| 400 | Pedido por critério ou simulação sem is_enabled. | {"error":"is_enabled (true liga, false desliga) é obrigatório"} |
| 500 | Falha ao aplicar. | {"error":"failed to bulk toggle modules"} |