Commit graph

65 commits

Author SHA1 Message Date
Tiago Yamamoto
218dd48777 fix: remove duplicate /health route in backoffice
The health endpoint was defined both in main.ts and app.controller.ts
causing FastifyError: Method 'GET' already declared
2026-02-16 08:47:42 -06:00
Tiago Yamamoto
11e0deef2a fix: resolve build errors for Coolify deployment
- Frontend: Remove duplicate useState import in applications page
- Backoffice: Install devDependencies during build for nest CLI
- Seeder: Fix healthcheck port to match app port (8080)
- Add Coolify CI/CD workflow for automatic deployment on push to dev
- Update DEVOPS.md with Coolify environment documentation
2026-02-16 08:42:29 -06:00
Tiago Yamamoto
66eb34a35b chore: update pnpm lockfiles for CI frozen installs 2026-02-14 15:57:54 -03:00
Tiago Yamamoto
b41bf56585 Refine migrations flow and lint tooling across apps 2026-02-14 15:42:40 -03:00
Tiago Yamamoto
3ac4bc5fd5 chore: remove docker compose artifacts and references 2026-02-12 20:06:40 -03:00
Tiago Yamamoto
2fe7280600
Merge pull request #44 from rede5/claude/claude-md-mljq7u1y78t7vtbx-Oz1po
Add candidate profile management, password reset, and support features
2026-02-12 14:34:16 -03:00
Marcus
ee703a364c ajustes 2026-01-31 10:36:39 -03:00
NANDO9322
c97aeacf3b Merge branch 'dev' 2026-01-17 18:23:41 -03:00
NANDO9322
8f331c97d3 feat(backoffice): Implementa gestão de credenciais e novas abas administrativas
BACKEND:
- Implementa [CredentialsHandler](cci:2://file:///C:/Projetos/gohorsejobs/backend/internal/api/handlers/credentials_handler.go:9:0-11:1) e rotas /api/v1/system/credentials para gestão segura de chaves.
- Adiciona criptografia RSA no [CredentialsService](cci:2://file:///C:/Projetos/gohorsejobs/backend/internal/services/credentials_service.go:17:0-22:1) para proteger chaves de API (Stripe, Cloudflare, etc).
- Automatiza geração de pares de chaves RSA no .env via script.

FRONTEND:
- Refatora /dashboard/backoffice organizando em Abas: Dashboard, Planos, Stripe e Sistema.
- Implementa CRUD completo para gestão de Planos (criar, editar, remover).
- Adiciona visualização de status do Stripe e botão para limpar cache Cloudflare.
- Ajusta formatação de data nos logs para fuso horário America/Sao_Paulo.
- Atualiza pi.ts para suportar novos endpoints de planos e credenciais.
2026-01-09 17:18:51 -03:00
NANDO9322
c339c3fbaf feat(backoffice): corrige erro 500 e implementa seeder de banco
- Remove marcadores de conflito git em admin_service que causavam erro 500 em ListCompanies.
- Implementa SeederService no backend Go com streaming SSE para logs em tempo real.
- Expõe endpoints: GET /api/v1/seeder/seed/stream e POST /api/v1/seeder/reset.
- Atualiza config do frontend para apontar URL do seeder para a API backend.
- Corrige erros de sintaxe na UI do dashboard Backoffice e implementa busca de estatísticas.
- Garante lógica correta de UPSERT no seeder (RETURNING id) usando colunas 'identifier' e 'full_name' para evitar abortar transações.
- Corrige constraint de role em user_companies no seeder para usar 'admin'.
2026-01-09 12:21:56 -03:00
NANDO9322
3011a725e1 ajuste ip 2026-01-08 20:50:38 -03:00
Marcus Bohessef
94126f0523 ajuste no drone 2026-01-06 20:41:16 -03:00
Marcus Bohessef
59e6177244 ajuste no drone 2026-01-06 20:37:15 -03:00
Tiago Yamamoto
b1107864b5 Add payment gateway configs and lock credentials 2026-01-03 20:28:21 -03:00
Yamamoto
fee83f52f6 feat(backoffice): standardize root response root json format 2026-01-02 19:50:47 -03:00
Yamamoto
672d2364cb docs: update BACKOFFICE.md with detailed API routes and Podman instructions 2026-01-02 19:06:38 -03:00
Tiago Yamamoto
d79fa8e97a feat: increase test coverage backend/frontend and setup e2e 2026-01-01 10:54:58 -03:00
Tiago Yamamoto
1249c9a499 docs: add RSA_PRIVATE_KEY_BASE64 to backoffice .env.example 2025-12-31 16:34:59 -03:00
Tiago Yamamoto
c26ad578b9 feat: migrate credentials management to backoffice nestjs 2025-12-31 16:25:32 -03:00
Tiago Yamamoto
a65259688f fix(docker): Increase NODE_OPTIONS memory for build
The docker build was failing due to a JavaScript heap out of memory error.
This commit increases the --max-old-space-size in NODE_OPTIONS from 384MB to 2048MB
in the builder stage of the Dockerfile to provide more memory for the build process,
resolving the memory allocation failure during
> backoffice@0.0.1 build /home/yamamoto/lab/gohorsejobs/backoffice
> nest build.
2025-12-28 13:48:22 -03:00
Tiago Yamamoto
3d704191e1 perf(docker): optimize backoffice Dockerfile
- Add --prefer-offline for faster installs
- Reduce NODE_OPTIONS to 384MB
- Add pnpm store prune to cleanup unused packages
- Unique cache id (pnpm-backoffice) to avoid conflicts
- Cleanup caches in same layer
2025-12-28 11:21:57 -03:00
Tiago Yamamoto
93367d7cd6 test(backoffice): add unit tests for StripeService
- Add 8 test cases covering all StripeService methods
- Mock Stripe SDK for isolated testing
- Test createCustomer, createSubscription, cancelSubscription
- Test listSubscriptions, createCheckoutSession, createBillingPortalSession
- Test constructWebhookEvent and onModuleInit
2025-12-28 11:03:58 -03:00
Tiago Yamamoto
632fc78982 feat(ci): add backoffice to deploy pipeline + optimize Dockerfile
- Add backoffice paths trigger to deploy workflow
- Implement conditional builds (only build changed services)
- Optimize Dockerfile with BuildKit cache mounts
- Update pnpm to latest version
- Remove HEALTHCHECK (not supported by Podman OCI format)
2025-12-28 10:47:28 -03:00
Tiago Yamamoto
c0ed01232c docs(backoffice): add C4 architecture diagram 2025-12-28 02:36:56 -03:00
Tiago Yamamoto
9d19751acb Resolve merge conflicts in backend, backoffice, and frontend 2025-12-27 21:45:48 -03:00
Tiago Yamamoto
0fd114d097 chore(backoffice): update dependencies and resolve peer dependency warnings 2025-12-27 20:49:08 -03:00
Tiago Yamamoto
b23393bf35 feat: implement stripe subscriptions, google analytics, and user crud
- Backend:
  - Add Stripe subscription fields to companies (migration 019)
  - Implement Stripe Checkout and Webhook handlers
  - Add Metrics API (view count, recording)
  - Update Company and Job models
- Frontend:
  - Add Google Analytics component
  - Implement User CRUD in Backoffice (Dashboard)
  - Add 'Featured' badge to JobCard
- Docs: Update Roadmap and artifacts
2025-12-27 12:06:54 -03:00
Tiago Yamamoto
9ee9f6855c feat: implementar múltiplas features
Backend:
- Password reset flow (forgot/reset endpoints, tokens table)
- Profile management (PUT /users/me, skills, experience, education)
- Tickets system (CRUD, messages, stats)
- Activity logs (list, stats)
- Document validator (CNPJ, CPF, EIN support)
- Input sanitizer (XSS prevention)
- Full-text search em vagas (plainto_tsquery)
- Filtros avançados (location, salary, workMode)
- Ordenação (date, salary, relevance)

Frontend:
- Forgot/Reset password pages
- Candidate profile edit page
- Sanitize utilities (sanitize.ts)

Backoffice:
- TicketsModule proxy
- ActivityLogsModule proxy
- Dockerfile otimizado (multi-stage, non-root, healthcheck)

Migrations:
- 013: Profile fields to users
- 014: Password reset tokens
- 015: Tickets table
- 016: Activity logs table
2025-12-27 11:19:47 -03:00
Tiago Yamamoto
24c3eeaf5b fix: Add missing dependencies for backoffice email module
Added:
- @nestjs/typeorm
- typeorm
- handlebars
- nodemailer
- amqplib
- pg
2025-12-26 13:07:37 -03:00
Tiago Yamamoto
b0378985a4 docs: Comprehensive BACKOFFICE.md update with all modules and integrations 2025-12-26 12:40:04 -03:00
Tiago Yamamoto
841b1d780c feat: Email System, Avatar Upload, Email Templates UI, and Public Job Posting
- Backend: Email producer (LavinMQ), EmailService interface
- Backend: CRUD API for email_templates and email_settings
- Backend: avatar_url field in users table + UpdateMyProfile support
- Backend: StorageService for pre-signed URLs
- NestJS: Email consumer with Nodemailer and Handlebars
- Frontend: Email Templates admin pages (list/edit)
- Frontend: Updated profileApi.uploadAvatar with pre-signed URL flow
- Frontend: New /post-job public page (company registration + job creation wizard)
- Migrations: 027_create_email_system.sql, 028_add_avatar_url_to_users.sql
2025-12-26 12:21:34 -03:00
Tiago Yamamoto
b1639dbcd8 Implement secure Stripe credential management using RSA encryption 2025-12-26 11:03:52 -03:00
Tiago Yamamoto
722e72cdbd Implement FCM Token Management (DB, Backend, Frontend, Backoffice) 2025-12-26 10:41:50 -03:00
Tiago Yamamoto
03827302e5 Add Stripe controller routes and full Plans CRUD in backoffice 2025-12-26 10:30:10 -03:00
Tiago Yamamoto
14af54ec39 fix(backoffice): upgrade @fastify/cookie to v11 for Fastify 5 compatibility
- Updated @fastify/cookie from ^9.3.1 to ^11.0.0
- Fixes FST_ERR_PLUGIN_VERSION_MISMATCH error
2025-12-25 22:44:49 -03:00
Tiago Yamamoto
72957b418a chore(backoffice): allow build with outdated lockfile to unblock deploy 2025-12-24 18:33:01 -03:00
Tiago Yamamoto
96571261d9 chore: update pnpm-lock.yaml 2025-12-24 18:28:23 -03:00
Tiago Yamamoto
7b5752f71f chore(docker): setup google mirror for base images 2025-12-24 17:46:57 -03:00
Tiago Yamamoto
c8a281ef06 fix(auth): correct seeder pepper and add backoffice e2e tests 2025-12-24 13:53:30 -03:00
Tiago Yamamoto
f7c1833c00 fix(backoffice): add missing dependencies (jsonwebtoken, @fastify/cookie) 2025-12-24 13:33:15 -03:00
Tiago Yamamoto
017a34c965 docs: comprehensive documentation update
- DATABASE.md: Complete schema with ER diagram, all tables, migrations history
- ROADMAP.md: Project status, completed/in-progress/backlog items
- TASKS.md: Detailed task list to avoid rework
- README.md: Added documentation links table
- backoffice/README.md: Added auth section (JWT Bearer + Cookie)

Schema notes:
- Core tables use SERIAL (INT): users, companies, jobs
- Newer tables use UUID v4: notifications, tickets, payments
- Schema is unified (removed core_* redundant tables)
2025-12-24 11:12:52 -03:00
Tiago Yamamoto
340911b4d1 feat(auth): add cookie parsing and JWT auth guard to backoffice
- Add JWT auth guard with Bearer token and cookie support
- Update .env.example files with PASSWORD_PEPPER documentation
- Update seeder to use PASSWORD_PEPPER for password hashing
- Update seeder README with hash verification examples
- Fix frontend auth and page components
- Update backend JWT service and seed migration
2025-12-24 10:27:04 -03:00
Tiago Yamamoto
0f2aae3073 fix(backoffice): force 0.0.0.0 binding to resolve deployment crash
refactor(backend): consolidate admin routes and implement RBAC

feat(frontend): update api client to use consolidated routes
2025-12-24 00:59:33 -03:00
Tiago Yamamoto
f94533d432 fix(backoffice): add @fastify/static for Swagger support 2025-12-24 00:33:30 -03:00
Tiago Yamamoto
ce37206286 fix(backoffice): simplify Dockerfile for proper source code copying 2025-12-24 00:28:39 -03:00
Tiago Yamamoto
6a1bdefc4b feat(backoffice): add status endpoint at root and move swagger to /docs 2025-12-24 00:11:18 -03:00
Tiago Yamamoto
ae7003d3fa feat(backoffice): add CORS_ORIGINS env var support 2025-12-24 00:03:52 -03:00
Tiago Yamamoto
60a32120e2 refactor(backoffice): rename PORT to BACKOFFICE_PORT and HOST to BACKOFFICE_HOST 2025-12-23 23:59:52 -03:00
Tiago Yamamoto
c6f7f41452 feat(backoffice): migrate to Fastify adapter with pnpm, Pino logging, and ultra-optimized Dockerfile 2025-12-23 23:44:02 -03:00
Tiago Yamamoto
22315e0231 perf: optimize backoffice Dockerfile with multi-stage build, non-root user, and .dockerignore 2025-12-23 23:32:43 -03:00