Commit graph

167 commits

Author SHA1 Message Date
Tracewebstudio Dev
9c8cee50b3 ci: revert to woodpeckerci plugin-kaniko from Docker Hub 2026-04-16 22:38:36 +02:00
Tracewebstudio Dev
7f1ca0e387 ci: use kaniko from registry.nxtgauge.com 2026-04-16 22:28:29 +02:00
Tracewebstudio Dev
3fde2917cd ci: revert backend to direct kaniko build (no crane) 2026-04-16 22:16:33 +02:00
Tracewebstudio Dev
9444056297 ci: mirror base images first, then build services
- First step: crane copy rust:alpine, rust:1.87-alpine, alpine:3.20 to registry
- Second step: kaniko build each service with mirrored base images
- No DinD required
2026-04-16 21:32:40 +02:00
Tracewebstudio Dev
770ebcbfc6 fix(build): remove rustup target in Dockerfile.simple
- rust:alpine image already includes x86_64-unknown-linux-musl target
- Remove rustup target add command causing 'not found' error
2026-04-16 20:54:24 +02:00
Tracewebstudio Dev
09df0323f3 fix(ci): use mirrored rust:alpine from private registry
- Change FROM rust:alpine to FROM registry.nxtgauge.com/rust:alpine
- Fixes Docker Hub rate limiting/UNAUTHORIZED errors in Woodpecker builds
- Requires manually pulling and pushing rust:alpine to registry.nxtgauge.com first
2026-04-16 18:37:17 +02:00
Tracewebstudio Dev
d08449185e feat: add v1 users API routes for backward compatibility
- Add /api/v1/users path routing to users service in gateway
- Add v1_router() in auth.rs with resend-otp endpoint
- Nest /api/v1/users route in main.rs
- Support legacy /api/v1/users/resend-otp endpoint
2026-04-16 18:06:06 +02:00
Tracewebstudio Dev
31d4570356 fix(email): update company name and address in email footer
- Change company name from 'Nxtgauge Technologies Pvt. Ltd.' to 'Traceworks Technologies LLP'
- Update address from Bangalore to: 13th main road, Anna nagar west, Chennai - 600040
- Remove GSTIN field from footer
2026-04-16 17:24:49 +02:00
Tracewebstudio Dev
f3d686d076 feat(email): use Nxtgauge logo image instead of text logo
- Replace text 'NXTGAUGE' with actual logo image in email header
- Use hosted logo URL: https://nxtgauge.com/nxtgauge-logo.png
- Copy logo to email/public directory for future use
2026-04-16 17:21:24 +02:00
Tracewebstudio Dev
5ca90d111b fix(ci): use registry.nxtgauge.com for db-migrate image
- Remove :5000 from registry in db-migrate build step
- Ensure all images push to registry.nxtgauge.com
2026-04-16 12:06:46 +02:00
Tracewebstudio Dev
d29c755899 fix(users): add missing password_hash bind parameter in user create
- INSERT statement had only 4 placeholders but 5 columns specified
- Add  placeholder for password_hash and bind it properly
2026-04-16 10:35:47 +02:00
Tracewebstudio Dev
52ed6d7975 fix(support): add missing status bind parameter in admin create case
- Fix INSERT statement to use , ,  instead of hardcoded 'new' with placeholders
- Add .bind("new") for status parameter
2026-04-16 10:28:05 +02:00
Tracewebstudio Dev
ebc0a29437 fix(ai): use Ollama cluster URL and gemma3:270m model defaults
- Default OLLAMA_BASE_URL to http://ollama.nxtgauge-ai.svc.cluster.local:11434
- Default OLLAMA_CHAT_MODEL to gemma3:270m (matches gitops configmap)
2026-04-15 19:54:58 +02:00
Tracewebstudio Dev
430711a0ae feat: add AI endpoints for chat, tickets, form extraction via Ollama
- Add /api/ai/chat/message: LLM-powered chat with intent classification
- Add /api/ai/tickets/create and /api/ai/tickets/🆔 AI ticket management
- Add /api/ai/forms/extract: LLM-powered form field extraction
- Add /api/support/tickets/ai/create: unauthenticated ticket creation for AI service
- Add reqwest to workspace dependencies
2026-04-15 18:19:07 +02:00
Tracewebstudio Dev
4fa5005559 fix: use registry.nxtgauge.com without port 2026-04-15 14:58:40 +02:00
Tracewebstudio Dev
3456829063 fix: hardcode registry with port 5000 2026-04-15 14:50:51 +02:00
Tracewebstudio Dev
a3076ed526 feat: update DB schema - split users.first_name, users.last_name, roles split 2026-04-15 06:23:27 +02:00
Tracewebstudio Dev
92ded2b43d Fix role/config schema alignment and external dashboard runtime loading 2026-04-15 00:16:25 +02:00
Tracewebstudio Dev
2a65d79aea chore: remove gitops update step (handled server-side) 2026-04-14 18:52:19 +02:00
Tracewebstudio Dev
37b17b8b77 fix: use GITOPS_REPO_URL with GHCR auth 2026-04-14 18:44:09 +02:00
Tracewebstudio Dev
e133bd0f2d fix: use GHCR_TOKEN/GHCR_USERNAME for gitops push 2026-04-14 18:31:55 +02:00
Tracewebstudio Dev
a2c995992e fix: use GITOPS_REPO_URL secret for git clone 2026-04-14 18:30:50 +02:00
Tracewebstudio Dev
99b8dc929e fix: use GITHUB_TOKEN for git clone 2026-04-14 18:27:56 +02:00
Tracewebstudio Dev
747a4cb108 ci: add gitops update step while keeping original registry config 2026-04-14 14:34:00 +02:00
Tracewebstudio Dev
4d6de951bf fix: use explicit registry.nxtgauge.com:5000 with REGISTRY_* secrets 2026-04-14 14:32:28 +02:00
Tracewebstudio Dev
c5b097d20c ci: update gitops for all services (not just gateway/users) 2026-04-14 14:30:04 +02:00
Tracewebstudio Dev
d3cdd56ba4 ci: simplify GitOps update to use Woodpecker's Git access 2026-04-14 14:28:21 +02:00
Tracewebstudio Dev
0d01e70576 fix: use GHCR_USERNAME/GHCR_TOKEN instead of REGISTRY_* 2026-04-14 14:26:55 +02:00
Tracewebstudio Dev
d4c7fdcddd ci: add GitOps update step to Woodpecker pipeline
- After building gateway/users images, update GitOps with new SHA tag
- Update apps/nxtgauge-backend-rust/overlays/prod/kustomization.yaml
- Requires secrets: GITOPS_REPO_URL, GITOPS_BRANCH, GITOPS_TOKEN
2026-04-14 14:18:00 +02:00
Tracewebstudio Dev
30d8eeb279 ci: force Woodpecker rebuild - signup fix deployment 2026-04-14 12:51:22 +02:00
Tracewebstudio Dev
0b71e39ce0 ci: trigger woodpecker for phone/full_name fix deployment 2026-04-14 10:57:57 +02:00
Tracewebstudio Dev
15100d20f3 ci: trigger woodpecker build 2026-04-13 23:28:23 +02:00
Tracewebstudio Dev
23587cdc63 ci: add concurrency limit to Woodpecker pipeline
Limit concurrent pipeline runs to 4 to control resource usage
while maintaining parallel matrix builds for all 21 services
2026-04-13 20:21:41 +02:00
Tracewebstudio Dev
3432d67cc4 fix(auth): remove phone from INSERT and User struct since column doesn't exist
- Remove phone from INSERT INTO users (users table has no phone column)
- Remove phone from User struct and CreateUserPayload
- Return null for phone in API responses
- Keep phone field in RegisterPayload for backward compat (just not persisted)
2026-04-13 20:15:32 +02:00
Tracewebstudio Dev
1d50d21f00 fix(auth): also accept 'name' field for signup compatibility
Frontend sends 'name' field directly. RegisterPayload now accepts:
- name (direct, used by frontend)
- full_name (legacy)
- first_name + last_name (new format)
2026-04-13 20:13:53 +02:00
Tracewebstudio Dev
63eb27a160 fix(auth): accept both full_name and first_name+last_name for backward compatibility
RegisterPayload now accepts:
- full_name (single field, for old frontend clients)
- first_name + last_name (new format)

Error returned only if none of these are provided.
2026-04-13 19:59:48 +02:00
Tracewebstudio Dev
2861e7a5fe fix: replace u.full_name with u.name in remaining services
- companies: user.name in email and contact queries
- customers: user.name in email
- job_seekers: u.name in company user query
- cron tasks (jobs/leads/requirements): use u.name instead of u.full_name
- contracts/profession_shared: u.name for customer_name fields
2026-04-13 17:12:49 +02:00
Tracewebstudio Dev
231ff9530f fix(auth): use 'name' column instead of 'full_name', combine first_name + last_name
- Replace full_name with name in User struct and all queries
- RegisterPayload now takes first_name + last_name instead of full_name
- Combine first_name and last_name into name before saving to DB
- Update all response structs to use 'name' field instead of 'full_name'
- Fix support and dashboard queries to use u.name instead of u.full_name

Root cause: DB has 'name' column, code was using 'full_name' which doesn't exist.
2026-04-13 16:55:09 +02:00
Tracewebstudio Dev
f5130569e5 fix: migrate route params to Axum 0.7+ syntax ({id} instead of :id)
- apps/jobs/src/main.rs: Update /jobs/:id to /jobs/{id}
- apps/leads/src/main.rs: Update /leads/:id to /leads/{id}
2026-04-13 16:04:55 +02:00
Tracewebstudio Dev
e106dff5c3 chore: retrigger woodpecker 2026-04-13 12:08:47 +02:00
Tracewebstudio Dev
f7e18cd4d6 feat: pricing packages with multi-select roles, lead requests, mock checkout 2026-04-13 01:36:13 +02:00
Tracewebstudio Dev
c433ab5fed feat(db): update service handlers and models for new schema
- Update leads service to use 'leads' table
- Update extension models to use user_role_profile_id
- Update ProfessionalRepository to work with new schema
- Create TracecoinWalletRepository for wallet operations
- Update all handlers to use new model fields
- Rename Application fields (job_seeker_id -> applicant_user_id)
- Update cron tasks for new schema
- Fix compilation errors across all services
2026-04-13 00:29:44 +02:00
Tracewebstudio Dev
2e283e5d67 feat(db): add complete migration and update extension models to use user_role_profile_id
- Add comprehensive migration script for database schema redesign
- Update all extension profile models to reference user_role_profile_id
- Create user_role_profiles as root table for all role profiles
- Remove external portfolio links (github_url, portfolio_url, reel_url)
- Rename applications→job_applications, requirements→leads
- Drop deprecated tables (professionals, onboarding_submissions, etc.)
2026-04-12 23:55:08 +02:00
Tracewebstudio Dev
03376b9567 feat: Add database redesign documentation and Phase 1-2 migrations
- Add schema_audit.md documenting current schema issues
- Add target_schema.md with complete target schema design
- Add old_to_new_mapping.md with table mapping
- Add migration_plan.md with phased migration strategy
- Add Phase 1 migrations (core infrastructure):
  - user_sessions table
  - users missing columns
  - departments updates
  - designations updates
  - employees updates
- Add Phase 2 migrations (profile domain - CRITICAL):
  - create user_role_profiles root table
  - backfill user_role_profiles from existing profiles
  - add user_role_profile_id to extension tables
  - remove forbidden external portfolio links
- Add user_role_profile Rust model
- Update photographer model to use user_role_profile_id
2026-04-12 23:21:11 +02:00
Tracewebstudio Dev
79fbba8107 chore(ci): trigger rebuild for jobs and leads services 2026-04-12 22:04:04 +02:00
Tracewebstudio Dev
1e6abd9397 feat: add separate jobs and leads services
- Create jobs service (port 9103) for job postings management
- Create leads service (port 9118) for lead/requirement management
- Update gateway to route /api/jobs to jobs service
- Update gateway to route /api/leads to leads service
- Add jobs and leads to Woodpecker CI matrix
2026-04-12 22:03:06 +02:00
Tracewebstudio Dev
81c00eca96 feat(db-migrate): add DROP_EXISTING_TABLES support
When DROP_EXISTING_TABLES=true, drop all existing tables before running migrations.
2026-04-12 21:58:57 +02:00
Tracewebstudio Dev
dade35b328 feat: add db-migrate tool for running SQL migrations
- Create db-migrate binary that runs all .up.sql migration files
- Add Dockerfile.migrate for building the migration image
- Add migration job to Woodpecker CI pipeline
- Image will be pushed to registry.nxtgauge.com:5000/nxtgauge-db-migrate
2026-04-12 21:57:28 +02:00
Tracewebstudio Dev
019613aa82 chore(ci): trigger rebuild after registry and backend fixes 2026-04-12 18:08:56 +02:00
Tracewebstudio Dev
8d920c4b34 fix(users): update Axum routes to 0.7 syntax for email templates 2026-04-12 16:58:07 +02:00