Commit graph

361 commits

Author SHA1 Message Date
sync-test
d6a01f62bd chore(gitops): deploy frontend-solid@07aa835 - API endpoint fix for registration
All checks were successful
sync-to-forgejo / sync (push) Successful in 9s
2026-07-05 15:19:10 +05:30
sync-test
5a610af9b3 chore: bump nxtgauge-frontend-solid to 0cf975f (fix signup routing)
All checks were successful
sync-to-forgejo / sync (push) Successful in 14s
2026-07-04 22:13:01 +05:30
sync-test
f9306faf73 ops(flux): switch gitops source to Forgejo
All checks were successful
sync-to-forgejo / sync (push) Successful in 15s
2026-07-04 19:41:25 +05:30
Ashwin Kumar Sivakumar
3b1b8665d6 chore(gitops): deploy frontend-solid@48ef3e2 - new signup pages
All checks were successful
sync-to-forgejo / sync (push) Successful in 18s
2026-07-04 18:11:02 +05:30
Ashwin Kumar Sivakumar
5e14343e65 fix(ingress): route test111 /api/* to Rust gateway so signup works
All checks were successful
sync-to-forgejo / sync (push) Successful in 20s
The SolidStart frontend (Vinxi 0.5.7) does not mount src/routes/api/* as
Nitro handlers in the production build. With only a single path rule
pointing to the frontend pod, every /api/* call fell through to
SolidStart's Not Found handler and returned the HTML shell page — making
the Sign Up button appear to do nothing.

Added an /api prefix rule before / so Traefik matches the longer
prefix and forwards signup/login/KB requests directly to the
nxtgauge-rust-gateway service on port 9100 (same backend that
api.nxtgauge.com already uses).

Verified:
- POST /api/auth/check-email -> 200 application/json
- POST /api/auth/register   -> 201 application/json
- GET  /                    -> 200 text/html (frontend shell)
- GET  /api/kb/categories   -> 200 application/json
2026-07-04 15:28:50 +05:30
Ashwin Kumar Sivakumar
b2dbb9f8d4 chore(forgejo): use forgejo registry runner job image
Some checks failed
sync-to-forgejo / sync (push) Failing after 0s
2026-07-03 19:52:15 +05:30
github-actions[bot]
ebc31da19b chore(gitops): deploy ai-assistant@366b6b878a889132f52ed0d78369a6a05941874a 2026-07-03 13:32:29 +00:00
Ashwin Kumar Sivakumar
66953606fb ci: sync GitHub pushes to Forgejo
All checks were successful
sync-to-forgejo / sync (push) Successful in 6s
2026-07-03 18:59:02 +05:30
Ashwin Kumar Sivakumar
8b7c178e1c Merge remote-tracking branch 'origin/main'
Some checks failed
sync-to-forgejo / sync (push) Failing after 22s
2026-07-02 22:50:02 +05:30
Ashwin Kumar Sivakumar
38fd72023f Fix cross-namespace DNS failure calling users service from ai-assistant
NXTGAUGE_USERS_URL used the short service name "nxtgauge-rust-users",
which only resolves within the same namespace. The prod overlay places
ai-assistant in nxtgauge-ai while the users service is in nxtgauge, so
every help-center search and ticket-creation call failed with a DNS
resolution error (surfaced as a 502 to the client). Use the full
in-cluster FQDN instead.
2026-07-02 22:49:44 +05:30
github-actions[bot]
b121959b82 chore(gitops): deploy ai-assistant@23557881065cd426ef8c3964e88e6c4d373fcd35 2026-07-02 17:00:32 +00:00
Ashwin Kumar Sivakumar
7f86b04bcf Merge remote-tracking branch 'origin/main' 2026-07-02 19:19:41 +05:30
Ashwin Kumar Sivakumar
5ab9878077 Remove dead registry.nxtgauge.com imagePullSecret reference from default ServiceAccount 2026-07-02 19:19:26 +05:30
Ashwin Kumar Sivakumar
c633dd4ea2 Sync forgejo runner-deployment.yaml with live cluster state, drop exposed password
This file had drifted badly from the actual running DaemonSet - the
live cluster already moved off the standalone registry.nxtgauge.com
mirror (now decommissioned, confirmed dead: internal DNS routes it to
Traefik with no matching ingress) onto ci.nxtgauge.com's built-in
registry. That migration was done directly against the cluster and
never reflected back to git, leaving a stale REGISTRY_PASSWORD literal
("Ashwin@2026") in this file that doesn't exist in the live DaemonSet
at all. Replaces the file with the actual live spec and adds the two
ConfigMaps (docker-daemon-config, registry-cert) it depends on, which
were also missing from the repo. Not applying this to the cluster -
the differences are purely cosmetic (mount ordering, stale
annotations) and would trigger a pointless restart of healthy runners.
2026-07-02 19:17:07 +05:30
github-actions[bot]
bc7e429b54 chore(gitops): deploy ai-assistant@f0fbb15e54e732c82bdc76337d4e1ef427acc951 2026-07-02 13:22:00 +00:00
Ashwin Kumar Sivakumar
e08618fdcf Merge remote-tracking branch 'origin/main' 2026-07-02 18:49:34 +05:30
Ashwin Kumar Sivakumar
a2e3260bb1 Switch ai-assistant to LiteLLM provider with task-specific models
Was defaulting to plain Ollama with gemma3:270m for every request -
no LLM_PROVIDER or LITELLM_* env vars were set. LiteLLM is already
deployed with purpose-built model aliases per task
(apps/litellm/base/configmap.yaml); this wires ai-assistant to use it.
2026-07-02 18:48:52 +05:30
github-actions[bot]
9ae63b8b37 chore(gitops): deploy ai-assistant@6decf8dce2a45acaacf17d8715218661fde93e73 2026-07-02 13:04:58 +00:00
Ashwin Kumar Sivakumar
6c77b8777e Add PayU merchant key and salt to backend-rust secrets
Wires the PayU credentials for the classic hosted-checkout hash flow
(PAYU_MERCHANT_KEY, PAYU_SALT), consumed by the payments service's
resolve_payu_config fallback and the admin payment-gateway config API.
2026-07-02 18:30:29 +05:30
Ashwin Kumar Sivakumar
3418b23d35 Rotate Postgres (postgres role) and Redis passwords
Old password was reused across the postgres superuser, Redis, and
Forgejo's separate nxtgauge DB role. Rotated only the postgres role
and Redis (Forgejo's nxtgauge role password is untouched and still
valid, verified against the live DB).
2026-07-02 18:15:10 +05:30
Ashwin Kumar Sivakumar
7889ed30f5 Fix cross-namespace secretKeyRef in ai-assistant deployment
JWT_SECRET can't reference nxtgauge-backend-rust-secrets (namespace
nxtgauge) from the ai-assistant pod, which the prod overlay places in
nxtgauge-ai — Kubernetes secretKeyRef must be same-namespace. Duplicate
the value into nxtgauge-ai-assistant-secrets instead.
2026-07-02 18:00:10 +05:30
Ashwin Kumar Sivakumar
e5793aefa5 Merge remote-tracking branch 'origin/main' 2026-07-02 17:57:41 +05:30
Ashwin Kumar Sivakumar
b4f371d415 Encrypt all secrets with SOPS, add Flux decryption support, rotate JWT_SECRET/AI_SERVICE_KEY
- Add .sops.yaml (age) and encrypt every plaintext Secret manifest in apps/
- Commit the Flux GitRepository/Kustomization (previously only applied manually)
  with a decryption stanza referencing the sops-age key (created out-of-band,
  not committed)
- Rotate JWT_SECRET (previously exposed in plaintext) and set a real
  AI_SERVICE_KEY (was an empty placeholder), shared between
  nxtgauge-backend-rust and nxtgauge-ai-assistant
- Wire JWT_SECRET into the ai-assistant deployment (was missing entirely,
  causing every authenticated request to fail)
- Redact the leaked LiteLLM production master key from README/OPENCODE_CONNECT
  docs; move the litellm prod overlay off a plaintext secretGenerator onto an
  encrypted patch
2026-07-02 17:56:28 +05:30
Ashwin Kumar Sivakumar
8515bcd3fe Merge branch 'main' of https://github.com/Traceworks2023/nxtgauge-gitops
# Conflicts:
#	apps/nxtgauge-admin-solid/overlays/prod/release-patch.yaml
#	apps/nxtgauge-backend-rust/overlays/prod/backend-release-state.tsv
#	apps/nxtgauge-backend-rust/overlays/prod/release-patches.yaml
#	apps/nxtgauge-frontend-solid/overlays/prod/release-patch.yaml
2026-07-02 17:26:04 +05:30
github-actions[bot]
98a9b9fb56 chore(gitops): deploy ai-assistant@2e0b986e20fda5a7bce07b2d5699599c171f442d 2026-07-02 11:55:00 +00:00
github-actions[bot]
041e3fc68d chore(gitops): deploy ai-assistant@e33ed2192c3cf9172888a6b3d9e77a9cb52b2892 2026-07-02 01:24:15 +00:00
github-actions[bot]
cb07580e70 chore(gitops): deploy backend ugc-content-creators@508242727996f205121b6759170a78fcc2851b5d 2026-06-26 20:23:28 +00:00
github-actions[bot]
1c2eee9c80 chore(gitops): deploy backend cron@508242727996f205121b6759170a78fcc2851b5d 2026-06-26 20:21:50 +00:00
github-actions[bot]
5c9a225763 chore(gitops): deploy backend catering-services@508242727996f205121b6759170a78fcc2851b5d 2026-06-26 20:17:43 +00:00
github-actions[bot]
8120fe6691 chore(gitops): deploy backend social-media-managers@508242727996f205121b6759170a78fcc2851b5d 2026-06-26 20:17:08 +00:00
github-actions[bot]
c2c083c762 chore(gitops): deploy backend fitness-trainers@508242727996f205121b6759170a78fcc2851b5d 2026-06-26 20:16:46 +00:00
github-actions[bot]
172f69d3a5 chore(gitops): deploy backend graphic-designers@508242727996f205121b6759170a78fcc2851b5d 2026-06-26 20:10:49 +00:00
github-actions[bot]
05e9e4e255 chore(gitops): deploy backend developers@508242727996f205121b6759170a78fcc2851b5d 2026-06-26 20:09:16 +00:00
github-actions[bot]
fd6466cea3 chore(gitops): deploy backend video-editors@508242727996f205121b6759170a78fcc2851b5d 2026-06-26 20:09:07 +00:00
github-actions[bot]
515f14eaa8 chore(gitops): deploy backend tutors@508242727996f205121b6759170a78fcc2851b5d 2026-06-26 20:04:02 +00:00
github-actions[bot]
834f3cdc78 chore(gitops): deploy backend cron@cd3fbfe7caaea42a438fea484eafcd1d85d16f17 2026-06-26 20:01:37 +00:00
github-actions[bot]
244002b0e8 chore(gitops): deploy backend makeup-artists@508242727996f205121b6759170a78fcc2851b5d 2026-06-26 20:01:23 +00:00
github-actions[bot]
c86864709b chore(gitops): deploy backend ugc-content-creators@cd3fbfe7caaea42a438fea484eafcd1d85d16f17 2026-06-26 19:57:43 +00:00
github-actions[bot]
77bf405680 chore(gitops): deploy backend photographers@508242727996f205121b6759170a78fcc2851b5d 2026-06-26 19:57:12 +00:00
github-actions[bot]
7bdbc99e72 chore(gitops): deploy backend catering-services@cd3fbfe7caaea42a438fea484eafcd1d85d16f17 2026-06-26 19:53:26 +00:00
github-actions[bot]
d1c2976184 chore(gitops): deploy backend fitness-trainers@cd3fbfe7caaea42a438fea484eafcd1d85d16f17 2026-06-26 19:51:00 +00:00
github-actions[bot]
753d11cac6 chore(gitops): deploy backend employees@508242727996f205121b6759170a78fcc2851b5d 2026-06-26 19:49:31 +00:00
github-actions[bot]
6f5fed6ac1 chore(gitops): deploy backend payments@508242727996f205121b6759170a78fcc2851b5d 2026-06-26 19:45:16 +00:00
github-actions[bot]
41d2c456ba chore(gitops): deploy backend social-media-managers@cd3fbfe7caaea42a438fea484eafcd1d85d16f17 2026-06-26 19:44:07 +00:00
github-actions[bot]
24d6bc698d chore(gitops): deploy backend customers@508242727996f205121b6759170a78fcc2851b5d 2026-06-26 19:42:37 +00:00
github-actions[bot]
34c7734a0d chore(gitops): deploy backend graphic-designers@cd3fbfe7caaea42a438fea484eafcd1d85d16f17 2026-06-26 19:37:35 +00:00
github-actions[bot]
891c0fc90a chore(gitops): deploy backend video-editors@cd3fbfe7caaea42a438fea484eafcd1d85d16f17 2026-06-26 19:37:05 +00:00
github-actions[bot]
15939ab952 chore(gitops): deploy backend job-seekers@508242727996f205121b6759170a78fcc2851b5d 2026-06-26 19:35:49 +00:00
github-actions[bot]
5da33729e1 chore(gitops): deploy backend leads@508242727996f205121b6759170a78fcc2851b5d 2026-06-26 19:29:55 +00:00
github-actions[bot]
9919cefb26 chore(gitops): deploy backend developers@cd3fbfe7caaea42a438fea484eafcd1d85d16f17 2026-06-26 19:29:32 +00:00