- User table with company_id FK, unique email, role enum - Register/login routes with bcrypt + JWT token generation - Auth plugin with authenticate decorator and role guards - Login uses globally unique email (no company header needed) - Dev-auth plugin kept as fallback when JWT_SECRET not set - Switched from vitest to bun:test (vitest had ESM resolution issues with zod in Bun's module structure) - Upgraded to zod 4 - Added Dockerfile.dev and API service to docker-compose - 8 tests passing (health + auth)
19 lines
357 B
Docker
19 lines
357 B
Docker
FROM oven/bun:1
|
|
|
|
WORKDIR /app
|
|
|
|
# Install dependencies first (cached layer)
|
|
COPY package.json bun.lock ./
|
|
COPY packages/shared/package.json packages/shared/
|
|
COPY packages/backend/package.json packages/backend/
|
|
RUN bun install --frozen-lockfile
|
|
|
|
# Copy source
|
|
COPY . .
|
|
|
|
WORKDIR /app/packages/backend
|
|
|
|
EXPOSE 8000
|
|
|
|
CMD ["bun", "--watch", "run", "src/main.ts"]
|