# Cron multi-tenant via cPanel (gestão → API)

A gestão regista automaticamente `schedule:run` e `queue:work` por tenant no crontab cPanel (passo **9** do provisionamento). O passo **10** grava logo, favicon e cores no BD da instalação (`configuracao_sistema`), após migrations e seeder.

## API utilizada

O cPanel **não possui UAPI** para cron (`Cpanel::API::Cron` não existe). A automação usa **cPanel API 2**:

| Operação | Função API 2 |
|----------|----------------|
| Listar jobs | `Cron/fetchcron` |
| Adicionar linha | `Cron/add_line` |
| Remover linha | `Cron/remove_line` |

Endpoint HTTP: `GET {HOSTGATOR_CP_HOST}/json-api/cpanel` com `cpanel_jsonapi_apiversion=2`.

Implementação: `App\Services\HostgatorService`, parse em `App\Support\CpanelApi2CronResponse`.

## Configuração (.env da gestão)

Ver `.env.example`: `GESTAO_TENANT_CRON_ENABLED`, `GESTAO_API_CRON_BASE_PATH`, `HOSTGATOR_CP_*`.

## Diagnóstico no servidor

```bash
cpapi2 --user=waygest Cron fetchcron
```

Se `event.result: 1`, a API 2 está OK. **Não** usar `uapi Cron list_cron` — UAPI Cron não existe no cPanel 114.

## Fallback manual

Se a API falhar (token, permissões), o passo 9 fica em estado **manual** com os comandos gerados por `TenantCronCommandBuilder`. Registar em cPanel → Cron Jobs, periodicidade `* * * * *`.

## Referências

- DNS / Zone Edit (padrão similar): `docs/DNS_VERCEL_CPANEL.md`
- [cPanel API 2 — Cron](https://api.docs.cpanel.net/cpanel-api-2/cpanel-api-2-modules-cron)
