All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- CI/CD migrated from GitHub Actions to Jenkins
- Removed
.github/workflows/ci.yml,codeql.yml,dependabot-auto-merge.yml,docs.yml - Added
Jenkinsfileat repo root — triggers on push/merge tomain - Pipeline stages: Lint → Type-check → Test (with coverage) → Build → Build Admin UI → npm publish + tag latest
- Publish is fully automated through Jenkins — do not run
npm publishmanually - Version guard added: if
package.jsonversion is already on npm, publish stage is skipped safely (not failed) .npmrcis written at publish time from Jenkins credentialNPM_TOKENand deleted immediately after- Jenkins credential required:
registry-token(Secret text, scoped to publish stage only)
- Removed
- docs/testing.md: GitHub Actions CI example replaced with Jenkins pipeline snippet
- docs/deployment/DEPLOYMENT_STRATEGY.md: GitHub Actions CI/CD section replaced with Jenkins, checklist updated
- docs/cli/README.md: CLI
--versionoutput updated to0.1.0-beta.4 - .github/WORKFLOWS.md: Rewritten to reflect Jenkins migration, removed stale workflow references
- README: migration file names corrected —
002_audit_logs.sqlnever existed; corrected to002_migration_tracking.sqland added all missing migrations (004through008) - README: Prometheus endpoint path corrected — was documented as
GET /prometheus/metrics; actual endpoint isGET /prometheus-metrics(renamed to avoid conflict with admin UI) - README: Support/Issues links fixed — were pointing to old
tapas100/proxy-serverrepo; updated totapas100/flexgate-proxy - README: Broken doc links fixed —
MANAGEMENT_SCRIPTS.md,AI_CLI_COMPLETE.md,CONTRIBUTING.md,docs/configuration.md,docs/deployment.mdwere all missing; links updated to existing paths - README: Grafana dashboard reference fixed —
grafana/dashboard.jsondoes not exist; updated to reference the live Grafana instance in the Podman stack andinfra/prometheus/alerts.yml - Roadmap: Prometheus metrics moved to Completed —
/prometheus-metricsendpoint was already implemented inapp.ts
- Removed
jadedependency — was a direct production dependency but completely unused. Eliminated 4 CVEs it carried transitively:constantinople(critical — sandbox bypass/RCE),uglify-js(critical — ReDoS),clean-css(moderate — ReDoS),transformers(high — ReDoS) - Upgraded
http-proxy-middleware^2.0.6→^3.0.5— removes the vulnerablepicomatch@2.3.1transitive path. Breaking change handled: proxy event handlers migrated from top-levelonProxyReq/onProxyRes/onErrorto nestedon: { proxyReq, proxyRes, error }(v3 API) - Upgraded
morgan~1.9.1→~1.10.1— fixeson-headersHTTP response header manipulation vulnerability (CVE GHSA-76c9-3jph-rj3q) - Added
overridesinpackage.jsonto force safe transitive dependency versions:picomatch→^4.0.4(fixes ReDoS + method injection CVEs)flatted→^3.4.2(fixes unbounded recursion DoS + prototype pollution)brace-expansion→^5.0.5(fixes zero-step sequence memory exhaustion)
- Result:
npm auditnow reports 0 vulnerabilities (down from 13: 3 critical, 4 high, 3 moderate, 3 low)
- CORS is now restricted — previously
app.use(cors())allowed all origins; now uses an allowlist viaALLOWED_ORIGINSenvironment variable (comma-separated). Defaults to localhost development origins - API rate limiting is now tiered:
globalApiRateLimiter— 100 req/min applied to all/api/*adminApiRateLimiter— 60 req/min applied to admin routes (routes, webhooks, settings, logs, metrics, AI, troubleshooting)authRateLimiter— 5 req/15min on/api/authto prevent brute-force attacks
- New API routes registered in
app.ts:GET|PUT|POST /api/settings— general settings management with validation, sanitization and backupGET|PUT /api/settings/ai— AI provider configurationGET|PUT /api/settings/claude— Claude-specific settingsGET|POST /api/ai— AI analysis endpointsGET|POST|PUT|DELETE /api/ai-incidents— AI incident tracking
This is the initial beta release of FlexGate Proxy available on npm!
- NPM Package: Published as
flexgate-proxyon npm registry - CLI Tool:
flexgatecommand for easy managementflexgate start- Start the gatewayflexgate init- Generate configuration fileflexgate migrate- Run database migrationsflexgate status- Check health status
- Programmatic API: Use as a library in Node.js applications
- Post-Install Guide: Helpful welcome message and quick start
- TypeScript Definitions: Full .d.ts files included
- QUICK_START.md: Get started in 5 minutes guide
- Beta Release Checklist: Complete release process documentation
- Examples: Common use case examples
- Automated Security: Dependabot + CodeQL configured
- Version: Set to 0.1.0-beta.1 for initial beta release
- Package Metadata: Updated author, repository, and npm configuration
- Build Output: Optimized dist/ folder for npm distribution
- Admin UI requires separate build step
- Limited test coverage in some areas
- Performance not yet optimized for high load
- Some advanced features still in development
- @tapas100
1.0.0 - 2026-01-26
-
Core proxy functionality
- HTTP/HTTPS request proxying
- Streaming large responses
- Connection pooling
-
Security
- SSRF protection (IP blacklist, host allowlist)
- Header sanitization
- Request/response size limits
- API key authentication (HMAC-SHA256)
-
Reliability
- Circuit breaker pattern per upstream
- Exponential backoff retries with jitter
- Request/connection/DNS timeouts
- Graceful degradation under load
-
Rate Limiting
- Token bucket algorithm
- Redis-backed distributed rate limiting
- Fallback to local rate limiting
- Per-route configuration
-
Observability
- Structured JSON logging with correlation IDs
- Prometheus metrics (RPS, latency, errors)
- Health check endpoints (live, ready, deep)
- Log sampling (configurable)
-
Configuration
- YAML-based config
- Hot reload support
- Per-route overrides
- Environment variable support
-
Deployment
- Docker support with multi-stage build
- Kubernetes manifests (Deployment, Service, HPA, PDB)
- Docker Compose for local dev
- Prometheus/Grafana stack
-
Documentation
- Comprehensive README
- Threat model analysis
- Observability guide
- Traffic control patterns
- Architectural trade-offs
- Benchmark results
- SSRF protection against cloud metadata endpoints
- Deny-by-default security posture
- Input validation and sanitization
- mTLS support for upstream connections
- OpenTelemetry distributed tracing
- GraphQL federation support
- Admin UI for configuration management
- gRPC proxying
- WebAssembly plugin system