<!-- markdownlint-disable no-duplicate-heading -->

# Change Log

## 0.24.2 (2026-03-30)
### Changed
- chore: bump @interopio/gateway to 0.25.3
- chore: bump undici to 7.24.6

## 0.24.1 (2026-03-25)
### Changed
- chore: bump @interopio/gateway to 0.25.2
- chore: bump ws to 8.20.0
- chore: bump undici to 7.24.5

## 0.24.0 (2026-03-22)
### Added
- feat: move build sea as part of the cli (npx @interopio/gateway-server build)###
### Changed
- chore: bump @interopio/gateway to 0.25.1
- chore: bump undici to 7.24.4

## 0.23.1 (2026-03-13)
### Fixed
- fix: legacy config token-ttl
- fix: cleanup Unix domain socket on shutdown
### Changed
- chore: bump tough-cookie to 6.0.1
- chore: bump undici to 7.24.0

## 0.23.0 (2026-02-23)

### Fixed
- fix: config exports
- fix: MacOS SEA build
### Changed
- chore: bump @interopio/gateway to 0.25.0

## 0.22.0 (2026-02-20)

### Added
- feat: support config from gateway-server.config.{js,mjs,cjs,ts,mts,cts,json} files (with auto config file detection)
- feat: management of the server via ipc (info and shutdown commands implemented for now, more to come)
- feat: cli manage command
### Changed
- chore: bump @interopio/gateway to 0.24.0
- feat: config is now in separate ts.d
### Fixed
- fix: malformed http host/x-forwarded-host header handling

## 0.21.0 (2026-01-27)

### Added
- feat: support for static resources (+ welcome page detection)
- feat: support for config from JSON
- feat: disable auth/ssl via --no-auth/--no-ssl/--no-tls options
- feat: middleware support for test clients
- feat: support for disabling metrics and mesh via config

### Changed
- `gateway-server` cli no longer exposes gateway by default (--gateway option is needed)

### Fixed
- fix: headers mapping in test client

## 0.20.0 (2026-01-20)

### Added
- gateway-server cli (npx @interopio/gateway-server -p 8385)
- feat: multiple gateways per principal
- auto-generate Dev Root CA and/or server key/cert (if ssl is configured and no explicit cert/key/ca are set)
- mTLS (x509) authentication
- dynamic users in sqlite (requires node:sqlite i.e. node 22.5.0+) (used by http basic and x509 auth)

### Changed
- bump minimal node 20 version to 20.18 (needed for URL.parse)
- bump ws to 8.19.0
- bump undici to 7.18.2
- bump @interopio/gateway to 0.23.0

## 0.19.4 (2025-12-08)
### Added
- property to access the bound server address info

### Changed
- imports now use .ts extensions

## 0.19.3 (2025-12-05)
### Changed
- bump @interopio/gateway to 0.22.3
- fix: ipv6 style ipv4-mapped addresses handling

## 0.19.2 (2025-12-04)
#### Changed
- bump @interopio/gateway to 0.22.2

## 0.19.1 (2025-11-23)
### Fixed
- bump @interopio/gateway to 0.22.1

## 0.19.0 (2025-11-22)
### Added
- feat: action log in gateway-ent compat mode
### Changed
- bump @interopio/gateway to 0.22.0

## 0.18.1 (2025-11-19)
### Fixed
- bump @interopio/gateway to 0.21.1

## 0.18.0 (2025-11-19)
### Changed
- bump @interopio/gateway to 0.21.0

## 0.17.2 (2025-11-18)
### Fixed
- fix: X-Forwarded-For header parsing

## 0.17.1 (2025-11-18)
### Fixed
- fix: ws ping regression

## 0.17.0 (2025-11-17)
### Changed
- bump @interopio/gateway to 0.20.0
- bump http-cookie-agent  to 7.0.3
- bump @glue42/gateway-ent types to 3.3.1

## 0.16.0 (2025-11-14)
### Changed
- bump @interopio/gateway to 0.19.0
### Fixed
- fix: mesh auth config mapping in (gateway-ent) compat mode

## 0.15.0 (2025-11-12)
### Changed
- bump @interopio/gateway to 0.18.0

### Added
- feat: ping for clients can contain timestamp to measure latency (which is now the default behaviour, when specifying interval as number)

### Fixed
- fix: metrics publisher config in (gateway-ent) compat mode

## 0.14.1 (2025-11-04)
### Fixed
- fix: log config is not applied in (gateway-ent) compat mode

## 0.14.0 (2025-11-03)
### Changed
- bump @interopio/gateway to 0.17.0
- bump @glue42/gateway-ent types to 3.3.0
### Fixed
- fix: disable cors by default in (gateway-ent) compat mode

## 0.13.0-beta.2 (2025-10-30)
### Changed
- bump @interopio/gateway to 0.16.2-beta.0

## 0.13.0-beta.1 (2025-10-28)
### Changed
- bump @interopio/gateway to 0.16.1-beta.0

## 0.13.0-beta.0 (2025-10-23)
### Changed
- bump @interopio/gateway to 0.16.0-beta.0 (and use the new logger api)
### Added
- allow users to set http.Server options via config (e.g. maxHeaderSize)

## 0.12.0-beta.0 (2025-10-08)
### Changed
- bump @interopio/gateway to 0.15.0-beta.0

## 0.11.0-beta.3 (2025-10-07)
### Changed
- bump @interopio/gateway to 0.14.1-beta.1

### Fixed
- chore: fix repository directory in package.json

## 0.11.0-beta.2 (2025-10-07)
### Changed
- bump @interopio/gateway to 0.14.1-beta.0

## 0.11.0-beta.1 (2025-10-06)
### Changed
- bump @glue42/gateway-ent types to 3.2.1

## 0.11.0-beta.0 (2025-10-01)
### Changed
- bump @interopio/gateway to 0.14.0-beta.0

## 0.10.0-beta.1 (2025-09-30)

### Changed
- bump undici to 7.16.0
- bump @interopio/gateway to 0.13.1-beta.0
- bump @glue42/gateway-ent types to 3.1.4

### Added
- chore: repository field in package.json
- chore: generate CTRF reports

### Fixed
- gateway-ent exports for cjs

## 0.10.0-beta.0 (2025-09-04)

### Changed
- http body stream now uses BodyChunk (which is now alias for BlobPart) instead of Uint8Array
- upgraded @interopio/gateway to 0.13.0-beta.0
- upgraded tough-cookie to 6.0.0
- upgraded http-cookie-agent to 7.0.2
- undici is now a peer dependency

## 0.9.0-beta.1 (2025-09-03)

### Changed
- upgrade @interopio/gateway to 0.12.2-beta.0

## 0.9.0-beta.0 (2025-09-02)

### Added
- allow disabling cors protocol handling via config

### Fixed
- cors config source autoconfiguration (match only by path to properly handle preflight requests)

## 0.8.1-beta.2 (2025-08-27)

### Changed
- upgrade @interopio/gateway to 0.12.1-beta.1

## 0.8.1-beta.1 (2025-08-26)

### Changed
- test client typings

### Fixed
- complete response on preflight requests

## 0.8.1-beta.0 (2025-08-04)

### Added
- `setRawStatusCode` in `ServerHttpResponse` to set the raw status code

### Fixed
- rest metrics publisher on node 24 should use undici CookieAgent

## 0.8.0-beta (2025-08-02)

### Added
- web test client `@interopio/gateway-server/web/test`
- interop.io developer license agreement

### Fixed
- typing for extending the server app
- gateway client authentication

### Changed
- chore: update esbuild to `0.25.8`
- chore: update eslint to `9.32.0` and typescript-eslint `8.38.0`

## 0.7.0-beta (2025-07-24)

### Added
- web server api
- embeded broker in gateway-ent compat

### Changed
- upgrade `ws` to 8.18.3
- upgrade `@interopio/gateway` to 0.11.1-beta
- updated @glue42/gateway-ent types from 3.1.3
- **BREAKING** mesh auto config removed. will be going to io.Bridge

### Fixed
- min engine set in package.json

## 0.6.2-beta (2025-07-19)

### Fixed
- announce response failure (regression)

## 0.6.1-beta (2025-07-18)

### Fixed
- `gateway-ent` should not require authenticated access to the `gw` route

### Changed
- `Server` header now includes the version of the package

## 0.6.0-beta (2025-07-18)

### Added
- CORS configuration support
- Auth configuration support

### Fixed
- handle `Origin` header with 'null' or 'file://' value

## 0.5.2-beta (2025-07-15)

### Fixed

- upgrade request detection

## 0.5.1-beta (2025-07-15)

### Changed

- upgrade request log message

## 0.5.0-beta (2025-07-04)

### Changed

- updated @glue42/gateway-ent types from 3.1.2
- drop support for Node.js 18
- @interopio/gateway upgraded to 0.10.0-beta
- http-cookie-agent upgraded to ^7.0.1 (requires Node.js 20+)
- tough-cookie upgraded to ^5.1.2
- exclude sources from the package
- **BREAKING** changed ./metrics-rest export to ./metrics/publisher/rest

### Added

- authenticator config compatibility
- global fetch and WebSocket config compatibility
- security support

## 0.4.0-beta (2025-06-04)

initial public release

### Changed

- http-cookie-agent upgraded to ^6.0.8
- undici upgraded to ^6.21.3

## 0.3.0-beta (2025-05-23)

### Changed

- @interopio/gateway upgraded to 0.9.0-beta
- @glue42/gateway-ent upgraded to 3.1.1
- upgrade ws to 8.18.2

### Added

- cluster mesh directory config compatibility

### Fixed

- close websocket clients on shutdown
- ensure relayed websocket messages are marked as text frames

## 0.2.3-beta (2024-12-05)

### Changed

- @interopio/gateway upgraded to 0.8.3-beta
- @glue42/gateway-ent upgraded to 3.0.35 (better typings)

### Fixed

- cluster mesh config compatibility
- crash on /cluster upgrade requests

## 0.2.2-beta (2024-12-03)

### Changed
- @interopio/gateway upgraded to 0.8.2-beta

### Added
- rest metrics publisher with cookie jar

## 0.2.1-beta (2024-11-27)

### Changed
- @interopio/gateway upgraded to 0.8.1-beta (and integrate with ws ping)

# 0.2.0-beta (2024-11-22)

### Changed

- @interopio/gateway upgraded to 0.8.0-beta

### Added
- cors filter
- dummy metrics api

### Fixed

- gateway-ent.d.ts is now copied from @glue42/gateway-ent (instead of referenced)

# 0.1.0-beta (2024-10-26)

### Changed

- @interopio/gateway upgraded to 0.7.0-beta

### Added

- gateway ws server support (moved from @interopio/gateway)

### Fixed

- server no longer crashes if someone sends bad message to a relays socket

## 0.0.3-beta (2024-10-10)

- package fixes

## 0.0.2-beta (2024-10-10)

- package fixes

## 0.0.1-beta (2024-10-10)

Initial Release
