Release Notes #
Information about release notes of INFINI Gateway is provided here.
Latest (In development) #
โ Breaking changes #
๐ Features #
๐ Bug fix #
โ๏ธ Improvements #
1.29.8 (2025-07-25) #
โ Breaking changes #
๐ Features #
๐ Bug fix #
โ๏ธ Improvements #
- This release includes updates from the underlying Framework v1.2.0, which resolves several common issues and enhances overall stability and performance. While there are no direct changes to Gateway itself, the improvements inherited from Framework benefit Gateway indirectly.
1.29.7 (2025-06-29) #
โ Breaking changes #
๐ Features #
๐ Bug fix #
โ๏ธ Improvements #
- This release includes updates from the underlying Framework v1.1.9, which resolves several common issues and enhances overall stability and performance. While there are no direct changes to GATEWAY itself, the improvements inherited from Framework benefit GATEWAY indirectly.
1.29.6 (2025-06-13) #
โ Breaking changes #
๐ Features #
๐ Bug fix #
โ๏ธ Improvements #
1.29.4 (2025-05-16) #
โ Breaking changes #
๐ Features #
๐ Bug fix #
โ๏ธ Improvements #
- fix: code
formatandlinterror
1.29.3 (2025-04-27) #
Breaking changes #
Features #
- Add support for HTTP process compression (#90)
Bug fix #
Improvements #
1.29.2 (2025-03-31) #
This release includes updates from the underlying Framework v1.1.5, which resolves several common issues and enhances overall stability and performance. While there are no direct changes to Gateway itself, the improvements inherited from Framework benefit Gateway indirectly.
1.29.1 (2025-03-14) #
This release includes updates from the underlying Framework v1.1.4, which resolves several common issues and enhances overall stability and performance. While there are no direct changes to Gateway itself, the improvements inherited from Framework benefit Gateway indirectly.
1.29.0 (2025-02-27) #
This release includes updates from the underlying Framework v1.1.3, which resolves several common issues and enhances overall stability and performance. While there are no direct changes to Gateway itself, the improvements inherited from Framework benefit Gateway indirectly.
1.28.2 (2025-02-15) #
This release includes updates from the underlying Framework v1.1.2, which resolves several common issues and enhances overall stability and performance. While there are no direct changes to Gateway itself, the improvements inherited from Framework benefit Gateway indirectly.
1.28.1 (2025-01-24) #
Features #
- Support simple bulk metadata in bulk related filters (#59)
- Seamlessly retry requests on backend failure for the Elasticsearch filter (#63)
Improvements #
- Remove unnecessary node re-selection on schema mismatch for elasticsearch filter (#62)
1.28.0 (2025-01-11) #
This release includes updates from the underlying Framework v1.1.0, which resolves several common issues and enhances overall stability and performance. While there are no direct changes to Gateway itself, the improvements inherited from Framework benefit Gateway indirectly.
1.27.0 (2024-12-13) #
Breaking Changes #
- Update default branch for vendor
Features #
- Auto-issue certificates for domains
- Support filter config file (#620)
- Add configs parameter allow_generated_metrics_tasks
- Add parameter context for ES API ClusterHealth and ClusterStats
- Support passing query parameter level to cluster health API
- Crontab task support for timezones
- Support timezone draft
- Customize event queue
Bug Fixes #
- Rollback for client registration
- Reload when file is in dirty read
- Prevent consumer from advancing beyond writerโs segment
- Fix wait group usage in bulk indexing processor
- Query string query was ignored (#588)
Improvements #
- Refactor system configuration
- Add UUID to WebSocket session
- Add utility to parse parameters, panic on missing
- Adjust logging format
- Refactor inflight check
- Update license header
- Add utility to register schema
- Log with IP and agent register during agent restart
- Update CLI naming style (#589)
1.26.1 (2024-08-13) #
Improvements #
- Keep the same version number as INFINI Console.
- Synchronize updates for known issues fixed in the Framework.
1.26.0 (2024-06-07) #
Improvements #
- Add wildcard_domain filter
- Remove security filter and translog_viewer
1.25.0 (2024-04-30) #
Improvements #
- Add push err and log pop timeout err
Bug fix #
- Fix date_range_precision_tuning work with filter query
1.24.0 (2024-04-15) #
Improvements #
- Refactoring http client tls config
- Write field routing to bulk metadata when field _routing exists in scrolled doc
Bug fix #
- Fix(reshuffle filter): make sure queue config always have label
type - Fix rotate config usage
1.23.0 (2024-03-01) #
Bug fix #
- Fix consumer offsets were not reset after deleting instance queues.
1.22.0 (2024-01-26) #
Bug fix #
- Fix update default EOF max retry times
Improvements #
- Unified version number with INFINI Console
- Optimize bytes pool
- Limit inflight request size
- Add limit to entry
1.21.0 (2023-12-29) #
Bug fix #
- Fix log error when temp file was missing
1.20.0 (2023-12-01) #
Bug fix #
- Fix the number of connections not being released and abnormal memory growth caused by Framework Bug
Improvements #
- Add configuration to allow setting fasthttp client parameters
1.19.0 (2023-11-16) #
Features #
- Add
httpprocessor - Add basic-auth based security to API module
- Allow to register self to config manager
- Allow to panic on config error or not
Bug fix #
- Fix
rewrite_to_bulkthe issue with_typewas missing in newer version - Fix
rewrite_to_bulk, support none-index doc operations
Improvements #
- Update test, assert parse result
1.18.0 (2023-09-21) #
Breaking changes #
- Finally removed
request_body_truncateandresponse_body_truncatefilter
Features #
- Support kafka based replication
- Add
_util.generate_uuidto request context - Add
_util.increment_id.BUCKET_NAMEto request context - Add
singletonto pipeline config, prevent multiple pipelines running at the same time - Add a pluggable distributed locker implementation
- Add a general
preferenceconfig for application - Generalize abstraction for queue, refactoring disk_queue, complete kafka implementation
- Add
merge_to_bulkprocessor, retiredindexing_mergeprocessor - Add
flow_replayprocessor, retiredflow_runnerprocessor - Add
replication_correlationfor replication use case - Add
hash_modfilter - Add new parameters to
bulk_response_processfilter - Add
request_reshufflefilter - Add resource limit, allow to set max number of cpus or binding affinity
- Support nested variables in template
- Add
rewrite_to_bulkfilter
Bug fix #
- Fix retry delay was not working in pipeline
- Fix number was not supported in template
- Fix queue selector by labels, if more than one labels specified, they should all match together neither any match should be found
Improvements #
- Lowercase all module names
- Prefetch elasticsearch metadata during start
- Adding a shutdown signal to application scope
- Refactoring queue api, support kafka management
- Add
enabledto badger module - Allow to register module/plugin with priority
- Unified queue usage and initialization
- Optimize
bulk_reshufflefilter’s performance, add headerX-Bulk-Reshuffledto response - Support to use variables in
queuefilter, allow to output last produced message offset
1.17.0 (2023-07-21) #
Features #
- Add filter
consumerto subscribe message from queue. - Add filter
stmpto send email messages.
Improvements #
- Auto skip corrupted disk_queue file
1.16.0 (2023-06-30) #
Features #
- Add filter
securityto support unified identity management through the Console, and supports LDAP authentication login.
1.15.0 (2023-06-08) #
Breaking changes #
Features #
- Add filter
auto_generate_doc_idto fill UUID during document creation
Bug fix #
- Fix
floating_ipfreqently switched between active and standby - Fix
elasticsearchoverwriting upstreamx-forwarded-forheader. - Fix
queue_consumerhigh CPU usage when queue is empty.
Improvements #
1.14.0 (2023-05-25) #
Breaking changes #
Features #
- Support customize service name
metricsaddeduser_in_msandsys_in_msto track CPU utilization.elasticsearchaddeddial_timeoutoption.
Bug fix #
- Fix missing stdout outputs after real-time logging push turned on.
loggingfixed brokenmin_elapsed_time_in_msoption.- Fix a issue that consumes idle queues causing high CPU usage. โ
1.13.0 (2023-05-11) #
Breaking changes #
Features #
- Allow to toggle each rules in router, disabled by default
- Added support for
loong64architecture. - Added support for
riscv64architecture. elasticsearchaddeddial_timeoutoption.
Bug fix #
- Fix http response header from upstream was not well returned to client
- Fix duplicated running pipelines when hot-reloading pipeline configruations.
bulk_indexingfix leaking goroutines when pipeline stopped or released.
Improvements #
- Prefer to set headers instead of add headers, avoid generate duplicated headers
- Improve the responsiveness of stopping pipeline.
pipelineaddedenabledoption to toggle the pipelines quickly.
1.12.1 (2023-04-20) #
Bug fix #
elasticsearchfix potential http connection close.elasticsearchreturn proper error info when upstream timed out.
1.12.0 (2023-04-06) #
Breaking changes #
bulk_indexingrenamebulk.response_handle.retry_exceptiontobulk.response_handle.retry_rules
Improvements #
bulk_indexingimprove logging and default retry times.
Bug fix #
bulk_indexingfix potential data loss when 429 status encountered.bulk_indeixngfix disk queue file retention rules not working properly.metricsfix prometheus metrics exportingpipelinefix auto-reloadingbadgerfix potential file corruption.bulk_reshufflefix potential memory leaking.
1.11.0 #
Breaking changes #
- Rename condition
has_fieldstoexists
Features #
echoadded more options:status,continue,response,logging,logging_level.switchaddedcontinueandunescapeoptions.- Add max memory setting to system config
- Add flags to set max memory soft limit
Bug fix #
- Fix path init when install service
Improvements #
unescapepath in switch filter by default- Update badger to v4
- Add more memory info to stats
- Escape metric name for prometheus
1.10.0 #
Breaking changes #
bulk_indexingmove bulk response handling controls frombulktobulk.response_handle.
Features #
- Support environment variables in config
- Add option
actiontoratiofilter, allow drop request immediately - Add
context_parserfilter - Add
context_switchfilter - Add
_sys.*to request context
Bug fix #
Improvements #
1.9.0 #
Breaking changes #
- Refactoring config for ip access control
- Disable elasticsearch metadata refresh by default
- Update default config path from
configstoconfig - Remove
sample-configs, moved to dedicated integrated-testing project - Remove field
conntime, update field@timestamptotimestampinloggingfilter - Rename
disorder_tofast_
Features #
- Support listen on IPv6 address
- Add general health api
- Add
request_ipto context - Add badger filter plugin
- Allow to split produce and consume messages from s3
- Add
bulk_request_throttlefilter - Support access request context and more output options in
echofilter - Add
body_jsonto response context - Add cert config to API module, support mTLS
- Add api to clear scroll context
- Floating_ip support stick by
priority - Add keystore util
- Allow to save success bulk results in
bulk_indexingprocessor - Enable watch and reload the major config file
- Support run background job in one goroutine
- Allow to handle async_bulk request logging
- Add config to control cluster health check while cluster not available, set default to false
- Allow to follow redirects in http filter, set default read and write timeout to 30s
- Support collect instance metrics to monitoring gateway
- Add json log format
Bug fix #
- Fix user was removed in logging filter
- Fix incorrect message size issue, reload when files changed in disk_queue
- Fix issue that
index_diffcould not finished automatically - Fix hostname was not well updated in filter
set_request_headerorset_hostname - Fix to check consumer’s lag instead of queue’s lag in
flow_runnerprocessor - Fix file not found error for disk_queue
- Fix the delete requests was not proper handled in filter
bulk_reshuffle,bulk_request_mutateandbulk_indexingprocessor - Fix memory leak caused by misuse of bytes buffer
- Fix to handle the last request in replay processor
- Fix url args was not updated after change
- Fix memory leak when serving high-concurrent requests
- Fix nil id caused error when using sliced workers in
bulk_indexingprocessor - Fix index name with dot
- Refactoring time fields for orm, skip empty time
- Refactoring stats, allow to register extended stats
- Fix to restart gateway entrypoint on flow change
- Update ratio filter, fix random number, add header to ratio filter
- Fix query parameter
no_cachewas not well respected inget_cachefilter - Fix single delete request was ignored in bulk requests
- Fix request mutate filter
Improvements #
- Remove newline in indexing_merge and json_indexing processor
- Improve instance check, add config to disable
- Add option
skip_insecure_verifyto s3 module - Improve instance check, enable config to disable
- Update the way to get ctx process info, optimize memory usage
- Improve indexing performance for
bulk_indexingprocessor - Refactoring disk_queue, speedup message consumption
- Enable segment compress for disk_queue by default
- Skip download s3 files when s3 was not enabled
- Add option to log warning messages for throttle filters
- Optimize hash performance for getting primary shardID and partitionID
- Add cache for get index routing table
- Optimize performance for bulk response processing
- Refactoring bulk_processor, pass meta info to payload func
- Don’t call payload func for delete action
- Improve queue consumer’s lag check
- Enable prepare flat files ahead for read by default, skip unnecessary file
- Add object pool for xxhash
- Refactoring disk_queue, handle consumer in-flight segments in memory
- Add config to remove duplicated newline for bulk_processor
- Add metric timestamp in stats api
- Improve error on routing table missing
- Refactoring bytes buffer and object pool, expose metrics via API
- Refactoring tasks pooling, support throttle and unified control
- Optimize badger file size and memory usage
- Refactoring time fields for orm, skip empty time
- Refactoring stats, allow to register extended stats
- Refactoring to handle bulk response results
- Add client_session_cache_size to tls setting
- Safety add newline to each bytes when handle bulk requests
1.8.1 #
Bug fix #
- Remove newline in document for processor
es_scrollanddump_hash
1.8.0 #
Breaking changes #
- Remove config
compress_on_message_payloadfrom disk_queue - Rename parameter
consumertonameinconsumer_has_lagcondition - Remove redundancy prefix name of the disk_queue files
Features #
- Add segment level based disk_queue file compression
Bug fix #
- Fix nil host in
bulk_indexingprocessor - Fix nil body in
bulk_response_processfilter - Fix sliced consume in
bulk_indexingprocessor
Improvements #
- Handle bulk stats to
bulk_response_processand used inloggingfilter
1.7.0 #
Breaking changes #
Features #
- Add prometheus format to
statsAPI - Add
redirectfilter - Add
context_flowtoflowfilter - Add
permitted_client_ip_listtorouter - Add Centos based docker image
Bug fix #
- Fix
date_range_precisionfilter failed to parse on specify field - Fix disk usage status in windows platform
Improvements #
- Merge events during config change, prevent unnecessary reload
- Handle templates when loading config
- Add cache to
ldap_authfilter
1.6.0 #
Breaking changes #
- Update disk_queue folder structure, use UUID as folder name instead of the queue name
- Parameter
modewas removed frombulk_reshufflefilter, onlyasyncwas supported - Rename filter
bulk_response_validatetobulk_response_process
Features #
- Add metadata to queue
- Support subscribe queue by specify labels
- Support concurrent worker control for
bulk_indexingprocessor - Auto detect new queues for
bulk_indexingprocessor - Allow to consume queue messages over disk queue
- Auto sync disk_queue files to remote s3 in background
- Add api to operate gateway entry
- Support plugin auto discovery
- Add API to operate gateway entities
- Filter
bulk_request_mutatesupport remove_typein bulk requests for es v8.0+ - Add elasticsearch adapter for version 8.0+
- Add
httpfilter for general reverse proxy usage, like proxy Kibana - Add
consumer_has_lagcondition to check queue status - Add
recordfilter to play requests easier - Add zstd compress to disk_queue, disabled by default
- Add
disorder_bulk_indexingprocessor - Add
javascriptfilter - Add
prefixandsuffixto when conditions - Add
indexing_mergeprocessor
Bug fix #
- Fix
date_range_precision_tuningfilter for complex range query - Fix node availability initially check
- Fix
basic_authfilter not asking user to input auth info in browser - Fix
nullid not fixed in filterbulk_request_mutateandbulk_reshuffle - Fix
switchfilter not forwarding whenremove_prefixwas disabled - Fix buffer was not proper reset in
flow_runnerprocessor - Fix entry not loading the pre-defined TLS certificates
- Fix
set_basic_authnot proper reset previous user information - Fix
elapsedin request logging not correct - Fix
switchfilter, usestrings.TrimPrefixinstead ofstrings.TrimLeft - Fix the last query_string args can’t be deleted, parameter
no_cacheinget_cachefilter fixed - Fix s3 downloaded file corrupted
Improvements #
- Handle http public address, remove prefix if that exists
- Refactor
bulk_reshufflefilter andbulk_indexingprocessor - Should not fetch nodes info when elasticsearch discovery disabled
- Seamless consume queue message across files
- Persist consumer offset to local store
- Add API to reset consumer offset
- Refactoring ORM framework
- Expose error of mapping put
- Refactoring pipeline framework
- Improve multi-instance check, multi-instance disabled by default
- Add CPU and memory metrics to stats api
- Seamless fetch queue files from s3 server
- Proper handle 409 version conflicts in bulk requests
- Allow memory queue to retry 1s when it is full
- Proper handle the cluster available check
- Proper handle the cluster partial failure check
- Exit bulk worker while no new messages returned
1.5.0 #
Breaking changes #
Features #
- Add API to scroll messages from disk queue
- Prevent out of space, disk usage reserved for disk_queue
- Add
context_filterandcontext_limiterfor general purpose - Add
bulk_request_mutatefilter - Add
basic_authfilter - Add
set_contextfilter - Add
context_regex_replacefilter - Add
to_stringproperty torequestandresponsecontext
Bug fix #
- Fix bulk response validate incorrectly caused by jsonParser
- Fix nil exception in
request_path_limitercaused by refactoring - Fix big size document out of order caused by bulk buffer
Improvements #
- Fix TCP not keepalived in some case
- Add closing progress bar to pipeline module
- Add
retry_delay_in_msconfig to pipeline module - Handle partial failure in bulk requests
- Optimize scroll performance of
dump_hashprocessor - Improve API directory
1.4.0 #
Breaking changes #
- Rename flow config
filter_v2tofilter, only support new syntax - Rename pipeline config
pipelines_v2topipeline,processorstoprocessor, only support new syntax - Rename filter
request_loggingtologging - Merge dump filters to
dumpfilter - Response headers renamed, dashboard may broken
- Remove filter
request_body_truncateandresponse_body_truncate
Features #
- Add option to disable file logging output
- Add option
compresstoqueue_consumerprocessor
Bug fix #
- Fix invalid host header setting in elasticsearch reverse proxy
- Fix cluster available health check
- Fix gzip encoding issue for requests forwarding
Improvements #
- Support string type in
incondition
1.3.0 #
Breaking changes #
- Switch to use
pipelines_v2syntax only - Rename filter
disk_enqueuetoqueue - Rename processor
disk_queue_consumertoqueue_consumer - Rename filter
redistoredis_pubsub
Features #
- Refactoring pipeline framework, support DAG based task schedule
- Add
dump_hashandindex_diffsprocessor - Add
redisoutput andredisqueue adapter - Add
set_request_query_argsfilter - Add
ldap_authfilter - Add
retry_limiterfilter - Add
request_body_json_setandrequest_body_json_delfilter - Add
statsfilter - Add
health_checkconfig toelasticmodule - Add API to pipeline framework, support
_startand_stoppipelines
Bug fix #
- Fix data race issue in bulk_reshuffle
- Fix
fix_null_idalways executed in bulk_reshuffle - Auto handle big sized documents in bulk requests
Improvements #
- Refactoring flow runner to service pipeline
- Optimize CPU and Memory usage
- Optimize index diff service, speedup and cross version compatibility
- Set the default max file size of queue files to 1 GB
- Proper handle elasticsearch failure during startup
- Support custom depth check to
queue_has_lagcondition - Support multi hosts for elasticsearch configuration
- Add parameter
auto_startto prevent pipeline running on start - Add
keep_runningparameter to pipeline config - Safety shutdown pipeline and entry service
- Support more complex routing pattern rules
1.2.0 #
Features #
- Support alias in bulk_reshuffle filter.
- Support truncate in request_logging filter.
- Handle 429 retry in json_indexing service.
- Add forcemerge service.
- Add
response_body_regex_replacefilter. - Add
request_body_regex_replacefilter. - Add
sleepfilter. - Add option to log slow requests only.
- Add cluster and bulk status to request logging.
- Add
filter_v2and support_ctxto access request context. - Add
dump_contextfilter. - Add
translogfilter, support rotation and compression. - Add
set_responsefilter. - Add
set_request_headerfilter. - Add
set_hostnamefilter. - Add
set_basic_authfilter. - Add
set_response_headerfilter. - Add
elasticsearch_health_checkfilter. - Add
dropfilter.
Bug fix #
- Fix truncate body filter, correctly resize the body bytes.
- Fix cache filter.
- Fix floating_ip module.
- Fix dirty write in diskqueue.
- Fix compression enabled requests.
- Fix date_range_precision_tuning filter.
- Fix invalid indices status on closed indices #23.
- Fix document hash for elasticsearch 6.x.
- Fix floating_ip feature run with daemon mode.
- Fix async bulk to work with beats.
Improvements #
- Optimize memory usage, fix memory leak.
Acknowledgement #
Thanks to the following enterprises and teams #
- China Everbright Bank, China Citic Bank, BSG, Yogoo
Thanks to the following individual contributors #
- MaQianghua, YangFan, Tanzi, FangLi
1.1.0 #
- Request Logging and Dashboard.
- Support ARM Platform [armv5\v6\v7\v8(arm64)].
- Fix Elasticsearch Nodes Auto Discovery.
- Add Request Header Filter.
- Add Request Method Filter.
- Add Sample Filter.
- Request Logging Performance Optimized (100x speedup).
- Add Request Path Filter.
- Add Debug Filter.
- Add User Info to Logging Message.
- Support Routing Partial Traffic to Specify Processing Flow (by Ratio).
- Support Traffic Clone, Support Dual-Write or 1:N Write.
- Elasticsearch topology auto discovery, support filter by nodes,tags,roles.
- Backend failure auto detection, auto retry and select another available endpoint.
- Floating IP feature ready to use.
- Add bulk_reshuffle filter.
1.0.0 #
- Rewritten for performance
- Index level request throttle
- Request caching
- Kibana MAGIC speedup
- Upstream auto discovery
- Weighted upstream selections
- Max connection limit per upstream