Changes

Discover what is new and improved with Doppler!

Secret Substitution

Improvement
March 5, 2020

Have you ever needed to combine secrets together? Maybe a shared hostname? Today you can reference secrets from within other secrets.

Additional OTP 2FA Setup Methods

Security
March 2, 2020

We've added support for setting up OTP via a manual key. This is in addition to the primary method of scanning a QR code. If you haven't set up OTP yet, try it out today!

All Clients are End of Life

New
February 27, 2020

…except for the new Doppler CLI. The legacy Node CLI and Node, Python, and Ruby clients will continue to work with our v1 APIs, but will NOT receive any security updates, bug fixes, or new features.

The new Doppler CLI is written in Go to ensure it remains lightweight, incredibly fast, and compatible on any OS without dependencies. Plus, it ensures your secrets are always encrypted.

UI Improvements

Fix
February 24, 2020

We've rolled out a bunch of UI improvements and paper cut fixes this month. Here are a few of the things the team has released so far:

  • Improvement: Count the number of secrets currently displayed
  • Improvement: Alert when adding a secret with a name that already exists
  • Improvement: API Reference for creating service tokens
  • Fix: Scrollbars no longer block secrets in config logs on certain browsers
  • Fix: Don't show 2FA flow when logging in with Google Auth
  • Fix: Feedback form now looks consistent across all pages
  • Fix: Changes page has bullet points and support for code snippets
  • Fix: Slack community link is working again

The Fastest Doppler Ever

Improvement
February 17, 2020

We've reduced our total page size by ~98% and load time by ~35%. To accomplish this, we now cache all static, public assets for up to 1 year. Assets are also cached by our globally-distributed CDN, meaning assets will always be served from a location near you.

Technical details:

We content-address all of our static assets. This is a method of naming the asset based on its content, typically using a hash function. Content-addressing ensures immutability by guaranteeing that the asset's name changes whenever its content does. For example, instead of loading doppler-logo.png, we load something like doppler-logo-a24a706d.png.

This funky naming enables us to crank caching up to the max. We specify a cache policy of public, max-age=31536000, immutable, must-revalidate. Let's break down what this means:

  • public allows the asset to be cached by your browser and by our CDN
  • max-age=31536000 indicates the asset can be cached for 1 year
  • immutable asserts that the content really doesn't need to be rechecked if unexpired (why we need this)
  • must-revalidate ensures that the asset is re-requested once it expires