# externalConf.js — Configuração externa per-tenant

Este diretório contém o `externalConf.example.js`, modelo da configuração externa que personaliza a aplicação **Faixa de Domínio** para cada cliente (tenant) sem precisar recompilar a build.

## Como funciona

O arquivo `externalConf.js` é carregado pelo `public/index.html` como um `<script>` estático **antes** do bundle do Vue:

```html
<script src="<%= BASE_URL %>js/externalConf.js"></script>
```

Ele declara um `var config = { ... }` no escopo global, que vira `window.config` e é lido em runtime pela aplicação. Assim, a mesma build serve múltiplos tenants — basta trocar o `externalConf.js` que é servido.

O arquivo real (`externalConf.js`) é **gitignored** (ver `.gitignore` deste diretório) — apenas o `externalConf.example.js` é versionado como referência.

## Como utilizar

1. Copie `externalConf.example.js` para `externalConf.js` no mesmo diretório.
2. Ajuste os valores conforme o tenant (ver "Presets per-tenant" abaixo).
3. Faça o build / deploy.

## Atenção em produção (Docker)

- No `externalConf.js`, mantenha `VUE_APP_API_LOCATION` como `/api` (caminho relativo) — o Vue app envia as requests para `/api/...` e o NGINX faz o proxy reverso. A URL real do backend (ex: `https://gesconsys.arteris.com.br:9090`) é definida na variável `VUE_APP_API_LOCATION` do `.env` do `docker-compose`, que o NGINX consome via `envsubst` no `proxy_pass`. São contextos diferentes: o valor no `externalConf.js` é visto pelo browser, o valor no `.env` é visto apenas pelo NGINX.
- O `js/externalConf.js` continua sendo o caminho servido pelo NGINX, mas o entrypoint cria um symlink desse arquivo para um volume nomeado persistente (`faixa-dominio-external-config`). Edições feitas em `js/externalConf.js` dentro do container são gravadas no volume e sobrevivem a restarts.
- A variável de ambiente `EXTERNAL_CONFIG_PATH` (default `js/externalConf.js`) permite, se necessário, apontar a tag `<script>` do `index.html` final para outro caminho — sem alterar o `public/index.html` do repositório, preservando os modos dev e deploys non-Docker.
