<?xml version="1.0" ?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Northflank Blog</title>
    <link>https://northflank.com/blog</link>
    <description>Code. Build. Deploy. Release. Repeat. The fullstack cloud platform. Regain the initiative and ship smarter. Reduce stress, time and cost.</description>
    <language>en</language>
    <lastBuildDate>2025-12-11T06:45:00.000Z</lastBuildDate>
    <item>
  <title>We reduced network pricing &amp; introduced Melbourne and Tokyo</title>
  <link>https://northflank.com/changelog/reduced-network-pricing-and-introduced-melbourne-and-tokyo</link>
  <pubDate>2025-12-11T06:45:00.000Z</pubDate>
  <description>
    <![CDATA[60% cheaper networking ($0.06/GB) and new PaaS regions, including Tokyo and Melbourne.]]>
  </description>
  <content:encoded>
    <![CDATA[<img src="https://assets.northflank.com/pricing_and_regions_6d0d577ad0.png" alt="We reduced network pricing &amp; introduced Melbourne and Tokyo" />## TL;DR

Effective immediately:

- **Request pricing is removed entirely**
- **Network egress pricing drops from $0.15 → $0.06 per GB**
- **NVMe disk pricing drops from $0.30 → $0.15 per GB per month**

This is a **global price** applied across our **8 existing regions**, with **8 additional regions launching in January**.  

With these reductions, **high-bandwidth applications are now cheaper to operate on Northflank than on AWS and other public clouds**.

---

## Two new regions: Melbourne and Tokyo

Based on customer demand, we’ve launched:

- **Melbourne, Australia** 🇦🇺
- **Tokyo, Japan** 🇯🇵, with **GPU support available at launch**

If you need to deploy workloads into production in these geos, [come chat with us,](https://cal.com/team/northflank/northflank-intro) we can help you size, migrate, and optimise your workloads.

---

# What you can now run more cost-effectively on Northflank

The new disk and network pricing unlocks major savings for teams running bandwidth-heavy or storage-intensive systems. Workloads that now perform better (and cost less) on Northflank compared to AWS include:

### High-bandwidth and real-time applications
- AI inference endpoints with large model outputs  
- Video streaming, VOD processing, and real-time media pipelines  
- Multiplayer game backends and simulation servers  
- Websocket-heavy SaaS platforms 

### Storage-intensive
- Databases and caches (Postgres, MySQL, MongoDB)
- Search clusters (Elasticsearch, Meilisearch)  
- High-IOPS containerised systems benefiting from lower storage cost  

---

# Let’s talk

Enterprise and volume discounts are available for networking and storage. If you’re evaluating how these pricing changes impact your workloads, or planning to deploy in Melbourne or Tokyo, we’re here to help.

**Come [chat](https://cal.com/team/northflank/northflank-intro) with us and we’ll show you how to run faster and cheaper on Northflank.**
]]>
  </content:encoded>
</item><item>
  <title>November 2025 | Product releases</title>
  <link>https://northflank.com/changelog/platform-november-2025-release</link>
  <pubDate>2025-11-27T16:30:00.000Z</pubDate>
  <description>
    <![CDATA[Unified jobs, pipeline-free workflows, dynamic storage, new template features, faster Granite Rapids compute + B200 GPUs, smarter autoscaling, cleaner UI, and a batch of new stack templates.]]>
  </description>
  <content:encoded>
    <![CDATA[<img src="https://assets.northflank.com/Group_1410119482_cc53f26083.png" alt="November 2025 | Product releases" />Here's what we shipped last month.

## **Clusters & Infrastructure**

- **CoreWeave is now a supported Bring Your Own Cloud provider.** You can connect your CoreWeave organisation via API key and immediately create and orchestrate your CoreWeave GPU capacity. 

![cluster-nodepool.png](https://assets.northflank.com/cluster_nodepool_4f75760a11.png)
- **New projects on PaaS in all regions are now deployed on Intel Xeon 6 Granite Rapids** leading to a performance improvement of 30-70% based on the workload. All machines have an all-core turbo frequency of 3.9 GHz and a max turbo frequency of 4.2 GHz, DDR5 memory, local NVME. Northflank can support plans and custom deployments of up to 288vCPU, 2.2TB of memory, 200Gbps of network bandwidth per dedicated node.
- **B200 GPUs in Asia, Europe regions:** Added B200 GPUs in Asia and Europe regions.
- **CoreDNS deployment customisation:** Implemented CoreDNS deployment customisation for nameservers and plugin overrides.
- **Build submission validation for self-hosted clusters:** Added new validation to self-hosted cluster build submissions based on node pool configuration.
- **Configurable Istio ingress gateway name:** The Istio ingress gateway name is now configurable.
- **Improved BYOC cluster error display:** Improved the display of BYOC cluster errors.
- **Improved BYO Registry cluster view:** Improved the BYO Registry cluster detail view.
- **Fixed BYOK cluster spot instances:** Fixed the spot instance behavior for BYOK clusters.

## **Jobs & Workflows**

- **Unified job types**: Northflank cron jobs and manual jobs have been unified into a single Job resource type. Simply enable a schedule, define a crontab, and configure the concurrency policy, time limit, and retry limit. Useful for running migrations, background jobs and training tasks such as Pytorch. These can now be created using the same API endpoint.

![image (34).png](https://assets.northflank.com/image_34_cff521dc4f.png)
- **Volumes can now be linked to Jobs:** Volumes can now be attached to job resources.

![image (35).png](https://assets.northflank.com/image_35_e00f1c01cd.png)

## **Storage & Volumes**

- **Dynamic storage class system:** New storage class system to support dynamic storage classes for BYOC and PaaS clusters.
- **Faster and more dynamic volumes for PaaS:** New PaaS workloads are now deployed with high-performance network-attached NVME with low latency, and a higher level of default IOPS and throughput. Better than 99.999% durability. In the near future, you will be able to configure independent control IOPS and throughput.
- **Performance:**
    - 3,000 minimum IOPS to a maximum of 160,000 IOPS
    - 140MiB/s minimum throughput with a maximum of 2,400 MiB/s
    - 6GB minimum capacity with a maximum of 64TB
- **CI caching:** Northflank combined and build services with Buildkit now support local volume caching on PaaS and BYOC.

![image (36).png](https://assets.northflank.com/image_36_77ad1ba07e.png)

- **Storage scaling for custom addon types:** Support added for scaling storage for persistent volume claims for custom addon types.
- **Auto-attach volumes via Service:** Volumes created on the service are correctly attached to the service on creation.

## **Templates**

- **Template array and object manipulation:** Added a number of template functions to support array and object manipulation.
- **Approval node:** Added a new template node, Approval, which pauses the template and waits for a specified number of users to click approve before continuing.
- **OpenTofu logs:** Adds OpenTofu logs into Template nodes for running or finished runs.
- **OpenTofu plan approval:** Adds option to prompt for OpenTofu plan approval before proceeding with a template run.
- **Creatable values and references in Addon/Volume nodes:** Addon and Volume nodes in templates now allow creatable values and references.
- **Build reuse considers build arguments:** The option for a workflow to reuse a build now takes into account the build arguments that were used for that build.
- **Template run triggers from PR tags:** Added support for triggering templates based on PR tags.
- **Improved template performance:** Improved the performance of template runs and the template UI.
- **Fixed template scaling behavior:** Updating a resource in a template no longer incorrectly scales it when autoscaling is enabled.
- **Template meta bar:** Added a new meta bar component with GitOps info for new template types.
- **Fixed template date display:** Fixed an incorrect date display in template runs.
- **Fixed template editor loading:** The template editor will no longer load at the wrong size under certain conditions.

## **Addons & Databases**


![image (37).png](https://assets.northflank.com/image_37_ac3e8d6312.png)

- **MySQL High Availability direct routing:** Added support to MySQL High Availability for direct routing via K8s services without router deployment.
- **Download helm chart bundles:** Added the option to download an archive file of a helm chart bundle.
- **PostgreSQL readiness probe improvements:** Improved the handling of PostgreSQL readiness probes.
- **Redis probe configuration improvements:** Improved Redis Addon probe configuration to avoid unnecessary probe failures.
- **Fixed PostgreSQL forking edge cases:** Fixed an issue with forking PostgreSQL addons in certain edge cases.
- **Fixed custom addon scaling issues:** Fixes some edge cases where some custom addons were getting stuck in a scaling state.
- **Fixed MySQL HA on large plans:** Fixed some issues with MySQL High Availability addons running on large plans.


## **Domains & Certificates**

- **Certificate expiry validation:** Added validation for certificates that are soon to expire.
- **TLS mode consistency validation:** Fixed an issue with inconsistent TLS modes on subdomains under a wildcard-enabled domain.
- **Wildcard DCV pre-flight check:** Added a pre-flight check for conflicting TXT records on wildcard DCV.
- **Improved domain validation messages:** Improved validation error messages for domains.

## **Builds & Registry**

- **Optimised Docker image checks:** Optimised Docker image checks.
- **Registry enhancements:** Phase one improvements for Docker build upload and pull performance have been released
- **Configurable build container resources:** Added configurable resources for build containers.
- **Advanced buildpack options:** Added the includeGitFolder and fullGitClone options to the buildpack advanced build options.
- **Fixed build stage dependency crash:** Fixed an issue with builds crashing when a stage has multiple identical dependencies.

## **Deployment & Scaling**

- **Custom deployment strategies:** Added custom deployment strategy support allowing users to set their own maxSurge and maxUnavailable values instead of using predefined options.
- **Improved custom metric autoscaling handling:** Improve handling when modifying custom metric autoscaling to prevent issues with stale configuration.

## **Logging & monitoring**

- **Fixed log sink project deletion issue:** Fixed an issue with log sinks getting soft locked when a project they contain is deleted.
- **Improved observability stats loading:** Improved the loading display on observability stats.

## **Security & access control**

- **Project access restrictions for API/RBAC roles:** API and RBAC roles can now be set to be restricted to all projects except the listed ones.
- **Security policy ref support:** Added ref support for security policies.
- **Fixed Directory Sync user updates:** Fixed an issue with Directory Sync users not updating correctly.

## **Integrations**

- **AWS integration JSON view:** Added Verify button for AWS integration when switching to JSON view.
- **Backblaze B2 provider support:** Added Backblaze B2 provider support.
- **Improved GCP permissions UI:** Improved the GCP permissions UI.

## **UI/UX improvements**

- **Addon size value improvements:** Improved the UX of minimum and maximum addon size values.
- **Service creation example values:** Added example values to the service creation UI.

**Improved addon HA selection:** Improved the UI for selecting addon high availability.

- **Command menu favorites:** The command menu now prioritises favourite teams and projects.
- **Keyboard shortcuts for modals:** Commit message and template draft creation modals can be submitted with CMD+Enter / Ctrl+Enter.
- **Resource meta bar improvements:** Improved the resource meta bar.
- **Fixed command menu search persistence:** The command menu no longer has query search strings that incorrectly persist.
- **Fixed modal editor closing**: The preview code view modal no longer closes itself.
- **Fixed addon container status overflow:** Fixed an overflowing addon container status component.
- **Improved deployment page performance:** Improved the performance of the deployment page.

## **Bug fixes**

- **Fixed metrics labels:** Fixed some missing metrics labels.
- **Fixed pricing display:** Fixed the pricing display on Volumes and Addons for invalid configs and fixed the pricing display for vCPU.
- **Fixed undefined metrics query:** Fixed an issue with an undefined metrics query result.
- **Fixed Networking and Resources page data:** Fixed data failing to be displayed on the Networking and Resources pages.
- **Fixed resource spec view duplicates:** Fixed some duplicate fields in resource spec view.
- **Fixed secret file argument substitution:** Fixed some arguments in secret files not correctly being substituted.
- **Fixed global secrets validation:** Fixed a validation error not being displayed for global secrets.
- **Fixed node metrics display:** Fixed the display of node metrics timestamps and undefined metric sets.
- **Fixed command bar error:** Fixed an undefined function error in the command bar menu.
- **Fixed password reset flow:** Fixed some issues with the password reset flow.
- **Fixed team email change prompt:** Fixed an issue where trying to change the email for a team was opening an incorrect settings prompt.
- **Fixed secret group descriptions:** Fixed secret group descriptions not showing on the list view.
- **Fixed environment editor stale values:** Fixed the environment editor saving stale values in certain circumstances.
- **Fixed template JSON cleanup:** Added logic to remove unused keys when inputting JSON to a template.
- **Unified project tabs in templates:** Unified the new and existing project tabs in template project nodes.

## **Stack templates**

- **New stack templates** Added stack templates for [Cal.com](https://northflank.com/stacks/deploy-calcom), [Umami](https://northflank.com/stacks/deploy-umami), [Listmonk](https://northflank.com/stacks/deploy-listmonk), [Directus](https://northflank.com/stacks/deploy-directus), [Infisical](https://northflank.com/stacks/deploy-infisical), [AnythingLLM](https://northflank.com/stacks/deploy-anythingllm), [Langflow](https://northflank.com/stacks/deploy-langflow), [FlowiseAI](https://northflank.com/stacks/deploy-flowiseai), [Dialoqbase](https://northflank.com/stacks/deploy-dialoqbase), [Langtrace](https://northflank.com/stacks/deploy-langtrace), [Meilisearch](https://northflank.com/stacks/deploy-meilisearch), [n8n](https://northflank.com/stacks/deploy-n8n) (updated).]]>
  </content:encoded>
</item><item>
  <title>September 2025 | Product releases</title>
  <link>https://northflank.com/changelog/platform-september-2025-release</link>
  <pubDate>2025-10-07T07:15:00.000Z</pubDate>
  <description>
    <![CDATA[Faster workloads, smarter templates, and new integrations across the platform.]]>
  </description>
  <content:encoded>
    <![CDATA[<img src="https://assets.northflank.com/northflank_changelog_sept_bc86961ad6.png" alt="September 2025 | Product releases" />September brings platform improvements across infrastructure, templates, and developer experience. Faster workloads, more templates, and cleaner UI across the board.

Northflank now runs Kubernetes v1.33 on all major clouds, ships new AI model templates (DeepSeek, GPT OSS, Llama 4, Qwen 3, and more), and adds SolarWinds integration for better log management.

## **🏗 Infrastructure**

### **Enhancements**

- **Kubernetes Version Updates**: Bumped to v1.33 across all major cloud providers (AWS EKS, Azure AKS, Google GKE, Oracle OKE).
- **AWS Infrastructure**: Updated default AMI for AWS node pools for improved security and performance.
- **Signal Handling**: Improved signal forwarding to child processes, honoring Dockerfile STOPSIGNAL definitions for better container lifecycle management.
- **PostgreSQL Improvements**: Enhanced addon forking capabilities for better database management and backup workflows.
- **Addon Restart Behavior**: Improved predictability of addon restarts for better reliability.
- **Startup speed**: Reduced startup speed by 2 seconds for workload containers. 3-4 seconds without the sidecar service mesh. More next month!
- **Enhanced Database Support**: New Northflank-built MySQL versions with improved performance and compatibility.
- **MinIO Updates**: Added version 2025.9.7 for MinIO object storage addon.
- **Docker Registry Migration**: Moved all current deployments dependent on Bitnami Docker images to Northflank's platform registry.

### **Fixed**

- **Addon Management**: Fixed addon stuck deletion issues in certain situations, particularly for addons with TLS & external access disabled.
- **OCI Integration**: Resolved UI issues with Oracle Cloud Infrastructure (OCI) BYOC
- **Performance Optimization**: Northflank resources are applied to worker clusters at least a second faster than before
- **Database Lifecycle**: Deprecated old MongoDB versions as part of ongoing security and maintenance improvements.

## **🧩 Templates**

### **Added**

- **New AI/ML Stack Templates**
    - GPT OSS models
    - DeepSeek (including v3.1)
    - Llama 4
    - Qwen 3 4B (thinking and instruct variants)
    - Kimi models

- **New Guides**
    - https://northflank.com/guides/deploy-langflow-with-northflank
    - https://northflank.com/guides/deploy-anythingllm-with-northflank
    - https://northflank.com/guides/deploy-flowiseai-with-northflank
    - https://northflank.com/guides/deploy-listmonk-with-northflank
    - https://northflank.com/guides/deploy-calcom-with-northflank

- **OpenTofu Enhancements**: Support for idempotent template runs with empty OpenTofu nodes and improved resource deletion workflows with better UX and error handling.
- **Advanced Template Functions**: Expanded template function capabilities for more flexible infrastructure-as-code workflows.
- **Repository Integration**: Added VCS link ID option for repository clone nodes enabling more flexible Git integration.
- **Backup Scheduling**: Added compose reference schema support for addon backup schedules.

### **Enhancements**

- **Visual Editor Improvements**: Enhanced support for passing entire environment variable objects as arguments in visual editor, similar to other template UI components.
- **Template Organization**: Custom addon types now organized in separate collapsible sections, defaulting to expanded when there are 6 or fewer custom types or if the currently selected type is within the section.

### **Fixed**

- **Template Management**: Fixed Organization API templates not saving directory groups on creation and resolved intermittent template decryption issues.

## **👩‍💻 Developer experience**

### **Added**

- **SolarWinds Integration**: Added SolarWinds as a new log sink destination for improved log management.
- **Deploy Safety**: Added confirmation step when clicking "Deploy" button in Build/Commit lists to prevent accidental deployments.
- **BYOC Docker Registries**: Replaced BYOC docker registries with custom docker credentials for improved flexibility.

### **Enhancements**

- **Build Experience**: Updated rebuild button text to say "Build" instead of "Rebuild" when there are no previous builds, and resolved branch names vanishing in branch selector.
- **User Interface Polish**: Updated permission toggle styling to make active/inactive states more obvious at a glance, improved service dashboard spacing with proper gaps between buttons and timestamps, and enhanced action button layouts with better column widths to avoid clipping.
- **Log Management**: Enhanced log sink handling with better multiple URL support (fixed mis-rendering of log lines with multiple http(s):// URLs), improved type filter labels with custom label support, and added pause failure messages to log-sink schema.
- **Template UI**: Hidden progress/errors and unsaved changes when template setup modal is visible for less distractions, and restored editable description fields in page headers.
- **Domain Management**: Improved wildcard subdomain support for top-level domains and enhanced domain search to include domains with no subdomains in search results.

## **See you next month!**]]>
  </content:encoded>
</item><item>
  <title>August 2025 | Product releases</title>
  <link>https://northflank.com/changelog/platform-august-2025-release</link>
  <pubDate>2025-08-31T07:15:00.000Z</pubDate>
  <description>
    <![CDATA[GPUs GPUs GPUs, bring your own registry, Northflank co-pilot, build enhancements and much more.]]>
  </description>
  <content:encoded>
    <![CDATA[<img src="https://assets.northflank.com/northflank_august_changelog_min_e26a0854b0.png" alt="August 2025 | Product releases" />This release brings GPUs front and center with powerful new workload support across in PaaS for A100s, H100s, B200s and more, alongside bring-your-own registry for container builds, expanded logging and addon options, and smarter scheduling. 

We’ve introduced the Northflank AI Co-Pilot to help teams ship faster, streamlined build and template enhancements, and delivered dozens of fixes and improvements across infrastructure, workflows, and developer experience, all to keep scaling on Northflank smoother and more powerful than ever.

## 🏗 Infrastructure & workloads

### Added
- GPU workloads on PaaS: Run AI inference and training on A100s, H100s, B200s and other GPU types at competitive pricing. Includes stack templates, workload scheduling, and plan selection improvements.  
- Push Northflank container builds directly to your own private registry.  
- Northflank hosted Loki can now store logs in GCP storage as well as S3.  
- Northflank Organisation BYOC clusters now support wildcard domains.  
- Added support for snapshot thresholds on addons.  
- Support for custom vnet subnets and Cilium overlay mode on Azure clusters.  
- Global Secrets available at the team level; can be inherited and combined in templates and pulled into projects.  
- Organisation-level API tokens can now be created from existing RBAC roles.  
- PostgreSQL addons now support the `h3-pg` and `pg_partman` extensions.  

### Enhancements
- GPU scheduling logic improved for higher reliability.  
- Horizontal pod autoscaling improved for custom addon types.  
- Metrics added for Bring Your Own Kubernetes (BYOK).  
- Addon disk size limit raised to 1.5TB.  
- More robust handling of PostgreSQL permissions on startup.  
- Improved MySQL HA metrics representation for decimal values.  
- Ceph cluster config options now populate correctly on page load.  
- AWS cluster validation ensures nodes have enough pod capacity before creation.  
- Crontab validation now supports dynamic template arguments.  
- Pod termination dates recalculated correctly after termination events.  
- GCP provisioning error messages now display all errors if multiple occur.  
- Billing system updated: GPU usage requires pre-purchased credits, grace periods are more dynamic.  

### Fixed
- Fixed filtering of GPU plans in workload creation.  
- GPU stack templates now correctly filter regions/clusters based on GPU support.  
- Fixed addon storage overrides when using ref values in templates.  
- Fixed volume creation issues in clusters/regions without multi-RW support.  
- Fixed SSO user login issues during first sign-in.  
- Fixed API tokens being revoked when org roles were modified.  
- Fixed race condition that could crash service dashboard on restart.  
- Fixed PostgreSQL edge case where permissions were reset on startup.  

## 🧩 Templates & workflow

### Added
- Added support for Buildkit build secrets using secret mounts in Northflank builds.  
- Added support for custom addon Helm values in YAML.  
- New workflow loop node in templates, useful for generating multiple nodes dynamically (e.g. with secrets).  

### Enhancements
- Initial stack template configuration UX refined for smoother setup.  
- Template improvements: easier initial creation, draft name/description validation less restrictive, and commit hashes now shown correctly.  

### Fixed
- Template list no longer flashes on load and search works reliably.  
- Template count in projects now shows correct values.  

## 👩‍💻 Developer experience

### Added
- New command menu for faster navigation across resources.  
- Added command exec support in CLI and js-client for custom addon types (BYOA - Bring your own Addon).  
- Introduced AI Copilot Assistant — ask questions about Northflank primitives and platform usage.  
- Team dashboard, BYOC cluster info, and subdomain list redesigned for clarity.  

### Enhancements
- Build logs improved: cache promotion logic accounts for cache misses, log viewer displays all builds, and BuildKit progress is now shown step-by-step.  
- Cluster/node views updated: node pool list now shows architecture, deletion modals clearer, new buttons for cordoning/draining nodes.  
- Networking forms: domain add form has better descriptions; subdomain verification warns when Cloudflare proxy may interfere.  
- Billing page restructured for new credit system and incremental billing.  
- Faster fetching of repos, branches, and PRs from VCS providers.  
- Observe pages now scale better with larger pod counts.  
- Improved validation performance for DockerHub images.  
- General UI polish: sliding tabs highlight active tab, buttons and selectors behave consistently across screens, responsive improvements across many components.  

### Fixed
- White-labelling now shows the correct URL in GitHub deployments.  
- Combined Service fields no longer highlight without input.  
- Resource headers no longer shift when hovering.  
- Fixed display glitches in node affinity tags and volume performance metrics.  
- Password managers (e.g. Bitwarden) now autofill update password prompts correctly.  
- Fixed crashes on node pool form and build options page for legacy services.  
- Fixed log line sharing to use correct timestamp. 
- Fixed subdomain path service selector so project names can be searched.  
- Fixed project list hitting internal rate limits when listing many projects.  
- Fixed display of team/org resource quotas (now has its own page).  
- Audit logs now display deleted users correctly.  

See you next month!]]>
  </content:encoded>
</item><item>
  <title>Platform June 2025 Release</title>
  <link>https://northflank.com/changelog/platform-june-2025-release</link>
  <pubDate>2025-06-30T21:00:00.000Z</pubDate>
  <description>
    <![CDATA[Added support for ARM, BYOC scalability, build caching, secret security, and more. ]]>
  </description>
  <content:encoded>
    <![CDATA[<img src="https://assets.northflank.com/northflank_june_changelog_78842491ac.png" alt="Platform June 2025 Release" />We're pleased to introduce ARM support alongside loads of other improvements.

### Infrastructure & compatibility

- Added ARM support across the platform (builds and deploys in BYOC)
- Added support for PostgreSQL 17 and CephFS with erasure coding.
- Improvements to OCI provisioning and GCP static egress IP setup.
- Support for custom launch templates on AWS with validation.

### BYOC (Bring Your Own Cloud)

- Added pod list and pod metrics to BYOC observe page.
- Added logic for setting GCP clusters to use private nodes.
- Improved validation and error feedback across AWS and Azure provisioning flows.
- Displayed provider ID on node pools and added launch template support to the node pool form.
- Added validation for total node count on Azure (< = 400).
- Ensured Ceph-enabled node pools have at least 3 nodes.
- Fixed template creation issues with BYOC clusters and improved default build plan behavior.

### Builds & caching

- Build cache now supports snapshot mode with status tracking
- Improved UI for build service selection and added fallback handling for older build data.
- Added ephemeral storage metrics to builds.

### Template editor

- Search templates by workflow type.
- Added support for random() functions in template args.
- Improved error rendering for node types and secret handling.

### Networking

- Added subdomain lists to domain view page.
- Rich metadata added to multi-project networking selectors.
- Improved error feedback for GitOps triggers with public repos.

### Secrets & security

- Gracefully handled missing global secrets in the UI.

### Addons

- Added custom backup destination support for dump backups.
- Increased restore timeout duration to 12h.
- Introduced runtime multi-arch support for addons.

### UI/UX improvements

- Updated navigation for team/org entities to match projects.
- Improved help/feedback popovers with live support links.
- Added ability to suppress “new version available” banner.
- Made domain verification steps more visually obvious.
- Improved autosuggestion UX in secrets editor.
- Jobs now display custom command overrides more clearly.

### Metrics & observability

- Included build metrics for ephemeral storage and cache volume state.
- UI improvements for node pool metrics and pod logs display.

### Stack templates
 
- New templates: PostHog, Langfuse, Temporal, Jupyter + TensorFlow (BYOC), Growthbook, Outline.
- Added custom arch display under external image inputs.]]>
  </content:encoded>
</item><item>
  <title>Platform April 2025 Release</title>
  <link>https://northflank.com/changelog/platform-april-2025-release</link>
  <pubDate>2025-05-06T09:16:00.000Z</pubDate>
  <description>
    <![CDATA[Explore the latest Northflank updates: enhanced BYOC support, improved template editor, audit log filters, sticky session load balancing, GitLab fixes, UI upgrades, and performance boosts.]]>
  </description>
  <content:encoded>
    <![CDATA[<img src="https://assets.northflank.com/northflank_April_changelog_min_cde1546e32.png" alt="Platform April 2025 Release" />### BYOC (Bring Your Own Cloud)
- Added PUT and PATCH endpoints for the BYOC API.  
- Added a BYOC Registry template node.  
- Improved the error messaging on BYOC cluster creation.  
- Fixed organisation BYOC clusters sometimes not appearing correctly during project creation.  
- Fixed miscellaneous issues for BYOC in Organisations.  
- Changing BYOC provider types no longer resets shared fields in the editor.  
- Fixed an issue with BYOC creation where the build plan sometimes could not be selected.
- Added support for public nodes on Azure.  
- Added support for non-zonal Azure regions.  
- Increased the maximum number of node pools to 20, for applicable providers.  
- Node pools can no longer be stuck in an uneditable state when adding a node pool without selecting a disk type.  
- Status errors are now displayed more prominently on the node pool page.  
- Node pool diffs for autoscaling are now ignored if previous node pool updates have failed.  
- Improved the UX for selecting Availability Zone subnets.

### Build & Deployment
- Workload autoscaling can now be configured using custom user metrics. 
- The build list now displays the build engine used, which can be hovered over to display additional data about the build settings.  
- Made some reliability improvements to build settings.


### Audit Logs & Events
- Infrastructure events can now be filtered by container.  
- Filters on the audit log and infrastructure events pages now support selecting multiple options, where applicable.  
- Added an audit log tab for clusters.  
- Made a number of visual improvements to infrastructure events.  
- Improved the performance of the audit log and infrastructure event tables.  
- Accessing filters and pagination on the audit log and infrastructure events pages now updates the URL to make sharing easier.  

### Template Editor
- The template editor now correctly allows references to be used in nested preview and release flow triggers.  
- Fixed the encoding of secret files in the template editor when refs or args are used.  
- The template editor no longer displays a 'view unsaved changes' prompt after saving.  
- The URL in the template editor now stores the currently accessed node, making it easier to share to team members.  
- Improved performance on the template run list page.  
- Cancelling a template run no longer displays as an error on an individual node.  
- Improved the performance of the template editor.  
- Fixed an issue where updating the arguments for a template without editing content could not be submitted when template drafts are enabled.  
- Saving a template no longer displays a commit message prompt when no commitable changes have been made.  
- Moving a workflow in the template editor now correctly displays the update immediately.  
- Template action nodes no longer have issues switching between kinds.
- Fixed an issue where the order of ports was not always consistent during creation which could lead to array indexing issues when referenced later in a template.
- Running a template via the API with non-string arguments no longer causes the run to fail as they are now correctly cast to strings.

### Git & Version Control
- Added support for Azure DevOps as a VCS provider
- Made a number of reliability improvements to release flows to improve the handling of git triggers and version control references.  
- Made performance improvements to version control repository syncing, with considerable improvements for teams with very large numbers of repositories.  
- Made a number of reliability improvements to self-hosted GitLab support.  
- The preview template Message node now works correctly with self-hosted GitLab.

### Networking
- Added support for sticky session load balancing.  
- Added consistent routing to services and subdomains.  
- Made a number of visual improvements to the Networking editor.  
- Improved the error display handling for health checks when switching protocol.

### Addons
- Improved performance of RabbitMQ healthcheck probes.
- Fixed the addon fork backup selector not displaying old backups correctly.  
- Resetting a paused addon no longer causes the addon to get stuck.  

### Secrets & Security
- Added additional options to generating secrets in the UI.  
- The password security prompt should no longer appear multiple times in short succession.  
- Fixed an issue with CLI login for organisation scoped API tokens.

### UI/UX Improvements
- GPU metrics now correctly display for jobs. 
- Improved the help information for timeslicing.  
- User avatars can now be uploaded as an .svg vector file.  
- Improved the display of stack templates on mobile devices.  
- Searching the domains list now stores the state in the URL.  
- Fixed the multiplayer online status sometimes not updating correctly.  


]]>
  </content:encoded>
</item><item>
  <title>Platform February 2025 Release</title>
  <link>https://northflank.com/changelog/platform-february-2025-release</link>
  <pubDate>2025-02-28T10:16:00.000Z</pubDate>
  <description>
    <![CDATA[Northflank’s latest changelog update brings new features, enhanced metrics, and critical fixes to boost stability and performance in your deployments.]]>
  </description>
  <content:encoded>
    <![CDATA[<img src="https://assets.northflank.com/northflank_feb_changelog_07c3574cde.png" alt="Platform February 2025 Release" />This update introduces several new features, improvements, and fixes aimed at enhancing stability, performance, and usability. The following changes reflect our ongoing commitment to providing a robust platform for your deployments and management tasks.

## New features

- BYOC clusters: Addon ports are no longer exposed by default – ports are now dynamically exposed and removed as required by exposed addons.
- Tailscale support: Added support for Tailscale on addons, including restore jobs.
- Tailscale keys: Keys will now be automatically re-generated.
- Secret file uploads: When uploading a secret file, you now have the option to specify whether it is UTF or binary.
- Additional UI metrics: Introduced GPU-specific metrics for workloads deployed on GPU nodes (such as GPU consumption and ephemeral storage usage).
- Enhanced volume UI: New management and monitoring capabilities for volumes at the project level.
- Stack templates: Public one‑click templates for the simple deployment of popular software such as DeepSeek.
- Custom BYOC node pool IDs: You can now define custom IDs for your BYOC node pools.
- Organisation-level BYOC clusters: Clusters can now be defined on an organisation level, allowing you to share access to clusters across multiple teams.
- GitOps commit messages: When making changes to a GitOps‑enabled template, you can now specify a commit message.
- Easier template creation: Added a button to the View specification modal to create a new template from spec.
- Audit log: Added an Audit Log subpages to secrets, pipelines, and templates.
- Volume metrics: Added support for volume IOPS and throughput metrics.
- BYOC metric graphs: Added node  IO Wait to metric graphs.

## Improvements

- AKS update: Updated AKS version to 1.31.
- Buildpack update: Added the HEROKU_24 builder as the new default buildpack stack; HEROKU_22_CLASSIC is now deprecated.
- BYOA import: Improved error message parsing for a more seamless Helm chart import.
- Addon triage page: Refined layout for easier navigation.
- Template cluster node: Switching the provider type now omits irrelevant data.
- Deployment timestamps: Improved handling of deployment timestamp ranges when filtering logs or metrics.
- Build logs: Buildpack now displays a warning when invalid build arguments are passed.
- Template node editing: Users with access to custom plans can now correctly edit the name on templates if the resource already exists.
- Plan updates: Enhanced feedback when changing plans to indicate a successful update.
- Shell controls: Additional controls are now visible without needing to open the terminal.
- Autoscaling info: Service autoscaling information now correctly appears in the header after enabling an autoscaling configuration.
- AWS autoscaling: Reliability improvements have been made.
- Preview environment: Deployment services now allow selection of a start build node as the source.
- Shell terminal: Made major performance improvements to the UI components.
- Volume usage graph: Redesigned for better readability on services with multiple volumes.
- Template project node: When creating a new template, the empty project node is expanded by default.
- Tailscale auth keys: Automatic workload redeployment when keys are regenerated ensures maintained connectivity.
- Pod count: Increased the maximum pod count for GCP and Azure to 256 and 250 respectively.
- BYOC AWS VPC validation: Extended logic to handle additional edge cases.
- Template Execute action: Added the option to skip awaiting an action.
- Addon updates: Updated PgBouncer to 1.24.0 and RMQ to 4.0.5.
- Triage view: Now displays runtime errors from pods terminated incorrectly.
- Run time display: Added a “latest run time” display and a 50‑item option to pages.
- Cluster creation navigation: Improved when creating a cluster during project creation.
- Container logs: Viewing logs within a release flow now updates in real time.
- Preview environment expiry: Reliability improvements to prevent unexpected expiries.
- GitLab reliability: Several improvements made for self‑hosted GitLab.
- Release flows: Various UX improvements to the release flow UI.
- Build lists: Now show a Build Health button.

## Fixes

- Template Dockerfile handling: Template service nodes using a dynamic branch will no longer cause the Dockerfile editor to get stuck.
- Branch selection: Resolved a bug causing the branch selection to reset incorrectly when a reference was input.
- Cluster deletion: Added an additional confirmation prompt when deleting a cluster.
- Log tailing: Fixed an issue with the log tailing and metrics APIs where some containers were not found when filtering.
- Addon versions: Updated RabbitMQ and PostgreSQL addon versions.
- Team creation prompt: Corrected the organisation create team prompt to display an insufficient permissions error when required.
- Container memory errors: Fixed an issue where containers that ran out of memory were marked as failing if the issue occurred more than five minutes earlier.
- Organisation roles: Fixed roles not syncing correctly on user signup.
- Log view search: Resolved issues with the RegEx search functionality.
- UI overflow: Fixed overflowing issues in the Subdomain path Service selector.
- AWS custom subnet validation: Fixed an incorrect check on AWS clusters.
- Azure node pool error: Implemented error detection for a specific provisioning error.
- Template errors: Templates no longer throw an error for a missing argument if passed as an empty string.
- Build nodes: Release build nodes now have their values prefilled.
- Template scrolling: Fixed scrolling issues on the template issue page.]]>
  </content:encoded>
</item><item>
  <title>Platform December 2024 Release</title>
  <link>https://northflank.com/changelog/platform-december-2024-release</link>
  <pubDate>2024-12-20T15:00:00.000Z</pubDate>
  <description>
    <![CDATA[Improves addon resets, template reruns, build triggers, and SSO sign-in errors. Enhances UI, filtering, searching, and template ops. Better overall usability for all users.]]>
  </description>
  <content:encoded>
    <![CDATA[<img src="https://assets.northflank.com/northflank_december_changelog_cdcd441b63.png" alt="Platform December 2024 Release" />This release improves addon resetting behavior, template reruns, and build triggers, as well as refining SSO sign-in error messages. It also includes UI and usability enhancements throughout the platform, including better error handling, more consistent filtering and searching of projects, and refined template operations.

## Enterprise
- First-time SSO sign-in attempts with inactive accounts now show an informative error instead of creating and deleting the account.
- Signing in via SSO no longer fails due to issues synchronizing irrelevant organizational data.


## Addons
- When resetting an addon that is used as the source for another forked addon, the original source data is now removed from the forked addon. Previously, it was set to a backup of the fork source, potentially causing addon failures if the backup was deleted.
- Deprecated several old versions of MySQL, MongoDB, and RabbitMQ.

## Templates
- Selecting a template run now displays the arguments used by that run.
- Added the option to retrigger a template run with the same arguments.
- For Release flow and Preview environment runs triggered by a Git commit, Git data is re-sent to enable reruns without new commits.
- The template editor no longer prompts about unsaved changes when switching teams.
- The preview environment template Message node no longer appears as an option in non-Preview templates.
- Updating a service via a template no longer resets Continuous Deployment.
- Improved the interface for selecting success conditions in build and job run Condition nodes.
- Fixed an issue where the job run condition could be incorrectly marked as failed.
- Pipeline nodes no longer fail when secret files are passed in.
- Fixed issues with autosave when closing or submitting a node in code view.

## Builds
- Fixed an issue where builds sometimes failed to trigger if multiple pushes happened in quick succession.
- Merge commits now properly respect file path build rules and will not trigger builds that do not match the set criteria.

## BYOC
- Improved error messaging during cluster creation, providing more actionable information.

## Miscellaneous
- Syncing the repository list for self-hosted GitLab integrations now works reliably even with very large numbers of accessible repositories.
- Accessing a job run through the job dashboard no longer risks crashing if other data has not fully loaded.
- Fixed erratic behavior in the date picker occurring in certain months.
- Short project lists now correctly support navigation between pages.
- Improved filtering performance and reliability for project lists, fixing issues with searches getting stuck.
- Added a namespace selector to the public egress bandwidth metric.
- Fixed an issue causing the multiplayer menu not to display correctly when another team member is on the same page.
]]>
  </content:encoded>
</item><item>
  <title>Platform November 2024 Release</title>
  <link>https://northflank.com/changelog/platform-november-2024-release</link>
  <pubDate>2024-12-02T09:00:00.000Z</pubDate>
  <description>
    <![CDATA[November updates: Enhanced performance, improved observability, nested visual template editor, new addons, BYOC enhancements, and enterprise SSO support.]]>
  </description>
  <content:encoded>
    <![CDATA[<img src="https://assets.northflank.com/northflank_november_changelog_min_1a9c287d30.png" alt="Platform November 2024 Release" />This November, we've been hard at work enhancing the performance and reliability of our platform to provide you with a smoother experience. We've made significant improvements to Observability, including a more reliable Observe tab. Template creation is now more intuitive with a fully visual editor for nested templates. We've added support for new addon versions and BYOC options, including GKE 1.31 and new node types. Enterprise users can now benefit from IdP initiated SSO login. Plus, we've implemented performance optimizations across the platform for faster load times and better responsiveness.


## Enterprise

* Added support for IdP initiated SSO login
* Improved the handling of duplicate email addresses when logging in via SSO
* Improved the reliability of adding and removing users from an active directory

## Templates

* Creating nested templates via the UI has been greatly improved. Adding a pipeline to the template will allow you to access a full visual editor for the release flows and previews in that pipeline, instead of having to use the code view only
* Saving a template with a timeout duration no longer appears as a diff when it wasn’t changed
* Fixed an issue with copying project specification when there is a pipeline in the project
* Subdomains created as part of a preview are now correctly associated with that preview
* Job run settings overrides will no longer disappear when editing their environment variables
* Condition nodes now display team level clusters
* The override changes modal no longer renders behind the main editor window
* Job run overrides will no longer automatically be populated in the template if they haven’t been edited
* Added timestamps to more template node responses
* Job run credential overrides are now correctly formatted
* Added the option to automatically upgrade addons on template run if they are using an out of date version
* Added resource links on condition nodes
* When running a release flow manually, you can now directly select a branch and commit to run it based on  
* Templates with GitOps enabled will no longer automatically overwrite themselves when the template is initially loaded, stopping an issue where templates could get stuck on an old version if you changed the GitOps settings in Git  
* Improved the handling of the drag to pan feature
* Holding space bar to pan no longer causes issues with the space key in node forms
* When setting active hours for a preview template, new days will automatically be filled with the hours you have previously set
* Fetching from Git no longer clears any template arguments
* The pipeline list now displays more useful metadata
* Fixed GitOps templates sometimes not running correctly when updated
* You can no longer create a git trigger with a duplicate name or ref
* Improved the handling for the Message node

## Addons

* Added support for new addon versions:  
  * MySQL: `8.4.3`, `8.0.40`  
  * RabbitMQ: `3.13.7`, `4.0.3`  
  * MongoDB: `7.0.15`, `8.0.3`  
* Implemented support for Global backups having a custom retention period
* Increase `max_standby_streaming_delay` and `max_standby_archive_delay` configuration setting to 10 minutes for PostgreSQL addons to avoid rare conflicts during queries on standby replicas
* Improve addon state validation for disk backups  
* Fix issue for PostgreSQL addons with version 16 resulting from default privilege changes
* Fix issue with replica creation when doing a restore of a zonally redundant addon

## BYOC

* Added support for BYOC versions  
  * GKE: 1.31  
* Added support for N4 and C4 nodes on GCP
* Fixed an issue with soft-disable for AWS BYOC
* Creating a project from the cluster information screen now automatically scopes you to that cluster
* Added support for restricting allowed IP ranges for EKS

## Observability

* Improved the reliability of the Observe tab and improved the accuracy of some stats
* Fixed issues with the UI that could occur when switching quickly between views or date ranges
* Added focus for terminated containers to easily review logs during its runtime
* Reduce look back window of logs to 30 days to speed up log load if the workload has been active for a long time
* Pods no longer show as being out of memory after they have become healthy
* Deleted nodes no longer show in the node triage screen
* Eviction notices are now displayed on the build health tab and popover
* Added the option to fetch extra lines for the current log line context
* Fixed the copy indicator on log ranges
* Istio mesh logs are now sent to the correct log sink destination
* Fixed a bug causing build logs to not load if the build was clicked on while in the cloning stage  
* Pods that are in staging now show in triage
* Scrolling on graphs no longer causes the metrics to go back in time


## API

* Added GPU details to the Get service endpoint
* Added additional fields to the schema of the Get service endpoint response
* Added API endpoints for backup destinations
* Added native pagination support in js-client and CLI with `getNextPage` and `all` functions

## Miscellaneous

* We’ve made many performance improvements to all parts of the platform, resulting in faster load times and better responsiveness
* Added compression to networking gateways for egress traffic with `Brotli` and `gzip` protocols
* Custom domains now appear correctly in the UI when a service has zero deployments
* VCL snippets editor no longer displays incorrect syntax errors
* Adds the option to delete cloud provider integrations via the integration menu
* Links between pipeline stages no longer disappear when hovering over a service
* Name fields now don’t falsely state a resource with the name already exists for users with insufficient permissions
* Onboarding now prompts you to select a team to onboard with
* Job runs now operate correctly when no manual overrides are provided
* Fixed an issue with the Edit deployment modal not loading repository branches
* Viewing the list of builds for a commit on a specific branch doesn't incorrectly show builds associated with another branch
* Stopped a crash that could occur when adding a Cloudfront CDN
* Fixed an issue with toggling VPC egress for AWS BYOC
* Audit logs no longer crash when making certain date selections
* Cron job schedules correctly update when no other fields are updated
* Merging a pull request for a service with both branch and PR rules no longer causes the same commit to be built twice
* Added support for custom deployment annotation and labels
* Usability improvements to the Cluster IP Allow List settings
* Usability improvements to the addon backup source selection
* Added manual TLS certificate controls
* Users can now clear list filters
* Jobs now automatically fetch Dockerfiles in creation forms and templates
* Fixed searching and selecting pull requests in some commit selection components
* Job run names will no longer be generated longer than the maximum allowed length
* The service environment page no longer displays as empty when not authenticated
* Improved validation for backup schedules
* Timeslice is now unset for workloads in a GPU node pool when that node pool is deleted
* Repositories with many branches will no longer use too much browser memory
* Searching for domains now works as expected
* Added internal handling for CNB shim which was causing some Buildpack builds to fail due to it being deprecated
* Update handling for CNB shim to support deprecated Heroku Buildpacks
* The service list now displays when the last build for a service has failed
* Docker CMD overrides display correctly on the service dashboard
* Made the team and organisation list filtering more consistent]]>
  </content:encoded>
</item><item>
  <title>Platform September 2024 Release</title>
  <link>https://northflank.com/changelog/platform-september-2024-release</link>
  <pubDate>2024-10-11T08:00:00.000Z</pubDate>
  <description>
    <![CDATA[Adds preview environment controls (pause/resume, scheduling), two US regions, improved BYOC on Azure and GCP and added support for OCI with GPU workloads, enhanced UI/performance, better resource management and new addon features.]]>
  </description>
  <content:encoded>
    <![CDATA[<img src="https://assets.northflank.com/northflank_september_changelog_fd341dc6c1.png" alt="Platform September 2024 Release" />Adds preview environment controls (pause/resume, scheduling), two US regions, OCI Cloud support (incl GPUs), GCP & Azure BYOC enhancements, enhanced UI/performance, better resource management, new addon features, and various bug fixes for GitHub deployments and builds.

## Preview Environments
* Added support for pausing and resuming preview environments
  * Clicking pause scales down all resources belonging to that environment
* Preview templates in BYOC projects can have active hours assigned
  * Previews automatically scale up/down at set times and days
  * Configurable for entire pipeline or individual previews
* Added automatic deletion configuration for previews
  * Timer can be reset when template is run
  * Configurable for pipeline or individual previews
* Improved concurrency policy enforcement on environment level, runs are now queued per environment
* Added option to toggle ignoring draft pull requests in preview template/release flow git triggers

## Performance Improvements
* Improved template visual editor performance for large templates
* Enhanced platform performance when loading project contexts
* Improved template validation speed
* Fixed slow loading of release flow run overrides UI when many overrides were present

## Cloud Infrastructure
* Added two new PaaS regions: us-west and us-east
* Added support for Azure local NVMe disks enhancing performance and reduces costs
* Added support for OCI cloud clusters and OCI GPUs
* Added cross-account service accounts for GCP BYOC integrations making it more secure and easier to adopt
* Improved handling of Azure provisioning errors
* Added validation for adequate Azure system node pool resources
* Added support for draining and cordoning nodes and node pools

## Resource Management
* Fixed deletion of dangling platform resources on deleted BYOC clusters
* Made volume storage requirements clearer for templates and API
* Fixed race condition where builds could trigger twice for same commit
* Enhanced validation of custom BYOA annotations, ensuring only string values can be submitted
* Added live certificate renewal for addons allowing certificate refresh without downtime

## User Experience
* Improved error display in templates showing brief error summary without clicking individual nodes
* Added clipboard options when viewing template runs:
  * Copy node's `spec`
  * Copy node's `response`
  * Copy entire node
* Added link to create new cluster when viewing BYOC integration
* Improved error messaging for expired Azure credentials
* Added user alerts for BYOC cluster and node pool provisioning errors via notifications

## Addons and Integration
* Added support for RabbitMQ Web-MQTT and Web-AMQP plugins
* Added "latest" as fork source option for addon provisioning via templates enabling preview environments to always use latest data
* Added support for searching backup selection dropdown

## Bug Fixes
* Fixed issue preventing resource selection in template 'action' node
* Resolved build initiation failures for old commits
* Improved GitHub deployment cleanup preventing orphaned deployments when Northflank resources are deleted]]>
  </content:encoded>
</item><item>
  <title>Introducing new regions: US East and US West</title>
  <link>https://northflank.com/changelog/introducing-new-regions-us-east-and-us-west</link>
  <pubDate>2024-10-07T12:00:00.000Z</pubDate>
  <description>
    <![CDATA[Northflank is thrilled to announce the addition of US East and US West to our globally available compute regions. Northflank continues to provide robust, scalable, and efficient cloud services, now even closer to your users.]]>
  </description>
  <content:encoded>
    <![CDATA[<img src="https://assets.northflank.com/northflank_new_cloud_regions_smaller_min_34ee25d5da.png" alt="Introducing new regions: US East and US West" />
We're thrilled to announce the addition of US East and US West. This adds to our globally available compute regions to support US Central in NA. Northflank continues to provide robust, scalable, and efficient cloud services, now even closer to your users.

### Live regions supported by Northflank:

- US - Central
- US - East
- US - West
- Europe West - London
- Europe West - Amsterdam
- Asia - Singapore

Your team should focus on building great products and automate the deployment of your applications, databases, and jobs effortlessly with Northflank.

Leverage a unified developer experience (DX) across our UI, CLI, APIs, and GitOps. Whether you're a startup or a large enterprise, our platform is designed to cater to your unique needs. Northflank is used in production by tens of thousands of engineers for all kinds of workloads, from database deployment to game servers to SaaS applications.

### Your Preferred Region and Cloud

Don't see a region that fits your workload? No problem! With Northflank's 'Bring Your Own Cloud' capability, deploy in over 100 regions and 300 Availability Zones (AZs) with your AWS EKS, GCP GKE, Azure AKS, and Civo clusters. Enjoy the freedom to choose your cloud environment while leveraging our powerful platform.

### We Want to Hear from You!

Tell us where you'd like to see our next cloud region. We're constantly evolving and expanding to meet your demands. Please reach out through our <a href="https://northflank.com/contact" target="_blank">contact page</a> or other direct channels. We’d love to hear from you!

To stay up to date on everything new at Northflank be sure to follow us on <a href="https://twitter.com/northflank" target="_blank">Twitter</a> and <a href="https://www.linkedin.com/company/northflank/" target="_blank">LinkedIn</a>.

We look forward to seeing what you deploy. Start  deploying now <a href="https://app.northflank.com/s/account/projects/new" target="_blank">here</a>.

]]>
  </content:encoded>
</item><item>
  <title>Platform August 2024 Release</title>
  <link>https://northflank.com/changelog/platform-august-2024-release</link>
  <pubDate>2024-08-31T08:00:00.000Z</pubDate>
  <description>
    <![CDATA[BYOC GPU and Ceph support, enhanced templates, improved networking, better observability, and UI upgrades. Enjoy streamlined workflows, increased flexibility, and better performance with these latest updates.]]>
  </description>
  <content:encoded>
    <![CDATA[<img src="https://assets.northflank.com/northflank_august_changelog_min_e26a0854b0.png" alt="Platform August 2024 Release" />This Northflank update introduces a range of new features, enhancements, and bug fixes to improve your experience. Highlights include BYOC upgrades with GPU, Ceph and custom VPC support, expanded templates and pipelines functionality, improved networking and security options, enhanced observability, and logging capabilities, and a host of user interface improvements and bug fixes.

## New Features

### BYOC (Bring Your Own Cloud)
- Added support for nested virtualization on BYOC GKE nodepools
- Added GKE GPU support on BYOC
- Added support for running Ceph as an alternative storage backend on BYOC
- Added support for cross-account role on AWS
- Enabled access entries on AWS BYOC clusters
- Added the ability to duplicate BYOC node pools in the UI
- Added AWS BYOC beta support for Amazon Linux 2023
- Added new API endpoint to return nodes in the BYOC cluster
- Improved BYOC billing UI to break down spend by clusters, CPU and memory
- Improved AWS BYOC permission check based on enabled features
- Improved handling for AWS BYOC creation when using custom VPCs
- Added support for Bring your own Addons (beta) allowing to install any helm chart on BYOC clusters
- Added additional permission requirements and checks for AWS BYOC
- Improved handling of AWS BYOC with regards to custom VPCs
- Ensure GPU node labels have consistent formatting in BYOC

### Templates and Pipelines
- Implemented template drafts
- Added 'skip node' functionality to template editor UI
- Added the ability to override preview environment template trigger variables when running manually
- Improved template creation UI:
  - Added progress tracker for improved status visibility
  - More obvious template name field
  - Better visibility around project inheritance and template errors

### Networking and Security
- Added support for hard-coded DNS entries via `/etc/hosts` in services/jobs/builds
- Added ability to configure port security matching certain paths (SSO, Header-based Authentication, IP Policies)
- Added enhanced support for CIDR blocks in the network security proxy
- Added support for enabling skipping security proxy if endpoint requested within the same cluster or project

### Observability and Logging
- Added audit log support to the platform
- Implemented audit logging
- Added the ability to configure batching options for HTTP log sinks (maximum number of logs per request, maximum size per request)
- Added new observe page for resources for greatly enhanced container, deployment overview and performance monitoring

### Authentication and Access Control
- Added support for newer self-hosted GitLab application tokens
- API roles can now be created on an organisation level, which are inherited by selected teams and Directory Sync roles
- Added an option to organisations to allow SSO with emails from external domains

### Storage and Databases
- Released support for new addon versions: 
  - PostgreSQL 16 (major)
  - MySQL: 8.4 (LTS), 9.0 (major)
  - MongoDB: 7.0.12
  - RabbitMQ: 3.13.3 (major), 3.12.14
- PostgreSQL addons now support installing the `pg_uuidv7` extension

### Integrations
- Added native support for AWS ECR with automatic docker pull secret refresh

### User Interface Improvements
- Expanded template editor node code editor to full viewport height
- Improved visibility of preview environment template run status & status history
- Improved visual presentation of Git triggers in release flows
- Implemented custom plan builder enabling teams to self-service a custom plan with Northflank vs Kubernetes modes
- Added links to billing items for easier navigation to resources
- Improved tag selection UI
- Added UI for creation of API roles for organisations

## Enhancements

### Performance and Stability
- Improved performance of GitOps calls for faster template saving
- Improved MongoDB addon disk restore performance for volumes which support disk cloning
- Upgraded Istio to 1.22
- Improved secret injector handling to reduce unexpected zombie processes in addons

### User Experience
- Improved display of run status on templates list
- Pipeline creation - resource selectors will remain open as you make selections
- Pre-fill GitOps file path field with default value when enabling GitOps
- Improved handling of AWS permission checks for accounts with organizational service control policies
- Improved text selection contrast for better accessibility
- Improved rendering of long commit messages in service deployment information
- Improved rendering of long names in the template and pipeline views
- Ensure relative time values (e.g. '3 minutes ago') are updated in real time across UI
- Improved the display of organisation team members, making it clearer who has access to a team due to an organisation-level role

### Functionality
- Importing a version 1.0 or 1.1 template no longer resets the existing GitOps settings
- Projects can no longer be defined in preview environment template editor
- Organisation SSO users now correctly sync on user creation
- Added support for selecting a specific build stage in your dockerfile via node override
- Increase API time limit to 31 days for logs / metrics
- Added support for parsing the build name to the build ARG context
- Improved UID and GID handling with the Northflank secret injector

## Bug Fixes

- Fixed the branch list on service creation sometimes failing to load
- Fixed an issue where updating a template's settings via Git would not correctly update the Northflank UI
- Fixed an issue where saving a deployment service while an external image was still verifying would not save changes
- Fixed various issues in template editor resulting from values being `${args}`
- Fixed an issue where fetching a template from GitOps could overwrite unsaved changes
- Fixed metrics crash when going to all builds view
- Fixed issue with saving an addon await condition node
- Fixed issue where template project information would be unset on fetching from GitOps
- Fixed handling of default storage classes on Civo BYOC
- Fixed issue in addon form where custom database name could not be unset
- Fixed issue where 'await completion' checkbox would set incorrect value
- Fixed issue where addon connection details could sometimes not be fetched in template editor UI
- Fixed issue where subdomain paths could not be edited more than once without reloading the page
- Fixed rendering of domains in template editor UI that contain `${args}` or `${refs}`
- Removed forcing of lower-case on regions and clusterIds in templates
- Fixed a redirect issue with the Manage domains button on a service
- The visual editor for selecting a subdomain path now correctly references the prior nodes in the template

## Other Changes

- Display 'skip node' status on each node in template editor
- Do not allow resources that belong to a preview environment to be added to pipelines in the UI
- Remove redundant description text from team & organisation lists
- Make timeout value optional in await condition template node
- Add RBAC permission checks to view roles in CLI log in flow UI
- Added certificate and CDN statuses on the subdomain GET endpoint]]>
  </content:encoded>
</item><item>
  <title>Platform May 2024 Release</title>
  <link>https://northflank.com/changelog/platform-may-2024-release</link>
  <pubDate>2024-05-31T08:00:00.000Z</pubDate>
  <description>
    <![CDATA[Path-based routing for custom subdomains, archive deployments, enhanced secret management, plus improvements to addons, BYOC, and templates. Streamline your workflow now!]]>
  </description>
  <content:encoded>
    <![CDATA[<img src="https://assets.northflank.com/northflank_may_changelog_min_3e4759528b.png" alt="Platform May 2024 Release" />This month, we have added some exciting new features. Path based routing will make it easier to set up your custom subdomains, services can now be built and deployed from an archive, and we're giving you more granular control of your secret groups with new config permissions. We've also got a host of improvements to addons, BYOC, and templates, as well as an assortment of bugfixes to make your experience smoother.

## New Features

- Added support for path based routing. On the domains page, you can now add one or more paths to a given subdomain, allowing you to send users to different Northflank services based on the URL path. Each subdomain path can be configured to match an exact string, a prefix, or a regular expression. You can configure the priority of each path in the case where multiple paths match. You can also add additional options to each path such as a timeout, rewrite, headers, CORS policy, and retries.
- Services can now be built and deployed from an archive, as an alternative to git.
- Secret groups now have two levels - secrets and config. These have separate RBAC and API permissions, allowing you to give team members access to non-sensitive variables while not giving them access to sensitive secrets.

## Addons

- MySQL admin users now have permission to create functions.
- MySQL addons no longer display a deprecated native password warning.
- Improved reliability of Redis health checks.
- Addon forking is now supported also when the two addons have different minor versions (but the same major version).
- PostgreSQL addons no longer fail when given a long name.

## BYOC

- Upgraded all BYOC clusters to Kubernetes version 1.28
- Made the error messages clearer when cluster creation pre-flight checks fail.
- Azure BYOC clusters now have automatic security upgrades disabled by default to avoid weekly node replacements.

## Templates

- Made a number of UX improvements to the layout and design of the template editor, making it easier to jump right in without clicking through unnecessary forms first.
- Templates list no longer flickers when loading the page or applying filters.
- Creating a service in a template no longer displays an error when referencing a build service that has yet to have a build triggered.
- Pipeline spec now correctly returns release flow data.
- Backup nodes in preview environment template runs now correctly redirect to the backup logs page.
- GitOps settings no longer fail to display the current branch.
- Internal DNS is now correctly displayed when creating a service name that includes a reference or argument.
- Adding release flows to templates no longer causes a validation error.
- Saving a template no longer prompts the user to recover old data when the template has already been saved.
- Preview environment templates no longer fail to run if an unrelated build fails to start.
- Release flow template nodes no longer try to submit the form when clicking the expand button.
- Release flows no longer fail to trigger due to their triggers being overwritten.
- Release flows and preview environment templates now have a copy spec button.

## Organisations

- Improved sort and filter handling on the organisation member list, allowing you to filter on display name and email address.

## API, CLI, and JS Client

- The Get Addon Backup endpoint no longer returns data about deleted backups.
- POST and PUT project endpoints now return more data.
- Secret group creation no longer fails when a token only has access to modifying configs.

## Miscellaneous

- The 'Not sure where to start?' dashboard section now links to the resource creation pages.
- Release nodes now have additional fields timeoutDuration and initialCheckTime allowing you to configure the node to fail after a set time if the release has not yet been successful.
- Added support for increasing the maximum length of resource names.
- Service creation no longer displays an error when toggling autoscaling on and then off again.
- Authenticating with the Northflank Docker Registry no longer fails when inputting the authentication scheme with an inconsistent case.
- Port creation no longer displays a false-negative error.
- Dockerfile can correctly be fetched from public repos that you don't have write permissions for.
- The domain list copy to clipboard button works correctly now on Firefox.
- Trying to delete a secret group from the list page no longer displays an 'Insufficient permissions' error.
- Tags can now be searched for in the tags list page and the tag selection popover.
- The tags popover can now correctly be scrolled and no longer appears offscreen when you have a large number of tags.
- The Edit GitHub Installation button now correctly redirects to the settings page for GitHub organisations.
- Passing in an empty secret file no longer errors on submission.
- Displaying billing information by project or by resource type correctly shows additional line items.
- Unlinking a build service now clears the deployment information of relevant services.]]>
  </content:encoded>
</item><item>
  <title>Platform March 2024 Release</title>
  <link>https://northflank.com/changelog/platform-march-2024-release</link>
  <pubDate>2024-04-23T08:00:00.000Z</pubDate>
  <description>
    <![CDATA[Enhanced release flows with usability improvements, better pipeline stage status display and real-time logs via release flows.]]>
  </description>
  <content:encoded>
    <![CDATA[<img src="https://assets.northflank.com/northflank_march_changelog_edit_opt_ceea13ba83.png" alt="Platform March 2024 Release" />This month included enhanced release flows with usability improvements, better pipeline stage status display and real-time logs via release flows. We've added additional functionality with commit and build rules on Release nodes and support for build overrides on Job Run nodes. Also, fixed various bugs, improved error handling, and updated user interface elements for smoother navigation and reliability.


- Added several usability improvements to release flows including:
    - Improved the stage header to make it easier to view runs and see the status of previous runs.
    - Clicking a node in a release flow run now opens up a side panel with metadata and logs.
    - Each release flow stage shows the status of resources that belong to it.
    - Improved error handling, making it easier to see when your release flow has failed and navigate directly to a failed node.
    - Improved the UX for navigating directly from a node to that resource.
- Added support for commit rules and file path rules to release flow build nodes, allowing you to automatically select a previous build if the triggering commit does not pass the provided checks.
- Added support for rich overrides in release flows. These can be configured in the code view and allow you to add dynamic build and commit selectors to the run modal which automatically populate the release flow arguments.
- Added support for build overrides for template job run nodes.
- Updated Buildpack API version support, set the new default buildpack to heroku:22 and deprecated heroku:18.
- Added additional safeguards to prevent a BYOC cluster from being deleted accidentally.
- Improved the reliability of autoscaling due to some events not being sent reliably.
- Added BYOC support for Kubernetes 1.27.
- Improved failure handling for failed BYOC node pool node provisioning.
- Made the dashboard icons more consistent in styling.
- Added a deployment history list to services showing a list of active pods per deployment.
- Secret group variable editor now autocompletes linked addon keys and aliases.
- Node pool labels and taints are now set correctly at creation for Civo clusters.
- Navigating to organisation pages correctly includes the url prefix.
- Secret group restriction setting no longer crashes due to undefined tags or resources.
- Improved autoscaling handling by increasing rate limits.
- Addons will no longer fail to have their TLS certificates updated if the expiry is checked while the addon is being backed up.
- Organisation Single Sign-on no longer fails for automatically provisioned users.
- Secret group template nodes now correctly remove the array of nfObjects when the restricted setting is toggled off.
- Addon forking in templates now correctly uses the human-readable backup ID.
- The site no longer crashes when exiting the avatar upload file selection without selecting a file.
- Documentation links now correctly open in a new tab.
- Service pages no longer crash when a domain entry is not defined correctly.
- Changed the BYOC redeploy strategy to restart to avoid update conflicts.
- Project creation no longer crashes when an invalid colour code is inputted.
- Aborting a backup upload no longer crashes the page.
- Users can request via support an egress gateway IP on EKS BYOC clusters provided by AWS Internet Gateway.
- Improved performance of environment injection.
- Improved reliability of template code editor auto-completion.
- Registering an organisation for Single Sign-On no longer causes an error to be returned.
- Trying to select a tag that cannot be applied to a specific resource no longer causes the form to get stuck.
- Templates with the autorun feature turned on can now correctly access their arguments.
- Trying to add a UDP and TCP port on the same port number no longer returns an error.
- The Select suggested keys option on secret group addon linking now behaves correctly for Postgres.
- Autoscaling information is now correctly returned for services in templates and the API.
- Azure registry credentials now correctly authenticate when accessing images.
- When editing the command override for a job, release flows containing that job will correctly use the updated override, if the override hasn’t been set manually on the release flow node.
- Commit and Build information on the container view is now shown by default, if there is enough space.
- During addon creation, the resource plan is no longer greyed out.
- Inviting members to a team now correctly displays the number of team members invited.
- Fixed some minor formatting issues with pipeline addons.
- Corrected the example command for fetching tail logs via the Northflank CLI.
- Secret file upload no longer crashes when not selecting a file.
- Build service node overview no longer displays the plan as ‘not defined’.
- Signing in no longer redirects organisation members to an invalid URL.]]>
  </content:encoded>
</item><item>
  <title>Platform February 2024 Release</title>
  <link>https://northflank.com/changelog/platform-february-2024-release</link>
  <pubDate>2024-03-07T00:00:00.000Z</pubDate>
  <description>
    <![CDATA[New addon versions, backup fixes, template enhancements, BYOC updates.]]>
  </description>
  <content:encoded>
    <![CDATA[<img src="https://assets.northflank.com/northflank_feb_changelog_2x_cb07847222.png" alt="Platform February 2024 Release" />This update rolls out new versions for Redis, MinIO, RabbitMQ, MySQL, and MongoDB addons, while deprecating older versions. It addresses critical fixes, notably preventing addons from becoming unresponsive during backups and streamlining service creation from templates. Enhancements include improvements to template functionality, removal of the cap for BYOC project resources, and clearer service creation processes. Additionally, the update offers separate billing plans for build time and runtime containers in jobs and services, accurate multi-factor authentication display for organization members, and fixes for the API volume update endpoint.



### Addons

- New addon versions released:
    - Redis: 7.2.4
    - MinIO: 2024.1.31
    - RabbitMQ: 3.11.28, 3.12.12
    - MySQL: 8.0.36, 8.3.0
    - MongoDB: 5.0.24, 7.0.5, 6.0.13
- Deprecated old addon versions.

- Fixed addons from being paused at the same time as triggering a backup, which would cause the addon to be stuck in an unresponsive state.

### Templates

- Fixed template and release flow runs so that they no longer can get stuck and not be able to be aborted.
- Improved stability of the template visual editor, removing a number of instances where it could crash the page.
- Refreshing the page with the template runs interface open returns you to the same place.
- Templates that are run immediately on creation now can correctly access their arguments.
- Fixed the formatting of the project template view.
- Jobs and addon specifications now show fewer settings when they have not been modified from their default value.
- Creating a service from a template no longer errors on submission when only one version control account is linked.


### BYOC

- Removed the instances cap for resources running in BYOC projects.
- Prevented the node pool creation form from resetting itself randomly.
- Azure BYOC clusters are now priced consistently with other providers.

### Services

- Made it clearer when a service cannot be created due to an attached volume sharing the name with an existing volume.
- Split the billing plans for jobs and services into separate build plans and deployment plans, allowing you to modify them separately. 

### Miscellaneous

- The organisation member list now correctly displays whether a user has multi-factor authentication enabled.
- Fixed API volume update endpoint returning a 500 Internal Server Error when an empty object was passed in.





]]>
  </content:encoded>
</item><item>
  <title>Platform January 2024 Release</title>
  <link>https://northflank.com/changelog/platform-january-2024-release</link>
  <pubDate>2024-03-06T23:59:00.000Z</pubDate>
  <description>
    <![CDATA[Expanded BYOC support, template improvements, organizational features, UI/UX enhancements, API/CLI fixes, and multiple bug fixes.]]>
  </description>
  <content:encoded>
    <![CDATA[<img src="https://assets.northflank.com/northflank_jan_changelog_2x_50cf6a8ea4.png" alt="Platform January 2024 Release" />This update brings significant enhancements across various features, including BYOC integrations, template functionalities, organizational support, and user interface improvements. Key highlights include the removal of unnecessary permissions for AWS BYOC, the introduction of Civo BYOC support, refined template editing and specification viewing, and streamlined organization and team management. Additionally, the update addresses issues in logs, metrics, API, CLI, and the JavaScript client, alongside various bug fixes and UI enhancements to improve overall platform stability and user experience.


### BYOC
- Removed unnecessary permission requirements from AWS BYOC integrations.
- Added support for Civo BYOC integration.

### Templates
- Preview environment build source nodes link to the correct build logs page.
- Fixed template secret group nodes linking multiple addons without user input.
- Job run template nodes can be saved when no deployment exists.
- Improved UI for viewing template specification.
- Template addon backup nodes validation error fixed.
- Service specification shows correct image path for external registries.
- Template code editor updates correctly for previous versions.
- Fixed display issues in template node specifications.
- Enhanced UX in template visual editor for dragging nodes.
- Template difference editor no longer appears after deleting a template.
- Added override options in release flows for specific builds.
- Save button functions correctly in template editor node code view.
- Encrypted content displays correctly in template difference editor.
- External connection details configurable in template secret groups.
- Fixed visual issue with editing health checks in templates.

### Teams & Organisations
- Introduced support for Organisations with multiple teams and enterprise features.
- Users now belong to a default team, facilitating easier team expansion.
- Fixed crash when accepting a team invite on a team's page.

### Logs and Metrics
- Fixed zoom issue in metrics charts.
- Resolved display issue with old log lines.
- Fixed crash when viewing a single log line item.
- Added pagination to List Addon Backups API.

### API, CLI, and JS Client
- Fixed CLI login team selection issue.
- Resolved JavaScript client authentication issue for new API tokens.

### Miscellaneous
- Ephemeral storage configuration now available for builds.
- Secret groups with multiple linked addons fixed to prevent key mix-ups.
- Fixed crash on PostgreSQL resources page with enabled connection pooling.
- Notification webhooks no longer include resource secret values by default.
- Visual improvements to subdomain routing diagram.
- Wildcard redirects show registered region in UI.
- Fixed service list filtering redirection issues.
- Corrected random name generation button functionality.
- Fixed ordering in dashboard addon list.
- Environment variable editor accounts for Northflank managed secrets correctly.
- Secret group list shows restricted secrets by tags.
- Fixed issue with resource name field deleting the last character.
- Resolved flickering in services list search.
- Pipeline display name updates properly.
- Fixed navigation issues on alerts page.




]]>
  </content:encoded>
</item><item>
  <title>Platform December 2023 Release</title>
  <link>https://northflank.com/changelog/platform-december-2023-release</link>
  <pubDate>2024-03-05T00:00:00.000Z</pubDate>
  <description>
    <![CDATA[Enhanced templates with autosave, improved addons, CDN integration, better UI/UX, expanded variable management, and onboarding improvements.]]>
  </description>
  <content:encoded>
    <![CDATA[<img src="https://assets.northflank.com/northflank_dec_changelog_2x_cf3d107710.png" alt="Platform December 2023 Release" />This update introduces significant enhancements and fixes across templates, addons, and miscellaneous features. Template improvements include autosave functionality, usability enhancements, and performance optimizations. Addons see improved probe performance for PostgreSQL, better UI information for Redis, and fixes for backup and restart functionalities. Miscellaneous updates include CDN integration, improved navigation and metrics display, expanded variable management, and onboarding improvements. Additionally, there are fixes for CLI login, deployment configurations, and user interface issues, contributing to a more stable and user-friendly experience.

### Templates
- The template editor now autosaves recent changes for restoration if the page is exited without saving.
- Usability improvements in the template editor.
- Fixed deployment issues for jobs created from templates via version control.
- Enhanced UX for Build source nodes in previews, especially for services from different repositories.
- Corrected resource link issues in Release flow runs.
- Template nodes visually indicate the 'Wait for completion' setting.
- Switching between node form and code view retains current changes.
- Simplified deployment from build source nodes in preview templates.
- Addressed performance issues in the template run view, preventing page crashes.
- Fixed page crashes on the template Start build node.
- Resolved Deploy build node failures in release flow templates when using references.
- Templates and API now support CIDR notation for IP addresses.
- Added reuse of existing builds in release flow build nodes.
- Performance improvements in template run views.
- Expanded argument support in template fields.

### Addons
- Fixed addon creation issues when switching types.
- Enhanced probe performance for PostgreSQL High Availability.
- Detailed UI information for Redis addons with Sentinel enabled.
- Fixed addon Import backup page crashes caused by pasting connection strings.
- Enabled creation of hourly and daily addon backups of different types.
- Resolved double pod restarts when restarting an addon.
- Corrected scheduled addon backup compression type settings.
- Improved UI for PostgreSQL High Availability with component connection overviews.
- PostgreSQL fixes to support Supabase integration.

### Miscellaneous
- Introduced CDN integrations.
- Resolved issues with the multiplayer navigation pop-up.
- Improved metrics graphs display in the All instances view.
- Enhanced display of region information for easier selection.
- Corrected display of team owner information.
- Deleted BYOC clusters no longer show components as ready.
- Expanded list of Northflank managed variables in the environment variable editor.
- Fixed CLI login issues.
- Increased visibility of job status on small screens.
- Addressed registry credentials editor validation issues at page load.
- Deployment plan information now available on instance hover.
- Restricted navigation menu items are now hidden for insufficient permissions.
- Deployment storage SHM-size is configurable.
- SSO login now correctly redirects to the user page.
- Fixed loading issues in the Deploy build modal for deployment services.
- Added Tailscale sidecar support and options to disable service mesh and MTLS.
- Improved user onboarding for a smoother transition from account creation to first service.
- Corrected display issues in the secret file editor and base64 encoded content.
- Fixed validation issues in the port importer for unique port names.
- Resolved file path build rule issues causing unnecessary build triggers.


]]>
  </content:encoded>
</item><item>
  <title>Introducing new Regions: Amsterdam and Singapore</title>
  <link>https://northflank.com/changelog/introducing-new-regions-amsterdam-and-singapore</link>
  <pubDate>2024-01-19T13:00:00.000Z</pubDate>
  <description>
    <![CDATA[Northflank is thrilled to announce the addition of Amsterdam and Singapore to our globally available compute regions. Northflank continues to provide robust, scalable, and efficient cloud services, now even closer to your users.]]>
  </description>
  <content:encoded>
    <![CDATA[<img src="https://assets.northflank.com/newregions_15aba55872.png" alt="Introducing new Regions: Amsterdam and Singapore" />🚀 Northflank Expands Global Reach: Welcome Amsterdam and Singapore!

We're thrilled to announce the addition of Amsterdam and Singapore to our globally available compute regions. Northflank continues to provide robust, scalable, and efficient cloud services, now even closer to your users.

### Live regions used by tens of thousands of engineers:

- US - Central
- Europe West - London
- Europe West - Amsterdam
- Asia - Singapore

Focus on building great products and automate the deployment of your applications, databases, and jobs effortlessly with Northflank.

Leverage a unified developer experience (DX) across our UI, CLI, APIs, and GitOps. Whether you're a startup or a large enterprise, our platform is designed to cater to your unique needs.

### Your Preferred Region and Cloud

Don't see a region that fits your workload? No problem! With Northflank's 'Bring Your Own Cloud' capability, deploy in over 100 regions and 300 Availability Zones (AZs) with your AWS EKS, GCP GKE, Azure AKS, and Civo clusters. Enjoy the freedom to choose your cloud environment while leveraging our powerful platform.

### We Want to Hear from You!

Tell us where you'd like to see our next cloud region. We're constantly evolving and expanding to meet your demands. Please reach out through our <a href="https://northflank.com/contact" target="_blank">contact page</a> or other direct channels. We’d love to hear from you!

To stay up to date on everything new at Northflank be sure to follow us on <a href="https://twitter.com/northflank" target="_blank">Twitter</a> and <a href="https://www.linkedin.com/company/northflank/" target="_blank">LinkedIn</a>.

Happy New Year! We look forward to seeing what you deploy. Start  deploying now <a href="https://app.northflank.com/s/account/projects/new" target="_blank">here</a>.

]]>
  </content:encoded>
</item><item>
  <title>Introducing Navigation V2</title>
  <link>https://northflank.com/changelog/introducing-navigation-v2</link>
  <pubDate>2023-12-05T00:00:00.000Z</pubDate>
  <description>
    <![CDATA[We’re excited to launch a completely overhauled navigation experience in the Northflank platform!]]>
  </description>
  <content:encoded>
    <![CDATA[<img src="https://assets.northflank.com/changelog_nav_2_0_bb8450c9f7.png" alt="Introducing Navigation V2" />We’re excited to launch a completely overhauled navigation experience in the Northflank platform! These changes make it quicker and easier to understand where you are and get to where you need to be in the UI.

The context and project selectors have been condensed into a sleeker layout, and the resource navigation has been relocated from the sidebar to the top of the page with the rest of the navigation. This keeps everything together in one place, so it’s simpler to understand and easier to use. 

Additionally, the resource navigation bar is now hidden when you are not inside a project. Previously, navigating to resources could be confusing when you had not selected a project yet.

The primary navigation also now includes an account menu, regardless of which context you have selected. This means that you can always see which account you are logged into and can jump straight to your primary user settings even if you are viewing a team context.

Finally, there are a number of other small tweaks that should make the navigation experience more pleasant. Check it out and let us know what you think! 

<video autoPlay muted playsInline loop>
    <source src="https://assets.northflank.com/navigation_57db44378d.mp4" />
</video>

## Additional New Features

- You can now [set a subdomain to wildcard mode](https://northflank.com/docs/v1/application/domains/wildcard-domains-and-certificates#redirect-all-subdomains) to redirect all traffic for a domain to a single port. This is helpful in cases where the domain prefix can be dynamic. 

- You can now import a new certificate to an existing domain if that domain was created using another imported certificate.

- Added new versions for all addon types:

     - MongoDB®: 5.0.21, 6.0.10, 7.0
     - Redis®*: 6.2.13, 7.2.1
     - MinIO™: 2023.9.7 
     - MySQL™: 8.0.34, 8.1.0
     - RabbitMQ®: 3.10.25, 3.11.23, 3.12.4
     - Postgres®: 11.21.0, 12.16.0, 13.12.0, 14.9.0

## Bug Fixes
- Fixed an issue with Restricted mode for GitLab integrations where repositories in GitLab subgroups were not accessible when the main group was selected.
- Fixed an issue for mobile users where branches could not be selected in the Edit deployment modal.
- Importing a MongoDB database from a connection string no longer displays an error when multiple hostnames are provided.
- Fixed an issue where trying to create an addon with a backup schedule via the CLI would fail.
- Optimised log lookback period to speed up query for long running / terminated workloads.
- When creating a new build, linked deployment services no longer appear to have no current build.

]]>
  </content:encoded>
</item><item>
  <title> Introducing Wildcard Certificates, Template Functions &amp; Northflank Registry</title>
  <link>https://northflank.com/changelog/introducing-wildcard-certificates-template-functions-and-northflank-registry</link>
  <pubDate>2023-10-01T23:00:00.000Z</pubDate>
  <description>
    <![CDATA[Introducing updates to certificate generation, templates, addons, and more! ]]>
  </description>
  <content:encoded>
    <![CDATA[<img src="https://assets.northflank.com/15_09_2023_cd22c6bf12.png" alt=" Introducing Wildcard Certificates, Template Functions &amp; Northflank Registry" />We’re happy to introduce a series of updates to certificate generation, templates, addons, and more! 

## Certificate Generation

Northflank now supports [wildcard certificate generation](https://northflank.com/docs/v1/application/domains/wildcard-domains-and-certificates#certificate-generation) via DCV (Domain Control Validation) or user imported certificates, which allows you to avoid the [rate limits](https://letsencrypt.org/docs/rate-limits/) set by Let’s Encrypt. This is especially useful for users with a large number of subdomains. You can set up wildcard certificates by either setting a DNS entry to delegate ACME challenges to Northflank, or by importing your own custom certificate.

We also support the addition of [domains with wildcard](https://northflank.com/docs/v1/application/domains/wildcard-domains-and-certificates) redirects to Northflank. Subdomains with wildcard redirects will be automatically verified when added. This should help you save time when adding multiple subdomains under the same domain. If your domain is also set up with a wildcard certificate, you can dynamically provision subdomains by including them inside templates.

## Templates

Templates now support more advanced handling for string interpolation, including a wide variety of functions. We’ve added [functions](https://northflank.com/docs/v1/application/infrastructure-as-code/write-a-template#functions) for string manipulation, arithmetic, and boolean logic to give you more flexibility. These functions can take arguments, references, and literals as parameters, and can also be nested. This lets you handle all sorts of use cases: convert references to base64 for use in secret files, perform conditional logic based on your template arguments, or extract data from a URL.

For more information, please [visit our documentation](https://northflank.com/docs/v1/application/infrastructure-as-code/write-a-template#functions).

Additional Template Updates:
- Secret files can now contain [references](https://northflank.com/docs/v1/application/secure/inject-secrets#dynamic-templating) in line with other fields.
- Git triggers no longer run templates on opening a pull request if the commit does not pass the file path rules.
- Empty ref fields no longer disappear when switching between editor modes.
- Trying to access a reference or argument that doesn’t exist will cause the template to throw an error rather than being replaced with an empty string. References and arguments used as function parameters will continue to be replaced with the empty string.
- You can now use multiple interpolated strings within the same field.

Bug Fixes:
- Fixed an issue with addon creation in templates where `customCredentials.dbName` could not be patched.
- Fixed an issue where JobRun nodes could not be saved in the case where a job without a valid build was added and the deployment settings had not been modified.
- Fixed an issue where cron jobs would not be suspended correctly when configuring the setting via templates.

## Addons

Addons received several updates to performance, UX, and imports including:

- Upgraded performance of MongoDB addon restores for larger databases and resource plans.
- The addon dashboard now prioritises important addon variables. More variables are accessible on the Connection Details tab.
- When importing an addon via file upload, the suggested backup name will now default to the filename instead of a random identifier.
- Importing a MongoDB addon now requires you to specify which database to import. You will receive a warning when trying to import the admin database or another system database.

## Registry

We’ve made it easier for you to [pull container images from Northflank’s container registry](https://northflank.com/docs/v1/application/build/pull-images-from-Northflank). Images are now accessible from the following URL:

```
registry.northflank.com/[projectId]/[serviceId]:[buildId]
```

Additionally, `buildId` can now be a commit SHA or `latest`, which will return the latest relevant build. Now that the image url is deterministic, it should be much easier to integrate Northflank’s registry into your workflow. 

## API & CLI

We’ve added new API endpoints for managing notification integrations, so you can dynamically add new alerts and webhooks. We’ve also added endpoints for accessing backup and restore logs. For details please visit [our API docs](https://northflank.com/docs/v1/api/integrations/create-notification-integration). 

## Usability

Updates:
- The metrics UI now allows you to quickly select a specific time period by clicking and dragging on one of the graphs.
- Added an option to permanently hide the banner prompting you to link a version control account.
- Resources can now be filtered by tag.
- Hovering over a commit SHA on the build list now displays the commit message for that commit.

Bug Fixes:
- Log filters now apply correctly to live tail logs and when navigating to the page from an external link.
- Fixed an issue that occasionally caused the logging UI to crash.
- Fixed an issue that sometimes caused the page to crash when trying to restrict a container registry integration to specific projects.
- Fixed an issue where Slack notification integrations failed to be created if lots of events were selected.
- Fixed an issue where Dockerfiles would not be fetched correctly for services using public repositories.
- Fixed formatting issues with the instances list when autoscaling scaled down the number of replicas.
- Fixed an issue where multiplayer status would be shown on top of the observability modal.
- Fixed an issue where the list of domains failed to add new entries while a search term was entered.
- Fixed an issue where pressing enter on the domain search field would open the Add Subdomain modal.
- When updating buildpack configuration for services or jobs, you will no longer receive unnecessary error messages.
]]>
  </content:encoded>
</item><item>
  <title>New Infrastructure Alerts &amp; Improved Addon Performance</title>
  <link>https://northflank.com/changelog/new-infrastructure-alerts-and-improved-addon-performance</link>
  <pubDate>2023-08-28T23:00:00.000Z</pubDate>
  <description>
    <![CDATA[Exciting updates to infrastructure alerts, add-ons, and DX on Northflank.]]>
  </description>
  <content:encoded>
    <![CDATA[<img src="https://assets.northflank.com/2023_eb80856aa0.png" alt="New Infrastructure Alerts &amp; Improved Addon Performance" />Today’s changelog features exciting updates to infrastructure alerts, addons, and DX on Northflank.

### Infrastructure Alerts

Infrastructure alerts are now available for resource usage events. You can add new alert types from the notification settings <a href="https://app.northflank.com/s/account/integrations/notifications" target="_blank">here</a> to be alerted via webhook, Discord, Teams, or Slack. You can also configure infrastructure alert settings <a href="https://app.northflank.com/s/account/integrations/alerts" target="_blank">here</a>. This makes it easier to monitor your workloads and manage resource requirements, allowing you to have peace of mind that your production workloads are running as expected.

New alerts include:

* Events for CPU and Memory usage
* 90% Usage Spike events when a resource hits the 90% usage threshold for a short amount of time.
* 90% Usage Sustained events when a resource has been over the threshold for five minutes or more.

### Addons

Addons received several improvements to performance and configurability. These improvements mean your Addons will be more responsive to user initiated actions and faster to create and scale, leading to a much improved user experience.

These include:

* Faster TLS certificate generation
* Improved reaction time to actions like backup triggers
* Faster MongoDB replica creation through a new disk cloning mechanism
* Support for the following stateful workload versions:
  * Redis: 7.0.11, 6.2.12
  * MySQL: 8.0.33
  * MinIO: 2023.6.9
  * MongoDB: 6.0.7, 5.0.18
  * RabbitMQ: 3.10.24, 3.11.18, 3.12.0
  * PostgreSQL: 11.20.0, 12.15.0, 13.11.0

Bug fixes include:

* Fix for issue where Postgres native backup restores were not correctly owned by the provided admin user.
* Fix for issue where Postgres addon could not be properly created when using a custom database name with uppercase letters.

Additionally, you can now set an <a href="https://northflank.com/docs/v1/application/databases-and-persistence/deploy-databases-on-northflank/deploy-redis-on-northflank#redis-specifications" target="_blank">eviction policy</a> on your Redis deployment. This enables fine-grained control over your Redis deployment's behaviour as it reaches its memory limit. Under the hood, you are configuring the Redis `maxmemory-policy` directive. Learn more about managing key eviction in Redis <a href="https://redis.io/docs/reference/eviction/#eviction-policies" target="_blank">here</a>.

Lastly, you can now reset your addon, completely wiping the addon of all data and returning it to its initial state. This process does not change your existing addon settings.

### Services

You can now configure the horizontal autoscaling of your services by Requests Per Second, for an extra degree of control.

Bug fixes include:

* Fix for service deletion volume check when deleting a service via the dashboard header.
* Fix for build duration not displaying correctly. 

### Jobs

The cron schedule is now viewable on the cron job settings page on initial page load.

### Usability

You no longer have to be an administrator for a GitHub organisation to connect with Northflank. After the organisation admin has authorised the GitHub App installation, users can return to the Northflank Git settings to finalise the link.

Bug fixes include:

* Fix to address load failure for code editor view in certain countries (due to blocked CDN).
* Fix to address issue with GitLab linking, where users who have linked their GitLab account to multiple teams could have their link invalidated.
* Fix to address certain translation browser extensions causing the site to crash.
* Minor UI fixes to the project selection modal and health check status icon.

### API & CLI

API signature updates:

* The list and get endpoints for Addons, Services, Jobs, and Secrets now return the field `tags`, an array of the resource tags associated with the resource.
* The list repositories endpoint now returns the repository id field as a string for type consistency across all version control providers. Previously, GitHub and GitLab repos returned an integer while Bitbucket repos returned a string.
* Get logs endpoints now have timestamp-based pagination, and the maximum number of log lines returned has been lifted to 1000. Additionally, when used with the Northflank CLI, get logs endpoints alert the user when no tall log lines can be returned due to hitting the maximum number.
* Get metrics endpoints now have improved error messages for invalid api calls.]]>
  </content:encoded>
</item><item>
  <title>Introducing Autoscaling</title>
  <link>https://northflank.com/changelog/introducing-autoscaling</link>
  <pubDate>2023-06-08T14:00:00.000Z</pubDate>
  <description>
    <![CDATA[Automatically handle fluctuations in traffic by adjusting the number of instances based on demand, eliminating the need for manual intervention.]]>
  </description>
  <content:encoded>
    <![CDATA[<img src="https://assets.northflank.com/Changelog_Autoscaling_c38af4b053.jpg" alt="Introducing Autoscaling" />We are thrilled to release autoscaling, a powerful feature designed to automate resource management and ensure optimal performance of your deployments. Automatically handle fluctuations in traffic by adjusting the number of instances based on demand, eliminating the need for manual intervention.

<video autoPlay playsInline loop muted width="100%">
    <source src="https://assets.northflank.com/Autoscaling_V3_70a8b6b33f.mp4"/>
</video>

With autoscaling on Northflank, you can expect:

### Seamless Horizontal Scaling
<Text mt={6}>Automatically scale up the number of instances for your deployment. Northflank’s load-balancers intelligently distribute incoming traffic across multiple instances, and ensure a smooth experience for your users during traffic fluctuations.</Text>

### Right-Sized Workloads
<Text mt={6}>Set your desired minimum and maximum number of instances to optimise resource allocation and control costs. No more over provisioning.</Text>

### Intelligent Triggering Mechanisms
Trigger autoscaling based on CPU and memory thresholds, or both, to precisely respond to changes in usage patterns.

### Responsive Provisioning
<Text mt={6}>Our autoscaling mechanism evaluates your deployment every 15 seconds to determine the appropriate scaling action. By considering the average usage across all instances, we ensure the correct number of instances are provisioned for your workload at any given time.</Text>

### Stability and Reliability
<Text mt={6}>Autoscaling takes into account a moving 5-minute window of checks, preventing rapid capacity reduction due to short-term drops in activity. This ensures stability and avoids unnecessary churn and fluctuations in your deployment's capacity.</Text>

### Getting Started
Autoscaling enables teams to strike a balance between traffic spikes, performance, and cost on all paid projects. To get started with autoscaling, simply navigate to the advanced resource options in your service's resource page or during the deployment creation process. You can check out the full documentation  <a href="https://northflank.com/docs/v1/application/scale/autoscaling" target="_blank">here</a>.

Have feedback, questions, or suggestions? Please reach out through our <a href="https://northflank.com/contact" target="_blank">contact page</a> or other direct channels. We’d love to hear from you!

To stay up to date on everything new at Northflank be sure to follow us on <a href="https://twitter.com/northflank" target="_blank">Twitter</a> and <a href="https://www.linkedin.com/company/northflank/" target="_blank">LinkedIn</a>.

Happy Scaling!


]]>
  </content:encoded>
</item><item>
  <title>CNAME Chaining and Performance Enhancements</title>
  <link>https://northflank.com/changelog/cname-chaining-and-performance-enhancements</link>
  <pubDate>2023-05-19T16:00:00.000Z</pubDate>
  <description>
    <![CDATA[Introducing CNAME chaining and a suite of platform enhancements for increased speed and reliability.]]>
  </description>
  <content:encoded>
    <![CDATA[<img src="https://assets.northflank.com/performance_bug_fixes_changelog4_e9dfe0a540.jpg" alt="CNAME Chaining and Performance Enhancements" />### Platform enhancements and bug fixes:

- Added support for CNAME chaining with custom domains to make bulk import of custom domains easier
- Improved performance to domains page to better handle teams with 100s of domains
- Added edit mode for subdomains
- Increased speed of database queries and pub/sub for job runs when loading pages with >1000 job runs
- Reduced load times for projects with >100 resources (services, jobs, addons and secret groups)
- Fixed issue where Dockerfiles failed to load on the Build options page for some combined services using GitLab and Bitbucket.
- Enhanced ability to rapidly recreate recently deleted addons with the same name. This should be helpful when working with preview environments.
- Fixed an error with Team API permission scoping that previously allowed team members to make requests against another project without permissions in certain circumstances
- Updated Luxembourg and Portugal tax rates
- Fixed issue that prevented loading of logs and metrics for deployments with long names 
- Fixed issue that caused addon backup schedules to be unset by template spec if undefined
- Updated the Fig Northflank spec https://fig.io/manual/northflank https://github.com/withfig/autocomplete/pull/1953

### Update on last week’s *code.run Google security outage:

On May 11th around 10:44 UTC, notice of 2 malicious subdomains caused Google’s Safe Browsing to mistakenly mark all subdomains of *.code.run as dangerous. Although the malicious domains were immediately removed, this action affected thousands of *.code.run domains. Affected customers have already been notified, and the scope of this issue primarily impacted development environments. We were back online within 2 hours and have partnered closely with the folks at Google to ensure that code.run is now flagged so that only malicious subdomains are impacted if similar circumstances arise in the future. We’d like to thank all the affected customers for their patience and assistance in sending unblock requests en masse.

Updates to Documentation:

- Corrected skip CI message documentation, strings do not have to be in square brackets: https://northflank.com/docs/v1/application/build/build-code-from-a-git-repository#skip-ci-with-commit-messages 
- Documented secret file injection behaviour for builds: https://northflank.com/docs/v1/application/build/inject-build-arguments#add-a-secret-file-to-a-build 
- Added infrastructure alerts: https://northflank.com/docs/v1/application/observe/set-infrastructure-alerts 
- Added logz.io log sink instructions: https://northflank.com/docs/v1/application/observe/configure-log-sinks#create-a-logzio-log-sink 
- Added guide to configure addons for high-availability: https://northflank.com/docs/v1/application/databases-and-persistence/scale-a-database#configure-addons-for-high-availability

Have feedback, questions, or suggestions? Please reach out through our <a href="https://northflank.com/contact" target="_blank">contact page</a> or other direct channels. We’d love to hear from you!

To stay up to date on everything new at Northflank be sure to follow us on <a href="https://twitter.com/northflank" target="_blank">Twitter</a> and <a href="https://www.linkedin.com/company/northflank/" target="_blank">LinkedIn</a>.

]]>
  </content:encoded>
</item><item>
  <title>Introducing Infrastructure Alerts and Logs &amp; Metrics via CLI/API</title>
  <link>https://northflank.com/changelog/introducing-infrastructure-alerts-and-logs-and-metrics-via-cli-api</link>
  <pubDate>2023-05-12T17:50:00.000Z</pubDate>
  <description>
    <![CDATA[Improve monitoring, diagnosis, and optimization of production workloads with new alerts for container restarts and volume usage, as well as access to logs and metrics via the API and CLI.]]>
  </description>
  <content:encoded>
    <![CDATA[<img src="https://assets.northflank.com/logmetrics_cli_infra_alerts_e20d3a6806.jpg" alt="Introducing Infrastructure Alerts and Logs &amp; Metrics via CLI/API" />We are pleased to release a handful of highly requested features for monitoring, diagnosing, and optimising production workloads on Northflank. Highlights include infrastructure alerts for container restarts and volume usage, as well as access to logs and metrics via the API and CLI.


### Infrastructure Alerts:

Users will now receive alerts when a container crashes or is evicted. Additionally, users can enable volume usage alerts to receive notifications when addon or service persistent disks hit 75% or 90% volume usage. These alerts can be integrated into users’ existing notifications so they can be kept up to date via Slack, Webhooks, and Discord. This will help users pre-emptively respond to database storage limits and OOM crashes.

Learn how to setup <a href="https://northflank.com/docs/v1/application/observe/set-infrastructure-alerts" target="_blank"> alerts</a>.

 ![Northflank Infrastructure alerts: CPU, memory, volume usage](https://assets.northflank.com/infra_alerts_time_windows_818d9fce62.jpg) 



### Logs via CLI, API, and JS Client

At Northflank, we are committed to letting our users choose between a GUI and a CLI for ultimate flexibility. In our continuing efforts to deliver parity across these experiences, we’re excited to introduce log search and tailing via CLI, API, and JS Client.

Log retrieval endpoints have been added to the API to make it possible to fetch logs programmatically through HTTP requests or WebSockets. Users can now:

- Fetch a range of logs within a time window or stream logs live as they are generated (log tailing).
- Apply filters including time constraints, text, and regex.
- Fetch logs from multiple service, job, or addon containers and filter at container level.
- Quickly copy a CLI query from the logs dashboard to get started.

Learn how to programmatically search and stream logs using the <a href="https://northflank.com/docs/v1/api/log-tailing" target="_blank">API and Websockets</a>.

<video autoPlay playsInline loop muted width="100%">
    <source src="https://assets.northflank.com/cli_tailing_gif_1_3fe6d86def.mp4"/>
</video>

### Metrics via CLI, API, and JS Client

We have also added metrics querying and graphing via CLI, API, and JS client. This enables users to:

- Fetch metrics at a single point in time or within a specified time window.
- Fetch different types of metrics or multiple metrics at once.
- Fetch metrics from multiple service or job containers or filter on container level.


 ![Northflank cli showing metrics usage of a container](https://assets.northflank.com/cli_metrics_command_2_d1fb73ea1c.png) 

### CLI and JS Client Releases

Update versions with: `npm i -g @northflank/cli` or `npm i -g @northflank/js-client`

- CLI (v0.9.9) and js-client (v0.7.9) release:
    - CLI dynamic container selection for logs and metrics endpoint if –containerId is specified
    - CLI pagination support for dynamic domain and registry selection
    - js-client exec methods return proper command result object when exit is not zero
    - js-client fix of improper handling of falsy optional arguments for log and metrics endpoints

Have feedback, questions, or suggestions? Please reach out through our <a href="https://northflank.com/contact" target="_blank">contact page</a> or other direct channels. We’d love to hear from you!

To stay up to date on everything new at Northflank be sure to follow us on <a href="https://twitter.com/northflank" target="_blank">Twitter</a> and <a href="https://www.linkedin.com/company/northflank/" target="_blank">LinkedIn</a>.

]]>
  </content:encoded>
</item><item>
  <title>Enhanced Container Observability: Metrics, Logs, and Health-Checks</title>
  <link>https://northflank.com/changelog/enhanced-container-observability-metrics-logs-and-health-checks</link>
  <pubDate>2023-05-05T13:00:00.000Z</pubDate>
  <description>
    <![CDATA[Significant enhancements to container observability: Log direction toggling, custom query ranges for metrics, health-check visibility, and overview of all containers in a resource. ]]>
  </description>
  <content:encoded>
    <![CDATA[<img src="https://assets.northflank.com/Changelog_observability_48ec21b77f.jpg" alt="Enhanced Container Observability: Metrics, Logs, and Health-Checks" />We’re happy to announce significant enhancements to container observability on Northflank. These enhancements should make it easier to debug deployed workloads, and understand the performance of your application. Key features include: log direction toggling, custom query ranges for metrics, ability to export logs via UI, health-check visibility, and overview of all containers in a resource.

-   Added new modal interface to observe a specific container or all containers in a resource
-   Added instance metadata with resource states, metadata, and access to logs, metrics, health-checks, and terminal shell
-   Added logs and metrics tabs for the all containers view
-   Added logs, metrics, health-checks, and shell for specific container views
-   Added Docker pull command to run your image builds locally

![Screenshot of health check interface](https://assets.northflank.com/app_northflank_3_3897f174b7.png) 

-   Added health-checks tab
    -   Added dedicated container health page
    -   Now shows container failure reason if applicable, e.g. OOM
    -   Now shows total number of times a container has restarted (due to health check or crashes)
    -   Now shows active health checks with greater detail about:
        -   type: startup, liveness, and readiness probes
        -   status
        -   last update times
        -   responses (status code + message)
        -   response latencies

![Screenshot of logs interface](https://assets.northflank.com/app_northflank_1a4dd47795.png) 

-   Enhanced logs tab
    -   Added log direction preference: either new log lines come in at the top of the window, or new log lines come in at the bottom of the window more like a terminal
    -   Added log line panel when expanding a log line with additional metadata
    -   Added new controls to select and copy a specific range of logs
    -   Added ability to select a log range and export/download the logs

![Screenshot of metrics interface](https://assets.northflank.com/image_342_1425a356c7.png) 

-   Enhanced metrics tab
    -   Added support to query metrics for all containers on the metrics page
    -   Added support to query metrics for suggested or custom time intervals
    -   Volume usage graph for services with volumes now have the same visibility as those used in addons
    -   Added events timeline with support for start, terminate & restart events
    -   Metrics view is now customisable: metrics graphs can be resized and moved around within the grid layout

![Screenshot of shell interface](https://assets.northflank.com/app_northflank_1_ab60e54144.png) 

-   Updated and moved container shell access UI into observability view for easy access when reviewing the logs, metrics and health of an individual container]]>
  </content:encoded>
</item><item>
  <title>Addon Features, Performance Enhancements, and Volume Cleanup</title>
  <link>https://northflank.com/changelog/addon-features-performance-enhancements-and-volume-cleanup-2</link>
  <pubDate>2023-04-28T10:30:00.000Z</pubDate>
  <description>
    <![CDATA[Introducing UI performance enhancements, deleting volumes for a service, faster project clean-up and more improvements.]]>
  </description>
  <content:encoded>
    <![CDATA[<img src="https://assets.northflank.com/changelog26042023_d959e9a3bd.jpg" alt="Addon Features, Performance Enhancements, and Volume Cleanup" />- Added additional supported features per addon type via API:
     ```json
     "features": {
       "backupsDump": false,
       "customDBName": false,
       "forkAddon": true,
       "importDump": true,
       "importLive": true,
       "scaleReplicas": false,
       "tls": true,
       "externalAccess": true
     }
    ```

- Added a prompt to trigger a build after configuration changes on a build service
- Added feedback shortcut and dedicated URL: https://app.northflank.com/s/account/feedback for increased accessibility
- Added fallback values on undefined metric series values to ensure graphs are rendered correctly
- Added option for team members to skip project creation during onboarding to get started more quickly
- Added ability to delete mounted services volumes via an opt-in checkbox during service deletion
- Added ability to delete all sub-resources at once via an opt-in checkbox during project deletion
- The UI will now correctly inherit the last project and team context from local storage
- Fixed a bug that was causing logs and metrics to get stuck in an indefinite loading state under certain circumstances
- Improved log search and tailing to use a more accurate timestamp to ensure all logs are returned for the lifetime of container(s) in all circumstances.
- Fixed a bug that caused the Github link to fail when a user was missing an OAuth link for a linked VCS team
- Fixed incorrect sorting of instance list by status
- Improved readability of text on health-check tooltips
- Fixed a bug that caused occasional crashing when renaming a resource's title
- Several performance optimisations have been applied to the application:
    -   Dropdowns are now virtualised when over 20 items are present
    -   Project modal and list sector are now virtualised
    -   Filter and sorting of project subscriptions is now handled server-side
    -   Added additional subscriptions for paged project lists and a full project view
    -   Enhanced container subscriptions for pipelines when many resources are managed per stage
    -   Addons and service container subscriptions are now only listening to resources currently visible

- Released new versions of the JS Client and CLI. This release is laying important infrastructure for further improvements to logging and metrics usage via CLI. Please update using the packages below:
    - https://www.npmjs.com/package/@northflank/cli
    - `yarn global add @northflank/cli@0.9.8`
    - https://www.npmjs.com/package/@northflank/js-client
    - `npm i @northflank/js-client@0.7.8`
- New guide walking through log sinks and Logz.io <a href="https://northflank.com/guides/send-logs-to-logz-io-from-northflank" target="_blank">here</a>
    

  
To keep up with everything new on Northflank, follow us on <a href="https://www.linkedin.com/company/northflank/" target="_blank">LinkedIn</a> or <a href="https://twitter.com/northflank" target="_blank">Twitter</a>.]]>
  </content:encoded>
</item><item>
  <title>Introducing Log Sinks</title>
  <link>https://northflank.com/changelog/introducing-log-sinks</link>
  <pubDate>2023-04-17T20:30:00.000Z</pubDate>
  <description>
    <![CDATA[Log sinks enable users to seamlessly integrate their preferred log aggregators and observability platforms with their Northflank builds and deployments.]]>
  </description>
  <content:encoded>
    <![CDATA[<img src="https://assets.northflank.com/log_sinks_northflank_45a1df77c8.jpg" alt="Introducing Log Sinks" />   We are excited to release log sinks to general availability! Log sinks allow users to seamlessly integrate their preferred log aggregators and observability platforms with their Northflank builds and deployments.

Users can now send all their Northflank container logs to one or multiple providers for any project. This makes it possible to integrate with existing observability platform(s), build dashboards across multiple platforms and providers, and access the features of a preferred log service. It also improves the ability to analyse and visualise log metrics, perform searches, set up real-time alerts, and meet log auditing requirements for resources hosted on Northflank.

This new feature enables users to improve debugging with a comprehensive view of application performance across different services in their organisation's stack. In turn, this will make it easier to identify any issues that arise during builds or deployments. It will also provide a simpler way for teams to securely audit historical logs using their existing automation tools.
 
Ready to implement log sinks? You can view the complete documentation <a href="https://northflank.com/docs/v1/application/observe/configure-log-sinks" target="_blank">here</a>.

### Supported Integrations

- Datadog
- Loki
- Papertrail
- HTTP
- AWS S3
- Mezmo
- Logtail
- Honeycomb
- Logz.io
  

### Features

- Log encoding - By default, logs will be sent as plain text. There’s also support for sending logs in a JSON format instead.
- Project restrictions - You can restrict logs from certain projects, giving you granular control over which logs reach your log sink.
- Custom label extraction - When you need to extract custom labels from a JSON message body, you can enable Custom Labels.
    - Supported for Logtail, Honeycomb, Logz.io and Datadog.
    - Your JSON messages will be parsed, and then key value pairs will be extracted and added as labels and message, or msg will be picked from the object and set as the message body that is then forwarded on to the observability provider.
    - For example: `{ message: 'hello', custom: 'field', status: 'my-status' }`

To use the API, check out the documentation <a href="https://northflank.com/docs/v1/api/integrations/create-log-sink" target="_blank">here</a>. The following is an example of how to create a Datadog log sink via the API:

 ```javascript
await apiClient.create.logSink({
  data: {
    'name': 'example-log-sink',
    'description': 'This is an example log sink.',
    'restricted': true,
    'useCustomLabels': true,
    'projects': ['default-project'],
    'sinkType': 'datadog_logs',
    'sinkData': {
      'default_api_key': 'abcdef12345678900000000000000000',
      'region': 'eu',
    },
  },
});
```

Additional new releases and updates are on the horizon for observability and alerting. To keep up with everything new on Northflank, follow us on <a href="https://www.linkedin.com/company/northflank/" target="_blank">LinkedIn</a> or <a href="https://twitter.com/northflank" target="_blank">Twitter</a>.]]>
  </content:encoded>
</item><item>
  <title>What's New at Northflank: Q1 2023</title>
  <link>https://northflank.com/changelog/whats-new-at-northflank-q1-2023</link>
  <pubDate>2023-04-04T17:30:00.000Z</pubDate>
  <description>
    <![CDATA[Over the past quarter, the Northflank team has delivered an array of new features and enhancements to streamline the process of importing, building, and deploying production infrastructure on the Northflank platform.]]>
  </description>
  <content:encoded>
    <![CDATA[<img src="https://assets.northflank.com/Changelog_Q1_2023_f8b7450606.jpg" alt="What's New at Northflank: Q1 2023" />Over the past quarter, the Northflank team has delivered an exciting array of new features and enhancements to streamline the process of importing, building, and deploying production infrastructure on the Northflank platform.

To better support migration to Northflank from other platforms, we have significantly improved the import process with changes including: increased import speeds, new live import by connection string, and automated data import into users’ Northflank generated databases.

We also recognize the importance of integrating Northflank's build platform seamlessly into your existing workflows. To this end, we have introduced multi-stage build targets, expedited cloning speeds, added options to ignore commit messages, and enabled full Git history support for a wider range of workloads and use cases.

Additionally, we have improved the overall DX with a wide range of changes. Highlights include: making managed environment variables accessible during build and runtime, extending resource name limits from 20 to 39 characters, providing visible resource IDs for easier dashboard and API usage, and refining Docker command/entrypoint and Buildpack workflows. For a complete list of improvements, please read the full release notes below.

Thank you to everyone who has provided feedback and input over the last quarter. Over the coming months, Northflank will be rolling out a number of powerful new features. To keep up to date with all that's new at Northflank, please follow us on <a href="https://twitter.com/Northflank" target="_blank">Twitter</a>. If you have any questions, comments, or suggestions, please reach out through <a href="https://northflank.com/contact" target="_blank">our contact page</a> or other direct channels. We’d love to hear from you!


## Release Notes

### Services

![Services.jpg](https://assets.northflank.com/Services_10f3b6f963.jpg)

-   Improved Docker command/entrypoint and Buildpack workflows with the following updates:
	-   Simplified custom override creation with an updated UI.
	-   Docker users can now choose between: default config, custom entrypoint, custom command, or both.
	- Buildpack users can now choose between: default config, custom process (from your Procfile), custom command (either using the default process or the Buildpack launcher as entrypoint) or custom entrypoint & command.
	-  To learn more check out: <a href="https://northflank.com/docs/v1/application/run/override-command-entrypoint" target="_blank">Documentation for Command and Entrypoint Override</a>.

-   Added ability to import Heroku apps and pipelines.
	-   You can now link your Heroku account in your user or team settings, and select which apps and pipelines you wish to import from Heroku.
	-   Added options to configure the resources and settings for each app, and choose how to integrate with your existing version control setup.
	-   Your Heroku resources are now automatically migrated to Northflank resources and saved as a new template that can be rerun or reconfigured as needed.
	-  To learn more check out: <a href="https://northflank.com/docs/v1/application/migrate-from-heroku" target="_blank">Documentation on How to Migrate from Heroku</a>.

-   Enhanced flexibility and performance of build platform.
	-   Added advanced build settings to expand VCS functionality.
		-   Added the option to include the .git folder and full git history in builds.
		-   Added commit message ignore flags. When enabled, a commit won't be built as part of CI if the commit message contains an ignore flag. After enabling the setting, we include a list of preconfigured messages such as [skip ci]. These can be added or removed to fit your workflow.
		-   Added an Allow toggle to the path rules setting. When enabled, a commit will only be built if it modifies one or more files that match any of the path rules. This is useful for monorepos, where you may only want to build commits that affect a specific folder.
	-   Added an optional target build stage for users who provide multi-stage Dockerfiles.
	-   The status of Northflank deployment services are now displayed on GitHub, and deployment statuses will be cleaned up in cases where the build source for a service is changed.
	-   Increased the speed of Git repository cloning when creating a service from a template.
	-   The dashboard of a new service is now accessible immediately, providing you with information about the current status of cloning.
	-   Improved the handling for unlinking and relinking version control accounts.
		-   When linking to a new version control account, your existing Northflank resources will automatically switch over to the new version control account. Note: the new version control account must have access to your original repository.

### Addons

![Addons.jpg](https://assets.northflank.com/Addons_d266148a34.jpg)

-   Added support for the following stateful workload versions: 
	-   MySQL: `8.0.32`
	-   RabbitMQ `3.9.29`, `3.10.19`, `3.11.10`
	-   Redis `6.2.11`,`7.0.9`
	-   MongoDB `4.2.21`, `4.4.15`, `5.0.15`, `6.0.5`
	-   Postgres `11.19`, `12.14`, `13.10`, `14.7`
	-   Minio `2023.3.13`
-   Restores of imported data are now imported to the default database. 
-   Imports from connection strings are now supported for MySQL, Postgres and MongoDB addons.
-   Added ability to override default database name during creation for: MySQL, Postgres, MongoDB, and RabbitMQ (vhost).
-   Added support for Zstandard (zstd) to compress backups and imports.
-   Improved compression speed with multi-threaded compression.
-   Added support for the following Postgres extensions: earthdistance, pgRouting, PostGIS,  and pg_stat_statements.
-   Added rollout strategy improvements when using a multi-replica configuration in your MySQL, Postgres, or Redis addons.
	-   Database replicas will now be restarted sequentially when scaled or re-deployed, ensuring minimal to zero downtime.
-   Improved connection details by including tooltips for environment variable descriptions and introducing one-click filtering on external connection details.

### Jobs

![Jobs.jpg](https://assets.northflank.com/Jobs_42976d22d3.jpg)

-   You can now specify ephemeral storage of more than 1 GB to better complete tasks that require more disk usage (eg. file processing).
-   Added ability to preview or override job configuration when manually triggering a job run. Override deployment configuration, environment variables, Docker command/entrypoint and Buildpack workflows and resources.
-   Added shareable job trigger with pre-filled configuration URL for repeatability, external workflows and collaboration with teammates.

### Usability

![Usability.jpg](https://assets.northflank.com/Usability_d0fcf13a5f.jpg)

-   Resource ID is now shown in the dashboard resource header for use with the API.
-   Resources can be renamed from the header by hovering over the existing name.
-   Resource descriptions can be edited from the header by hovering over the description field.
-   Project colours can now be updated after creation.
-   You can now initiate a CLI session with a browser login.
-   Added <a href="https://fig.io/manual/northflank" target="_blank">Fig autocomplete for Northflank/Fig CLI</a>.
-   Fixed bug that caused certain browsers to block VCS linking flow with pop-up windows.
-   Added page titles to improve navigation experience.
-   Updated first and second level sidebar navigation with hover states and icons for better readability.
-   Added ability to `forward` proxy in the CLI without requiring root user privileges using `--skipHostnames`.
-   Improved terminal output when forwarding ports for Northflank resources.
-   Added ability to delete projects with active resources.
-   Improved team invite notifications and management.
-   Updated the UI for account limits for better readability.

### API

-   Added new API endpoints for:
	-   Pausing & resuming jobs
	-   Backup schedule & retention 
	-   Billing details and invoice(s)
-   Added ability to pick the latest version, latest major version or latest patch version for addon deployments via API using `latest` or `{version}-latest`, ie `14-latest`.

### Additional Updates and Improvements

-   Added one time password support (Multi-factor Authentication).
	-   Teams can view whether or not teammates have MFA enabled.
-   Improved invoices with ability to specify additional emails for delivery, add EU/UK VAT IDs with associated tax addresses, and override invoice name from default user/team name.
-   Extended resource name limits from 20 to 39 characters.
-   Added ability to configure resource list length app-wide.
-   Removed password requirement for SSO accounts.
-   Added new managed variables to access deployed image versions, resources, hosts and domains via injected environment variables:
	-   Build time:  such as `NF_GIT_SHA`, `NF_GIT_BRANCH` and `NF_PREVIOUS_BUILD_GIT_SHA`
	-   Runtime: `NF_PLAN_ID`, `NF_CPU_RESOURCES`, `NF_RAM_RESOURCES`, `NF_EPHEMERAL_STORAGE`, `NF_OBJECT_ID`, `NF_PROJECT_ID`, `NF_DEPLOYMENT_SHA`, `NF_DEPLOYMENT_REPO`, `NF_DEPLOYMENT_BRANCH`, `NF_HOSTS`
-   Env/secret file templating can now use managed variables.
-   Added guides for <a href="https://northflank.com/guides/deploy-kong-gateway-on-northflank-to-proxy-microservices" target="_blank">Kong</a> and <a href="https://northflank.com/guides/deploy-traefik-on-northflank-to-proxy-microservices" target="_blank">Traefik</a>.]]>
  </content:encoded>
</item><item>
  <title>June Changelog - Read replicas, networking and volumes</title>
  <link>https://northflank.com/changelog/june-changelog-read-replicas-networking-and-volumes</link>
  <pubDate>2022-07-04T08:00:00.000Z</pubDate>
  <description>
    <![CDATA[Developer experience enhancements, new documentation and API endpoints with networking and volume improvements.]]>
  </description>
  <content:encoded>
    <![CDATA[<img src="https://assets.northflank.com/Group_412_318f89738e.jpg" alt="June Changelog - Read replicas, networking and volumes" />Welcome to Northflank's June changelog. We've been working on a wide variety of product and developer experience enhancements across the platform. For production workloads improvements to read replicas and networking are most notable.

### June's improvements and fixes:
- Added `HOST_READ` connection detail to multi-replica MySQL and Postgres addons
- Added platform handling for volume resize cooldowns on AWS clusters
- Added support for overriding image entrypoints providing full flexibility for starting arbitrary processes within the container. This also adds full support for multiple process types in buildpack images that use Procfiles
- Added team invite components onto entity dashboards and on-boarding flow allowing developers to jump right into their teams
- Added support for MySQL global transaction ID (GTID) mode. GTID mode is now activated by default and improves read replication stability
- Added ability to disable routing on default Northflank domains when custom domains are added to a port
- Added query parameter syncing across team multiplayer, ensuring team filtering was correctly propagated
- Added icons to notification integration event selection
- Disabled TLS 1.0 and TLS 1.1 to improve SSL rating and security
- Improved addon connection details with external connection details now highlighted and increased search capabilities
- Improved domain lists with reactivity to external changes from other uses
- Improved handling of users, group and volume permissions: Workloads are started with the correct user group if the image defines a non-root user which fixes several issues with volume permissions for buildpack-based images. Also, the metadata of files on persistent volumes will be automatically changed such that their group owner matches the group of the image’s main process ensuring that workloads can always access attached persistent volumes.
- Improved service mesh TCP idle timeouts for internal and external endpoints allowing connections to be maintained for longer than 60 minutes
- Improved handling of unexpected error codes from self-hosted providers, and are now displayed to the user rather than being suppressed to make it clearer when there is an issue with the provider
- Improved performance when handling git cloning for template repositories with use of a queue
- Improved developer experience of the service creation and type selection
- Improved stability of metrics-server inside Kubernetes to improve platform stability
- Improved MySQL dump imports. Importing a dump will now import to the default database if no database is specified in the dump
- Improved account limits UI to show current usage and percentage of total limit
- Updated default branch rule for build services to be `main` in cases where the default branch has not been retrieved from a repository
- Improved global docker registry caching to better work with Kaniko and Buildkit cache
- Improved latency and responsiveness of environment editors
- Fixed creating a volume during service creation for teams
- Fixed environment editor crash on null secrets array
- Fixed issue with volume being marked as deleted before being provisioned
- Fixed volume configuration allowing selection of volume size smaller than current volume configuration
- Fixed issue with utf-8 encoding for secret files and config maps
- Fixed an issue with GitLab account links where builds could in rare cases fail to be triggered if multiple users with the same account linked triggered builds simultaneously
- Fixed Ruby on Rails template
- Fixed cron schedule text to show a 24 hour clock instead of 12 hour

### Guides

- [Updated how to deploy Payload CMS](https://northflank.com/guides/deploying-payload-cms)
- [Deploy 1Password Connect](https://northflank.com/guides/deploy-a-onepassword-connect-server-on-northflank)
- [Deploy YT-Spammer-Purge](https://northflank.com/guides/deploy-yt-spammer-purge-to-automatically-remove-spam-comments-on-your-youtube-videos)
 
### API, JS-client and CLI:
- Added support for setting Docker entrypoint overrides during service and job creation
- Added `Set service Docker entrypoint override` and `Set job Docker entrypoint override` endpoints to modify Docker entrypoint override after resource creation
- `Update job deployment endpoint` can now be called without passing in a build service id, which will cause it to keep using the existing build service.
- Improved performance of `Update service runtime environment` endpoint to make response time faster
- Fixed an issue with `Scale service` endpoint where scaling to zero instances would not update correctly.
- Improved error handling when linking an addon to a secret group to make it clearer which keys are valid for each addon
- Fixed issue with `Update job settings` endpoint where `runOnSourceChange` setting would sometimes not update correctly

### Documentation
- Added Migrate from Heroku section: [https://northflank.com/docs/v1/application/migrate-from-heroku](https://northflank.com/docs/v1/application/migrate-from-heroku)
- Improved forwarding section: [https://northflank.com/docs/v1/api/forwarding](https://northflank.com/docs/v1/api/forwarding)
- Added documentation for Slack and Discord notification integrations, updated Webhook integration documentation: [https://northflank.com/docs/v1/application/notifications/notification-integrations](https://northflank.com/docs/v1/application/notifications/notification-integrations)
- Added Docker command override documentation: [https://northflank.com/docs/v1/application/run/cmd-override](https://northflank.com/docs/v1/application/run/cmd-override)
- Added videos to command execute documentation: [https://northflank.com/docs/v1/api/execute-command](https://northflank.com/docs/v1/api/execute-command)
- Made guide to creating and editing deployment services clearer: [https://northflank.com/docs/v1/application/run/run-an-image-continuously](https://northflank.com/docs/v1/application/run/run-an-image-continuously)
- Added information on ephemeral storage: [https://northflank.com/docs/v1/application/scale/increase-storage#scale-ephemeral-storage](https://northflank.com/docs/v1/application/scale/increase-storage#scale-ephemeral-storage)
- Added scheduled addon backups documentation: [https://northflank.com/docs/v1/application/databases-and-persistence/backup-restore-and-import-data#schedule-backups](https://northflank.com/docs/v1/application/databases-and-persistence/backup-restore-and-import-data#schedule-backups)
- Updated billing section to include BYOC and enterprise options: [https://northflank.com/docs/v1/application/billing/pricing-on-northflank](https://northflank.com/docs/v1/application/billing/pricing-on-northflank)
- Updated domain and networking instructions: [https://northflank.com/docs/v1/application/network/networking-on-northflank](https://northflank.com/docs/v1/application/network/networking-on-northflank)
- Improved in app documentation and updated links


]]>
  </content:encoded>
</item><item>
  <title>May Changelog - Guides, Enhancements and more</title>
  <link>https://northflank.com/changelog/may-changelog-guides-enhancements-and-more</link>
  <pubDate>2022-06-01T14:00:00.000Z</pubDate>
  <description>
    <![CDATA[Introducing Northflank’s May Changelog with DX improvements, fixes and container isolation case study.]]>
  </description>
  <content:encoded>
    <![CDATA[<img src="https://assets.northflank.com/northflank_may_changelog_3d33487195.jpg" alt="May Changelog - Guides, Enhancements and more" />Welcome to the May changelog, this has been a busy month of releases, iterations and many new faces migrating production workloads from Heroku to Northflank!

Will and Cameron sat down with the Kata Containers team to talk about how Northflank leverages Kata, KVM and sandbox isolation to securely operate our multi-tenant infrastructure. https://medium.com/kata-containers/kata-containers-northflank-case-study-6ff0ce17bfd1

### Guides
This month we were excited to welcome Jesbin and Amit to the Northflank guides blog, thank you for your contributions and excited to work together on more deployment guides!

- [How to deploy Hasura](https://northflank.com/guides/deploy-hasura-on-northflank) (Thanks Amit)
- [How to deploy Bitwarden](https://northflank.com/guides/deploy-bitwarden-on-northflank) (Thanks Jesbin)
- [How to deploy Dragonfly](https://northflank.com/guides/deploy-dragonfly-on-northflank-with-docker) 
- [How to deploy Meilisearch](https://northflank.com/guides/deploy-meilisearch-on-northflank)
- [How to deploy Uptime Kuma](https://northflank.com/guides/deploy-uptime-kuma-on-northflank)
- [How to deploy Joomla](https://northflank.com/guides/deploy-joomla-on-northflank)
- [How to deploy Wiki JS](https://northflank.com/guides/deploy-wiki-js-on-northflank)
- [How to deploy Shynet](https://northflank.com/guides/deploy-shynet-on-northflank)

### May’s improvements and fixes:
- Added force certificate re-generation button in the UI
- Added volume configuration during service creation
- Added additional DNS purge when a custom domain is linked to a service
- Added quotes correctly to original Docker CMD when copying
- Added additional shortlinks to add new Git integrations in areas listing VCS data
- Added support for reaping zombie processes which are not always properly cleaned up by applications spawning child processes. This also fixes RabbitMQ restarting due to accumulation of zombie processes created when running health checks
- Fixed distributed MinIO addons failing during startup phase in some circumstances
- Fixed Buildpack builds relating to CVE-2022-24765
- Fixed cursor hiding text when configuring alias in addon secret group
- Fixed termination signalling for containers. Containers are now being sent a SIGTERM signal before being terminated. This allows the workload to intercept the exit signal and shut down properly before final termination 
- Fixed clock drift within sandboxed containers that led to deviating system time in different containers
- Fixed an issue with service creation from template where a build would not be initiated automatically
- Fixed inconsistent addon upgrade icons and added shortcut to upgrades page
- Fixed issue where jobs deploying from a build service that were set to run on image change would sometimes fail to run after a build was completed
- Improved performance for fetching user version control data (repositories, branches, pull requests)
- Improved handling of xterm when a browser window is resized for terminal and exec
- Improved handling for copying and paste for terminal and exec
- Improved Postgres addon startup times using optimised probe settings 
- Correctly display usage in years for invoice item breakdowns
- Improved handling of sudo mode when loading secret files and other secrets
- Improved validation triggers for branch option selection, port duplication, and health-checks
- Removed health checks from project quick starts
 
### API, JS-client and CLI:
- Run Job endpoint now optionally takes a billing object with a deployment plan to override the current deployment plan for a single job run
- Get Job runs and Get Job details endpoints now return `concludedAt`, the timestamp when the run has concluded
- Fixed an issue where creating a service could sometimes return an error code despite the creation being successful
]]>
  </content:encoded>
</item><item>
  <title>Scheduled backups, guides and enhancements</title>
  <link>https://northflank.com/changelog/scheduled-backups-guides-and-enhancements</link>
  <pubDate>2022-05-03T12:00:00.000Z</pubDate>
  <description>
    <![CDATA[Create backup schedules to keep your production data safe and ready for restore]]>
  </description>
  <content:encoded>
    <![CDATA[<img src="https://assets.northflank.com/northflank_backup_schedules_d3ed22686e.jpg" alt="Scheduled backups, guides and enhancements" />Today we are excited to release backup schedules. You can now create regular backups for your databases and addons, enhancing your production workloads on Northflank. Having regular backups is essential as it allows you to restore your addon in case of data loss, bad migrations or queries. Scheduled backups can be configured flexibly to ensure your individual backup requirements can be met.

Backup schedules on your addon allow up to three schedules. Configure the following parameters:
- **Backup type**: snapshot (recommended) or dump [(Backup Documentation)](https://northflank.com/docs/v1/application/databases-and-persistence/backup-restore-and-import-data#create-a-backup)
- **Backup frequency**: choose between hourly, daily or weekly backups and select the appropriate time of the day
- **Retention period**: how long the backup will be stored until it's deleted


Notable features:
- Configure multiple schedules, one per type (hourly, daily or weekly)
- The total number of backups created for a schedule before any backups expire is limited to 500 backups
- Backups created by a schedule can be manually changed to not expire. To retain the backup indefinitely, click on the backup and hit `Retain backup forever` using the `save` button
- For backups that were created by a schedule, you can look up the schedule and the retention time on a per backup basis
- If two or more schedules overlap, only one backup is created. The UI and API will show all associated schedules and the highest retention period is applied.

![northflank-backup-schedules.png](https://assets.northflank.com/northflank_backup_schedules_b25e8f5881.png)

New Guides:
- Dgraph [https://northflank.com/guides/deploy-dgraph-on-northflank](https://northflank.com/guides/deploy-dgraph-on-northflank)
- Sourcegraph [https://northflank.com/guides/deploy-sourcegraph-on-northflank](https://northflank.com/guides/deploy-sourcegraph-on-northflank)
- NocoDB [https://northflank.com/guides/deploy-nocodb-on-northflank](https://northflank.com/guides/deploy-nocodb-on-northflank)
- Nextcloud [https://northflank.com/guides/deploy-nextcloud-on-northflank](https://northflank.com/guides/deploy-nextcloud-on-northflank)
- Keystone [https://northflank.com/guides/deploy-keystonejs-on-northflank](https://northflank.com/guides/deploy-keystonejs-on-northflank)

Other features & fixes:
- Added new GitLab application handling for upcoming token rotation requirements
- Added team invitation expiry and ability to regenerate an invitation
- Added editing of Dockerfile during service creation
- Improved performance of backup and VCS subscriptions
- Improved UI handling of log search between two time ranges
- Updated Flask template repository
- Fixed project icon disappearing from documentation
- Fixed build service handling in deployment component when no build is present
- Fixed secret group creation when modifying alias keys in a particular order

]]>
  </content:encoded>
</item><item>
  <title>Introducing Exec &amp; Terminal via UI, CLI and API</title>
  <link>https://northflank.com/changelog/introducing-exec-and-terminal-via-ui-cli-and-api</link>
  <pubDate>2022-04-13T18:00:00.000Z</pubDate>
  <description>
    <![CDATA[Access and debug containers in real-time with new shell, terminal and exec capabilities.]]>
  </description>
  <content:encoded>
    <![CDATA[<img src="https://assets.northflank.com/northflank_exec_terminal_shell_container_access_4efc772f7e.png" alt="Introducing Exec &amp; Terminal via UI, CLI and API" />Today, we are happy to announce a long requested feature: Container shell access for services and jobs! You were previously able to run custom commands at startup via CMD overrides or health checks, but now it's time to introduce a dedicated capability. Enhance your debug operations and stateful workload auditing via API or CLI.

Seamlessly connect to individual service or job run containers via the UI or the CLI. As always, this has been fully integrated with our access control system for both the UI and CLI/API, allowing you to tightly control which team members can access this functionality.

Shell access on Northflank works by spawning a new shell process inside your container with access to everything inside your container (environment, filesystem, processes, ability to run commands like `top`, `npm`, `sed`, `vi`, `df`). It also provides command completion and command history where possible.

#### Using shell access from the Northflank UI:

<video autoPlay playsInline loop muted width="100%">
    <source src="https://assets.northflank.com/final_625697ef9cd872006530ba5c_540478_41ed551bab.mp4"/>
</video>

- **UI**: simply click the new `Shell access` button on the container list to access the shell
- **UI Permissions**: `Services / Jobs > Deployment > Command Exec`

#### Using shell access via terminal & the Northflank CLI:

<video autoPlay playsInline loop muted width="100%">
    <source src="https://assets.northflank.com/final_625699ab1c0ef600c2c71177_368313_8cbd6b5a00.mp4"/>
</video>

- **CLI**: the new `northflank exec` command allows you to choose a container in a specific project, service or job, a shell will be started in your terminal
- **API Permissions**: `Services / Jobs > Deployment > Command Exec`


Other features & fixes:
- Fixed an issue where PostgreSQL native backups could fail silently
- Fixed a rare crash on the addon dashboard for addons created early in 2021
- Command override copy to clipboard now copies the command as displayed

API & CLI:
- Added new command `northflank exec` to the CLI
- Added new permission to the API for services & jobs called `Command Exec`

]]>
  </content:encoded>
</item><item>
  <title>Enhanced Deployment Overview, Notifications &amp; Container Endpoints</title>
  <link>https://northflank.com/changelog/enhanced-deployment-overview-notifications-and-container-endpoints</link>
  <pubDate>2022-04-03T17:00:00.000Z</pubDate>
  <description>
    <![CDATA[More detailed deployment information for services and jobs and improved build and runtime log accessiblity]]>
  </description>
  <content:encoded>
    <![CDATA[<img src="https://assets.northflank.com/deployment_overview_shortcuts_logs_sourcenorthflank_dbb39ef3b9.png" alt="Enhanced Deployment Overview, Notifications &amp; Container Endpoints" />We have improved the deployment overview component to give you clearer and more detailed information about the code or container image deployed on your services or running jobs.

Key three areas to highlight:
- **Currently deployed**: details about the code or container image such as the name, when it was built and when it was deployed
- **Deployment source**: displays the linked Northflank builder, its Git repository, whether a build is in progress or the external container registry source
- **Deployment workflow** whether the deployment is set to deploy every new successful build from a specific branch or whether it is pinned to deploy a specific build or registry image

Accessing relevant information about your builds and deployment quickly is important. We have added helpful shortcuts to view deployment or build logs, change the command override and a shortcut to edit the deployment source.

Other features & fixes:
- Fixed an issue where user webhook notifications could be delayed
- Fixed an issue where Notification integrations could not be updated when missing a secret

API & CLI:
- Improved the container endpoint to reflect the updated platform schema
- Fixed an issue where the API rate limit cache would not be cleared as expected

]]>
  </content:encoded>
</item><item>
  <title>Introducing ConfigMap and Secret Files</title>
  <link>https://northflank.com/changelog/introducing-config-map-and-secret-files</link>
  <pubDate>2022-03-28T17:30:00.000Z</pubDate>
  <description>
    <![CDATA[Configure secret files with variable templating and securely inject them at runtime.]]>
  </description>
  <content:encoded>
    <![CDATA[<img src="https://assets.northflank.com/secret_files_configmap_overview_d32c6b29bd.png" alt="Introducing ConfigMap and Secret Files" />Today we are pleased to introduce secret files on Northflank. For Kubernetes users this capability is known as ConfigMaps, Docker users as volume `-v ./config.yaml:/var/application/config.yaml` and PaaS users as secret files. Ensuring compatibility with these three different use-cases was essential. Users will be able to use secret files in their workflows alongside secret groups, environment variables in deployments and builds seamlessly.

### Secret Files
- Allow writing of files to specific paths in your runtime container or build process
- Encrypted at rest and injected at runtime with environment variables
- Has access to variable templating enabling inheritance of other environment values or connection strings

### Use Cases:
- You need to configure a third party docker image via config files located at specific paths
- You need to create text based configuration files like `.json`, `.html`, `.css`, `.yaml` to power software like nginx, kong, supabase and more
- You need to add a certificate file or complex secret that cannot be handled via an environment variable
- Create manifest files with build or runtime variable configuration


![configmaps-secret-files-containers-northflank.jpg](https://assets.northflank.com/configmaps_secret_files_containers_northflank_9f300c4fb4.jpg)

### API & CLI:
- PR numbers in responses are now returned as integers in line with the response schema

### Features & fixes:
- Fixed an issue where two builds could be triggered at once on initial creation from template
- Links in the instance log feed are now marked up



]]>
  </content:encoded>
</item><item>
  <title>Introducing HTTP/2 and gRPC support</title>
  <link>https://northflank.com/changelog/introducing-http-2-and-grpc-support</link>
  <pubDate>2022-03-21T14:00:00.000Z</pubDate>
  <description>
    <![CDATA[Flexible network configuration with new enhanced HTTP/2 and gRPC protocol support for deployed workloads.]]>
  </description>
  <content:encoded>
    <![CDATA[<img src="https://assets.northflank.com/http2_grpc_support_northflank_a86809fdab.png" alt="Introducing HTTP/2 and gRPC support" />Today we are very excited to announce end-to-end HTTP/2 and gRPC support. This further extends the advanced networking capabilities that can be deployed and configured on Northflank. We have historically upgraded HTTP/1 traffic to HTTP/2 at the edge load-balancer, downgrading it to HTTP/1 as it reached your workload, with the primary focus of improving performance and request efficiency. Now, you can make full use of HTTP/2 benefits in your web and microservices as traffic will now continue to flow upstream to your web server for processing as HTTP/2.

### HTTP/2 and gPRC on Northflank
- Allows using advanced features such a gRPC on your services
- Additional protocol can now be selected during port configuration for both private and public ports
- The platform will continue to upgrade all incoming traffic to HTTP/2 and downgrade if the workload doesn’t support it
- Existing HTTP ports will remain on HTTP/1 but can be switched by the user
- You can still configure multiple HTTP/1, HTTP/2, TCP and UDP ports per service

### Benefits of HTTP/2 and use-cases
- Reduce latency by enabling full request and response multiplexing
- Minimise protocol overhead via efficient compression of HTTP header fields
- Add support for request prioritisation and server push

### Benefits of gRPC and use-cases
- designed for low latency and high throughput communication. gRPC is great for lightweight microservices where efficiency is critical
- excellent support for bi-directional streaming. gRPC services can push messages in real-time without polling

### Features & fixes:
- Reduced the frequency of `sudo` mode password prompts when editing environment data
- Updated the “Getting started” documentations pages to reflect recent changes
- Fixed an issue where an addon could get into an unhealthy state when a disk restore applied an old version of the addon
- Various minor API example payload & schema improvements

]]>
  </content:encoded>
</item><item>
  <title>Configurable Ephemeral Storage, PostGIS, Public MySQL and Postgres</title>
  <link>https://northflank.com/changelog/configurable-ephemeral-storage-post-gis-public-my-sql-and-postgres</link>
  <pubDate>2022-03-14T14:00:00.000Z</pubDate>
  <description>
    <![CDATA[Configurable ephemeral storage for services and jobs, MySQL and Postgres public network feature flags are enabled for all users and more.]]>
  </description>
  <content:encoded>
    <![CDATA[<img src="https://assets.northflank.com/ephemeral_storage_image_b9014d2eb2.png" alt="Configurable Ephemeral Storage, PostGIS, Public MySQL and Postgres" />We’re excited to release configurable ephemeral storage for services and jobs. This further expands the breadth and depth of workloads that can be run on Northflank. Simply select the available ephemeral storage you need from 1GB (default), 5GB, 10GB and 20GB. The increased storage above 1GB (included for free) will be billed at the volume rate on <a href="https://northflank.com/pricing" target="_new">our pricing page</a>.

This is a complementary capability to persistent volumes <a href="https://northflank.com/changelog/persistent-volumes-and-storage-for-deployments" target="_new">released earlier this year</a>.

Why would you use ephemeral storage over persistent volumes?

- Some workloads you want to fire and forget, not worry about state or persistence, and thus configuring ephemeral storage is optimal.
- PVs only provided increased disk at routes not inside the container workload. 
- PVs are billed for the lifetime of the disk whereas ephemeral disks are billed by the lifetime of the container during runtime by the second.


Type of workloads that require larger ephemeral storage?
- Non-trivial database migrations and backups
- Downloading and operating large ML models
- Downloading and transforming large media files (video/images)
- Large tmp directories or file-based cache

We’re expanding capabilities to provide more database addon configurations starting with PostGIS. PostGIS is a spatial database extender for PostgreSQL. It adds support for geographic objects allowing location queries to be run in SQL. 

Email support@northflank.com if you are interested in using PostGIS.

### Features & fixes 

- Exposing PostgreSQL and MySQL feature flag is now enabled by default (still restricted to 2 exposed addons of these types)
- Fixed an issue where repositories on self-hosted GitLab would sometimes not be detected correctly
- Fixed an issue with Logs which could prevent loading new logs if there was a large number of entries in a sub-second interval
- Fixed an issue where billing alerts would not be triggered
- Build service branch & PR restriction build restriction patterns now support more special characters
- Update the Docker registry permission names from `integrations` to `registries`
- Users will now be signed up automatically when no account is present while trying to login with OAuth buttons from the login page
- Improved the manual invoice payment option styling, including the component to add a new card while paying an invoice
- Added a scale job endpoint to allow modifying job resources

]]>
  </content:encoded>
</item><item>
  <title>Parallel builds for same SHA, unicode branches and PRs &amp; flexible job source</title>
  <link>https://northflank.com/changelog/parallel-builds-for-same-sha-unicode-branches-and-p-rs-flexible-job-source</link>
  <pubDate>2022-03-07T18:00:00.000Z</pubDate>
  <description>
    <![CDATA[Simply tigger multiple builds with the same Git commit with different build arguments in parallel. Added support for unicode in branch and PR names. More fixes and improvements.]]>
  </description>
  <content:encoded>
    <![CDATA[<img src="https://assets.northflank.com/run_job_66bee4664e.png" alt="Parallel builds for same SHA, unicode branches and PRs &amp; flexible job source" />Welcome to another Northflank changelog, this week we're happy to dedicate it to our continued focus on platform stability and reliability. 

### Features & fixes 

- Enabled parallel builds for the same commit, branch or PR
- Hovering over environment keys now shows their full name
- Jobs can now be created without a configured deployment source 
- Added support for displaying unicode characters in branch and PR names 
- Fixed some documentation links leading to 404 errors
- Fixed an issue with password prompts on registry credentials 
- Fixed an issue where API would return error 500 on bad command override 
- Fixed Redis connection strings not working in the Redis CLI 
- Fixed an issue with accessing health checks of jobs in certain scenarios 
- Fixed an issue where Login with Google would sometimes take a long time to load 
- Added a section on configuring persistent volumes to the <a href="https://northflank.com/guides/deploying-ghost-cms" target="_new">Deploy Ghost</a> guide ]]>
  </content:encoded>
</item><item>
  <title>Updated API, CLI &amp; Documentation</title>
  <link>https://northflank.com/changelog/updated-api-cli-and-documentation</link>
  <pubDate>2022-02-28T11:00:00.000Z</pubDate>
  <description>
    <![CDATA[Released upgrades to JS client and CLI with several updated API endpoints, added ANSI escape sequence formatting on logs and more.]]>
  </description>
  <content:encoded>
    <![CDATA[<img src="https://assets.northflank.com/ansi_logs_5117669af8.png" alt="Updated API, CLI &amp; Documentation" />This week we are introducing some improvements to the Northflank API & CLI together with updated documentation and several other new features.

### API & CLI

- Released <a href="https://www.npmjs.com/package/@northflank/js-client" target="_blank">JS client v0.5.5</a> and <a href="https://www.npmjs.com/package/@northflank/cli" target="_blank">CLI v0.7.5</a>
- Added `docker image` and `cmdOverride` settings on job run trigger
- Added build argument overrides for job and service build endpoints
- Fixed `cmdOverride` to be unified under `cmdOverride` inside deployment on jobs and services
- Added `environment-arguments` secret group type to API for runtime and buildtime inheritance
- Added `useCache` on API creation for build and combined services
- Fixed `create secret` API endpoint returning duplicate error incorrectly 

### Other features & fixes

- Added ANSI escape sequence formatting on logs
- Updated documentation with new content such as Persistent Volumes 
- Addon dashboard now clearly shows whether it is exposed publicly or not 
- Jobs now require to specify a branch of the selected build service 
- Fixed documentation tables overflowing on mobile devices 
- Fixed handling of branch names that required URL encoding 
- Fixed an issue where billing emails wouldn’t include the PDF invoice as an attachment 
]]>
  </content:encoded>
</item><item>
  <title>One Click Deployment &amp; New Project Starter UX</title>
  <link>https://northflank.com/changelog/one-click-deployment-and-new-project-starter-ux</link>
  <pubDate>2022-02-21T11:00:00.000Z</pubDate>
  <description>
    <![CDATA[Improved the user experience with one-click deployments of services, databases and jobs. Documentation is now linked throughout the platform so you can get started easily. ]]>
  </description>
  <content:encoded>
    <![CDATA[<img src="https://assets.northflank.com/header_oneclick_66da193de7.png" alt="One Click Deployment &amp; New Project Starter UX" />We’ve made several user experience and onboarding improvements to new projects. After creating a new project you can start with several one-click example deployments including databases, docker images, cron jobs and template repositories from your chosen version control provider. This provides a successful blueprint for resource creation and healthy deployments in seconds.

![one-click-deployments.png](https://assets.northflank.com/one_click_deployments_19d5cf74b5.png)

You can still tinker and customise your deployment from the suggested configuration. We’ve made this possible by supporting a shareable link which will update any Northflank resource creation form. As we continue to improve and expand this capability you will be able to create your own Deploy to Northflank buttons.

![addon-creation.png](https://assets.northflank.com/addon_creation_8772e762bb.png)

If you prefer to just get started yourself without using our examples or templates, we’ve added links to the documentation so the experience is a breeze. 

![empty-service.png](https://assets.northflank.com/empty_service_1b015b820e.png)

### Guides and Content 

We published several guides on how you can deploy NestJS on Northflank:
- <a href="https://northflank.com/guides/deploy-nest-js-with-typescript-on-northflank" target="_blank">NestJS with TypeScript</a>
- <a href="https://northflank.com/guides/deploy-nest-js-with-javascript-on-northflank" target="_blank">NestJS with JavaScript</a>
- <a href="https://northflank.com/guides/deploy-nest-js-with-typescript-and-mysql-on-northflank" target="_blank">NestJS with TypeScript and MySQL</a>
- <a href="https://northflank.com/guides/deploy-nest-js-with-typescript-and-postgresql-on-northflank" target="_blank">NestJS with TypeScript and PostgreSQL</a>
- <a href="https://northflank.com/guides/deploy-nest-js-with-typescript-and-mongodb-on-northflank" target="_blank">NestJS with TypeScript and MongoDB</a>

We also wrote new DBaaS and serverless pages for Northflank addons: 
- <a href="https://northflank.com/dbaas/mongodb-on-northflank" target="_blank">MongoDB</a>
- <a href="https://northflank.com/dbaas/managed-redis" target="_blank">Redis</a>
- <a href="https://northflank.com/dbaas/managed-mysql" target="_blank">MySQL</a>
- <a href="https://northflank.com/dbaas/managed-postgresql" target="_blank">PostgreSQL</a>
- <a href="https://northflank.com/dbaas/managed-rabbitmq" target="_blank">RabbitMQ</a>
- <a href="https://northflank.com/dbaas/managed-minio" target="_blank">MinIO</a>

### Other features & fixes

- Fixed an issue with Northflank Documentation theming occasionally rendering mixed colours 
- Added advanced example to cron jobs schedule help popover 
- Fixed an issue where the project billing dashboard would sometimes display values from other of your own projects
- Improved GitLab integration to handle very large repositories 
- Fixed an issue where changing a repository on an existing combined service wouldn’t work correctly for Bitbucket repositories
- Fixed an issue where you couldn’t deploy services from self-hosted team repositories on personal accounts although this option was enabled in your settings]]>
  </content:encoded>
</item><item>
  <title>Slack, Discord and Webhook Notifications</title>
  <link>https://northflank.com/changelog/slack-discord-and-webhook-notifications</link>
  <pubDate>2022-02-14T07:00:00.000Z</pubDate>
  <description>
    <![CDATA[Configure custom notifications to receive alerts about your account and services in your favourite tools or via a raw webhook. ]]>
  </description>
  <content:encoded>
    <![CDATA[<img src="https://assets.northflank.com/notifications_northflank_e136e8451e.png" alt="Slack, Discord and Webhook Notifications" />We are excited to release notifications and alerting in today's changelog. Enable notifications in your account settings with support for Slack, Discord and webhooks. Once enabled, alerts for builds, jobs and billing will be dispatched on success and failure.

Configure fine-grained event types and project scope for each integration. Quickly gain greater observability into how your deployments are performing as collaborators trigger builds and job runs.

Slack and Discord support is quick and familiar to set up. If you need something more advanced, webhooks will enable greater flexibility. For example, create a ticket in your bug tracking software upon a build failure or use the Northflank API to automatically upload a database backup to an S3 bucket when a job succeeds.

Read more about webhooks and see an example schema in our [documentation](https://northflank.com/docs/v1/application/notifications/webhooks).

![Notifications UI](https://assets.northflank.com/notifications_ui_1ec2cae1a3.png)

### API & CLI 

- Released CLI v0.7.3 and JSclient v0.5.3 
- Creating a combined service now also returns the initial build ID 
- Service creation endpoints now support attaching a custom domain and specifying command override 
- Added a new `get build` endpoint for jobs and services to retrieve details about a specific build  

### Other features & fixes

- Published guides for [Deno](https://northflank.com/guides/deploy-deno-on-northflank), [Flask](https://northflank.com/guides/deploying-flask-on-northflank) and [nginx](https://northflank.com/guides/deploy-nginx-on-northflank)
- Improved the onboarding experience after signup and when creating the first project
- Help popovers are now clearer in the explanations 
- Released an upgraded MinIO admin console interface 
- Fixed GitLab integration fetching branch data incorrectly 
- Fixed an issue where the platform wouldn’t always load correctly in Safari browsers
]]>
  </content:encoded>
</item><item>
  <title>Introducing Managed RabbitMQ - build and scale with queues and message brokers</title>
  <link>https://northflank.com/changelog/introducing-managed-rabbit-mq-build-and-scale-with-queues-and-message-brokers</link>
  <pubDate>2022-02-07T07:00:00.000Z</pubDate>
  <description>
    <![CDATA[Northflank expands DBaaS support to message queues with RabbitMQ, new addon versions and guides.]]>
  </description>
  <content:encoded>
    <![CDATA[<img src="https://assets.northflank.com/rabbitmq_header_d2a4e1d6f8.png" alt="Introducing Managed RabbitMQ - build and scale with queues and message brokers" />We’re very excited to release Managed RabbitMQ support on Northflank. RabbitMQ is the most widely deployed open-source message broker. A number of Northflank users requested a DBaaS experience via Addons and we’re pleased to say it’s live in production now after a month of early access.

#### Why deploy RabbitMQ on Northflank

- Your first cluster deployed in minutes starting at $10 per month
- Horizontal and vertical scaling with more resources and replicas
- Serverless like experience with automatic updates and no infrastructure management
- Provision and manage via UI, API and CLI
- Out of the box backups and restore
- Observability and monitoring with real-time logging and metrics
- Collaborate with a team and configure important RBAC rules
- Protocols (AMQP, MQTT, HTTP, STOMP, Streams)
- The most simple, secure and scalable way to deploy RabbitMQ clusters on Kubernetes and DBaaS
- Automatically connect workloads with secure RabbitMQ connection details & secrets
- Configure private and public networking dynamically and add optional network security settings

#### Examples of where RabbitMQ can be used:

- Application with many components which need to exchange information in a granular and highly controllable way
- Applications that need a granular control over consistency guarantees or have complex routing requirements
- IoT applications can make use of the lightweight pub-sub MQTT protocol, optimised for heterogeneous devices in the Internet of Things scenarios

For a more detailed feature breakdown of RabbitMQ on Northflank, <a href="https://northflank.com/dbaas/managed-rabbitmq" target="_blank">visit this page</a>.

### Other features & fixes
- Published guides for [Laravel](https://northflank.com/guides/deploying-laravel-on-northflank), [Gatsby](https://northflank.com/guides/deploy-gatsby-on-northflank) and [Streamlit](https://northflank.com/guides/deploying-streamlit-on-northflank)
- Released upgrades for PostgreSQL v14 (major) and MongoDB v5 (major)
- Fixed an issue where a branch named the same as a previously deleted branch wouldn’t show in the Northflank UI 
- Fixed an issue with the environment variables editor not parsing true/false values correctly ]]>
  </content:encoded>
</item><item>
  <title>Auto Trigger Job Runs on Source Changes</title>
  <link>https://northflank.com/changelog/auto-trigger-job-runs-on-source-changes</link>
  <pubDate>2022-01-31T11:00:00.000Z</pubDate>
  <description>
    <![CDATA[Trigger a job when its source changes on a successful build, pipeline promotion or selecting a new build, new blog posts and deployment guides, other fixes.]]>
  </description>
  <content:encoded>
    <![CDATA[<img src="https://assets.northflank.com/job_run_pipelines_f7bb89ff0c.png" alt="Auto Trigger Job Runs on Source Changes" />Working with multiple microservices, dependent jobs and databases can be complex. Today Northflank takes another step to simplifying rolling out interdependent workloads, migrations and workflows. It is now possible to automatically trigger jobs (either cron or manual) via source triggers. Trigger a job run when the source deployment images changes:

- On build completion with continuous integration and delivery
- On promotion through a pipeline stage
- On selection of a new build source to run

## New blog posts & guides

- [Adding themes to a React app using styled-components](https://northflank.com/blog/adding-themes-to-a-react-app-using-styled-components) 
- [Hosting a Shopify application on Northflank](https://northflank.com/blog/hosting-a-shopify-application-on-northflank)
- Deploying [Wordpress](https://northflank.com/guides/deploy-wordpress-on-northflank), [Next.js](https://northflank.com/guides/deploy-next-js-on-northflank), [Django](https://northflank.com/guides/deploying-django-on-northflank) and [Discord Music Bot](https://northflank.com/guides/deploying-a-discord-music-bot-on-northflank) 

## Other improvements & fixes

- Improved job runs messaging to display if job run terminated due to a time limit 
- Improved Buildpacks to always pull latest stack version 
- Fixed an issue with some log live tail queries 
- Fixed an issue with verifying some public GitHub registry images 
- Several frontend improvements with responsiveness and accessibility ]]>
  </content:encoded>
</item><item>
  <title>Resources Search, New Guides &amp; MySQL Database Upgrade</title>
  <link>https://northflank.com/changelog/resources-search-new-guides-and-mysql-database-upgrade</link>
  <pubDate>2022-01-24T11:00:00.000Z</pubDate>
  <description>
    <![CDATA[Introducing search on all tables, new guides to deploy various CMS on Northflank, released new MySQL version and more.]]>
  </description>
  <content:encoded>
    <![CDATA[<img src="https://assets.northflank.com/upgrade_search_header_9635648a93.png" alt="Resources Search, New Guides &amp; MySQL Database Upgrade" />Last week, we focused on writing guides, improving the developer experience with new table search across all resources tables (services, addons, jobs, roles, registries) and released upgrades for MySQL. It’s also an exciting opportunity for us to start offering a Student Developer Pack.

## Improvements & changes

- Added new guides to deploy  [Create React App](https://northflank.com/guides/deploying-react-app-on-northflank),  [Strapi with PostgreSQL & Volumes](https://northflank.com/guides/deploying-strapi-with-postgresql-and-volumes), [Strapi with PostgreSQL & S3](https://northflank.com/guides/deploying-strapi-with-postgresql-and-using-s3), [Ghost CMS](https://northflank.com/guides/deploying-ghost-cms) and [Payload CMS](https://northflank.com/guides/deploying-payload-cms) on Northflank
- Introduced [Northflank student developer pack](https://northflank.com/student-developer-pack)
- Added a search onto table headers so you can easily find your services, jobs, databases and more 
- Released Redis v6.2.6 (minor) and MySQL v8.0.27 (minor)
- Redesigned and improved platform alert popups which now appear in the bottom centre
- Improved SSO login & job run error messages 
- Hovering over environment variables or connection strings now expands their value
- Fixed an issue where completed jobs would show as running in some edge cases 
- Fixed an issue where some repositories appeared twice in the service repo dropdown 
- Fixed Dockerfile fetching for Bitbucket repositories in certain circumstances
- Fixed an issue where a build wouldn’t trigger automatically on creating a new branch in Bitbucket 
]]>
  </content:encoded>
</item><item>
  <title>Environment and Secret Templating</title>
  <link>https://northflank.com/changelog/environment-and-secret-templating</link>
  <pubDate>2022-01-17T18:30:00.000Z</pubDate>
  <description>
    <![CDATA[Create dynamic variables with secret templating, and new documentation and API.]]>
  </description>
  <content:encoded>
    <![CDATA[<img src="https://assets.northflank.com/group_secret_templates_fd0540278a.png" alt="Environment and Secret Templating" />We are excited to release dynamic environment and secret templating. This enables developers to generate environment variables from multiple sources including defined variables and inherited secrets from managed databases. A good example is when your code requires a slightly different connection string or when you need to set a custom option as seen in the example below.

```
DATABASE_URL=mongodb://user:password@replica.mongodb.addon.code.run:27017/database?replicaSet=rs0&authSource=database&tls=true
DATABASE_URL=${DATABASE_URL}&readConcernLevel=majority&w=majority&wtimeoutMS=0
````

Templating has been added as a tooltip for table view and inline edit modes, and as a Monaco editor component for `JSON`, and `.env`. All UX flows have smart auto-completion to search across all available keys and aliases, allowing you to reference inherited values.

![northflank-screenshot-group-secrets-autocomplete.jpg](https://assets.northflank.com/northflank_screenshot_group_secrets_autocomplete_c725730758.jpg)

![northflank-screenshot-group-secrets-monaco-editor.jpg](https://assets.northflank.com/northflank_screenshot_group_secrets_monaco_editor_3d460d430d.jpg)

### CLI & API 
- Adds support for branch switching to API
- Fixed issue where service creation endpoints could fail to find a provided GitHub repository for certain configurations of GitHub links
- Fixed issue where creating a service through the API with a newly created repository could fail to build automatically when commits were made

### Documentation
- Added path ignore rule documentation
- Added multiple VCS account linking guide
- Added documentation for specific DBaaS (Redis, Postgres, MongoDB, Minio and MySQL)
- Updated secret group for new default `runtime and buildtime` secret group type
- Fixed typo in JS header

### Other features & fixes 
- Added specific RBAC permissions for viewing and configuring Tax ID status via the UI
- Improved dashboard list items and alignment for consistent readability
- Improved retry logic during multiple stages inside a Kaniko build
- Improved resume action in addon lists to be more consistent with real-time state
- Fixed external docker image verification when providing a custom image digest
- Fixed rendering of custom container entrypoint if items are greater than one
- Fixed when build engine options could be reset or overridden in certain circumstances
]]>
  </content:encoded>
</item><item>
  <title>Persistent Volumes and Storage for Deployments</title>
  <link>https://northflank.com/changelog/persistent-volumes-and-storage-for-deployments</link>
  <pubDate>2022-01-10T11:00:00.000Z</pubDate>
  <description>
    <![CDATA[Introducing volumes for persistent data storage and new versions of Northflank JS client &amp; CLI.]]>
  </description>
  <content:encoded>
    <![CDATA[<img src="https://assets.northflank.com/volumes_ui_baf4863897.png" alt="Persistent Volumes and Storage for Deployments" />We hope you all enjoyed the Christmas break and wish you a successful & healthy New Year! 

We at Northflank kept ourselves busy shipping more features and bug fixes. Today, we’re announcing a highly requested feature - persistent container volumes.

Volumes are great for persisting data across service restarts and we make them incredibly simple and highly performant. For example, deploying container images from DockerHub such as `clickhouse`, `materialized` and `meilisearch` where persistance is as simple as adding a new volume to their data directory.

Northflank has developed DBaaS experiences for several databases, for those we have not reached yet, volumes and external images are the next best workflow.


- Multiple volumes can be attached to the same service
- Volumes can have multiple container mount locations 
- Volumes can be detached/attached and moved between different services 
- Volumes can be configured for deployment and combined services

### CLI & API 

- Released JS client v0.5.0 and CLI v0.7.0
- JS client (v0.5.0): improved support for CommonJS and ESM which allows optimal compatibility for different Node.js versions and configurations
- Removed default export of ApiClient in JS client so it can now be imported using `import { ApiClient, ApiClientInMemoryContextProvider } from '@northflank/js-client';`
- Volumes and path ignore rule endpoints are integrated in JS client and CLI 
- CLI (v0.7.0): fixed dynamic selector for plans and error messages for forwarding 

### Other features & fixes 

- Added a random encryption key generator to secrets where you input the desired length and your base64 key will get auto-generated 
- Added an autocomplete for address selectors 
- Updated NextJS and Gatsby templates to newer versions
- Improved the performance of database backups and restores 
- Improved mobile view responsiveness on VCS dropdown
- Fixed incorrect confirmation modal buttons and messages
- Fixed port option selectors where multiple health checks are used 
- Fixed an issue where secret groups could contain blank values
- Fixed `help and feedback` not clickable on mobile devices
- Fixed real-time rendering of health check status details on the container list 
]]>
  </content:encoded>
</item><item>
  <title>Version Control and API Enhancements</title>
  <link>https://northflank.com/changelog/version-control-and-api-enhancements</link>
  <pubDate>2021-12-21T09:00:00.000Z</pubDate>
  <description>
    <![CDATA[Support for multiple account links per Git provider, conditional builds based on what files changed, new Git API endpoints. ]]>
  </description>
  <content:encoded>
    <![CDATA[<img src="https://assets.northflank.com/multiple_git_f3f61ce109.png" alt="Version Control and API Enhancements" />We are excited to present the final changelog of 2021. Time certainly does fly when you're having fun and releasing weekly. Today's focus is on version control. We've increased flexibility with multiple provider links for teams and conditional builds based on what files have changed. In addition, powerful API endpoints have been added to make Northflank's Git integrations accessible via code.

### Multiple version control links per provider

- Teams can link multiple version control accounts from the same provider to their team account. 
- When creating a service or job from a version control repository, team members can access any of the repositories that any of the linked version control accounts can access.
- If multiple accounts can access the same repository, you will get the option to select which version control account Northflank should use to access that repo. This can be changed later in the service or job’s Build options.
- For Bitbucket, GitLab and self-hosted GitLab version control, each link can be configured individually to restrict access to specific contexts.
- When creating a service or job from version control via the API, Northflank will pick a linked account that has access to that repo. If you wish to use a specific account link to access that repository, you can pass in a new argument `accountLogin`.
- To support multiple version control links, the List VCS providers endpoint now returns an array of version control account links rather than each version control provider having a separate field.

![acme-git-multiple.png](https://assets.northflank.com/acme_git_multiple_0a9fae8812.png)

### Build path ignore rules

- Combined services, build services and jobs building from version control support path ignore rules, which allow you to configure which files Northflank should watch for changes when building commits automatically. This is useful if you have a large monorepo containing multiple services.
- Path ignore rules share the same syntax as a .gitignore file, allowing you to set up a list of file rules which Northflank should ignore.
- If all the modified files in a commit match the build rules, the commit will not be built automatically.

![build-path-ignore-rules.png](https://assets.northflank.com/build_path_ignore_rules_389551ee68.png)

### Version Control API

- Version control data that can be accessed via the UI is now accessible via the API.
- There is a new endpoint for listing available repositories that can be filtered by version control provider and account login.
- There is a new endpoint for listing the branches of a given repository.
- There are new endpoints for services and jobs building from version control for listing the branches and pull requests of the repository they are building from.

### Misc fixes

- Fixed an issue where repeatedly relinking a version control account could cause other team or user namespaces using the same account to have issues connecting to version control.


]]>
  </content:encoded>
</item><item>
  <title>Improved Health Checks and Networking</title>
  <link>https://northflank.com/changelog/improved-health-checks-and-networking</link>
  <pubDate>2021-12-13T11:00:00.000Z</pubDate>
  <description>
    <![CDATA[Improved network routing for new deployments and containers in a transitioning non-terminal state. Greater UX for health-check configuration across start-up, readiness and liveness probes.]]>
  </description>
  <content:encoded>
    <![CDATA[<img src="https://assets.northflank.com/healthchecks_2bd72d0332.png" alt="Improved Health Checks and Networking" />We have been working hard on building tooling to alleviate the limitations of Kubernetes health-checks, Kubernetes endpoint slices and Istio. This increases the reliability during blue green deployments, free service continuous deployment and correctness of health-check routing for start-up, readiness and liveness probes.

Northflank has developed a Kubernetes admission controller to enable graceful termination of user workloads by forcing DNS propagation before service termination - allowing in-progress requests to complete and preventing new requests to soon-to-be terminated containers, solely routing to healthy containers.

Northflank’s service mesh will auto-retry three times before failing a request to maintain service uptime during redeployments. We have identified a number of factors that could interfere with request routing:
- Avoid transient failures - a client should not perceive a failed request if a service was momentarily unavailable. 
- Expect race conditions occurring in Kubernetes state vs DNS configuration - this often could be just a few milliseconds. 
- Workload stability - load-balance retries across available workload instances.

Further UX improvements have been made:
- Improved real-time health check propagation via Prometheus metrics into the Northflank UI
- When configuring an HTTP liveness probe a readiness probe will automatically be generated
- New health checks descriptions:
    - **Readiness Probe** - ensures a new container is ready to serve traffic before terminating an old container and handling new requests
    - **Liveness Probe** - will restart containers that are failing checks
    - **Startup Probe** - will delay readiness and liveness probes until checks are passed

![Health Checks Advanced](https://assets.northflank.com/health_checks_advanced_config_fe37a965cd.png)


### Other features & fixes

- Introduced a new instance selector that is now applied across the whole UI 
- Added a new secret group type `Build & Environment` which is fetched both during build and deployment phases 
- Fixed an issue where very large repositories would take a long time to build 
- Fixed an issue where an empty project dashboard would render strangely on Safari 
- Fixed an issue where API endpoint `assign service to subdomain` would error 
- Fixed an issue where full DNS entry on Networking would not display service name as slug 
- Fixed an issue where `heroku/buildpacks:20` with PHP and Laravel would not run due to an error with permissions
- Improved changing ports and custom domains RBAC
- Fixed rendering of the team member role selector
- Fixed rendering custom CMD override if quotes were used in the command
]]>
  </content:encoded>
</item><item>
  <title>Build Caching for Docker Container Builds</title>
  <link>https://northflank.com/changelog/build-caching-for-docker-container-builds</link>
  <pubDate>2021-12-06T11:00:00.000Z</pubDate>
  <description>
    <![CDATA[Introducing caching for Docker container builds, speeding up your build and release cycle. Support to change Git repo on existing services, updated documentation.]]>
  </description>
  <content:encoded>
    <![CDATA[<img src="https://assets.northflank.com/docker_build_cache_a71a4f1266.png" alt="Build Caching for Docker Container Builds" />Northflank is pleased to introduce build caching for Docker container builds. Caching speeds up subsequent builds by reusing image layers from previous builds, allowing you to release and iterate faster. Build times can be reduced dramatically by skipping build steps that would produce the same output as in previous builds. Typical examples of build steps that would benefit from caching are download and compilation of dependencies.

- Uses the previous build image as a cache
- Image layers are cached per service allowing build services to use the same cache for all PRs and branches of a repository
- Caching is supported for the Kaniko and Buildpack backends
- Implemented with Kaniko’s and Buildpack’s native caching capabilities
- Distributed build caching, high performance, scalable and backed by Northflank’s global container registry

<table>
<thead>
  <tr>
    <th><small>Name</small></th>
    <th><small>Language</small></th>
    <th><small>Build without cache</small></th>
    <th><small>Build time with cache</small></th>
  </tr>
</thead>
<tbody>
  <tr>
    <td><a href="https://github.com/rancher/k3d" target="_blank">rancher/k3d</a></td>
    <td>Go</td>
    <td>7m 28s</td>
    <td>3m 37s</td>
  </tr>
  <tr>
    <td><a href="https://github.com/coredns/coredns" target="_blank">coredns/coredns</a></td>
    <td>Go</td>
    <td>8m 29s</td>
    <td>3m 31s</td>
  </tr>
  <tr>
    <td><a href="https://github.com/micro/micro" target="_blank">micro/micro</a></td>
    <td>Go</td>
    <td>9m 52s</td>
    <td>5m 19s</td>
  </tr>
  <tr>
    <td><a href="https://github.com/scalacenter/docker-scala" target="_blank">scalacenter/docker-scala</a></td>
    <td>Scala</td>
    <td>13m 40s</td>
    <td>5m 32s</td>
  </tr>
  <tr>
    <td><a href="https://github.com/northflank-examples/php-laravel-example" target="_blank">northflank-examples/php-laravel-example</a></td>
    <td>PHP</td>
    <td>3m 26s</td>
    <td>1m 9s</td>
  </tr>
  <tr>
    <td><a href="https://github.com/northflank-examples/create-react-app-example" target="_blank">northflank-examples/create-react-app-example</a></td>
    <td>JavaScript</td>
    <td>5m 40s</td>
    <td>2m 32s</td>
  </tr>
</tbody>
</table>

### API & CLI

- Unified response date types across the API and CLI 
- API now returns resource status on `get service` endpoint
- Added IP Policies for addons to documentation

### Other features & fixes 

- You can now modify the Git source repository on combined services and jobs, whilst maintaining the ability to roll back to previous builds. This enhances [previously announced branch source switching](https://northflank.com/changelog/switch-target-git-branch-for-continuous-integration-and-validation-build-status-improvements).
- Added support to download PDF invoices 
- Improved billing dashboard to support adding a VAT ID and address 
- Added documentation on how to write Dockerfiles for build caching
- Added documentation for addon upgrades 
- Updated Buildkit documentation to include adding a git URL (in addition to the CNB registry) 
- Updated documentation for authenticating GitHub Container Registry 
- Fixed an issue where the project dashboard wouldn’t show all addons in certain scenarios
- Fixed notification text on Continuous Deployment toggle 
- Fixed an issue where adding CMD override wouldn’t show on the dashboard immediately ]]>
  </content:encoded>
</item><item>
  <title>Database Snapshot Backups</title>
  <link>https://northflank.com/changelog/database-snapshot-backups</link>
  <pubDate>2021-11-29T13:30:00.000Z</pubDate>
  <description>
    <![CDATA[Introducing disk snapshot backups. Powered by the Kubernetes CSI Driver. Incremental disk backup and restores for MongoDB, Redis, Postgres, MySQL and MinIO.]]>
  </description>
  <content:encoded>
    <![CDATA[<img src="https://assets.northflank.com/addon_backups_header_957ea7e022.png" alt="Database Snapshot Backups" />In addition to our existing native backups (backup dumps), we are excited to introduce snapshots (also called disk backups) for all our database offerings (MySQL, PostgreSQL, MongoDB, MinIO and Redis).

This was made possible and is powered by the Kubernetes CSI driver and works across currently supported providers: Northflank PaaS, GCP, AWS, bare-metal (K3s Longhorn) and Azure.

### Native vs Snapshot Backups

Native (Dump) backups make use of dumping tools for the datastore (e.g. MongoDB uses mongodump).
- Backup creates a full copy of the database 
- Well-suited if the backups need to be inspected or exported  
- Can be imported via URL or file upload 
- Restores do not lead to a database container restart but the database will be unreachable whilst restoring

Snapshot (Disk) backups take a snapshot of the whole volume at the point of the backup.
- If multiple backups are created, they rely on the previous backup as only the difference between snapshots is stored
- Great for recurring/scheduled backups as they only store the difference of the file system since the last snapshot
- Cannot be inspected or exported 
- Restoring a disk backup creates a new disk from the latest snapshot, once the database is restarted with the new disk your database is resumed exactly how it was when the snapshot was taken

We have already seen users implementing Northflank cron jobs to trigger regular snapshots and hourly native backups via the [Northflank API](https://northflank.com/docs/v1/api/addons/backup-addon), excited to see how this evolves!

![Addon Backups UI](https://assets.northflank.com/Addon_Backups_55a98f0f2e.png)


### Other features & fixes

- Added handling for rendering containers with unknown status and improved sorting of the container list to always list running containers first 
- Changing service template during creation no longer wipes previously entered data 
- Added support for comments on the environment editor 
- Fixed an issue where login page required a refresh if Google SSO was used with an invalid account 
- Fixed an issue where service environment editor would be stuck on load if a user was missing secret groups permissions 
- Fixed service header responsiveness
- Fixed an issue where sign up with GitLab would fail 
- Fixed an issue where team members missing the `billing read` permission could not create new resources 
- Fixed an issue where some builds configured with Buildkit would fail
- Fixed sorting of branches on the build selector 
- Fixed the environment editor lagging on some lower specification machines, or those under CPU throttling conditions
]]>
  </content:encoded>
</item><item>
  <title>Free Developer Projects</title>
  <link>https://northflank.com/changelog/free-developer-projects</link>
  <pubDate>2021-11-22T11:00:00.000Z</pubDate>
  <description>
    <![CDATA[Get started on Northflank with free developer projects enabling you to try the full Northflank experience.]]>
  </description>
  <content:encoded>
    <![CDATA[<img src="https://assets.northflank.com/free_project_6da97e8501.png" alt="Free Developer Projects" />We are pleased to introduce free developer projects, removing barriers to entry with no risk of incurring cloud costs and providing access to the tools needed to build & release delightful software.

Everything is free within a developer project. Out of the gate you can create 2 services, 2 jobs and 1 database with generous resources. 

This is perfect for building an MVP, allowing you to experiment and try Northflank before you commit to the platform, pun not intended. Limits can be lifted at any time with a project upgrade to scale into production and beyond. 

<br />
<a href="https://app.northflank.com/signup"><button variant={ ["large", "gradient" ] }>Get started now</button></a>

### API & CLI

* `health check` endpoints now have an updated schema replacing some required parameters to be optional 


* [Northflank CLI version 0.6.1](https://www.npmjs.com/package/@northflank/cli) is available and can be installed using `npm i @northflank/cli -g` or `yarn global add @northflank/cli`.
    * Fixes dynamic selector for resource plans
    * Fixes error messages when using northflank forward 
    * Reflects recent API changes


* [Northflank JS Client version 0.4.1](https://www.npmjs.com/package/@northflank/js-client) reflects recent changes and can be added as a project dependency using `npm i @northflank/js-client` or `yarn add @northflank/js-client`. 

### Other features & fixes

- Added status fields to services and jobs to handle `creating` and `deleting` statuses
- Updated our internal CMS to use Strapi for more dynamic content types
- Improved search in teams and projects dropdown
- Improved Redis connection strings to include TLS flag
- Fixed an issue where some addons would get stuck in deletion state after billable resources had been removed due to networking configuration
- Fixed ordering of PRs in pipeline build selector so recent PRs appear at the top
- Fixed an issue where a repository would not link correctly to a service if created via API
- Fixed an issue where boolean values in secret groups would render incorrectly in inherited services & jobs

]]>
  </content:encoded>
</item><item>
  <title>Support for all Custom Buildpacks with Git Source</title>
  <link>https://northflank.com/changelog/support-for-all-custom-buildpacks-with-git-source</link>
  <pubDate>2021-11-01T12:30:00.000Z</pubDate>
  <description>
    <![CDATA[Build and run any custom buildpack supplied via Git repositories, search on the team selector and bug fixes.]]>
  </description>
  <content:encoded>
    <![CDATA[<img src="https://assets.northflank.com/2021/11/buildpacks-git-header.png" alt="Support for all Custom Buildpacks with Git Source" />It is now possible to build and run continuous integration on Northflank with any custom buildpack that can be supplied via a Git repository. Buildpacks are not always available in the CNB registries and being able to target a branch, release or a forked buildpack is very powerful! This feature builds on our recent release of buildpack support announced [here](https://northflank.com/changelog/cloud-native-buildpacks-on-northflank).

### Other features & fixes

* Added search to the team selector popover 
* Public repositories can now be deployed even without having a linked Git account 
* The build list on jobs now shows a deployed icon on a currently deployed build 
* Improved responsiveness of the invoice page table 
* API: [Update job deployment](https://northflank.com/docs/v1/api/jobs/update-job-deployment) endpoint now accepts internal build services 
* Fixed Ports & DNS form returning an error on custom domain & security rules in some edge cases
* Fixed an issue where promoting services/jobs without successful builds caused pipeline links to get stuck at promotion 
* Fixed an issue where two clicks were required to switch deployment types in creation forms under certain circumstances]]>
  </content:encoded>
</item><item>
  <title>Faster Image Pulls, Deployments and More</title>
  <link>https://northflank.com/changelog/faster-image-pulls-deployments-and-more</link>
  <pubDate>2021-10-25T10:00:00.000Z</pubDate>
  <description>
    <![CDATA[Improved workload performance with faster Docker image pulls and deployments, more documentation and fixes.]]>
  </description>
  <content:encoded>
    <![CDATA[<img src="https://assets.northflank.com/2021/10/help-popovers.png" alt="Faster Image Pulls, Deployments and More" />We are excited to announce faster Docker image pulls and deployments. As Northflank scales deployments, we continue to aim for sub-second image staging times. As nodes are created, updated, rolled or migrated to different zones the pod churn can be high as thousands of pods attempt to redeploy concurrently. This leads to a traffic jam as pods fight to pull images before one another. Northflank can regularly replace and resize Kubernetes node pools for peak performance & reliability with the guarantee that workloads are spun up in seconds rather than minutes.

### Other features & fixes 

* Node image pull queues were modified to allow multiple images to pull their layers in parallel
* Node image pull rate limits were doubled to allow for more efficient fetching when multiple are downloaded at once
* Added help popovers to resource types on new creation forms (service, job, addon, pipeline, service from template and secret group)
* Added help popovers across secret groups
* Improved validation of external image paths when creating jobs 
* Updated documentation JSON examples for API & CLI
* Fixed an issue where the pipeline UI would crash after some services are deleted
* Fixed issues with creating and restoring MySQL & PostgreSQL backups 
* Fixed an issue where Redis CLI forwarding wouldn’t work as expected in some cases 
* Fixed an issue where instances in `terminating` status would display an incorrect status icon for a couple of seconds
]]>
  </content:encoded>
</item><item>
  <title>Support for Public Repositories</title>
  <link>https://northflank.com/changelog/support-for-public-repositories</link>
  <pubDate>2021-10-18T13:27:30.000Z</pubDate>
  <description>
    <![CDATA[Build and deploy public repositories from all Git providers, several API changes and more.]]>
  </description>
  <content:encoded>
    <![CDATA[<img src="https://assets.northflank.com/2021/10/public-repos-header.png" alt="Support for Public Repositories" /><!--kg-card-begin: markdown--><p>Introducing public Git repository support. Simply paste any Git repository URL during creation to build and deploy in minutes. This means you can deploy any repository (public or private) from all version control platforms on Northflank regardless if the relevant App, OAuth or Webhooks have been set up.</p>
<p>Here's an example of deploying the <a href="https://github.com/minio/minio.git">minio</a> repository with configured CMD override:</p>
<video controls autoplay playsinline loop muted width=100%>
    <source src="https://assets.northflank.com/changelog/minio-public-repo.mp4"/>
</video>
<h3 id="api-changes">API changes</h3>
<ul>
<li>Improved error message if a specified branch doesn’t exist</li>
<li>Fixed URL schema not being correctly converted to OpenAPI specs</li>
<li>Build settings object of either Dockerfile or Buildpack is now a required field</li>
<li>Build endpoint now fetches and builds the latest commit if no commit SHA is specified</li>
</ul>
<h3 id="other-features-fixes">Other features &amp; fixes</h3>
<ul>
<li>Improved the visual appearance of build options, health checks and service search in pipelines</li>
<li>Billing emails now explicitly say if the amount was paid or carried over to the next period</li>
<li>Service header icon now stays consistent with the build or container status</li>
<li>Fixed linking addons to a secret group on new creation forms</li>
<li>Fixed an issue where you could input multiple variables with the same key on new creation forms</li>
<li>Fixed an issue where realtime container lists would be rendered inconsistently</li>
<li>Fixed an issue where updating a Dockerfile via the Northflank UI wouldn’t trigger a new build on repositories from self-hosted GitLab</li>
<li>Fixed an issue where certain builds could not be deployed if the service branch was changed</li>
<li>Fixed an issue where the <code>Import backup</code> button would stay disabled if there was an error importing the addon backup</li>
<li>Fixed an issue where secret groups could not be favorited from the project dashboard</li>
<li>Fixed some instances where long texts in components would overflow</li>
</ul>
<!--kg-card-end: markdown-->]]>
  </content:encoded>
</item><item>
  <title>New Resource Creation Forms</title>
  <link>https://northflank.com/changelog/new-resource-creation-forms</link>
  <pubDate>2021-10-11T08:27:09.000Z</pubDate>
  <description>
    <![CDATA[Forms to create services, jobs, addons and secret groups now share a unified style for an improved UX and allow you to configure everything in one go.]]>
  </description>
  <content:encoded>
    <![CDATA[<img src="https://assets.northflank.com/2021/10/creation-forms-header.png" alt="New Resource Creation Forms" /><!--kg-card-begin: markdown--><p>We are excited to release our new resource creation forms to unify the creation flow for all resources, enable advanced configuration during creation and allow for future growth in features and capability.</p>
<ul>
<li>Unified style for creating all Northflank resources</li>
<li>Select what resource you wish to create from the header</li>
<li>Review your configuration by collapsing/expanding all sections at once or individually</li>
<li>Configure all aspects on one page (including build type, environment variables, advanced network settings and more)</li>
<li>Improved form validation highlighting any misconfigured or missing fields</li>
</ul>
<p><Text>Creating a MongoDB addon</Text></p>
<video controls autoplay playsinline loop muted width=100%>
    <source src="https://assets.northflank.com/changelog/addon-create.mp4"/>
</video>
<p><Text>Creating nginx:latest deployment service</Text></p>
<video controls autoplay playsinline loop muted width=100%>
    <source src="https://assets.northflank.com/changelog/service-create.mp4"/>
</video>
<h3 id="otherfeaturesfixes">Other features &amp; fixes</h3>
<ul>
<li>Added button to <a href="https://calendly.com/northflank/demo">schedule a Northflank demo</a> to our landing page 🎉</li>
<li>Addon connection details now show full value on hover rather than a trimmed version</li>
<li>Custom domain TLS certificates through 3-7th October have been reapplied due to missing chain</li>
<li>Fixed an issue where some suspended GitHub installations would still appear in the repository selection dropdown</li>
</ul>
<!--kg-card-end: markdown-->]]>
  </content:encoded>
</item><item>
  <title>CLI Usage Improvements, More Documentation and Fixes</title>
  <link>https://northflank.com/changelog/cli-usage-improvements-more-documentation-and-fixes</link>
  <pubDate>2021-10-06T10:12:20.000Z</pubDate>
  <description>
    <![CDATA[Updated API, CLI and JS Client for a better user experience, RBAC is now included in API documentation, improved Docker image validation.]]>
  </description>
  <content:encoded>
    <![CDATA[<img src="https://assets.northflank.com/2021/10/api-perms-header.png" alt="CLI Usage Improvements, More Documentation and Fixes" /><!--kg-card-begin: markdown--><ul>
<li>API: <code>update service security rules</code> endpoint is now embedded in the <a href="https://northflank.com/docs/v1/api/services/update-service-ports"><code>update service ports</code></a> endpoint. JS-client (v0.4.0) and CLI (v0.6.0) have been updated accordingly.</li>
<li>JS-client (v0.4.0), CLI (v0.6.0): Simplification of <code>get &lt;resource&gt; details</code> endpoints. These endpoint can now be accessed without specifying <code>details</code>. E.g. <code>get service</code>, <code>get addon</code></li>
<li>JS-client (v0.4.0): Use plural for all list commands. E.g. <code>list.plan(..)</code> becomes <code>list.plans(..)</code>.</li>
</ul>
<h3 id="documentation">Documentation</h3>
<ul>
<li>Expanded <a href="https://northflank.com/docs/v1/application/build/build-code-from-a-git-repository#choose-a-build-type">Dockerfile and Buildpack build types</a> to describe different build engines</li>
<li>Improved guides to link custom domains with <a href="https://northflank.com/docs/v1/application/domains/domain-registrar-guides#cloudflare">Cloudflare</a>, <a href="https://northflank.com/docs/v1/application/domains/domain-registrar-guides#namecheap-dns">Namecheap</a>, <a href="https://northflank.com/docs/v1/application/domains/domain-registrar-guides#ovh">OVH</a> and <a href="https://northflank.com/docs/v1/application/domains/domain-registrar-guides#ns1">NS1</a> DNS providers</li>
<li>Expanded <a href="https://northflank.com/docs/v1/api/use-the-javascript-client">overview and example usage</a> of the <a href="https://www.npmjs.com/package/@northflank/js-client">Northflank JS Client</a></li>
<li>API Documentation now contains required RBAC permissions for all endpoints</li>
</ul>
<p><img src="https://assets.northflank.com/2021/10/api-documentation.png" alt="API Documentation" loading="lazy"></p>
<h3 id="otherfeaturesfixes">Other features &amp; fixes</h3>
<ul>
<li>Improved automatic external image validation on paste and manual path edits</li>
<li>Fixed an issue where you would have to manually redeploy a service after setting Basic Auth rules</li>
<li>Fixed an issue where deleting a secret group would prompt you to enter your password again</li>
<li>Fixed an issue where loading builds on a service with self-hosted GitLab would cause the page to crash</li>
<li>Fixed issues where resuming deployment services with only private ports would fail and crash related pipelines</li>
<li>Fixed an issue where branches wouldn’t load for self-hosted repositories if used in a team</li>
<li>Fixed an issue where Dockerfile couldn’t be updated via the Northflank UI on repositories started from our templates</li>
</ul>
<!--kg-card-end: markdown-->]]>
  </content:encoded>
</item><item>
  <title>Proxy as Code - Dynamically Forward Private Workloads via the Northflank API Client</title>
  <link>https://northflank.com/changelog/proxy-as-code-dynamically-forward-private-workloads-via-the-northflank-api-client</link>
  <pubDate>2021-09-27T13:40:50.000Z</pubDate>
  <description>
    <![CDATA[Proxy as code enables developers to securely and rapidly connect to a range of private TCP and UDP workloads easily in their code using the Northflank API client.]]>
  </description>
  <content:encoded>
    <![CDATA[<img src="https://assets.northflank.com/2021/09/proxy-as-code.png" alt="Proxy as Code - Dynamically Forward Private Workloads via the Northflank API Client" /><!--kg-card-begin: markdown--><p>Northflank is pleased to release new versions of our <a href="https://www.npmjs.com/package/@northflank/js-client">JS Client</a> (0.3.5) and <a href="https://www.npmjs.com/package/@northflank/cli">CLI</a> (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.</p>
<ul>
<li>Works with all TCP and UDP traffic</li>
<li>Proxy multiple ports per service or addon</li>
<li>Bind traffic to local IP addresses</li>
<li>Automates local DNS to replicate production endpoints when relevant permissions are enabled</li>
<li>Forward as many services and addons as you need with automatic port selection if you have multiple ports are already in use.</li>
<li>Inherits existing Northflank RBAC permissions</li>
</ul>
<!--kg-card-end: markdown--><pre><code class="language-javascript">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();</code></pre><!--kg-card-begin: markdown--><h3 id="otherfeaturesfixes">Other features &amp; fixes</h3>
<ul>
<li>Added logic for importing database backups from different database versions</li>
<li>Added handling to prevent table pagination resetting to the first page after selecting an action item or when the table content was updated</li>
<li>Improved handling of renamed and deleted repositories</li>
<li>Fixed an issue where importing a MySQL database from an external backup would sometimes fail due to a permission error</li>
<li>Fixed addon version header alignment</li>
<li>Fixed formatting of <code>list builds</code> API endpoint where data would return an array rather than an object</li>
<li>Fixed service URL overflowing the service header on mobile</li>
<li>Fixed an issue where database backup could be deleted using the API whilst restore was still in progress</li>
<li>Fixed an issue where creating a new deployment service would show an error page and had to be reloaded in some edge cases</li>
<li>Fixed external image validation failing in some edge cases</li>
</ul>
<!--kg-card-end: markdown-->]]>
  </content:encoded>
</item><item>
  <title>Switch Target Git Branch for Continuous Integration and Validation &amp; Build Status Improvements</title>
  <link>https://northflank.com/changelog/switch-target-git-branch-for-continuous-integration-and-validation-build-status-improvements</link>
  <pubDate>2021-09-17T12:44:17.000Z</pubDate>
  <description>
    <![CDATA[Change the target git branch of your services and jobs using build options, headers now display the current build status, several frontend improvements.]]>
  </description>
  <content:encoded>
    <![CDATA[<img src="https://assets.northflank.com/2021/09/build-options-branch.png" alt="Switch Target Git Branch for Continuous Integration and Validation &amp; Build Status Improvements" /><!--kg-card-begin: markdown--><p>We are excited to release support for switching the target Git branch in services via Build Options &gt; Version control source settings. You now do not need to create a new service, pipeline or build service when you wish to simply change the branch. This was a highly requested feature and will improve the flexibility of our most accessible feature. In the future you will be able to change the Git repository.</p>
<ul>
<li>Continuous integration and deployment settings will take effect on the new branch.</li>
<li>A new build will be automatically started for you if CI is enabled.</li>
<li>Builds from previous branches can still be deployed, however CI is limited to the active source branch.</li>
</ul>
<p><img src="https://assets.northflank.com/2021/09/build-options-branch-settings.png" alt="Switching Git Source Branch" loading="lazy"></p>
<h2 id="otherfeaturesfixes">Other features &amp; fixes</h2>
<ul>
<li>Added handling for password managers to only suggest password saving and autofill when relevant</li>
<li>API documentation now lists all possible values for enums</li>
<li>Updated service and job headers to display the current build status</li>
<li>Port detection now returns partial results instead of an empty array if the request times out</li>
<li>Improved server time displayed on Job settings to be updated in real-time</li>
<li>Improved duplicate detection and validation on environment variables and port editor forms</li>
<li>Fixed commit icon on Latest commits disappearing after commits are loaded</li>
<li>Fixed API returning 500 when creating an internal deployment service</li>
<li>Fixed an issue where changing cron job from external image to an existing build service would pause the job</li>
<li>Fixed an issue with MongoDB multi replica startup probe health check</li>
<li>Fixed an issue where revoking self-hosted GitLab to allow personal use wouldn’t reflect in the existing services</li>
</ul>
<!--kg-card-end: markdown-->]]>
  </content:encoded>
</item><item>
  <title>Dynamic Runtime Configuration for Jobs, Improvements to API,  Addons and Templates</title>
  <link>https://northflank.com/changelog/dynamic-runtime-configuration-for-jobs-improvements-to-api-addons-and-templates</link>
  <pubDate>2021-09-13T13:02:17.000Z</pubDate>
  <description>
    <![CDATA[Environment variables and CMD override can now be configured for each job run, added a new API endpoint to abort builds, updated databases connection strings and more.]]>
  </description>
  <content:encoded>
    <![CDATA[<img src="https://assets.northflank.com/2021/09/batch-job-run-1.png" alt="Dynamic Runtime Configuration for Jobs, Improvements to API,  Addons and Templates" /><!--kg-card-begin: markdown--><p>Today we are excited to announce dynamic runtime configuration for Jobs on Northflank. It is now possible to configure environment variables and container image arguments for unique invocations of your job runs.</p>
<ul>
<li>Every invocation spawns a container with its own resources (current maximum 2 vCPU &amp; 4 GB RAM)</li>
<li>Unlimited execution time billed by the second of execution - pay for a powerful and limitless elastic compute only when you need it</li>
<li>Optionally configure job retry limit and max execution time</li>
</ul>
<p>Deploy a diverse range of workloads to Northflank with the ability to choose the most suitable runtime environment to get the best capability, cost and performance for your workload:</p>
<ul>
<li><strong>Services:</strong> sustained runtime with elastic compute required to serve requests continuously</li>
<li><strong>Jobs:</strong> on-demand runtime with elastic compute to process background tasks as required</li>
</ul>
<h3 id="exampleusecases">Example use cases</h3>
<ul>
<li>Trigger a game server for a matchmade game</li>
<li>Convert batch media files to different formats</li>
<li>Generate and send PDFs to your users with configuration set via environment variables</li>
<li>Calculate statistics and process complex data from databases</li>
</ul>
<p>This feature is now supported in the Northflank API and CLI.</p>
<!--kg-card-end: markdown--><pre><code class="language-javascript">await apiClient.start.job.run({
  parameters: {
    projectId: "billing",
    jobId: "invoice-collection",
  },
  data: {
    runtimeEnvironment: {
      CUSTOMER_ID: "WhoR8gCYEF",
      CUSTOMER_EMAIL: "jane-doe@acme.corp",
    },
    deployment: {
      docker: {
        cmd: "node invoice.js $CUSTOMER_ID $CUSTOMER_EMAIL",
      },
    },
  },
});</code></pre><!--kg-card-begin: markdown--><h2 id="api">API</h2>
<ul>
<li>Added an example JS client code for <code>Assign service to subdomain</code> endpoint</li>
<li>Added an API endpoint to abort builds</li>
<li>Improved accessibility of the Northflank API Documentation</li>
<li>Fixed an issue where description was required in the <code>Create project</code> endpoint</li>
<li>Fixed an issue with <code>Assign service to subdomain</code> endpoint not updating the service if a certificate hasn’t been issued</li>
<li>Fixed <code>Get health checks</code> endpoint not returning any data even if health checks were configured</li>
</ul>
<h2 id="addons">Addons</h2>
<ul>
<li>UI now displays a clearer warning for addons where an upgrade is recommended  and addons that have an upgrade available</li>
<li>Updated databases connection strings to work with Compass and and support both TLS/SSL query parameters with their enabled/disabled state</li>
<li>Fixed an issue where backups wouldn’t work correctly for MongoDB with configured security rules</li>
</ul>
<h2 id="templaterepositories">Template repositories</h2>
<ul>
<li>Updated Rust template repository to bind to <code>0.0.0.0</code> so that the webserver is bound to both the <code>etho</code> and <code>loopback device</code> rather than only <code>127.0.0.1</code></li>
<li>Improved auto port detection when template repositories are used</li>
<li>Fixed an issue where GitHub wouldn’t create new repositories in some edge cases</li>
<li>Fixed an issue where GitLab repositories would create as internal despite public being selected</li>
</ul>
<h2 id="otherfeaturesfixes">Other features &amp; fixes</h2>
<ul>
<li>Aborted job runs now display an explicit status saying <code>Aborted</code> rather than <code>Failed</code></li>
<li>Updated build identifiers to be the human-readable name across the UI and API for easier team collaboration when referencing builds</li>
<li>Updated Northflank GitHub actions so the link for <code>View deployment</code> takes you to your Northflank dashboard if there is no public service endpoint</li>
<li>Improved VCS error handling to display more informative messages to the user</li>
<li>Removed Auto DevOps on self-hosted GitLab instances so they don’t run default CI steps with GitLab runners</li>
<li>Fixed an issue where build type (Dockerfile / Buildpack) would appear as unselected on existing services</li>
<li>Fixed issues with environment diff editor showing local changes incorrectly and not displaying a warning when a team member made changes</li>
</ul>
<!--kg-card-end: markdown-->]]>
  </content:encoded>
</item><item>
  <title>Cloud Native Buildpacks on Northflank</title>
  <link>https://northflank.com/changelog/cloud-native-buildpacks-on-northflank</link>
  <pubDate>2021-09-06T08:38:00.000Z</pubDate>
  <description>
    <![CDATA[Comprehensive Buildpack support with Paketo, Heroku, Google Cloud and CNB sample image builders are now available on Northflank's E2E DevOps platform. Get started today without a Dockerfile.]]>
  </description>
  <content:encoded>
    <![CDATA[<img src="https://assets.northflank.com/2021/09/buildpack-header-changelog.png" alt="Cloud Native Buildpacks on Northflank" /><!--kg-card-begin: markdown--><p>We are excited to release Buildpack support alongside our Buildkit and Kaniko Docker build runtimes. Northflank’s mission is to allow developers to release any code with simplicity across any cloud provider. Buildpack support fits directly into the Northflank developer tools sandbox enabling you to immediately use end-to-end DevOps capabilities without a Dockerfile.</p>
<ul>
<li>Full compatibility with the Buildpack API specification</li>
<li>Inspiration and building on best-in-class Buildpack implementations such as <a href="https://github.com/pivotal/kpack">KPack</a> and <a href="https://tekton.dev/">Tekton</a></li>
<li>Secure runtime environment with rootless build &amp; no requirement to mount a Docker socket</li>
<li>Real-time log output and stage tracking with 30 days retention</li>
<li>Choose from a number of Buildpack stacks with different capabilities that Northflank supports by default:
<ul>
<li>heroku/buildpacks:20 (suggested for most users)</li>
<li>heroku/buildpacks:18</li>
<li>gcr.io/buildpacks/builder:v1</li>
<li>cnbs/sample-builder:alpine</li>
<li>cnbs/sample-builder:bionic</li>
<li>paketobuildpacks/builder:tiny</li>
</ul>
</li>
<li>Supply custom Buildpacks which are applied within the selected stack by providing the URL or registry path</li>
<li>All official and community maintained Heroku Buildpacks are supported</li>
<li>Automatic DockerHub rate limit handling</li>
<li>Reduce build times with caching support</li>
</ul>
<h3 id="herokubuildpacksonnorthflank">Heroku Buildpacks on Northflank</h3>
<p>To supply Heroku Buildpacks, use the Buildpack registry URL followed by namespace and name:<br>
<code>https://buildpack-registry.heroku.com/cnb/&lt;namespace&gt;/&lt;name&gt;</code></p>
<p>For example, to supply <a href="https://elements.heroku.com/buildpacks/heroku/heroku-buildpack-chromedriver">Heroku's Chromedriver</a> in your service via the API include <code>https://buildpack-registry.heroku.com/cnb/heroku/heroku-buildpack-chromedriver</code> in the <code>buildpackLocators</code> array:</p>
<!--kg-card-end: markdown--><pre><code class="language-javascript">await apiClient.create.service.combined({
  parameters: {
    projectId: "default-project",
  },
  data: {
    name: "chromium-service",
    billing: {
      deploymentPlan: "nf-compute-10",
    },
    deployment: {
      instances: 1,
    },
    vcsData: {
      projectUrl: "https://github.com/acme-corp/chromedriver",
      projectType: "github",
      projectBranch: "master",
    },
    buildSettings: {
      buildpack: {
        builder: "HEROKU_20",
        buildpackLocators: ["https://buildpack-registry.heroku.com/cnb/heroku/heroku-buildpack-chromedriver"],
        buildContext: "/",
      },
    },
  },
});</code></pre><!--kg-card-begin: markdown--><p>When using the UI, specify the URL (such as <code>https://buildpack-registry.heroku.com/cnb/mars/create-react-app-buildpack</code> for <a href="https://elements.heroku.com/buildpacks/mars/create-react-app-buildpack">create-react-app</a> in your Build settings:<br>
<img src="https://assets.northflank.com/2021/09/buildpack-cra-custom.png" alt="Custom Buildpack with Create React App" loading="lazy"></p>
<h2 id="otherfeaturesfixes">Other features &amp; fixes</h2>
<ul>
<li>Addons now display storage sizes in gigabytes by default</li>
<li>Added support to specify project color to the API</li>
<li>Disabled buttons to delete backups on addons that are restoring from a backup</li>
<li>Fixed an issue where clicking on the addon instance bar would display a 404 page</li>
<li>Fixed an issue where manual jobs could be saved as cron if you switched the job type tabs before saving</li>
<li>Fixed an issue where the <code>get addon details</code> API endpoint would error in cases where IP policies were not configured</li>
<li>Fixed an issue where the job data grid wouldn’t show the correct status for the first couple of job runs</li>
<li>Fixed an issue where some older MongoDB versions wouldn’t support TLS</li>
</ul>
<!--kg-card-end: markdown-->]]>
  </content:encoded>
</item><item>
  <title>New API Endpoints and Improved Jobs UI</title>
  <link>https://northflank.com/changelog/new-api-endpoints-and-improved-jobs-ui</link>
  <pubDate>2021-08-30T09:42:09.000Z</pubDate>
  <description>
    <![CDATA[Added new API &amp; CLI endpoints for configuring addon network settings, IP policies and upgrades, improved the jobs UI and more fixes.]]>
  </description>
  <content:encoded>
    <![CDATA[<img src="https://assets.northflank.com/2021/08/improved-jobs-ui.png" alt="New API Endpoints and Improved Jobs UI" /><!--kg-card-begin: markdown--><p>We are introducing a number of new endpoints available in the <a href="https://northflank.com/docs/v1/api/introduction">API and CLI</a> as well as the <a href="https://northflank.com/docs/v1/api/use-the-javascript-client">JS client</a>:</p>
<ul>
<li><code>Update network settings</code> updates the addon TLS and External Access settings as announced <a href="https://northflank.com/changelog/public-access-for-managed-databases-and-storage">last week</a></li>
<li><code>Update security rules</code> configures addon IP policy rules</li>
<li><code>Get addon version details</code> lists available upgrades and upgrade history</li>
<li><code>Upgrade addon version</code> upgrades an addon to a specified new version</li>
</ul>
<p>The jobs UI was improved to give a clearer overview of all your jobs and their statuses, as well as show useful notifications and confirmation modals:</p>
<ul>
<li>Cron expressions now have labels showing them in human readable formats, such as <code>Every 5 minutes</code> or <code>At 30 minutes past the hour</code></li>
<li>Jobs data grid shows real-time deployment source, status, rules (such as deploying latest commits and builds) and whether the job is active or paused with explanations on hover</li>
<li>Added confirmation modals for triggering job runs as well as pausing and re-activating a cron job</li>
<li>Cron job dashboards now show a notification with a button to resume job scheduling if it is currently paused</li>
</ul>
<h2 id="otherfeaturesfixes">Other features &amp; fixes</h2>
<ul>
<li>Added a <code>createdAt</code> field to the API response for addons, services and jobs</li>
<li>Improved loading of job runs to be faster</li>
<li>Improved loading of containers to be faster</li>
<li>Service creation progress tracker now always sticks to the top to give you an overview of your configuration</li>
<li>Fixed an issue where builds would not be found if a repository was renamed</li>
<li>Fixed an issue where <code>Create new</code> dropdown menu would display unrelated items under <code>On this page</code></li>
<li>Fixed an issue where secret groups diff editor would suggest viewing differences after initial creation</li>
<li>Fixed an issue where an addon backup could not be restored straight after another restore without refreshing the page</li>
</ul>
<!--kg-card-end: markdown-->]]>
  </content:encoded>
</item><item>
  <title>Public Access for Managed Databases and Storage</title>
  <link>https://northflank.com/changelog/public-access-for-managed-databases-and-storage</link>
  <pubDate>2021-08-23T14:12:49.000Z</pubDate>
  <description>
    <![CDATA[Public access to your Northflank addons via highly performant load-balancers is now supported. Connect to your databases and storage outside Northflank with secure TLS.]]>
  </description>
  <content:encoded>
    <![CDATA[<img src="https://assets.northflank.com/2021/08/security-rules-changelog.png" alt="Public Access for Managed Databases and Storage" /><!--kg-card-begin: markdown--><p>Today we are excited to announce public network support for Northflank Addons (databases such as MySQL, PostgreSQL, MongoDB &amp; Redis and S3 compatible MinIO storage).</p>
<ul>
<li>Connect to your databases outside of Northflank</li>
<li>Easily connect to popular tooling such as Retool, Segment and database UIs without needing to use Northflank CLI proxy</li>
<li>External access is routed via Northflank’s highly performant DNS and load-balancers</li>
<li>Traffic is encrypted end-to-end with TLS from client to the database</li>
<li>Fine-grained network access controls for increased security</li>
</ul>
<p>Northflank continues to level up the DBaaS experience across multiple popular OSS databases with consistent capability. You are now able to access your addons securely within the same project, via <code>northflank forward</code> and now for production workloads via load-balancers when workloads are deployed externally.</p>
<p>Public access can be enabled on addons deployed with TLS which can be configured in <code>Network Settings</code>. Once enabled, you will notice new external connection strings in <code>Connection Details</code>. You can configure them to be automatically inherited from your jobs and services.</p>
<p>Configurable security rules are also included in this release. Similar to IP and Basic Auth security rules that are available for services, you can specify certain IP addresses from which external ingress traffic will be allowed. We recommend always configuring IP policies as this brings another layer of security to your data.</p>
<p><img src="https://assets.northflank.com/2021/08/security-rules.png" alt="Security rules" loading="lazy"></p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h2 id="exampleconnectionscripts">Example connection scripts</h2>
<!--kg-card-end: markdown--><pre><code class="language-javascript">// Connect to a publicly accessible MongoDB with inherited environment variables
// Inherit 'EXTERNAL_SRV' and 'DATABASE' via a Secret Group


import MongoClient from  'mongodb'

let db = {}
let client = {}

const MONGO_CONNECTION_STRING = process.env.EXTERNAL_SRV
const MONGO_DATABASE = process.env.DATABASE

const INIT_MONGODB = async () =&gt; {
    try {
        console.log('Connecting to database')
        client = await MongoClient.connect(MONGO_CONNECTION_STRING, { useUnifiedTopology: true });
        db = client.db(MONGO_DATABASE)
        console.log('Connected to database');
    } catch (err) {
        console.log(err);
    }
}

export default async () =&gt; {
    await INIT_MONGODB();
}

export { db, client }</code></pre><pre><code class="language-javascript">// Connect to a publicly accessible PostgreSQL with inherited environment variables
// Inherit 'EXTERNAL_POSTGRES_URI' via a Secret Group

import pg from 'pg'
const { Pool } = pg;

const POSTGRESQL_CONNECTION_STRING = process.env.EXTERNAL_POSTGRES_URI

let client = {};

const pool = new Pool({
    connectionString: POSTGRESQL_CONNECTION_STRING,
})

const INIT_POSTGRES = async () =&gt; {
    try {
        console.log('Connecting to database');
        client = await pool.connect();
        console.log('Connected to database');
    } catch (err) {
        console.log(err);
    }
};

export default async () =&gt; {
    await INIT_POSTGRES();
}

export { client }</code></pre><pre><code class="language-javascript">// Connect to a publicly accessible Redis with inherited environment variables
// Inherit 'HOST' and 'REDIS_MASTER_URL' via a Secret Group

import redis from 'redis'

const REDIS_CONNECTION_STRING = process.env.REDIS_MASTER_URL
const REDIS_HOST = process.env.HOST

let client = redis.createClient({url: REDIS_CONNECTION_STRING, tls: {
        servername: REDIS_HOST
    }});

const INIT_REDIS = async () =&gt; {
    try {
        console.log('Connecting to database');
        await client.on('connect', function() {
          console.log('Connected to database');
        });
    } catch (err) {
        console.log(err);
    }
};

export default async () =&gt; {
    await INIT_REDIS();
}

export { client }</code></pre>]]>
  </content:encoded>
</item><item>
  <title>Managed Upgrades for Databases and Storage</title>
  <link>https://northflank.com/changelog/managed-upgrades-for-databases-and-storage</link>
  <pubDate>2021-08-17T14:40:35.000Z</pubDate>
  <description>
    <![CDATA[Added support for upgrading between minor and major database and storage engine versions. The UI displays warnings on deprecated addon versions, and users can select from available upgrade options.]]>
  </description>
  <content:encoded>
    <![CDATA[<img src="https://assets.northflank.com/2021/08/managed-upgrades-header.png" alt="Managed Upgrades for Databases and Storage" /><!--kg-card-begin: markdown--><ul>
<li>Addons can be upgraded between supported minor and major versions</li>
<li>Guaranteed valid upgrade path between deprecated and latest supported versions</li>
<li>Addons on deprecated/discontinued versions now display a visual indicator with a prompt to upgrade</li>
<li>If there are multiple upgrades available the user can select the desired version</li>
<li>A history of previous upgrades is available on the new Upgrade page</li>
</ul>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card"><img src="https://assets.northflank.com/2021/08/addon-upgrade.png" class="kg-image" alt="Addon Upgrade" loading="lazy" width="2871" height="1587"></figure><!--kg-card-begin: markdown--><h2 id="otherfeaturesfixes">Other features &amp; fixes</h2>
<ul>
<li>Added a redirect after a resource is deleted to prevent displaying 404 pages</li>
<li>Improved dashboard alignment on smaller screen sizes</li>
<li>Improved validation formatting on the invite team members form</li>
<li>Updated Job and Service creation headers to be consistent</li>
<li>Moved Single Sign On into Account Settings from its dedicated page</li>
<li>Fixed an issue where Create service button would not be disabled on uncompleted forms</li>
<li>Fixed an issue where pull requests wouldn’t automatically get marked as closed in the UI for Bitbucket repositories</li>
<li>Fixed an issue where the new repository name would persist after changing VCS provider on service creation from template</li>
</ul>
<!--kg-card-end: markdown-->]]>
  </content:encoded>
</item><item>
  <title>Enhanced API Responses &amp; Build Rules</title>
  <link>https://northflank.com/changelog/enhanced-api-responses-build-rules</link>
  <pubDate>2021-08-09T10:26:26.000Z</pubDate>
  <description>
    <![CDATA[API endpoints return more details, added human-readable branches &amp; PRs build rules, links to VCS commits, improved UX.]]>
  </description>
  <content:encoded>
    <![CDATA[<img src="https://assets.northflank.com/2021/08/changelog-build-source.png" alt="Enhanced API Responses &amp; Build Rules" /><!--kg-card-begin: markdown--><ul>
<li>Added human-readable branch &amp; pull requests rules that are generated from your regex input</li>
<li>Build service creation now automatically configures your repository’s default branch as a build rule</li>
</ul>
<h2 id="apienhancements">API Enhancements</h2>
<ul>
<li>Responses now return detailed metadata so they can be handled without additional queries</li>
<li>Added consistent upper case for endpoint names</li>
<li>Added dedicated get deployment endpoint schema</li>
<li>Changed public endpoints to be in line with authenticated endpoint responses</li>
<li>Fixed deployment service creation failing to read a property correctly</li>
<li>Fixed some endpoint responses not being formatted correctly (get deployment details, list regions, list plans)</li>
</ul>
<!--kg-card-end: markdown--><pre><code class="language-json">// Sample 200 Response
{
  "data": {
    "external": {
      "imagePath": "nginx:latest",
      "registryProvider": "dockerhub",
      "privateImage": false
    }
  }
}</code></pre><pre><code class="language-json">// Sample 400 Response
{
    "error": {
        "status": 400,
        "message": "Request failed payload validation - see details.",
        "id": "nf-invalid-request-body",
        "details": {
            "name": [
                "\"name\" is required. Received \"undefined\""
            ]
        }
    }
}</code></pre><!--kg-card-begin: markdown--><h2 id="otherfeaturesfixes">Other features &amp; fixes</h2>
<ul>
<li>Tweaked service creation form for better user experience</li>
<li>Improved the user experience of automatic image path verification where a wrong path is pasted in</li>
<li>Added external links to commits so you can compare file changes and see details in the VCS UI</li>
<li>Fixed container bar not visible in solarized light theme</li>
<li>Fixed max-width on service headers which caused the re-deploy button to be hidden behind a CD toggle</li>
<li>Fixed advanced dropdowns displaying incorrectly in Firefox</li>
<li>Fixed issues where configuring CMD override couldn’t be removed or it would disappear from the image settings page</li>
<li>Fixed an issue where builds from GitLab repositories would fail if there were multiple commits in a short period of time</li>
<li>Fixed GitHub container registry credentials not verifying correctly</li>
<li>Fixed job list crashing occasionally where items are deleted</li>
<li>Fixed an issue where an error would be displayed if service creation was submitted via hitting Enter rather than clicking a button</li>
<li>Fixed an issue where repositories wouldn’t load correctly for self-hosted GitLab</li>
</ul>
<!--kg-card-end: markdown-->]]>
  </content:encoded>
</item><item>
  <title>Improved Pipelines, Teams and Jobs</title>
  <link>https://northflank.com/changelog/improved-pipelines-teams-and-jobs</link>
  <pubDate>2021-08-02T08:28:00.000Z</pubDate>
  <description>
    <![CDATA[External domains now displayed in pipelines, invite team members when creating your team, job runs highlight manual triggers and more.]]>
  </description>
  <content:encoded>
    <![CDATA[<img src="https://assets.northflank.com/2021/08/changelog-pipelines-jobs.png" alt="Improved Pipelines, Teams and Jobs" /><!--kg-card-begin: markdown--><ul>
<li>Pipelines now display linked custom domains in addition to generated Northflank domains on each service card</li>
<li>Invite team members during team creation flow to get started quickly with your colleagues</li>
<li>Hover on build services in the pipelines sidebar displays the linked repository</li>
<li>Job runs UI now displays if the run was triggered by the cron schedule or triggered manually by the user</li>
</ul>
<p><img src="https://assets.northflank.com/2021/08/pipeline-domains.png" alt="Custom domains on Pipelines" loading="lazy"></p>
<h2 id="otherfeaturesfixes">Other features &amp; fixes</h2>
<ul>
<li>Added error codes and request body descriptions across all API calls</li>
<li>Environment variables are now always passed as strings to prevent accidental trimming/rounding when supplied as a number</li>
<li>Added support for displaying a company VAT ID in billing where applicable</li>
<li>Refund status is now reflected on refunded invoices in billing</li>
<li>The applicable VAT rate is displayed through current usage and invoice views</li>
<li>Saving service configurations now skips initiating a redeployment if no effective change was detected</li>
<li>Updated help popovers in addon connection details</li>
<li>Pressing Esc on help popovers now closes them</li>
<li>Improved cron job syntax checking to prevent multiple spaces</li>
<li>Improved handling when generating unique DNS identifiers preventing partial word generation</li>
<li>Fixed an issue where some GitHub organisation commits wouldn't load in the UI</li>
<li>Fixed an issue where the service list would crash after deleting some services</li>
</ul>
<!--kg-card-end: markdown-->]]>
  </content:encoded>
</item><item>
  <title>New Application Documentation</title>
  <link>https://northflank.com/changelog/new-application-documentation</link>
  <pubDate>2021-07-26T10:33:29.000Z</pubDate>
  <description>
    <![CDATA[Reworked documentation, added Rust to templates, start from template available for all Git providers.]]>
  </description>
  <content:encoded>
    <![CDATA[<img src="https://assets.northflank.com/2021/07/app-docs-header.png" alt="New Application Documentation" /><!--kg-card-begin: markdown--><p>Today, we are pleased to release our new <a href="https://northflank.com/docs">documentation</a> experience - making it easier for you to quickly understand Northflank features and how to get started step-by-step.</p>
<ul>
<li>Select between a dark and light theme to match your Northflank UI 🌓</li>
<li><a href="https://northflank.com/docs/v1/application/getting-started/">Getting started</a> is great when you're just starting out - it will guide you from setting up your account with Git and creating your first service, pipeline and all the way to deploying with custom domains</li>
<li><a href="https://northflank.com/docs/v1/application/overview">How-to guides</a> help you configure your workloads in all stages of the DevOps workflow (Build, Run, Release, Observe and Scale) with in-line explanation and sane defaults, expanding on advanced topics such as addons (databases and persistent storage) or network security and encryption</li>
<li><a href="https://northflank.com/docs/v1/api/introduction">API and CLI documentation</a> provides an API reference to build applications integrated with Northflank - example code snippets are available for the <a href="https://www.npmjs.com/package/@northflank/cli">Northflank CLI</a>, <a href="https://www.npmjs.com/package/@northflank/js-client">JS client</a> and API calls (<code>curl</code>, <code>JavaScript</code>, <code>Python</code> &amp; <code>Go</code>)</li>
<li>Updated help popovers in the UI to reflect the new documentation</li>
<li>Improved fast search across both App and API docs 🔎</li>
</ul>
<p><img src="https://assets.northflank.com/2021/07/api-docs.png" alt="API Documentation" loading="lazy"></p>
<h2 id="otherfeaturesfixes">Other features &amp; fixes</h2>
<ul>
<li>Create template repository services with GitHub, Bitbucket and GitLab (including self-hosted instances) on both users and team accounts (previously only personal GitHub accounts were supported)</li>
<li>Added support for importing addon backups from links that require a redirect (e.g. Dropbox)</li>
<li>Added an explicit message if automatic port detection couldn't find any ports</li>
<li>Hovering on deployment services now highlights the linked build services on pipelines</li>
<li>Increased a feedback input limit to 1200 characters</li>
<li>Added a starter template for Rust</li>
<li>Added an option to add unlinked VCS via Git selection dropdowns rather than having to navigate to Account Settings</li>
<li>Fixed an issue where container icon and status sometimes wouldn't match</li>
<li>Fixed an issue where Docker Credentials couldn't be selected if the image path was missing or was copied and pasted into the modal</li>
<li>Fixed an issue where private images would sometimes be labeled as public in the UI</li>
<li>Fixed the instance selector not rendering on logs page while logs loading</li>
<li>Fixed pull requests showing 'invalid date' for the first couple of seconds in the UI</li>
<li>Fixed an issue where accepting a team invite via an email invitation link would fail</li>
</ul>
<!--kg-card-end: markdown-->]]>
  </content:encoded>
</item><item>
  <title>Upgraded API Client, CLI and Example Code Snippets</title>
  <link>https://northflank.com/changelog/upgraded-api-client-cli-and-example-code-snippets</link>
  <pubDate>2021-07-19T12:41:15.000Z</pubDate>
  <description>
    <![CDATA[The Northflank API Client was updated for simpler usage and examples are now provided in documentation.]]>
  </description>
  <content:encoded>
    <![CDATA[<img src="https://assets.northflank.com/2021/07/apiclient-header.png" alt="Upgraded API Client, CLI and Example Code Snippets" /><!--kg-card-begin: markdown--><p>We are excited to release a new version of the <a href="https://www.npmjs.com/package/@northflank/js-client">Northflank JavaScript API client</a> alongside another release for the CLI. To install the API client in your Node JS projects setup with <code>npm i @northflank/js-client</code> or <code>yarn add @northflank/js-client</code> and enjoy full native IntelliSense &amp; type suggestion support in your IDE of choice.</p>
<p>The API client provides an easy way to provision and maintain infrastructure as code and integrate your applications with Northflank. Simply get started by <a href="https://northflank.com/docs/v1/application/secure/manage-api-tokens">generating an API key</a> in your team or account settings.</p>
<p>The new version simplifies the user experience and removes some previous complexity:</p>
<ul>
<li>
<p>Client no longer requires <code>.endpoints</code> and <code>.call</code></p>
<ul>
<li><code>apiClient.endpoints.create.project.call</code> becomes <code>apiClient.create.project</code></li>
</ul>
</li>
<li>
<p>Client parameters passed to the API call follow a new format</p>
<ul>
<li><code>{parameters: {..}, data: {..}, options: {..}}</code></li>
</ul>
</li>
<li>
<p><a href="https://northflank.com/docs/v1/api/introduction">API Documentation</a> now shows example JS client code snippets for all endpoints</p>
</li>
</ul>
<h3 id="exampleusage">Example usage</h3>
<!--kg-card-end: markdown--><pre><code class="language-javascript">import { ApiClient, ApiClientInMemoryContextProvider } from "@northflank/js-client";

(async () =&gt; {
  // Create context to store credentials.
  const contextProvider = new ApiClientInMemoryContextProvider();
  await contextProvider.addContext({
    name: "default-context",
    token: "&lt;api-token&gt;", // Use generated API token
  });

  // Initialize API client.
  const apiClient = new ApiClient(contextProvider);

  // Retrieve list of projects and log to console.
  const { response: { projects } } = await apiClient.list.project({});
  console.log(projects);

  // Create a new project.
  await apiClient.create.project({
    data: {
      name: "default-project",
      region: "europe-west",
      description: "Default project description",
    },
  });
})();</code></pre><!--kg-card-begin: markdown--><h2 id="otherfeaturesfixes">Other features &amp; fixes</h2>
<ul>
<li>Changed layout of our blog &amp; changelog to display the most recent item at the top and added infinite scrolling</li>
<li>Added container statuses to influence overall service health, indicating in real-time if there is an issue with one or more containers</li>
<li>Limited maximum width of forms across the UI to make it a better experience on 4K or widescreen displays</li>
<li>Services now show an explicit error if the GitHub, Bitbucket or GitLab installation is missing</li>
<li>Fixed API addon backups endpoints not parsing path parameter correctly</li>
<li>Fixed an issue where editing security rules would sometimes crash the page</li>
<li>Added a warning if two or more IP security rules use the same IP address</li>
<li>Fixed an issue where a Dockerfile wouldn't get fetched correctly in some edge cases with Bitbucket repositories</li>
<li>Fixed an issue where you'd get redirected to a non-existing page after adding a new subdomain</li>
</ul>
<!--kg-card-end: markdown-->]]>
  </content:encoded>
</item><item>
  <title>Platform Feedback, Improved Addon Inheritance</title>
  <link>https://northflank.com/changelog/platform-feedback-improved-addon-inheritance</link>
  <pubDate>2021-07-12T16:40:09.000Z</pubDate>
  <description>
    <![CDATA[Send us your feedback via a modal in the UI, enhanced addon connection details inheritance via secret groups.]]>
  </description>
  <content:encoded>
    <![CDATA[<img src="https://assets.northflank.com/2021/07/help-feedback-header.png" alt="Platform Feedback, Improved Addon Inheritance" /><!--kg-card-begin: markdown--><p>We added a feedback form to the UI which you can use to share feedback, suggestions or any issues. You can also upload attachments such as screenshots or screen recordings.</p>
<p>The addon connection details inheritance was improved to prevent adding duplicate aliases and the UI now displays all aliases in a nested way, so it becomes clearer which key names are used for which connection detail.</p>
<p><img src="https://assets.northflank.com/2021/07/addon-inheritance-nested.png" alt="Addon Connection Details Inheritance" loading="lazy"></p>
<h2 id="otherfeaturesfixes">Other features &amp; fixes</h2>
<ul>
<li>Improved automatic port detection to detect ports declared as variables in the Dockerfile</li>
<li>Fixed an issue where updating port configuration would trigger two restarts</li>
<li>Fixed an issue where addon connection details wouldn't get inherited if other projects used the same addon name</li>
<li>Fixed an issue where the image settings page would crash after inputting quotes in the CMD override</li>
<li>Fixed an issue where pressing enter on some forms would disregard changes rather than saving</li>
<li>Fixed an issue where a service couldn't be created after switching between service types</li>
<li>Fixed a validation issue of the environment editor after removing invalid fields</li>
<li>Fixed issues with validating and switching external registry providers after they have been configured</li>
<li>Fixed Dockerfile validation preventing from creating service if Dockerfile was originally missing</li>
<li>Fixed job run durations displaying wrong timestamps for the first couple of seconds</li>
</ul>
<!--kg-card-end: markdown-->]]>
  </content:encoded>
</item><item>
  <title>High Availability Addons for Databases and Storage</title>
  <link>https://northflank.com/changelog/high-availability-addons-for-databases-and-storage-kubernetes-api-cli-ui</link>
  <pubDate>2021-07-05T16:08:50.000Z</pubDate>
  <description>
    <![CDATA[PostgreSQL, MySQL, MongoDB, Redis and MinIO addons are now available to all users.]]>
  </description>
  <content:encoded>
    <![CDATA[<img src="https://assets.northflank.com/2021/07/changelog-addons-1.png" alt="High Availability Addons for Databases and Storage" /><p>We are excited to announce Northflank Addons are now available to all users and teams in supported regions. Deploy highly available persistent workloads such as PostgreSQL, MySQL, Redis, MongoDB, and MinIO in seconds.</p><p>Northflank Addons is our DBaaS solution, bringing a consistent and comprehensive operator pattern across multiple popular databases and object stores to any Kubernetes cluster. Create, backup, scale, secure and observe stateful workloads via UI, CLI or programmatically via our API or Javascript Client.</p><pre><code class="language-javascript">// example code snippet provisioning a stateful MySQL workload
// with 1 replica using @northflank/js-client

const myAddon = await apiClient.create.addon({
  project: "my-amazing-project",
  payload: {
    name: "my-amazing-database",
    description: "my amazing database for my amazing project",
    type: "mysql",
    externalAccessEnabled: true,
    tlsEnabled: true,
    version: "8.0.25",
    billing: {
      deploymentPlan: "nf-compute-100",
      replicas: 1,
      storage: 1024,
    },
  },
});
</code></pre><!--kg-card-begin: markdown--><ul>
<li>Provision database read and write replicas in seconds</li>
<li>Select from a range of supported versions</li>
<li>Cost-effective vertical and horizontal scaling</li>
<li>Low latency internal networking with your micro-services and applications</li>
<li>Secure internal network isolation within your Northflank project</li>
<li>Easily provision with TLS for secure network traffic</li>
<li>Monitor and observe all addon containers via logs and metrics</li>
<li>Scale storage size rapidly so you never run out of disk space</li>
<li>Link addon connection details to secret groups for automatic inheritance of environment variables into jobs and services as announced <a href="https://northflank.com/changelog/managed-addon-connection-details-inheritance">here</a></li>
<li>Backup via UI or API and restore your databases from a Northflank backup or an external source</li>
<li>Manage and interact with addons via the <a href="https://northflank.com/docs/v1beta/api/introduction">Northflank API and CLI</a></li>
<li>Securely access databases on your development machines via northflank forward</li>
</ul>
<!--kg-card-end: markdown--><p><br></p>]]>
  </content:encoded>
</item><item>
  <title>Increased Observability</title>
  <link>https://northflank.com/changelog/increased-observability</link>
  <pubDate>2021-06-28T10:23:13.000Z</pubDate>
  <description>
    <![CDATA[Logs live tailing and search available across all containers, displaying offline logs if connection fails.]]>
  </description>
  <content:encoded>
    <![CDATA[<img src="https://assets.northflank.com/2021/06/changelog-logs-offline.png" alt="Increased Observability" /><p></p><!--kg-card-begin: markdown--><p>You are now able to tail and search logs across all containers within a Northflank service, job, build or addon. This levels up observability when deploying and debugging in a highly available production environment and applies to:</p>
<ul>
<li>Logs from containers deployed in a service</li>
<li>Logs from CI tracking build progress across parallel builds</li>
<li>Logs from parallel job runs triggered via cron schedule or API trigger</li>
<li>Logs from database masters and replicas</li>
<li>Logs from terminal or running containers (up to 30 days of retention)</li>
<li>Logs from backups and restores</li>
</ul>
<p>Due to increased load on our logging backend, we have implemented a fallback when WebSockets are exhausted. If Northflank is unable to establish a real-time connection to the queried log stream, it creates a static HTTP query &amp; returns the relevant log messages, putting your client into an offline state.</p>
<p>You will always be able to retrieve logs irrespective of load on our real-time logging infrastructure, and you can attempt to reconnect to the real-time stream via a button in the UI.</p>
<h2 id="otherfeaturesfixes">Other features &amp; fixes</h2>
<ul>
<li>Addons header now show status, containers and meta information</li>
<li>Addon connection details inheritance now prevents setting duplicate names</li>
<li>Added addon port to the connection details</li>
<li>Added real-time updates to the project list when permissions are changed</li>
<li>Jobs with external deployments can now be created even without a linked Git account</li>
<li>Improved the UI of build deployment modals inside Pipelines</li>
<li>Fixed Northflank logo not loading on template repositories</li>
<li>Fixed a bug where service couldn't be created after deleting a custom port configuration</li>
<li>Fixed several line breaks and now showing abbreviated names of branches and PRs if they're too long</li>
<li>Fixed an issue where API Templates couldn't be deleted</li>
<li>Fixed favouriting container registry credentials</li>
</ul>
<!--kg-card-end: markdown-->]]>
  </content:encoded>
</item><item>
  <title>Bug Fixes</title>
  <link>https://northflank.com/changelog/bug-fixes</link>
  <pubDate>2021-06-21T13:26:36.000Z</pubDate>
  <description>
    <![CDATA[Logs throw explicit errors for issues with Dockerfiles, tweaked the Billing and Resources UI, other fixes.]]>
  </description>
  <content:encoded>
    <![CDATA[<img src="https://assets.northflank.com/2021/06/chlog-commit.png" alt="Bug Fixes" /><!--kg-card-begin: markdown--><ul>
<li>Build logs now throw an explicit error if the Dockerfile couldn't be found</li>
<li>Small tweaks to the Billing and Resources UI</li>
<li>Fixed flickering of the Edit deployment modal when switching deployment source tabs</li>
<li>Fixed the project list not updating in real-time when restricting users from projects</li>
<li>Fixed real-time reloading of new branches, added refresh buttons for manual reload</li>
<li>Fixed an issue where some commits would be delayed by ca. 20 seconds before appearing in the UI</li>
<li>Fixed some Bitbucket commits not building automatically with CI enabled</li>
<li>Fixed commits showing as deployed before a build is completed</li>
<li>Fixed handling member removals if they linked their Git to the team</li>
<li>Fixed job durations and start times not displaying correctly sometimes</li>
<li>Fixed a form validation issue with the secrets dif editor</li>
<li>Fixed an error where backups could be created for addons that are still provisioning</li>
<li>Fixed crashing the instances page if all three health checks were added to the service</li>
<li>Fixed infinite loading on pages with deleted API tokens</li>
<li>Fixed issues with self-hosted VCS webhooks</li>
<li>Fixed occasional lagging of the Dockerfile editor</li>
</ul>
<!--kg-card-end: markdown-->]]>
  </content:encoded>
</item><item>
  <title>Pipeline Service Overview &amp; Health Checks Previews</title>
  <link>https://northflank.com/changelog/pipeline-service-overview-health-checks-previews</link>
  <pubDate>2021-06-14T12:07:57.000Z</pubDate>
  <description>
    <![CDATA[See services status immediately via pipelines and preview health checks for all your containers.]]>
  </description>
  <content:encoded>
    <![CDATA[<img src="https://assets.northflank.com/2021/06/changelog-header-pipelines.png" alt="Pipeline Service Overview &amp; Health Checks Previews" /><!--kg-card-begin: markdown--><p>We have redesigned pipelines for increased accessibility and user experience. Each service now shows the status of its containers and the public URLs for easy navigation.</p>
<h2 id="otherfeaturesfixes">Other features &amp; fixes</h2>
<ul>
<li>Unified wording across the UI</li>
<li>Added a link to open the selected Git repository during service creation</li>
<li>Confirmation modal to remove a team member now displays the member's name</li>
<li>Ports now use internal IDs to prevent removing security rules (Basic authentication and IP policies) when updating port names</li>
<li>Fixed an issue where Docker command override could not be cleared</li>
<li>Fixed an issue with updating ports on subdomains from Settings</li>
<li>Fixed wrong timestamps on the job runs list</li>
<li>Health checks are now displayed on the Containers page</li>
</ul>
<p><img src="https://assets.northflank.com/2021/06/health-checks.png" alt="Health Checks" loading="lazy"></p>
<!--kg-card-end: markdown-->]]>
  </content:encoded>
</item><item>
  <title>Profile Settings &amp; Docker Credentials</title>
  <link>https://northflank.com/changelog/profile-settings-docker-credentials</link>
  <pubDate>2021-06-07T12:44:10.000Z</pubDate>
  <description>
    <![CDATA[Avatars for user and team profiles, enhanced Docker credentials with auto verification and meta info.]]>
  </description>
  <content:encoded>
    <![CDATA[<img src="https://assets.northflank.com/2021/06/profile-changelog.png" alt="Profile Settings &amp; Docker Credentials" /><!--kg-card-begin: markdown--><p>Users and teams can now edit profiles and upload avatars on a newly designed profile page. It also displays any account limits such as the number of free services, instances per service or parallel builds.</p>
<p>The user experience of adding new Docker credentials for external registries has been enhanced, allowing you to get started with GitHub Container Registry (ghcr.io), GitLab Container Registry, Google Container Registry (GCR) and Amazon Elastic Container Registry (ECR) within seconds. The image path is automatically validated and relevant meta information is displayed.</p>
<p><img src="https://assets.northflank.com/2021/06/image-edit-retool.png" alt="Editing deployment image" loading="lazy"></p>
<h2 id="otherfeaturesfixes">Other features &amp; fixes</h2>
<ul>
<li>Made the PRs and branches list consistent across the UI</li>
<li>Team members page now shows when each member joined the team</li>
<li>Fixed several UI issues causing strange behaviours on 13&quot; screens</li>
<li>Fixed an issue where secret name duplicates would be detected across the whole account rather than just projects</li>
</ul>
<!--kg-card-end: markdown-->]]>
  </content:encoded>
</item><item>
  <title>Enhanced Services &amp; Jobs DX</title>
  <link>https://northflank.com/changelog/enhanced-services-jobs-dx</link>
  <pubDate>2021-05-28T07:20:19.000Z</pubDate>
  <description>
    <![CDATA[Create external Docker deployments without a linked Git, cancelling job runs, and improved real-time domains.]]>
  </description>
  <content:encoded>
    <![CDATA[<img src="https://assets.northflank.com/2021/05/chlog-service-cr.png" alt="Enhanced Services &amp; Jobs DX" /><!--kg-card-begin: markdown--><ul>
<li>Create deployment services without a linked Git account - this is handy when you only want to deploy images from external registries</li>
<li>Service creation now informs you if there are any missing or invalid fields for networking and ports</li>
<li>Domains in service headers now update in real-time if port names change</li>
<li>Custom domains show detailed errors and warnings if validation fails whilst configuring new domains or subdomains</li>
<li>Individual job runs can now be cancelled either via the UI or API</li>
</ul>
<h2 id="otherfixes">Other fixes</h2>
<ul>
<li>Fixed wrapping long branch names in pipelines</li>
<li>Fixed the team selector showing an empty space if there was only one team</li>
<li>Fixed an issue where you couldn't edit a GitHub installation if linked to a personal account</li>
<li>Fixed an issue where a combined job wouldn't display its repository in the resource data grid</li>
<li>Fixed an issue comparing local &amp; remote changes via the diff editor displaying some incorrect fields in project secrets</li>
</ul>
<!--kg-card-end: markdown-->]]>
  </content:encoded>
</item><item>
  <title>Support for UDP Port Forward via the CLI</title>
  <link>https://northflank.com/changelog/support-for-udp-port-forward-via-the-cli</link>
  <pubDate>2021-05-21T09:45:22.000Z</pubDate>
  <description>
    <![CDATA[Added UDP port forwarding to the Northflank CLI for a secure local connection to your running services.]]>
  </description>
  <content:encoded>
    <![CDATA[<img src="https://assets.northflank.com/2021/05/changelog-forward.png" alt="Support for UDP Port Forward via the CLI" /><!--kg-card-begin: markdown--><p><a href="https://www.npmjs.com/package/@northflank/cli/" target="_blank">Northflank CLI</a> now supports UDP port forwarding in addition to existing TCP &amp; HTTP protocols. This enables secure forwarding of UDP traffic running within your project firewall to your local machine. UDP traffic is essential for real-time communication, media and game servers, VoIP, DNS and many other applications.</p>
<p>This unique capability has been added in conjunction with wide-ranging security and runtime improvements, prompting us to migrate from Kubernetes API port-forward due to its limitations in only supporting TCP traffic. In summary, Northflank can power many more applications, furthering our mission to deliver a sandbox of developer tools that get out of your way.</p>
<h2 id="otherfeaturesfixes">Other features &amp; fixes</h2>
<ul>
<li>Cron jobs UI now shows a warning if the job is paused</li>
<li>Form headers are now consistent across different views</li>
<li>Advanced options inside forms are now hidden in a dropdown by default</li>
<li>The modal to link self-hosted VCS was changed to be on its own page, rather than a popup modal</li>
<li>Fixed an issue where invalid credentials could be saved</li>
<li>Fixed an issue where the online status of other team members wouldn't show correctly sometimes</li>
</ul>
<!--kg-card-end: markdown-->]]>
  </content:encoded>
</item><item>
  <title>Configurable Resource Data Grids</title>
  <link>https://northflank.com/changelog/configurable-resource-data-grids</link>
  <pubDate>2021-05-14T11:45:54.000Z</pubDate>
  <description>
    <![CDATA[Resource data grids improve the observability of your projects and let you configure your Northflank experience.]]>
  </description>
  <content:encoded>
    <![CDATA[<img src="https://assets.northflank.com/2021/05/chlog-lists.png" alt="Configurable Resource Data Grids" /><!--kg-card-begin: markdown--><p>Lists across the Northflank UI are now user-configurable and have been upgraded to match the increased functionality of Northflank over the last 12 months. Resource data grids now give immediate observability of your projects and the status of your resources.</p>
<ul>
<li>Alphabetic sort of the table by a selected key, sort by date or status</li>
<li>Filter content by a string search or select dropdown</li>
<li>Set your preference of which columns to display, hide, or sort by</li>
<li>Lists continue to work across all devices including mobile</li>
</ul>
<h2 id="otherfeaturesfixes">Other features &amp; fixes</h2>
<ul>
<li>Northflank now stores your last user/team context in local storage so when you open the UI again you can continue where you left off</li>
<li>Fixed an issue where a user/team switch popover would be inaccessible if viewport height is small</li>
<li>Fixed an issue where self-hosted VCS settings wouldn't display the application ID correctly</li>
<li>Fixed an issue where automatic port detection would display some private ports as public for some deployment services</li>
</ul>
<!--kg-card-end: markdown-->]]>
  </content:encoded>
</item><item>
  <title>Managed Addon Connection Details Inheritance</title>
  <link>https://northflank.com/changelog/managed-addon-connection-details-inheritance</link>
  <pubDate>2021-05-07T07:57:30.000Z</pubDate>
  <description>
    <![CDATA[Addon environment variables can be injected to project secret groups and used across services and jobs easily.]]>
  </description>
  <content:encoded>
    <![CDATA[<img src="https://assets.northflank.com/2021/05/addon-inheritance-header.png" alt="Managed Addon Connection Details Inheritance" /><!--kg-card-begin: markdown--><p>Secret groups can now inherit environment variables from your addons. This enables easy and safe access to connection details in services and jobs without the need for error-prone manual copy and paste. Addon variables can be linked to a secret group via the UI on both the addon and secret group pages.</p>
<ul>
<li>Control which connection details get injected into your runtime from a list of available variables</li>
<li>Northflank suggests default variables to inherit if you're not sure which ones to select</li>
<li>You can define additional aliases for each variable to match your software requirements</li>
<li>On your services and jobs, you are able to see all inherited environment variables and which ones take effect</li>
<li>Control the order of inheritance between conflicting keys by defining a priority per secret group</li>
<li>Variables defined on a service or job level always take priority over inherited values (the UI also shows a warning to prevent accidental overrides)</li>
<li>Fine-grained control on which services and jobs will the inheritance apply</li>
</ul>
<video autoplay playsinline loop muted width=100%>
    <source src="https://assets.northflank.com/2021/05/addon-inheritance.mp4" />
</video>
<h2 id="otherfeaturesfixes">Other features &amp; fixes</h2>
<ul>
<li>Updated addon offerings to the latest versions</li>
<li>Fixed an issue where connections between services in the pipeline view wouldn't update during promotion</li>
<li>Fixed an issue where VCS source wouldn't load on the 'edit deployment' modal for self-hosted services</li>
<li>Fixed an issue where the environment editor would convert arrays into objects</li>
</ul>
<!--kg-card-end: markdown-->]]>
  </content:encoded>
</item><item>
  <title>Real-time Git Integration</title>
  <link>https://northflank.com/changelog/real-time-git-integration</link>
  <pubDate>2021-04-30T15:15:52.000Z</pubDate>
  <description>
    <![CDATA[Northflank UI now updates any Git changes in real-time for improved performance and UX.]]>
  </description>
  <content:encoded>
    <![CDATA[<img src="https://assets.northflank.com/2021/05/changelog-realtime-git.png" alt="Real-time Git Integration" /><!--kg-card-begin: markdown--><p>We improved our integration with GitHub, GitLab and Bitbucket to show updates in real-time as you commit your files, update your branches and manage pull requests. The UI automatically reflects any changes you make, such as changing a branch name or closing a PR.</p>
<p>Real-time Git integration rapidly improves the speed and performance of the UI and pages are still accessible even during Git outages and respect the permissions of the Git providers (e.g. revoking access to a repository will prevent new data from being ingested or viewable for removed accounts).</p>
<video autoplay playsinline loop muted width=100%>
    <source src="https://assets.northflank.com/2021/04/realtime-git.mp4" />
</video>
<h2 id="otherfeaturesfixes">Other features &amp; fixes</h2>
<ul>
<li>Added an infobox to the billing dashboard that shows warnings for expiring cards and overdue invoices</li>
<li>Extended support for additional syntaxes for automatic port detection</li>
<li>Networking rules for deleted/renamed service ports are now removed immediately</li>
<li>Fixed an issue where a cursor and copy highlights wouldn't show on code editors</li>
<li>Fixed an issue where an error would sometimes show for correctly formatted JSON in environment editors</li>
<li>Fixed an issue where empty keyfiles would be accepted when creating environment credentials</li>
</ul>
<!--kg-card-end: markdown-->]]>
  </content:encoded>
</item><item>
  <title>Moving Domains Between Regions &amp; Deployment Improvements</title>
  <link>https://northflank.com/changelog/moving-domains-between-regions-real-time-and-deployment-improvements</link>
  <pubDate>2021-04-23T15:47:53.000Z</pubDate>
  <description>
    <![CDATA[Switch domains between services across regions, easily deploy commits onto jobs, improved performance.]]>
  </description>
  <content:encoded>
    <![CDATA[<img src="https://assets.northflank.com/2021/04/ch-build-select.png" alt="Moving Domains Between Regions &amp; Deployment Improvements" /><!--kg-card-begin: markdown--><p>You can now easily switch domains between services deployed in different regions without having to update your DNS records with your provider. Once your domain is linked to Northflank, you have the full control to move it across services &amp; regions. All traffic gets redirected to the new region automatically.</p>
<p>We also made it easier to deploy specific commits from a builder onto a scheduled job, which now matches the experience with deployment services. You can use the Build Selection modal to select a specific build or commit from a branch/pull request.</p>
<h2 id="otherfeaturesfixes">Other features &amp; fixes</h2>
<ul>
<li>Improved syncing between Kubernetes clusters and the Northflank control plane, increasing reliability and enabling automatic incident recovery for event streams</li>
<li>Added the ability to delete individual pods via the UI</li>
<li>Free services will now only have at most one running pod rather than completing a full rollout restart</li>
<li>Environment editor pages now display a warning if they are open in multiple tabs and allow you to compare changes between versions</li>
<li>Job run view page meta information is now displayed in a reactive manner</li>
<li>Optimised performance of Northflank’s multiplayer experience to reduce overly eager React re-renders which caused issues when a larger number of active tabs were in use</li>
<li>Fixed inconsistent websocket load-balancing in the UI when using the Brave browser. Thanks @Ben!</li>
<li>Fixed an issue where successful build and promotion events would trigger two parallel deployments in certain circumstances, this resulted in excess containers for a short time and increased duration of a completed deployment</li>
</ul>
<!--kg-card-end: markdown-->]]>
  </content:encoded>
</item><item>
  <title>Extended GitHub Deployment Integration</title>
  <link>https://northflank.com/changelog/extended-github-deployment-integration</link>
  <pubDate>2021-04-16T14:55:02.000Z</pubDate>
  <description>
    <![CDATA[GitHub now displays your services deployed on Northflank, Docker credentials can be updated without a service restart, other features &amp; fixes.]]>
  </description>
  <content:encoded>
    <![CDATA[<img src="https://assets.northflank.com/2021/04/changelog-github.png" alt="Extended GitHub Deployment Integration" /><!--kg-card-begin: markdown--><p>We improved the GitHub integration to display Northflank combined services deploying your repositories in the GitHub UI. This is especially helpful when rapidly iterating and reviewing changes on feature branches. We will be evaluating this integration for deployment services over the coming weeks, too.</p>
<h2 id="otherfeaturesfixes">Other features &amp; fixes</h2>
<ul>
<li>Docker registry credentials can now be updated without triggering restarts in affected services and jobs</li>
<li>Job cron schedule editor now shows the server's current time to ease scheduling</li>
<li>Added a Rust Nickel.rs repository to service templates</li>
<li>Added a confirmation modal before deleting team roles</li>
<li>Added a copy to clipboard button on basic auth credentials in network security rules</li>
<li>Fixed an issue where the role permission selector would not correctly display granted permissions if the form was disabled</li>
<li>Fixed an issue where the team admin role wouldn't have access to update domains by default</li>
<li>Fixed an issue where deleted ports would still appear as part of security rules</li>
<li>Fixed an issue where a build wouldn't start automatically after service creation in certain scenarios</li>
<li>Fixed an issue where 1Password would suggest creating a new password instead of filling out the existing one on password confirmation modals in the UI</li>
<li>Fixed an issue where the user would be redirected to a non-existing route on secondary tabs when finalising their account</li>
<li>Fixed an issue with assigning subdomains to a port via the API</li>
</ul>
<!--kg-card-end: markdown-->]]>
  </content:encoded>
</item><item>
  <title>Onboarding Achievements &amp; Other Features</title>
  <link>https://northflank.com/changelog/onboarding-achievements-other-features</link>
  <pubDate>2021-04-09T15:12:53.000Z</pubDate>
  <description>
    <![CDATA[Introduced onboarding achievements steps on the user and team dashboards to get started on Northflank easily.]]>
  </description>
  <content:encoded>
    <![CDATA[<img src="https://assets.northflank.com/2021/04/header-ch-dashboard.png" alt="Onboarding Achievements &amp; Other Features" /><!--kg-card-begin: markdown--><p>We redesigned the user and team dashboards to include account achievement steps, which guide developers to link their Git accounts, create projects and services, add pipelines and domains, as well as invite team members with various permissions.</p>
<h3 id="otherfeatures">Other features</h3>
<ul>
<li>Added links to documentation, changelog and feedback within the platform</li>
<li>Added global messaging for version control linking</li>
<li>Added support for <code>${}</code> syntax for port variables in Dockerfiles</li>
<li>Added connection details for Minio and Redis with example CLI commands</li>
<li>Increased support for APEX or flattened CNAMEs that are actually subdomains</li>
<li>Improved colours, contrast and code editors across all themes to make the appearance consistent</li>
</ul>
<h3 id="fixes">Fixes</h3>
<ul>
<li>Increased number of retries when environment fetching is unavailable</li>
<li>Fixed permissions for listing API key templates that the user can access</li>
<li>Fixed DockerHub and Quay pull rate limits</li>
<li>Fixed an issue where addon would move from 'deleting' to 'failed'</li>
<li>Fixed an issue with listing branches from self-hosted VCS</li>
</ul>
<!--kg-card-end: markdown-->]]>
  </content:encoded>
</item><item>
  <title>Single Sign-On &amp; Dynamic Project Selector</title>
  <link>https://northflank.com/changelog/single-sign-on-dynamic-project-selector</link>
  <pubDate>2021-03-26T16:00:54.000Z</pubDate>
  <description>
    <![CDATA[New project selector for rapid resource creation, added support for SSO login with Google, GitHub, GitLab and Bitbucket.]]>
  </description>
  <content:encoded>
    <![CDATA[<img src="https://assets.northflank.com/2021/03/project-s-changelog.png" alt="Single Sign-On &amp; Dynamic Project Selector" /><!--kg-card-begin: markdown--><p>Login to your account using single sign-on for Google, GitHub, Gitlab and Bitbucket. You can enable and disable SSO for each provider in your Account Settings for increased security.</p>
<p><img src="https://assets.northflank.com/2021/03/sso.png" alt="sso" loading="lazy"></p>
<h3 id="userexperience">User Experience</h3>
<ul>
<li>'Create new' button was redesigned to work without a selected project when adding services, jobs, addons, pipelines or secret groups - it now shows a list of all your projects for you to choose from</li>
<li>Code editors in the UI now change syntax highlights based on the selected theme</li>
</ul>
<h3 id="otherfeaturesfixes">Other features &amp; fixes</h3>
<ul>
<li>We improved onboarding for first-time users - guiding them to configure their settings, link Git and create their first project</li>
<li>Fixed an issue where a service couldn't be scaled vertically if configured to use spot resources</li>
<li>Fixed an issue where addon storage scaling would return slightly different sizes on different providers (e.g. requested 20000Mi leads to 20Gi, which is 20480Mi)</li>
</ul>
<!--kg-card-end: markdown-->]]>
  </content:encoded>
</item><item>
  <title>Northflank Themes</title>
  <link>https://northflank.com/changelog/northflank-themes</link>
  <pubDate>2021-03-19T14:29:26.000Z</pubDate>
  <description>
    <![CDATA[Customise your Northflank theme to match your favourite IDE across devices.]]>
  </description>
  <content:encoded>
    <![CDATA[<img src="https://assets.northflank.com/2021/03/header-changelog-themes.png" alt="Northflank Themes" /><!--kg-card-begin: markdown--><p>Customise your Northflank experience to match your IDE or preferred colour style. We are pleased to introduce Light, Blackout, Solarized Light, Solarized Dark and Dracula (JetBrains IDE) in addition to the default Northflank theme.</p>
<p>Other popular themes will be added over the coming months as we gather user feedback. Let us know if there are any specific ones you would like to see.</p>
<p>You can change your theme in user account settings, it applies in real-time to all your open Northflank tabs on all devices (including mobile) and will also affect your view across teams.</p>
<!--kg-card-end: markdown--><p></p><!--kg-card-begin: markdown--><video autoplay playsinline loop muted width=100%>
    <source src="https://assets.northflank.com/2021/03/themes-changelog-post.mp4" />
</video><!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h3 id="otherfeaturesfixes">Other features &amp; fixes</h3>
<ul>
<li>Improved platform notifications to be more consistent and user friendly</li>
<li>Fixed an issue where addons backups list wouldn't show if all backups were deleted</li>
<li>Fixed an issue where creating a Docker credential secret would redirect back to the credentials list instead of the newly created secret</li>
<li>Fixed an issue where the commit list wouldn't update redeployment buttons on the deployed commit in certain scenarios</li>
</ul>
<!--kg-card-end: markdown-->]]>
  </content:encoded>
</item><item>
  <title>Custom Docker Registries &amp; RBAC</title>
  <link>https://northflank.com/changelog/custom-docker-registries-rbac</link>
  <pubDate>2021-03-12T17:18:19.000Z</pubDate>
  <description>
    <![CDATA[Added support for self-hosted Docker registries, redesigned Role-Based Access Control for teams and APIs.]]>
  </description>
  <content:encoded>
    <![CDATA[<img src="https://assets.northflank.com/2021/03/custom-docker-header.png" alt="Custom Docker Registries &amp; RBAC" /><!--kg-card-begin: markdown--><h3 id="customdockerregistries">Custom Docker Registries</h3>
<p>You can now deploy images from any custom Docker registry on Northflank, no longer restricting you to GitHub, GitLab, Docker Hub and Google Container Registry.</p>
<ul>
<li>Bring your self-hosted registries and conveniently store credentials on Northflank for secure and rapid access</li>
<li>Automatic detection of public/private visibility &amp; registry authentication scheme, and login with username &amp; password or .docker.config</li>
</ul>
<h3 id="finegrainedrbac">Fine-Grained RBAC</h3>
<p>We have redesigned the Role-Based Access Control (RBAC) for teams and APIs.</p>
<ul>
<li>Teams can create varying permissions and apply them to specific projects or team members as required</li>
<li>Permissions update in real-time across the Northflank UI, removing or adding relevant components dynamically</li>
<li>RBAC provides fine-grained security for you and your team across the Northflank UI, API and CLI</li>
<li>RBAC also applies to the 'northflank forward' CLI command, giving you control of which services and addons can be forwarded for local development</li>
</ul>
<p><img src="https://assets.northflank.com/2021/03/rbac.png" alt="rbac" loading="lazy"></p>
<h3 id="otherfeaturesfixes">Other features &amp; fixes</h3>
<ul>
<li>Team owners can now transfer ownership to another team member</li>
<li>Jobs (cron or manual trigger) can now be created with a Northflank build service as the deployment source</li>
<li>Moved 'Recent builds' card higher in the dashboard for instant observability</li>
<li>Addons 'redeploy' and 'pause' buttons are now only enabled if the addon is running or scaling</li>
<li>Fixed an issue causing some build rules validations to fail</li>
</ul>
<!--kg-card-end: markdown-->]]>
  </content:encoded>
</item><item>
  <title>Live Secrets Editor</title>
  <link>https://northflank.com/changelog/live-secrets-editor</link>
  <pubDate>2021-03-05T16:22:14.000Z</pubDate>
  <description>
    <![CDATA[Live secrets editor notifies you if a team member is editing the same secrets and you can compare and merge changes in a diff editor.]]>
  </description>
  <content:encoded>
    <![CDATA[<img src="https://assets.northflank.com/2021/03/changelog-diff-editor-header.png" alt="Live Secrets Editor" /><!--kg-card-begin: markdown--><p>We've added live notifications to warn you if a team member may be editing the same environment variables, build arguments or project secrets. If a change is made while you're editing the same settings you can compare differences between your edits and the remote version, and decide if you want to over-ride them. The difference editor also gets real-time updates, so you can see new changes straight away.</p>
<p><img src="https://assets.northflank.com/2021/03/diff-editor-update.png" alt="diff-editor-update" loading="lazy"></p>
<h3 id="otherfeaturesfixes">Other features &amp; fixes</h3>
<ul>
<li>New login and sign up pages</li>
<li>You can now manually pay a failed invoice with a new or saved card</li>
<li>Fixed an issue where log lines would be copied in reverse</li>
<li>Fixed an issue causing some team invitations to be rate-limited</li>
<li>Fixed an issue causing commits to not update remote VCS check status in real-time when build state changed on Northflank</li>
</ul>
<!--kg-card-end: markdown-->]]>
  </content:encoded>
</item><item>
  <title>New Marketing Site, Improved DX and API Responses</title>
  <link>https://northflank.com/changelog/new-marketing-site-improved-dx-and-api-responses</link>
  <pubDate>2021-02-26T12:50:18.000Z</pubDate>
  <description>
    <![CDATA[New site, improvements to various aspects of Developer Experience and new features &amp; fixes.]]>
  </description>
  <content:encoded>
    <![CDATA[<img src="https://assets.northflank.com/2021/02/chlog-website.png" alt="New Marketing Site, Improved DX and API Responses" /><p></p><!--kg-card-begin: markdown--><p>We are excited to introduce our <a href="https://northflank.com" target="_blank">new marketing site</a>! The experience is now more consistent with the Northflank platform, and it highlights Northflank's capabilities at a glance.</p>
<h3 id="developerexperienceimprovements">Developer Experience Improvements</h3>
<ul>
<li>Released a new version of the <a href="https://www.npmjs.com/package/@northflank/js-client" target="_blank">Northflank API client</a> with 8 new endpoints</li>
<li>Redesigned docker image settings overview to be clearer and compact</li>
<li>Added a 'copy to clipboard' button for API tokens with a highlight of the last 4 digits</li>
<li>Improved UX of adding self-hosted VCS and you can now link directly to specific VCS setting modals</li>
</ul>
<h3 id="otherfeaturesfixes">Other features &amp; fixes</h3>
<ul>
<li>Added an option to pay invoices manually if the automatic payment fails or requires additional verification</li>
<li>Various improvements to API error responses for easier debugging</li>
<li>Fixed an issue causing relinking Git from Pipelines to fail</li>
<li>Fixed an issue with JSON view in Secrets sometimes rendering incorrectly</li>
<li>Fixed an issue with container registry credentials sometimes not loading</li>
<li>Fixed an issue with GCR credentials verification failing in certain scenarios</li>
</ul>
<!--kg-card-end: markdown-->]]>
  </content:encoded>
</item><item>
  <title>Stateful Workload Endpoints and Log Timestamp Filtering</title>
  <link>https://northflank.com/changelog/stateful-workload-endpoints-and-log-timestamp-filtering</link>
  <pubDate>2021-02-19T19:03:47.000Z</pubDate>
  <description>
    <![CDATA[Job duration runtimes, stateful workload API endpoints and platform enhancements.]]>
  </description>
  <content:encoded>
    <![CDATA[<img src="https://assets.northflank.com/2021/02/changelog-logs-api.png" alt="Stateful Workload Endpoints and Log Timestamp Filtering" /><!--kg-card-begin: markdown--><p>This week, we introduced some new features and fixed several bugs:</p>
<ul>
<li>Automatic port detection now suggests removing unused ports</li>
<li>When connecting domains to services, the service selection dropdown is now grouped by project</li>
<li>Added duration and container runtime for manual and cron job runs to the UI</li>
<li>Added new API for stateful addons (abort backup, abort restore, delete backup, download backup endpoints)</li>
<li>Added automatic retrigger of log search after timestamp ranges are updated</li>
<li>Added favouriting pipelines, secrets and Docker credentials</li>
<li>Fixed an issue where log lines would display as objects instead of the message string during log search between specific timestamps</li>
<li>Fixed an issue causing random name generation to exceed the maximum character limit</li>
<li>Fixed an issue causing a page to crash after accepting a team invite for the invitee</li>
<li>Fixed an issue causing the job restart modal to crash if another team member opened and interacted with it</li>
<li>Fixed an issue causing interactive deployment pipelines to crash when removing a service from a stage in certain circumstances</li>
</ul>
<!--kg-card-end: markdown-->]]>
  </content:encoded>
</item><item>
  <title>Increased mTLS support and Mobile &amp; App UI Tweaks</title>
  <link>https://northflank.com/changelog/increased-mtls-support-and-mobile-app-ui-tweaks</link>
  <pubDate>2021-02-11T18:24:36.000Z</pubDate>
  <description>
    <![CDATA[Design tweaks, new features and several bug fixes.]]>
  </description>
  <content:encoded>
    <![CDATA[<img src="https://assets.northflank.com/2021/02/mobile-header.png" alt="Increased mTLS support and Mobile &amp; App UI Tweaks" /><!--kg-card-begin: markdown--><p>Here is a summary of what we worked on this week:</p>
<ul>
<li>UI design fixes and tweaks - Northflank now works well on mobiles and tablets</li>
<li>Enabled proxy and mTLS on jobs and cron jobs to enable communication with other services and addons in your project</li>
<li>Platform prompts automatic port detection after your Dockerfile has been edited via the Northflank UI</li>
<li>Updated <a href="https://northflank.com/docs/v1beta/api/domains" target="_blank">API</a> to handle new logic of <a href="https://northflank.com/changelog/subdomain-verification-and-billing-redesign" target="_blank">adding domains and subdomains</a>, improved error handling</li>
<li>Team members now have the option to leave teams of which they are not the owner</li>
<li>Fixed an issue that would sometimes display an error after creating services from template repositories</li>
<li>Fixed an issue when viewing logs for an addon would sometimes display logs for another addon in the same project</li>
</ul>
<!--kg-card-end: markdown--><p></p>]]>
  </content:encoded>
</item><item>
  <title>Subdomain Verification and Billing Redesign</title>
  <link>https://northflank.com/changelog/subdomain-verification-and-billing-redesign</link>
  <pubDate>2021-02-04T12:00:35.000Z</pubDate>
  <description>
    <![CDATA[Improved subdomain verification experience and redesigned resource configuration components.]]>
  </description>
  <content:encoded>
    <![CDATA[<img src="https://assets.northflank.com/2021/02/header-billing-domains-1.png" alt="Subdomain Verification and Billing Redesign" /><h3></h3><h3></h3><!--kg-card-begin: markdown--><h3 id="addingcustomsubdomains">Adding custom subdomains</h3>
<p>As we announced <a href="https://northflank.com/changelog/improved-custom-domains" target="_blank">recently</a>, we streamlined the process of adding and verifying custom domains. We have now also improved the <code>Add domain</code> modal that guides you through the process and automatically checks if the TXT verification record has been added.</p>
<video autoplay playsinline loop muted width=100%>
    <source src="https://assets.northflank.com/2021/01/txt-verify-domain.mp4"/>
</video>
<h3 id="improvedbillinguserinterface">Improved billing user interface</h3>
<ul>
<li>Compute plans are in a horizontal table view allowing you to easily compare resources and pricing</li>
<li>Resources page displays a price breakdown showing cost per hour, month and a selected number of replicas</li>
<li>The invoice list displays the status, date issued, invoice period and amount in a clearer layout</li>
<li>Other minor UI changes to improve the visibility of critical billing information</li>
</ul>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card"><img src="https://assets.northflank.com/2021/02/billing-overview-page.png" class="kg-image" alt="Billing page" loading="lazy" width="1672" height="940"></figure><!--kg-card-begin: markdown--><h3 id="otherimprovementsandfixes">Other Improvements and Fixes</h3>
<ul>
<li>Added TLS certificate status to Account Settings - Domains page</li>
<li>Account Overview page now also shows self-hosted VCSs under Git integrations</li>
<li>CLI upgrade now gives more control over addons (you can now use commands such as import backup or pause addon)</li>
<li>Added filtering of MongoDB addon logs to hide health check connections being created to reduce noise</li>
</ul>
<!--kg-card-end: markdown--><p></p><p></p>]]>
  </content:encoded>
</item><item>
  <title>Northflank API &amp; CLI Working in Unison</title>
  <link>https://northflank.com/changelog/northflank-api-cli-working-in-unison</link>
  <pubDate>2021-01-25T11:57:38.000Z</pubDate>
  <description>
    <![CDATA[Example of using the Northflank API &amp; CLI to deploy a game server and several bug fixes.]]>
  </description>
  <content:encoded>
    <![CDATA[<img src="https://assets.northflank.com/2021/01/header-api-game-deployment.png" alt="Northflank API &amp; CLI Working in Unison" /><p></p><!--kg-card-begin: markdown--><p>This week, we're excited to showcase the <a href="https://northflank.com/docs/v1beta/api/introduction" target="_blank">Northflank API &amp; CLI</a> working in parallel. We used our API to securely deploy a game server and connected to it using the Northflank CLI and TCP proxy - creating an example of infrastructure as data.<br>
Check the video below to see this in action:</p>
<ul>
<li>First, we create a new project in the Northflank UI and run an API call that creates a deployment service from an external Docker image <a href="https://github.com/itzg/docker-minecraft-server" target="_blank"><code>itzg/minecraft-server:latest</code></a>, exposing it on an internal port 25565</li>
<li>Once the service starts, we run a <code>northflank forward</code> CLI command that exposes the service locally</li>
<li>After the Minecraft server has spun up, we connect to it ready to start playing - you can see the logs coming up in real-time in the Northflank UI</li>
</ul>
<video playsinline muted controls width=100% >
    <source src="https://assets.northflank.com/2021/01/game-deployment.mp4"/>
</video><!--kg-card-end: markdown--><p></p><p></p><!--kg-card-begin: markdown--><p><strong>Other Improvements and Fixes</strong></p>
<ul>
<li>Domains Ports dropdown now only shows the relevant public entries</li>
<li>Improved handling of backup and restore of databases resulting in faster processing and fixed an issue with restoring database users and rights</li>
<li>Updated documentation context to cover newly added features</li>
<li>Updated MinIO connection strings to work for JS clients</li>
<li>Fixed a couple of frontend mobile view bugs</li>
<li>Fixed Edit Deployment modal crashing on internal services</li>
<li>Fixed a bug causing image verification to fail if it contained a numeric value</li>
<li>Fixed a bug causing log filtering by time range to fail</li>
<li>Fixed a bug causing docs search not loading found pages</li>
<li>Fixed a bug causing <code>northflank forward</code> CLI command to fail occasionally</li>
</ul>
<!--kg-card-end: markdown-->]]>
  </content:encoded>
</item><item>
  <title>Improved Deployments, Pipelines and Ports Detection</title>
  <link>https://northflank.com/changelog/improved-deployments-pipelines-and-ports-detection</link>
  <pubDate>2021-01-18T11:28:09.000Z</pubDate>
  <description>
    <![CDATA[Greater visibility to deployments on internal and external images, improved port detection and more.]]>
  </description>
  <content:encoded>
    <![CDATA[<img src="https://assets.northflank.com/2021/01/header-port-detection.png" alt="Improved Deployments, Pipelines and Ports Detection" /><p><strong>Deployment Source Overview</strong></p><p>Deployment services now have an improved visual display of the deployment source, whether deploying Docker images from the Northflank container registry or a public/private external container registry.</p><figure class="kg-card kg-image-card"><img src="https://assets.northflank.com/2021/01/widget-deployment.png" class="kg-image" alt="Deployment Widget" loading="lazy" width="3344" height="1880"></figure><p><strong>Pipelines</strong></p><p>To configure your services using Pipelines, you can drag and drop deployment services from the side menu to Development, Staging or Production. To add a build service, select it from the menu and choose the build you want to link from the modal. We've improved the UI &amp; UX to make Pipelines more accessible.</p><figure class="kg-card kg-image-card"><img src="https://assets.northflank.com/2021/01/pipeline-modal.png" class="kg-image" alt="Pipelines" loading="lazy" width="3344" height="1880"></figure><p><strong>Improved Port Detection</strong></p><p>Northflank automatically detects ports from your Docker images. We've added a modal that lets you review and change the suggested ports before adding them to your services. You can detect ports during service creation or from the Ports &amp; DNS tab in your existing services.</p><figure class="kg-card kg-image-card"><img src="https://assets.northflank.com/2021/01/automatic-port-detection.png" class="kg-image" alt="Automatic Port Detection" loading="lazy" width="3344" height="1880"></figure><p><strong>Hostname in Addons Connection Details</strong></p><!--kg-card-begin: markdown--><p>In addition to connection strings and secrets for addons, we've added a connection detail with a hostname of the main replica that handles write operations. This can be used for local debugging and development in applications such as DataGrip, Robo3T and SQL Workbench. Use the <a href="https://northflank.com/docs/v1beta/api/introduction#about-the-cli" target="_blank">Northflank CLI</a> to securely forward addons for local access and development. Alternatively continue using the full admin or data connection strings to connect to your addons normally.</p>
<!--kg-card-end: markdown--><p><strong>Other Improvements and Fixes</strong></p><!--kg-card-begin: markdown--><ul>
<li>Added image path validation for versions of Docker images, shows a warning if you didn't add any version or if it doesn't exist</li>
<li>In addition to <code>us.gcr.io</code> and <code>eu.gcr.io</code>, we've added support for <code>gcr.io</code> and <code>asia.gcr.io</code> <a href="https://cloud.google.com/container-registry/docs/overview#repos" target="_blank">Google Cloud Container Registry regions</a></li>
<li>Following GitHub's new registry URL we've updated the hostname from <code>docker.pkg.github.com</code> to <code>ghcr.io</code></li>
<li>Fixed an issue causing Environment Variables not saving after switching between JSON and Table view</li>
<li>Fixed an issue causing build duration to display <code>unknown</code> if it was zero seconds</li>
</ul>
<!--kg-card-end: markdown-->]]>
  </content:encoded>
</item><item>
  <title>Improved Custom Domains</title>
  <link>https://northflank.com/changelog/improved-custom-domains</link>
  <pubDate>2021-01-11T12:54:26.000Z</pubDate>
  <description>
    <![CDATA[Rapidly deploy services on your external domains with automatic TLS certificate generation.]]>
  </description>
  <content:encoded>
    <![CDATA[<img src="https://assets.northflank.com/2021/01/custom-domains-header.png" alt="Improved Custom Domains" /><p>Northflank allows you to easily bring your custom domains to your account. We received feedback that connecting your domains and then adding them to a service was too difficult, so we revised this workflow to be more streamlined:</p><!--kg-card-begin: markdown--><ul>
<li>Add your domain in <em>Account Settings</em> - <em>Domains</em> and verify it with your provider by adding a TXT record</li>
<li>Create subdomains on Northflank and add appropriate CNAME records in the DNS settings</li>
<li>Start linking services &amp; ports from the dropdown or in the <em>Ports &amp; DNS</em> tab of your service</li>
</ul>
<p>Once your subdomains are set up you can change the linked ports and services without having to update your DNS records again. You can use custom domains across all projects.</p>
<p>Key features:</p>
<ul>
<li>Access your services deployed at <code>acme-domain.com</code>, <code>acme-domain.com/microservice</code> or <code>microservice.acme-domain.com</code></li>
<li>Northflank handles load balancing of services to the relevant region &amp; cloud provider to ensure availability</li>
<li>Northflank rapidly creates and regenerates Let's Encrypt certificates for free on all your domains, ensuring certificates are in date and connections stay secure</li>
<li>Domains can also be managed via the <a href="https://northflank.com/docs/v1beta/api/domains/list-domains" target="_blank">Northflank API and CLI</a></li>
</ul>
<!--kg-card-end: markdown--><p>Beside custom domains, Northflank now exposes your public services as a subdomain of <code>code.run</code> - the URL follows the structure of <code>[port-name]--[service-name]--[project-name]--[account-dns-identifier].code.run</code>.</p><p></p><!--kg-card-begin: markdown--><video autoplay playsinline loop muted width=100%>
    <source src="https://assets.northflank.com/2021/01/custom-domains.mp4"/>
</video>
&nbsp;<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h3 id="demotogitlab">Demo to GitLab</h3>
<p>Last week, we gave a demo to Sid Sijbrandij (Co-founder and CEO at GitLab) that was streamed live. Watch the recording on <a href="https://youtu.be/a-e06khPIz0" target="_blank">YouTube</a> or below.</p>
<div style="position: relative; padding-bottom: 56.25%; height: 0;">
    <iframe style="position: absolute; top: 0; left: 0; width: 100%; height: 100%;" src="https://www.youtube-nocookie.com/embed/a-e06khPIz0" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div><!--kg-card-end: markdown--><p></p>]]>
  </content:encoded>
</item><item>
  <title>Docker Registry Credential Management</title>
  <link>https://northflank.com/changelog/docker-registry-credential-management</link>
  <pubDate>2020-12-28T09:40:54.000Z</pubDate>
  <description>
    <![CDATA[Save Docker credentials to your account and reuse them across jobs and services.]]>
  </description>
  <content:encoded>
    <![CDATA[<img src="https://assets.northflank.com/2020/12/header-docker-cred-1.png" alt="Docker Registry Credential Management" /><!--kg-card-begin: markdown--><p>As <a href="https://northflank.com/changelog/templates-external-deployments" target="_blank">introduced recently</a>, Northflank supports deployments from external private registries such as Google Container Registry, Docker Hub, GitLab and GitHub.</p>
<p>To make the authorisation easier, you can now save Docker credentials in your account and reuse them across services and jobs.</p>
<!--kg-card-end: markdown--><p>When creating a new Docker credential, select your Registry provider and login using one of the following methods:</p><ul><li>Username and password</li><li>Username and API token</li><li>Username and Personal Access Token for GitHub</li><li><code>keyfile.json</code> for Google Container Registry</li><li>Directly supply your Docker <code>config.json</code> file</li></ul><p>Northflank will automatically encode your login details in base64 for registry authorisation.</p><p>Docker credentials can be reused across all projects or restricted only to selected ones. You can always manually override your credentials when creating jobs and services.</p><p>To add your credentials, navigate to your Account settings - Docker - Add credentials. </p><figure class="kg-card kg-image-card"><img src="https://assets.northflank.com/2020/12/new-credentials.png" class="kg-image" alt="Add new credentials" loading="lazy" width="3344" height="1880"></figure><p>You can then use your saved credentials when you create a new job or service with deployment from an external image.</p><figure class="kg-card kg-image-card"><img src="https://assets.northflank.com/2020/12/new-private-service.png" class="kg-image" alt="Create new service" loading="lazy" width="3344" height="1880"></figure><p></p><p></p>]]>
  </content:encoded>
</item><item>
  <title>Project Secrets</title>
  <link>https://northflank.com/changelog/project-secrets</link>
  <pubDate>2020-12-21T10:17:28.000Z</pubDate>
  <description>
    <![CDATA[Easily manage secrets for your services &amp; jobs on a project level.]]>
  </description>
  <content:encoded>
    <![CDATA[<img src="https://assets.northflank.com/2020/12/changelog-header-proj-secret.png" alt="Project Secrets" /><p>Environment variables provide a secure way to store your keys, tokens, paths and other secrets used in your applications. They can be added for services and jobs under the Environment tab. </p><p>Projects are groups of services, jobs and addons. With Project Secrets, you can now set environment variables on a project level which will save time and ease variable management if several of your applications depend on the same values.</p><!--kg-card-begin: markdown--><ul>
<li>Apply Project Secrets to the whole project or restrict to one or more services &amp; jobs</li>
<li>Create more Project Secrets and set priorities to define which ones take precedence</li>
<li>Setting variables directly in the service or job will always have priority over Project Secrets</li>
</ul>
<!--kg-card-end: markdown--><p>Secrets are encrypted at rest and only decrypted before being merged and injected into your runtime environment.</p><p>To create your Project Secrets, navigate to your project and select Secrets from the Dashboard or Sidebar. </p><!--kg-card-begin: markdown--><video autoplay playsinline loop muted width=100%>
    <source src="https://assets.northflank.com/changelog/finalkap.mp4"/>
</video><!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p>Project Secrets are also fully supported via the <a href="https://northflank.com/docs/v1beta/api/secrets/list-secrets" target="_blank">Northflank API &amp; CLI</a> (introduced in <a href="https://northflank.com/changelog/northflank-cli-extended-api" target="_blank">this article</a>) with team RBAC included.</p>
<p>Here is an example of creating Project Secrets using the Northflank API:</p>
<!--kg-card-end: markdown--><pre><code class="language-javascript">const payload = {
  name: 'My Project Secret',
  description: 'Environment variables for my project',
  secretType: 'environment',
  priority: 10,
  restrictions: {
    restricted: false,
    nfObjects: [
      {}
    ]
  },
  data: {
    API_KEY: '****',
    API_TOKEN: '****'
  }
}

const response = await fetch(NORTHFLANK_API_ENDPOINT, {
  method: 'POST',
  headers: {
  	'Accept': 'application/json',
  	'Content-Type': 'application/json',
  	'Authorization': `Bearer ${NORTHFLANK_API_TOKEN}`,
},
  body: JSON.stringify(payload),
});

const json = await response.json()
console.log(json)

// =&gt; Created secret My Project Secret</code></pre>]]>
  </content:encoded>
</item><item>
  <title>Northflank API Client</title>
  <link>https://northflank.com/changelog/introducing-northflank-api-client</link>
  <pubDate>2020-12-14T13:46:32.000Z</pubDate>
  <description>
    <![CDATA[Introducing the Northflank API Client for JavaScript and Node.js.]]>
  </description>
  <content:encoded>
    <![CDATA[<img src="https://assets.northflank.com/2020/12/api-client-header-changelog.png" alt="Northflank API Client" /><p>You can now leverage the full capabilities of the Northflank API using our Node.js and JavaScript API client. Full typing support is available for TypeScript.</p><!--kg-card-begin: markdown--><p>Install the <a href="https://www.npmjs.com/package/@northflank/js-client" target="_blank">Northflank API client</a> using <code>npm i @northflank/js-client</code> or <code>yarn add @northflank/js-client</code>. You will need to create an <a href="https://northflank.com/docs/v1beta/application/api-keys" target="_blank">API token</a> in your user or team account. Full API documentation is available <a href="https://northflank.com/docs/v1beta/api/introduction" target="_blank">here</a>.</p>
<!--kg-card-end: markdown--><p><strong>Use the following import statement to include it in your project</strong></p><pre><code class="language-javascript">import ApiClient, { ApiClientInMemoryContextProvider } from '@northflank/js-client';</code></pre><p><strong>Initialise the API client</strong></p><pre><code class="language-javascript">(async () =&gt; {
    // Create context to store credentials
    const contextProvider = new ApiClientInMemoryContextProvider();
    await contextProvider.addContext({
        name: 'test-context',
        token: '&lt;api-token&gt;', // Use API token generated in the Northflank UI
    });
    
    // Initialize API client
    const apiClient = new ApiClient(contextProvider);
})();</code></pre><p><strong>Create a new project</strong></p><pre><code class="language-javascript">await apiClient.endpoints.create.project.call({
		quiet: true,
		payload: { name: 'test-project', region: 'europe-west' },
	});
// =&gt; New project test-project created</code></pre><p><strong>List all projects</strong></p><pre><code class="language-javascript">const projects = await apiClient.endpoints.list.project.call({ quiet: true });
console.log(
		'Projects:',
		projects.response.map((project) =&gt; `${project.name} ${project.internalId}`)
	);
// =&gt; Listed all projects successfully</code></pre><p><strong>Create a combined service</strong></p><pre><code class="language-javascript">const combinedServiceCreationResponse = await client.endpoints.create.combinedService
  .call({
    project: 'default-project',
    payload: {
      name: 'My awesome combined service',
      description:
        'A combined service created with the Northflank API Client',
      billing: { deploymentPlan: 'micro' },
      deployment: { instances: 1 },
      vcsData: {
        projectUrl: '&lt;https://github.com/northflank/my-project.git&gt;',
        projectType: 'github',
        dockerFilePath: '/app/Dockerfile',
        dockerWorkDir: '/app',
        projectBranch: '/feature/changelog',
      },
      ports: [
        {
          name: 'port-1',
          internalPort: 3000,
          public: true,
          protocol: 'HTTP',
        },
      ],
    },
  })
  .catch((err) =&gt; err.message);
// =&gt; Created a combined service with ID my-awesome-combined-service</code></pre><p><strong>Scaling a service</strong></p><pre><code class="language-javascript">const scaleServiceResponse = await client.endpoints.scale.service
  .call({
    project: 'default-project',
    service: 'my-awesome-combined-service',
    payload: {
      instances: 10,
      deploymentPlan: 'large',
    },
  })
  .catch((err) =&gt; err.message);
// =&gt; Service scaled successfully</code></pre>]]>
  </content:encoded>
</item><item>
  <title>Supporting Self-hosted GitLab</title>
  <link>https://northflank.com/changelog/supporting-self-hosted-gitlab</link>
  <pubDate>2020-12-07T13:08:22.000Z</pubDate>
  <description>
    <![CDATA[Teams can now add their self-hosted instances of GitLab to Northflank for build and deployment.]]>
  </description>
  <content:encoded>
    <![CDATA[<img src="https://assets.northflank.com/2020/12/header-gitlab-1.png" alt="Supporting Self-hosted GitLab" /><p>Teams can now add their self-hosted instances of GitLab to Northflank in addition to the SaaS offerings of GitHub, GitLab and Bitbucket.</p><!--kg-card-begin: markdown--><p>To get started, create a new application in your self-hosted GitLab instance. Enter the application name, select the API scope and paste the redirect URI as <code>https://app.northflank.com/api/integrations/git/finalize</code>.</p>
<!--kg-card-end: markdown--><p>Then navigate to your team on Northflank and select <em>Add a self-hosted VCS</em> under <em>Team Settings - Integrations - Git</em>. Choose your name, enter your GitLab URL and paste application ID and secret from the created application.</p><figure class="kg-card kg-image-card"><img src="https://assets.northflank.com/2020/12/gitlab-link-northflank.png" class="kg-image" alt="Link GitLab to Northflank" loading="lazy" width="3344" height="1880"></figure><p>Once added, you can use your self-hosted GitLab to create combined or build services and jobs:</p><ul><li>During service or job creation, select your self-hosted GitLab from the dropdown</li><li>Continuous Integration will build your code on every push</li><li>With build services, you can build merge requests and branches </li><li>You can add multiple self-hosted GitLab instances to your account</li></ul><figure class="kg-card kg-image-card"><img src="https://assets.northflank.com/2020/12/gitlab-create-combined-service.png" class="kg-image" alt loading="lazy" width="3344" height="1880"></figure><p>🎉 Here is an example of a successfully deployed and running NodeJS Express app:</p><figure class="kg-card kg-image-card"><img src="https://assets.northflank.com/2020/12/gitlab-express-app.png" class="kg-image" alt="NodeJS running on Northflank" loading="lazy" width="3344" height="1880"></figure>]]>
  </content:encoded>
</item><item>
  <title>New API &amp; CLI Documentation</title>
  <link>https://northflank.com/changelog/new-api-cli-documentation</link>
  <pubDate>2020-12-03T12:52:02.000Z</pubDate>
  <description>
    <![CDATA[Introducing new documentation with high resolution search.]]>
  </description>
  <content:encoded>
    <![CDATA[<img src="https://assets.northflank.com/changelog/headers/header-changelog-documentation.png" alt="New API &amp; CLI Documentation" /><!--kg-card-begin: markdown--><p>Introducing improved API documentation which now includes documentation for the Northflank CLI <a href="https://northflank.com/changelog/northflank-cli-extended-api" target="_blank">covered last week</a>. To get started, create an <a href="https://northflank.com/docs/v1beta/application/api-keys" target="_blank">API token</a> for your user or team account.</p>
<!--kg-card-end: markdown--><h3 id="documentation-features">Documentation Features</h3><ul><li>Choose from light or dark theme 🌗 </li><li>Search is super fast across all content and powered by Algolia 🔎 </li><li>Customise your layout and see API code snippets in curl, JavaScript, Python and Go 🚀 </li></ul><!--kg-card-begin: markdown--><p>You can access the docs <a href="https://northflank.com/docs/v1beta/api/introduction" target="_blank">here</a>.</p>
<!--kg-card-end: markdown--><p></p><!--kg-card-begin: markdown--><video autoplay playsinline loop muted width=100%>
    <source src="https://assets.northflank.com/changelog/docs-search.mp4"/>
</video><!--kg-card-end: markdown-->]]>
  </content:encoded>
</item><item>
  <title>New UI &amp; Logs and Metrics</title>
  <link>https://northflank.com/changelog/new-ui-logs-and-metrics</link>
  <pubDate>2020-11-30T10:11:12.000Z</pubDate>
  <description>
    <![CDATA[We have redesigned the user interface and made improvements to logging &amp; metrics.]]>
  </description>
  <content:encoded>
    <![CDATA[<img src="https://assets.northflank.com/changelog/headers/header-changelog-logs.png" alt="New UI &amp; Logs and Metrics" /><p>We have worked on a redesign and made significant improvements to the UI &amp; UX of the platform. The layout is more uniform making it even easier to navigate around your infrastructure on Northflank.</p><figure class="kg-card kg-image-card"><img src="https://assets.northflank.com/2020/11/dashboard-new-ui.png" class="kg-image" alt="Dashboard" loading="lazy" width="3344" height="1880"></figure><h3 id="logs-metrics">Logs &amp; Metrics</h3><!--kg-card-begin: markdown--><p>We have improved real-time logging and long-term storage for all jobs, services and addons resulting in better observability of your applications. This capability is perfect for debugging in production with a powerful include/exclude <code>REGEX</code> and text-based search that works in live-tail and over specified time periods.</p>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card"><img src="https://assets.northflank.com/2020/11/logs.png" class="kg-image" alt="Logs" loading="lazy" width="1280" height="720"></figure>]]>
  </content:encoded>
</item><item>
  <title>Northflank CLI &amp; Extended API</title>
  <link>https://northflank.com/changelog/northflank-cli-extended-api</link>
  <pubDate>2020-11-23T09:53:45.000Z</pubDate>
  <description>
    <![CDATA[Introducing the Northflank CLI and enhancements to the API.]]>
  </description>
  <content:encoded>
    <![CDATA[<img src="https://assets.northflank.com/2020/12/header-api-snippet.png" alt="Northflank CLI &amp; Extended API" /><p>In addition to the UI and API, you can now interact with Northflank using a Command Line Interface. Local deveploment becomes even easier with the ability to proxy your remote databases and services to your machine. The Northflank CLI comes with RBAC so you can securely share services with developers in your team. </p><!--kg-card-begin: markdown--><p>Install the <a href="https://www.npmjs.com/package/@northflank/cli/" target="_blank">Northflank CLI</a> with <code>npm i @northflank/cli -g</code> or <code>yarn global add @northflank/cli</code>. To log in, you will need to create an <a href="https://northflank.com/docs/v1beta/application/api-keys" target="_blank">API token</a> in your user or team account.</p>
<!--kg-card-end: markdown--><h3 id="available-commands">Available commands</h3><!--kg-card-begin: markdown--><pre><code>forward           Port-forwarding for Northflank services and addons
login [options]   Connect the CLI to your Northflank account
context|contexts  Retrieve and update local context settings
list              List Northflank resources
create            Create Northflank resources
get               Get information about Northflank resources
delete            Delete Northflank resources
scale             Scale Northflank resources
update            Update Northflank resource properties
restart           Restart Northflank resources
pause             Pause Northflank resources
resume            Resume Northflank resources
help [command]    display help for command
</code></pre>
<!--kg-card-end: markdown--><h3 id="creating-a-service">Creating a service</h3><!--kg-card-begin: markdown--><p>To create a deployment service, use the <code>create deploymentService</code> command. You can also create other service types or projects:</p>
<pre><code>project|projects [options]   Creates a new project.
combinedService [options]    Creates a new combined service.
deploymentService [options]  Creates a new deployment service.
buildService [options]       Creates a new build service.
</code></pre>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><div>
<video autoplay playsinline loop muted width=100%>
    <source src="https://assets.northflank.com/changelog/video-cli-create-service.mp4"/>
</video>
</div><!--kg-card-end: markdown--><h3 id="forwarding-resources-for-local-development">Forwarding resources for local development</h3><!--kg-card-begin: markdown--><p>You can choose which services and addons to forward or select all project resources using the <code>forward all</code> command. This allows you to connect directly to your applications and databases without having to publically expose them.</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><div>
<video autoplay playsinline loop muted width=100% height=auto>
    <source src="https://assets.northflank.com/changelog/video-cli-forward-all.mp4"/>
</video>
</div><!--kg-card-end: markdown--><h3 id="extended-api">Extended API</h3><!--kg-card-begin: markdown--><p>We have expanded the Northflank API so you can interact with your Northflank resources directly in your code. Documenation is available <a href="https://northflank.com/docs/v1beta/api/introduction" target="_blank">here</a>.</p>
<!--kg-card-end: markdown--><pre><code class="language-javascript">const payload = {
  name: 'My awesome service',
  description: 'Example deployment service',
  billing: {
      deploymentPlan: 'micro'
  },
  deployment: {
    instances: 1,
    external: {
      registryProvider: 'dockerhub',
      imagePath: 'nginx:latest',
      privateImage: false,
    },
  },
  ports: [{ name: 'default-port', internalPort: 80, public: true, protocol: 'HTTP' }],
};
const response = await fetch(NORTHFLANK_API_ENDPOINT, {
  method: 'POST',
  headers: {
  	'Accept': 'application/json',
  	'Content-Type': 'application/json',
  	'Authorization': `Bearer ${NORTHFLANK_API_TOKEN}`,
},
  body: JSON.stringify(payload),
});
const { serviceType, serviceId } = await response.json()
console.log(`Deployed a service of type ${serviceType} with the ID ${serviceId}!`)
// =&gt; Deployed a service of type deployment with the ID my-awesome-service</code></pre><p></p>]]>
  </content:encoded>
</item><item>
  <title>Templates &amp; External Deployments</title>
  <link>https://northflank.com/changelog/templates-external-deployments</link>
  <pubDate>2020-11-16T09:42:33.000Z</pubDate>
  <description>
    <![CDATA[Introducing template repositories and external Docker image deployment.]]>
  </description>
  <content:encoded>
    <![CDATA[<img src="https://assets.northflank.com/changelog/headers/header-changelog-template.png" alt="Templates &amp; External Deployments" />Start new services rapidly from predefined templates via the Northflank UI. We support a collection of popular technology stacks that automatically configure Northflank Build, Deployment and Networking.

Get started in seconds with Create React App, Node.js Express, Angular.js, PHP Laravel, Python Flask, Gatsby.js, Python Django, Vue.js, Ruby on Rails and Next.js.

![Template Repositories](https://assets.northflank.com/2020/11/template-repos.png)

### Deploy images from external registries

In addition to deploying images from Docker Hub, we now support deployments from external private registries with GitHub, GitLab and Google Container Registry:

- Bring existing images to the Northflank Cloud Platform 
- The easiest way to deploy any private or public Docker image
- Release management of your images using Northflank Pipelines
- Pair Northflank with external CI platforms such as CircleCI, Github Actions or Gitlab CI

Start by creating a new Deployment service and select External Image as the deployment source.

![External Registries](https://assets.northflank.com/2020/11/deployment-from-external-registries.png)

![Pipelines](https://assets.northflank.com/2020/11/pipelines.png)]]>
  </content:encoded>
</item><item>
  <title>Health Checks, Port Detection &amp; Network Security</title>
  <link>https://northflank.com/changelog/health-checks-port-detection-network-security</link>
  <pubDate>2020-11-09T10:02:29.000Z</pubDate>
  <description>
    <![CDATA[Services now support health checks, automatic port detection, enhanced network security and jobs have advanced controls.]]>
  </description>
  <content:encoded>
    <![CDATA[<img src="https://assets.northflank.com/2021/01/header-port-detection.png" alt="Health Checks, Port Detection &amp; Network Security" /><h3 id="configurable-health-checks">Configurable health checks</h3><p>You can now configure health checks on Northflank, with support for readiness and liveness probes. Health checks ensure zero-downtime deployments and automatic replacement of unhealthy instances.</p><figure class="kg-card kg-image-card"><img src="https://assets.northflank.com/2020/11/health-check.png" class="kg-image" alt="Health Checks" loading="lazy" width="3344" height="1880"></figure><h3 id="automatic-port-detection">Automatic port detection</h3><p>Northflank fetches all ports exposed in a built Docker image automatically, or recursively from a Dockerfile added in your version control. We then configure your load-balancing automatically. This helps if you are unsure about the Dockerfile or if you don't know on which port(s) the application runs.</p><figure class="kg-card kg-image-card"><img src="https://assets.northflank.com/2020/11/automatic-port-detection.png" class="kg-image" alt="Automatic Port Detection" loading="lazy" width="3344" height="1880"></figure><h3 id="networking-security">Networking security</h3><!--kg-card-begin: markdown--><p>Secure your services with IP Policies &amp; Basic Authentication and configure them for one or multiple exposed ports in your deployment:</p>
<ul>
<li>Allow or block certain IP addresses or <code>CIDR</code> blocks</li>
<li>Configure username and password combinations to restrict access to your endpoints</li>
<li>Compose these security rules together to enable security in-depth, for example allowing access from a specific VPN and certain user credentials</li>
</ul>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card"><img src="https://assets.northflank.com/2020/11/security-popup.png" class="kg-image" alt loading="lazy" width="3344" height="1880"></figure><h3 id="docker-cmd-override">Docker CMD override</h3><!--kg-card-begin: markdown--><p>We have added the ability to override the <code>CMD</code> of the Docker image in your deployment with a helpful interface giving you more observability over how your containers start.</p>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card"><img src="https://assets.northflank.com/2020/11/cmd-override.png" class="kg-image" alt="Docker CMD Override" loading="lazy" width="3344" height="1880"></figure><h3 id="advanced-job-controls">Advanced job controls</h3><p>We have added advanced job settings so you now control the number of retries, the concurrency policy and the maximum runtime duration.</p><figure class="kg-card kg-image-card"><img src="https://assets.northflank.com/2020/11/cron-jobs.png" class="kg-image" alt="Advanced Job Controls" loading="lazy" width="3344" height="1880"></figure><h3></h3><h3></h3><h3></h3>]]>
  </content:encoded>
</item>
  </channel>
</rss>