FAQ

Frequently Asked Questions about Jumpjet, a configuration management tool

What is Jumpjet?

Jumpjet is a SaaS tool that lets you manage configurations for multiple environments (think dozens of application variables that change between you dev, demo and real environments).

Jumpjet is made of two components:

  1. A management tool (https://app.jumpjet.co) that lets you configure your variables (ex: list of supported languages, number of instances of a microservice) and environments (ex: dev, demo, real)

  2. A CLI tool that injects your variables into your environments via JSON files, env files or other methods

What languages and stacks does Jumpjet support?

Jumpjet is totally language / stack agnostic. It serves developers in Node.js, Python, Ruby, Java and more. It can also configure deployments in Kubernetes, Terraform and others.

It does so by offering a simple CLI tool that injects the right configuration into your favorite config files in build time. If you're a Node.js developer, it's probably .ENV files. If you're a Ruby developer, it's .ENV or YAML. Read getting started in 4 minutes to understand Jumpjet's simple approach to serving your configuration.

What's the story behind the name?

According to Wikipedia, the Harrier Jump Jet, or Jump Jet-

is a family of jet-powered attack aircraft capable of vertical/short takeoff and landing operations

We thought it's cool enough to be made immortal by a tool that developers love. We hope you agree.

Does the Jumpjet team use Jumpjet to configure Jumpjet?

Of course. We're so meta.

What do you mean by "configuration"?

By "configuration", we mean application variables and their values across different environments.

Here are a few variables and their values in two environments:

In most systems, configuration contains both technical variables (ex: connection strings, service locations, number of instances of a service) and business related variables (ex: supported languages, whether to require email verification). Jumpjet can help you manage any variable, whether it's technical or business related. The rule is: if it changes between environments, you will benefit from storing it in Jumpjet.

But what's wrong with how I currently manage configuration?

A lot. We try to explain it clearly in a short Medium post: Code and infrastructure are a breeze to manage. Why is app configuration still in the stone age?

Jumpjet is an attempt to make configuration management easy and stress-free, just like managing code or infrastructure. If you'd like to learn more, read getting started in 4 minutes.

What are the main features of Jumpjet?

Jumpjet is made of two components. Their features are listed below:

Can I use Jumpjet for very few config variables and migrate the others later?

Yes. We've designed Jumpjet so you can start using it now on a small group of variables, get value immediately and easily migrate the rest later.

Let's assume you're not using Jumpjet yet, and are currently managing 20 variables in 3 environments (dev, demo, prod) via JSON files. Here's how we suggest to get started:

  • Identify the next variable you'd like to add to your config. For example, say you're developing a new feature- requiring all new users to verify their email upon sign-up- and you'd like to add a boolean config variable (require_email_verification_on_signup) that acts as a feature toggle. It makes sense to enable this feature on your prod environment and disable it on your demo environment.

  • Follow the Getting Started in 4 Minutes guide, but only with the new variable in mind. That's it! Now you can instantly manage require_email_verification_on_signup on the Jumpjet UI. Your app code won't have to change- it can continue to read all variables (20 old variables and 1 new variable) from the JSON file.

  • Once you're ready to migrate your entire configuration to Jumpjet, log into Jumpjet and configure all your existing variables in the UI. Follow Getting Started in 4 Minutes again to make sure that the Jumpjet CLI tool populates your JSON file with their values.

Do I need to change my code to use Jumpjet?

No. Your code can access configuration in the same way as you do today (in most cases JSON, ENV or YAML file). Jumpjet's value is in giving you an app (app.jumpjet.co) to manage your variables and their values across all environments. Then, you use the Jumpjet CLI tool as part of your build process. It makes sure to pull and populate the files with the right values in every environment.

Some users do prefer to work with the Jumpjet REST API to get configuration during run time. If you have this need, please see FAQ: Do you provide REST APIs that let me access configuration programmatically?

How does Jumpjet work with CI (Continuous Integration) and CD (Continuous Deployment) tools, such as Travis?

Beautifully! Jumpjet comes with a cross-platform CLI tool (Mac, Linux, Windows) called... jumpjet.

Add the CLI tool as a step in your build process. It will then create your final config files from a template you make (ex: .ENV.template) and the environment name you specify (ex: Prod). See it in action in Getting Started in 4 Minutes.

Can Jumpjet configure scripts for IAC (Infrastructure as Code) tools, such as Puppet, Chef, Kubernetes and Terraform?

Yes! Config is config.

Here's a common situation: you're running 2 environments (Demo, Prod) that include an authentication microservice. The Demo environment should run 1 instance of the service and the Prod environment should run 8 instances.

How to use Jumpjet to achieve that:

  1. Configure your variable (AUTH_NUMBER_OF_INSTANCES) in app.jumpjet.co

  2. Create a template for your YAML file with a placeholder for the above variable

  3. Invoke the Jumpjet CLI tool with the environment name (ex: Prod). The result will be a YAML file with the right value (8)

In other words, follow our Getting Started in 4 Minutes, but with a templated YAML file instead of ENV file.

Can I store secrets in Jumpjet?

Yes. Secrets (connection strings, passwords, API keys) are an integral part of any application config, and as such they are suitable for management via Jumpjet.

We follow industry best practices and give special treatment to your secrets. Once you mark a variable as secret, it will be encrypted before entering our database and decrypted before it's viewed in app.jumpjet.co. We use the robust 256-bit XSalsa 20 algorithm which is offered by the Libsodium. Libsodium is an extremely popular open source cryptography library, trusted by companies like Facebook, Auth0 and Valve.

In the near future, we plan to let you specify a client-side encryption and decryption key, so your secrets are never transmitted to or from us in their original form.

If you have any further questions on how your secrets are protected, drop us a line at hello@jumpjet.co.

I'm currently managing configuration in files (JSON, ENV, YAML). Is it easy to switch to Jumpjet?

Yes! Your app can continue to read the exact same config files. The Jumpjet CLI tool will make sure to create them based on your configuration. Read Getting Started in 4 Minutes guide to see exactly how it works.

You don't have to migrate your entire config to Jumpjet in one shot. We've designed Jumpjet so you can start quickly and migrate at your own pace (see FAQ: Can I use Jumpjet for very few config variables and migrate the others later?). If you need help, contact us at hello@jumpjet.co.

I'm currently managing configuration in a database. Is it easy to switch to Jumpjet?

Yes. Switching to Jumpjet will ensure your team gets a delightful config management experience (think UI, permissions and config versioning). That's a big step up from a database.

If you decide to phase out config through DB, you'll have to decide how to interact with Jumpjet:

You don't have to migrate your entire config to Jumpjet in one shot. We've designed Jumpjet so you can start quick and migrate at your own pace (see FAQ: Can I use Jumpjet for very few config variables and migrate the others later?). If you need help, contact us at hello@jumpjet.co.

Once I make a configuration change on Jumpjet, will it trigger a rebuild or redeployment?

This won't happen automatically. However, Jumpjet can be configured to trigger a rebuild or redeployment on your favorite tools, and also has a Webhooks API that lets you respond to events in a custom way. Please contact us at hello@jumpjet.co so we can quickly set it up and send you the instructions.

How much does Jumpjet cost?

Jumpjet is free if you use up to 2 environments (for example, dev and prod).

If you need 3 or environments or more, we charge $49 USD per month for an unlimited number of environments and variables.

Will my app depend on Jumpjet's uptime to run?

No. We're as paranoid about third party dependency as you are. We've designed Jumpjet so apps are minimally dependent on its uptime. If you use our CLI tool, you'll only depend on Jumpjet in build time, to inject the right configuration into your environments. In runtime, your app won't depend on Jumpjet at all.

Our team (Doron Somech and Itai Damti, co-founders at Leverate) spent over 10 years designing and running high-throughput and low-latency financial backends that now process 100b USD in monthly trading volume. We're obsessed with uptime so you're in good hands.

Does Jumpjet provide REST API's that let me access my configuration programmatically?

Yes. Please contact us at hello@jumpjet.co so we can quickly set it up and send you the instructions.

Yes. All config changes in Jumpjet are versioned, so you can always revert to an older version. Contact us at hello@jumpjet.co so we can quickly set it up for you and instruct you.

Can I invite my team to use Jumpjet so we can manage configuration together?

Yes. You may invite users to any app in Jumpjet so they can view and edit its configuration.

Can I control permissions around configuration management?

Yes. Jumpjet offers two features that can assist with configuration safety:

  1. User permissions- you can always control who can view / edit configurations, including which environments they have access to. Permissions ensure that only certain people touch the config of sensitive environments (ex: your Prod environment)

  2. Review and accept/reject configuration changes- when you activate this feature for an environment (ex: your Prod environment), changes that users make have to be reviewed by admins before they are accepted. Those who make the changes may also

Please contact us at hello@jumpjet.co so we can quickly set it up and send you the instructions.

Can I manage config for multiple apps in Jumpjet?

Yes. Jumpjet allows you to manage configuration for multiple applications (for example, your web front-end app and server-side app) under one account. Apps are completely separate from each other, and a different set of users may collaborate around each app individually.

Can I track different versions of my configurations and easily revert changes?

Yes. All configuration changes are tracked, so you can easily track what has changed, when and by who. You can also revert changes to a previous version.

Please contact us at hello@jumpjet.co so we can quickly set it up and send you the instructions.

Can Jumpjet notify me via Webhooks on events such as configuration changes?

Yes. Please contact us at hello@jumpjet.co so we can quickly set it up and send you the instructions.

I didn't find an answer to my question. Can I contact you?

Of course! Drop us a line at hello@jumpjet.co and we'll get back to you shortly.

Last updated