FAQ
Frequently Asked Questions about Jumpjet, a configuration management tool
Last updated
Frequently Asked Questions about Jumpjet, a configuration management tool
Last updated
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:
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)
A CLI tool that injects your variables into your environments via JSON files, env files or other methods
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.
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.
Of course. We're so meta.
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.
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.
Jumpjet is made of two components. Their features are listed below:
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.
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?
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.
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:
Configure your variable (AUTH_NUMBER_OF_INSTANCES) in app.jumpjet.co
Create a template for your YAML file with a placeholder for the above variable
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.
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.
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.
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:
We recommend using our CLI tool to inject the config values into files (JSON, ENV or YAML)- see Getting Started in 4 Minutes
A REST API to authenticate and get your config in runtime is also available. See FAQ: Do you provide REST APIs that let me access configuration programmatically?
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.
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.
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.
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.
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.
Yes. You may invite users to any app in Jumpjet so they can view and edit its configuration.
Yes. Jumpjet offers two features that can assist with configuration safety:
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)
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.
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.
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.
Yes. Please contact us at hello@jumpjet.co so we can quickly set it up and send you the instructions.
Of course! Drop us a line at hello@jumpjet.co and we'll get back to you shortly.
Variable
Value in demo environment
Value in prod environment
Database location
demo-db.myapp.com
db1.myapp.com
Number of instances of microservice X
1
10
Supported languages in the UI
English, Dutch, Chinese
English
Component
Features
App (app.jumpjet.co)
Manage your variables
Manage your environments
Manage variable values across environments
Manage revisions
Manage users
CLI tool
Inject an environment configuration into placeholders in a template file (see: CLI tool)