# O que mudou 1 Schema: failedAttempts + lockedUntil em User; migration auth_v0_2_lockout aplicada; crypto.ts com hashSecret/verifySecret (Node scrypt nativo, zero deps) 2 packages/api/src/auth.ts — authenticateCredential com lockout de 5 tentativas 3 Seed reescrito: admin hashed admin1234, operadores hashed 1111/2222/3333 4 Porta das traseiras fechada: AUTH_DEV_AUTOLOGIN ignorado quando NODE_ENV=production, em ambas as apps 5 operator-pwa: Credentials provider usa PIN + allowedRoles:['OPERATOR']; cookies fieldops-op.* 6 Picker em 2 estados: lista → teclado PIN (botões grandes, dots de progresso, mensagem de erro sem dar pistas) 7 admin-web: Auth.js completo (auth.config, auth.ts, route handler, middleware, /login page, AUTH_SECRET no env) com cookies fieldops-admin.* 8 scripts/auth-smoke.ts (11/11 ✓); .env.example e README atualizados
18 lines
436 B
TypeScript
18 lines
436 B
TypeScript
import type { NextConfig } from 'next';
|
|
import './env'; // Validate env vars at build time
|
|
|
|
const config: NextConfig = {
|
|
transpilePackages: ['@repo/db', '@repo/api', '@repo/ui', '@repo/storage'],
|
|
reactStrictMode: true,
|
|
poweredByHeader: false,
|
|
serverExternalPackages: [
|
|
'pino',
|
|
'pino-pretty',
|
|
'@aws-sdk/client-s3',
|
|
'@aws-sdk/s3-request-presigner',
|
|
'@smithy/node-http-handler',
|
|
],
|
|
};
|
|
|
|
export default config;
|