# Integração Portal -> ERP

## Papel do portal

O portal é a autoridade central para:

- identidade do usuário
- membership cliente-usuário
- produto `erp`
- access/entitlement
- instância
- status comercial

## O que o portal faz

1. monta o contexto central do usuário para o produto ERP
2. emite ticket assinado com HMAC SHA-256 usando `ERP_SHARED_SECRET`
3. gera a URL final do ERP apontando para `ERP_CONSUME_PATH`
4. expõe `/internal/erp/introspect` para revalidar a sessão do ERP

## Configuração

```env
ERP_INTEGRATION_ENABLED=1
ERP_SHARED_SECRET=
ERP_SIGNED_LAUNCH_ENABLED=1
ERP_TICKET_TTL_SECONDS=60
ERP_ALLOWED_HOSTS=example.com,www.example.com
ERP_CONSUME_PATH=/api/v1/central/consume
ERP_ROLE_MAP_ADMIN=owner,billing_admin,gestor
ERP_ROLE_MAP_VENDOR=membro,viewer,support
```

## Endpoint interno

`GET` e `POST` `/internal/erp/introspect`

### Entrada

- `central_user_id`
- `central_client_id`
- `central_product_id`
- `central_access_id`
- `central_instance_id` opcional

### Saída

- `allowed`
- `reason`
- `user`
- `client`
- `membership`
- `access`
- `instance`
- `expires_at`

## Observações

- o host final do ERP deve estar presente em `ERP_ALLOWED_HOSTS`
- o path base do ERP é preservado ao compor a URL de consume
- o portal não move dados operacionais do ERP para o banco central; apenas controla o acesso
