Preserve upstream X-Forwarded-Host instead of overwriting with own Host
When an upstream proxy (Next.js) sets X-Forwarded-Host to the browser's original host, APIService now preserves it instead of overwriting with its own Host head...
Route /api/notes to KBService instead of SecurityService
Notes management has been moved from SecurityService to KBService.
Explicitly forward visitor IP to downstream services
ForwardedHeaderFilter consumes X-Forwarded-For from the incoming request, so when APIService forwards to SecurityService via RestTemplate the header is missing....
Move AccessEnforcementFilter to scanned package, revert ComponentScan
The widened @ComponentScan caused a corsFilter bean conflict between CorsConfig and WebConfig. Moved the filter into com.kamo.api.app.config (already scanned by...
Add Redis connection config to K8s configmap
APIService pod was failing to start because spring-boot-starter-data-redis auto-configuration couldn't connect to Redis at localhost:6379. Points to redis.kamo....
Add access enforcement filter for IP-based access control
Redis-backed servlet filter that evaluates whitelist/blacklist/temp-block rules on every inbound request. Adds spring-boot-starter-data-redis dependency and Red...
Add OAuth callback forwarding with no-redirect RestTemplate
- Add noRedirectRestTemplate bean (HttpClient.Redirect.NEVER) so the 302 from VOIPService's OAuth callback is passed through to the browser instead of being...
Add proxyDav route, fix forward() body guard for DAV methods, add email service URL
Add gateway routes for KB and RAG services
- /api/kb/** routes to kamowskb-service - /api/rag/** routes to kamowsrag-service - Updated application.yml and k8s configmap with service URLs
Add /wopi/** route forwarding to DocsService
Docs needs to reach WOPI endpoints via api.kamocrm.com.
Use JdkClientHttpRequestFactory to support PATCH method forwarding
The default RestTemplate uses SimpleClientHttpRequestFactory (HttpURLConnection) which doesn't support the PATCH HTTP method, causing branch-titles save to fail...
Fix kubeconfig update to use WireGuard VPN IPs (10.8.x.x) instead of old Tailscale IPs
Refactor to parallel deployment for k1m1 and k2m1
- Split build and deployment into separate jobs - Deploy to k1m1 and k2m1 in parallel after build completes - Reduces total deployment time significantly
Revert to docker driver for faster builds - removes docker-container overhead
Switch to docker-container driver with cache for optimal build performance
Add Buildx setup with insecure registry config to resolve 401 auth errors
Add preStop hooks, probes, and increase termination grace period to prevent deployment timeouts
Properly forward multipart/form-data by rebuilding parts for RestTemplate
Revert "fix(proxy): route /api/security/imaging/* to SecurityService /api/imaging/*"
This reverts commit ****************
Trigger pipeline to pick up latest kamo-shared-library (OrganizationRepository fix)
Remove invalid CockroachDB202Dialect from configmap - use auto-detection
Update to use static Tailscale IPs for kubectl and k1m1 hostname for DB
Add diagnostics route to forward /api/diagnostics/** to SecurityService
Like what you see shipping?
All of it arrives in your workspace on its own. Start on the free plan and read this page again in a month.
