Skip to content

Latest commit

 

History

History
433 lines (292 loc) · 33.9 KB

CHANGELOG.md

File metadata and controls

433 lines (292 loc) · 33.9 KB

Changelog

All notable changes to this project will be documented in this file. See commit-and-tag-version for commit guidelines.

0.12.0 (2024-02-10)

Features

  • add admin/cluster endpoint (2c50175)

Bug Fixes

  • avoid undefined usage during shutdown (03df487)
  • buffer initial writes before the underlying socket is open (dc10ff4)
  • save last_ts when learning a new cluster node (d627bef)
  • support tls over cluster transport (fd04093)
  • wrong object passed to learNode (fd757fe)

0.11.0 (2023-09-02)

⚠ BREAKING CHANGES

  • This brings in a protocol version bump and is not compatible with older clients.

Features

  • add command line option to set http agent idle timeout (347caed)
  • migrate to ws-multiplex (4e2f08a)

Bug Fixes

  • add pgsql pool error handler (2c300fa)
  • error message logging (7b2c882)
  • http-ingress: prevent http agent from timing out during an on-going transfer (f7c28ad)
  • improve http ingress upgrade request handling (4b7a678)
  • log stack trace in debug mode (861fd9f)
  • trace logging (b95a6bb)
  • use random node identifiers (db0733f)
  • variable scope (0c7c1a4)
  • whitespace (6a9daae)

0.10.0 (2023-07-20)

Features

  • allow image tag to be overridden (699f7e9)

0.9.1 (2023-06-03)

Features

  • add /health admin endpoint that can be used as a readiness probe (499fdc6)
  • add ability to disable cluster ready state (600d414)
  • helm: add proper lifecycle probes to deployment (f4b23ea)
  • use learnt nodes as peers for k8s peer discovery (e1e92ca)
  • wait 2 * heartbeat interval during startup for peer discovery (3af7012)

Bug Fixes

  • init of storage provider in migration tool (8c727e7)
  • make shutdown more graceful (b39a866)
  • remove debug output (ff36c0c)
  • use the obtained number of entires rather than a hard coded value in status output (537d9a3)

0.9.0 (2023-05-28)

Features

  • add explicit embedded mode (9317092)
  • add extra volume support to helm chart (144f8f5)
  • add postgres storage provider (609e056)
  • add postgres support to helm chart (cf44890)
  • add support for sqlite as a storage option (733f8a7)
  • add tool to migrate data between storage options (c39f637)

Bug Fixes

  • drain tunnel connections on shutdown (58e2b9c)
  • expiry timer not properly cleared on shutdown (ab97623)
  • implement a proper single node lock (54c9482)
  • match on :* rather than * (b1c5969)
  • pass signal to terminate function (bd0a2fb)
  • properly wait for storage provider and lock service to be ready (be0ee0e)

0.8.1 (2023-04-30)

Bug Fixes

  • crash in cluster node socket destroy (01500ee)

0.8.0 (2023-04-30)

This release features a redesigned cluster support, notable changes include

  • In-memory eventually consistent tunnel state rather than using the storage layer.
  • Possibility to use pub/sub with native UDP networking rather than through Redis.
  • Cluster node discovery through IP multicast or K8S headless headless service.

This release also features client multi-connection support for tunnels

Clients can have multiple connections open to the same tunnel with incoming traffic load-balanced in round-robin between connections. Requires version >= 0.8.0 of the exposr client.

Features

  • add cluster support to helm chart (445a5ba)
  • add multicast UDP based eventbus (8200add)
  • add native kubernetes service peer discovery to the UDP eventbus (ce10b72)
  • admin-api: add disconnect endpoint in tunnel admin api (ae2cbc0)
  • admin-api: return full connection details when reading tunnel info (a30d029)
  • allow HMAC cluster message signing key to be set on command line (3e9085d)
  • expose cluster/storage configuration on command line (05f4bad)
  • fully enable tunnel transport multi-connection support (4746eda)
  • helm: add maxConnection support to helm chart (3104648)
  • reject duplicated messages from peer cluster nodes (d9a9899)
  • sign messages emitted on cluster eventbus (8e230d5)
  • support IPv6 in UDP clustering mode (4cfbe43)
  • ws: send reason when closing a websocket transport connection (6d8632a)

Bug Fixes

  • add cluster-udp-port to cluster config group (15f6f1a)
  • better handling of DNS kubernetes peer discovery (78b4732)
  • do not propagate redlock unlock rejections (9d4db47)
  • redlock: avoid error message on shutdown (efb2459)
  • rename the ingress-http-domain option to ingress-http-url (a508b18)
  • stale timer was not properly cleared on received heartbeat (319d294)
  • update helm chart to support k8s native clustering mode (6a5d148)

0.7.1 (2023-03-16)

Bug Fixes

  • api: only try to create tunnels on PUT requests (e7c52f4)
  • config: allow argv to be passed in to the constructor (5e43522)
  • delete the static instance reference (d048674)
  • eventbus: properly destroy the EventBusService (e8f6e4b)
  • eventbus: remove listener on timeout (c9f6d40)
  • eventbus: return message when using waitFor (1395c1f)
  • eventbus: update redis eventbus (f072cb1)
  • ingress: delete instance reference on destroy (c807a1e)
  • listener: properly reference count listeners (978e76b)
  • lock: overhaul lockservice (5feb2cc)
  • memory-eventbus: add missing destroy method (820969a)
  • print origin of exception when logging uncaught exceptions (bf2c582)
  • remove non-printable characters (0a7c9aa)
  • ssh: allow access token to be pass as ssh password (eb52708)
  • ssh: fix typo (b39deef)
  • storage: add missing promise await (7778ca7)
  • storage: check if lock is still held before commit (97c068e)
  • storage: return the value of the delete operation (8bfdfce)
  • storage: update list() to only return max count entries (aa8f65c)
  • storage: update redis storage provider (13c6d4b)
  • storage: use allSettled during destroy (100e01a)
  • trace output (38731e8)
  • tunnel-service: delete instance reference on destroy (95866ad)
  • use _isPermitted instead of equals check (826c084)
  • use class private logging instances (11fb0c6)

0.7.0 (2022-03-10)

Bug Fixes

  • fix the ssh transport when target hostname is set through bindaddr (8c5740a)

0.6.0 (2022-03-01)

⚠ BREAKING CHANGES

  • API property upstream is now called target

  • rename upstream to target (8c43783)

0.5.1 (2022-02-27)

Bug Fixes

  • helm: fix wrong port name for admin api (e41c19b)

0.5.0 (2022-02-27)

⚠ BREAKING CHANGES

  • admin-api: move resources under v1/admin
  • ws-transport: change the ws transport endpoint
  • non-backwards compatible tunnel API

Features

  • add administrative account disabling (6cd6f9a)
  • add graceful shutdown timeout (ec4b07e)
  • admin-api: add API for listing/reading and deleting tunnels (f06a247)
  • admin-api: add endpoint to list accounts (e5ab4ef)
  • admin-api: add verbose flag to account list API (8f72444)
  • admin-api: expose account details (b720320)
  • admin-api: implement account deletion (22da260)
  • force quit on second SIGTERM/SIGINT (6ff89e6)
  • helm: only expose admin api through the admin ingress (3172fd6)
  • split admin service and admin api into separate controllers (f780fab)
  • storage: add support for batch get/read (888b638)
  • tunnel-service: add cursor based listing of tunnels (7066a6d)

Bug Fixes

  • admin-api: move resources under v1/admin (0b9298a)

  • allow API controllers to properly run on the same port (6c6f78f)

  • altname-service: default to empty array (32839c1)

  • api-controller: allow unsetting values (57c4d6b)

  • consider undefined as [] when setting new altnames (2f1faeb)

  • eventbus: call ready callback in next tick (650436b)

  • helm: explicitly set http ingress port (99411fb)

  • http-ingress: destroy altnameservice during shutdown (bd3322f)

  • http-listener: add proper lifecycle handling to http listener (c481627)

  • http-listener: wrap callback in try/catch (d0a4104)

  • move out service references in ORM classes (657d56f)

  • node-socket: destroy tunnelservice reference on destroy (027ff23)

  • share koa instance across controllers using the same listener (a6c43f3)

  • shutdown API controllers before transport and ingress (caeac37)

  • sni-ingress: implement proper graceful destroy (397eed1)

  • ssh-endpoint: implement destroy (97b79b4)

  • ssh-transport: destroy tunnelservice reference on destroy (27606cc)

  • storage: don't multi-query storage layer if array of keys is empty (af3ef90)

  • transport-service: add reference counting (1cabede)

  • tunnel-service: add reference counting to handle lifecycle (76c7e65)

  • tunnel-service: disconnect tunnels on shutdown (4fcfcc9)

  • tunnel-service: fix broken permission check (9bdd3fe)

  • tunnel: create clone method (792344d)

  • update helm ingress template to use networking.k8s.io/v1 (1aea5ff)

  • wait for api controller to become ready at startup (ad44e46)

  • wait for transport to become ready during startup (8a3e2e9)

  • change endpoints to transport in tunnel API (37029fd)

  • ws-transport: change the ws transport endpoint (36274bd)

0.4.4 (2021-10-01)

0.4.3 (2021-08-18)

Bug Fixes

  • add missing return in storage updates (7dd04ab)
  • helm: really fix service name and resource name for admin ingress (98b8371)

0.4.2 (2021-08-18)

Bug Fixes

  • helm: fix service name for admin ingress (1683730)

0.4.1 (2021-08-18)

Bug Fixes

  • helm: wrong resource kind (7bc06d9)

0.4.0 (2021-08-18)

Features

  • use dashes as account number separator (5b87fce)
  • config: group configuration options (11a5ea8)
  • config: smarter config parser (30bf10e)
  • http-ingress: support for BYOD (bring-your-own-domain) (5c0c707)
  • sni-ingress: add ingress-sni-host option (d6bda57)

Bug Fixes

  • config: let tests run without a command line config (8aa8eff)
  • tunnel-service: only refresh connection token on disconnect (74c1cd9)
  • improve error handling during startup (4360904)
  • sni-ingress: add missing destroy() (fb09ad2)
  • ssh-endpoint: use port from ssh-transport-host when constructing endpoint url (18ad9f2)
  • add a handler the uncaughtException event (571b8c6)
  • ssh-transport: use existing ingress urls (cd8ad11)

0.3.1 (2021-08-15)

Bug Fixes

  • helm: add missing template for admin ingress (e4f1024)

0.3.0 (2021-08-14)

Features

  • config: allow ssh host key to be passed base64 encoded (98ef1d5)
  • helm: update helm chart to support new features (1110da6)
  • ingress: add support for SNI ingress (608ec03)

Bug Fixes

  • config: allow multi-value options to be passed as comma separated env. variables (55a98df)

0.2.0 (2021-07-23)

Features

  • add SSH as an alternative tunnel transport (9e9a84e)
  • return configured upstream url in tunnel api (f8b09f7)

Bug Fixes

  • api-controller: don't override existing configuration with undefined values (3222f20)
  • helm: don't require api-url in helm configuration (103afbc)

0.1.5 (2021-07-18)

Bug Fixes

  • helm: fix container image path (46dacf4)

0.1.4 (2021-07-15)

Features

  • http-ingress: send forwarded headers to target (722bd30)
  • don't require api url to be specified (e70b198)

Bug Fixes

  • account-service: remove unused import (548e726)
  • api-controller: organize imports (a1fbd8f)
  • endpoint: move to base64url (4b594b6)

0.1.3 (2021-06-29)

Bug Fixes

  • run with --no-deprecation in container (1c47ef8)
  • http-captor: remove unused variable (9930975)
  • add missing semicolons (4f5e021)
  • account-service: remove unused logger (c7877f3)
  • admin-server: remove unused variable (1b8c6d8)
  • ws-endpoint: add missing await (a2f0eee)

0.1.2 (2021-06-28)

0.1.1 (2021-06-28)

Bug Fixes

  • helm: add missing end to NOTES.txt (aa507fa)
  • helm: fix appVersion tag, should be prefixed with a 'v' (25ad225)

0.1.0 (2021-06-24)

Features

  • admin-controller: convert to using the http-listener (3da7b4f)
  • config: hide obscure options by default (a078a7f)
  • helm: bump helm appVersion on release (e2d61eb)
  • helm: initial helm chart (8e76ae5)
  • unified http request/reponse logging (4cd9740)
  • account: keep last updated timestamp (26951ba)
  • account: keep track of tunnels on account level (77c8a18)
  • http-ingress: get port of http listener (35b4a3b)
  • http-ingress: improve request/response logging (56886d7)
  • http-ingress: prevent request loops (be0fe42)
  • logger: log hostname for each entry (8908958)
  • node: cache node lookups (dc2d110)
  • node-socket: add target node in toString() (2da7b9e)
  • storage: add list() method that can query all keys in a namespace (5fb2ebb)
  • tunnel: keep last updated timestamp on tunnel object (ba87f97)
  • tunnel-server: reset stale connection state on disconnect (0cb3fbd)
  • tunnel-service: preemptively refresh lookup cache (8974cbb)
  • display package and/or build version (49fe22a)
  • return error codes as enum values instead of strings (49a2a27)

Bug Fixes

  • eventbus: decrease max listeners on removelistener event (b4ea1d6)
  • http-captor: 'data' might not be the first listener attached (714c726)
  • http-captor: construct both promises before waiting (c735a78)
  • http-captor: handle undefined (464c96e)
  • http-captor: log request/response time in millis without decimals (53b79f6)
  • http-ingress: agent cache ttl update (a72455d)
  • http-ingress: call correct createConnection (c0c02ae)
  • http-ingress: don't expire http agent with on-going requests (f128db9)
  • http-ingress: improve subdomain matching (599bf33)
  • http-ingress: log path of request (eba9117)
  • http-ingress: make agent cache expiry more resilient (897e711)
  • http-ingress: only remove connection header in certain conditions (ed512fd)
  • http-ingress: return 503 if fail to obtain a socket (2803a9a)
  • http-ingress: use of undefined variable (a8b8ca3)
  • http-listener: return 404 if no handler claims the request (9ae8d9b)
  • logger: add host to logging context (55e36f1)
  • serializer: properly deserialize arrays (25701a1)
  • tunnel-server: delete tunnel state on tunnel deletion (dda2159)
  • tunnel-server: reduce disconnection wait time to 4500ms (d160a3a)
  • tunnel-server: set TTL on initial state creation (9368d73)
  • tunnel-server: use allSettled instead of all (8af3689)
  • tunnel-service: fix tunnel lookup cache expiry (3a6106d)
  • tunnel-service: use of undefined variable (b7b9875)
  • tunnel-service: wrong function called to read node (a60c927)
  • ws-transport: performance improvements (ef42a2a)
  • adminController might not be initialized (35774a0)
  • setTimeout takes ms, TTL is in seconds (9106963)
  • spawnSync syntax (59b85aa)
  • use of uninitialized variable (1f8372a)