Configurar ambiente dev
appsettings.Development.json
O arquivo é gitignored; crie a partir do sample:
cp src/MyService.Api/appsettings.Development.json.sample \
src/MyService.Api/appsettings.Development.json
Ajuste:
ConnectionStrings:Default— connection string do SQL Server. Default usa LocalDB ((localdb)\mssqllocaldb).Identity:Admin:{Email,Password}— admin de bootstrap seedado no Identity local na startup (opcional; omita para não seedar). A senha precisa satisfazer a política: ≥12 caracteres, maiúscula/minúscula/dígito/símbolo.Authentication:Token—Issuer/Audiencedos tokens emitidos.
Signing key (dev vs produção)
A API emite os próprios tokens (Identity local, JWT assimétrico RSA) — não precisa de IdP externo:
- Dev:
SigningKeyPemPathvazio → chave RSA ephemeral gerada na startup. - Produção: chave PEM obrigatória —
AddDevPackSigningKeyfalha cedo na startup fora de Development sem chave configurada.
SPA com HMR
O frontend é servido same-origin pela API. Para desenvolvimento com hot reload, dois terminais:
cd src/MyService.Spa && pnpm install && pnpm dev # Vite dev server em :5173
dotnet run --project src/MyService.Api # API
Navegue sempre na origem da API (mesma topologia da produção) — com
Spa:DevServerUrl configurado, a API reverse-proxia as rotas não-API para o Vite, HMR
incluído. Navegar direto no Vite também funciona, mas o proxy do vite.config.ts deve
apontar para o endpoint HTTPS da API (o HTTP responde 307 e quebra o cookie de sessão).
Observabilidade local (opcional)
OpenTelemetry exporta via OTLP configurado por env vars padrão. Sem collector local, use
OTEL_SDK_DISABLED=true; com collector:
docker run --rm -p 4317:4317 -p 4318:4318 otel/opentelemetry-collector-contrib
Próximo: Migrations.