Platform

Use cases

Resources

← Back to Changelog

27th September 2021

Proxy as Code - Dynamically Forward Private Workloads via the Northflank API Client

Northflank is pleased to release new versions of our JS Client (0.3.5) and CLI (0.5.2). In this release, we have added support for programmatic proxy support. It is now easier than ever to connect to multiple TCP and UDP workloads running in a private VPC with Northflank. This enables similar capability as tools such as kubectl forward, kubefwd, and cloudsql-proxy but now via proxy as code.

  • Works with all TCP and UDP traffic
  • Proxy multiple ports per service or addon
  • Bind traffic to local IP addresses
  • Automates local DNS to replicate production endpoints when relevant permissions are enabled
  • Forward as many services and addons as you need with automatic port selection if you have multiple ports are already in use.
  • Inherits existing Northflank RBAC permissions
const forwardingInfo = await apiClient.forwarding.forwardAddon({ projectId, addonId });

const connectionConfig = {
      port: forwardingInfo[0].data?.port,
      host: forwardingInfo[0].data?.address,
      user: process.env.USERNAME,
      password: process.env.PASSWORD,
      database: process.env.DATABASE,
    };

const connection = await mysql.createConnection(connectionConfig);

await connection.connect();

const results = await connection.query("SHOW TABLES;");

await connection.end();

await apiClient.forwarding.stop();

Other features & fixes

  • Added logic for importing database backups from different database versions
  • Added handling to prevent table pagination resetting to the first page after selecting an action item or when the table content was updated
  • Improved handling of renamed and deleted repositories
  • Fixed an issue where importing a MySQL database from an external backup would sometimes fail due to a permission error
  • Fixed addon version header alignment
  • Fixed formatting of list builds API endpoint where data would return an array rather than an object
  • Fixed service URL overflowing the service header on mobile
  • Fixed an issue where database backup could be deleted using the API whilst restore was still in progress
  • Fixed an issue where creating a new deployment service would show an error page and had to be reloaded in some edge cases
  • Fixed external image validation failing in some edge cases

Share this article with your network