Frequently Asked Questions
Find answers to commonly asked questions here
- What is Config?
- How can Config help me?
- What are System, App, Module, Environment, and Instance?
- How do I get started?
- Can I import my existing configuration files?
- What configuration file formats do you support?
- Do I need to make code changes?
- Do you support multiple configuration files per application, per environment, per region, per client, etc.?
- How do you transfer the configuration files to and from my servers?
- Is my account safe?
- My configuration file has sensitive information in it. How do you keep it safe and secure?
- How do I add Instances?
What is Config?
Config is an easy-to-use SaaS for managing configuration files across all your systems, apps, modules, environments and instances.
How can Config help me?
As programmers, sysadmins, and managers, we have experienced the difficulties in managing our configuration files - from getting access and locating configuration files across applications on different servers, to manually editing and syncing them.
Config puts all your configuration files in one place where you can easily view, edit, sync, approve and share. You can deploy your configuration files to any server, or rollback to older versions. Check out our Products page to learn more about what Config has to offer.
What are System, App, Module, Environment, and Instance?
This is what we call the Config hierarchy, which is how configuration files are grouped and stored. A System is composed of multiple apps. An App is composed of different modules. There is a one to one relationship between a module and a configuration file. A Module can be deployed in multiple environments. An Environment can be deployed in multiple instances in a cluster. In a non-cluster environment, there is a one to one relationship between an environment and an instance.
Sample Config Hierarchy:
How do I get started?
Sign up using your email address. After you confirm your email, you will go through our Quick Setup process, where you will setup your Config hierarchy. You can import an existing configuration file or start from scratch. When you are ready to deploy your configuration file, you have the option to export (download), push (SFTP) or pull (cli).
Can I import my existing configuration files?
Yes! Setting up Config only takes a few minutes. Check out our Quick Setup guide to get started.
Once your configuration file is imported, you can take advantage of creating variables for your environments (e.g. Dev, Qa, Production). Using variables is a powerful technique in managing the same file with different configuration values across environments. You won't need to keep a separate copy of your configuration file--which becomes a nightmare when you need to synchronize multiple files.
What configuration file formats do you support?
We support properties, INI, XML, JSON, YAML, TOML, CSV. If your format is not supported, please contact us.
Do I need to make code changes?
You don't need to make any code changes. Config is a deployment time dependency. It makes changes to configuration files the same way you would do it manually, so no changes in your existing code, setup or process.
Do you support multiple configuration files per application, per environment, per region, per client, etc.?
Yes, Config supports multiple configuration files based on our configuration hierarchy. You can have multiple configuration files per application which we call Modules. You can have multiple configuration files per Environment, like Dev, QA, Staging and Prod. You can have multiple configuration files per Environment using Instances, which you can use for clusters, regions or clients.
How do you transfer the configuration files to and from my servers?
Config acts like source control for your configurations files. During quick setup, you will import your configuration file and that becomes the master copy. When you are ready to deploy your configuration changes, you have various deployment options. You can export your configuration files and copy them manually, or push them over SSH, or you can pull configuration files using config-cli, or auto pull configuration files using config-service.
Is my account safe?
Yes, your account is safe. All communications are done through SSL. We regularly run security testing on our application. Our servers are patched daily. We support value encryption for sensitive values like passwords and keys. Credit card processing is completely handled by Stripe. Data is backed up daily, and you always have a copy of the configuration files on your servers. There is no runtime dependency so your applications will run smoothly even if Config is down for maintenance.
My configuration file has sensitive information in it. How do you keep it safe and secure?
The best practice is to encrypt sensitive values in configuration files, and your application has logic to decrypt the values. This means regardless whether the configuration file lives in an in-house server, a cloud server, a laptop, GitHub, or Config, nothing sensitive is exposed. However, it is common for sensitive configuration values to be unencrypted, and some configuration files are for third party applications that you have no control over, so it's not a solution that will work in all cases. To help you with the ideal scenario of encrypted values in the config file, we will provide resources/tools to easily encrypt and decrypt values. In the case you cannot encrypt values in the file, Config allows you to specify which configuration values are sensitive, and we automatically encrypt the data at rest. Every organization has an encryption key that is secured using our proprietary algorithm.
If you are okay with being limited to pull deployments, you also have the option of using client-side encryption. Using our command-line utility, you can encrypt sensitive information before entering them in Config. Encrypted values are then automatically decrypted during the pull process. The advantage of this approach is that Config will never see your sensitive information. Sensitive information will remain plain text in the configuration files, so your application will continue to work.
The best solution to the sensitive configuration question is to not store them in the configuration file at all. This is where a secrets management solution like Vault comes into play. Part of the Config roadmap is to add support for secrets management servers. For example, Config will pull sensitive information from Vault and place them in the generated configuration file during deployment. This makes it easy for existing applications to utilize secrets management.
In terms of infrastructure, we are using minimal Linux servers that are patched daily. We use the latest containers to run our load balancer, web servers, app servers and database. We only open ports that are needed for the application to work, and for containers to talk to each other. The database is not accessible from the outside, and offline backups are private and encrypted. Auditing and security monitoring is in place, and security testing is done on a regular basis.
For companies who are not yet ready for the cloud, we offer an on-premises plan. Run your own Config instance within your internal network. We will also work on making Config available on cloud marketplaces, like AWS Marketplace, so you can quickly set it up on your own VPC. Regardless of what option you choose, Config is always private, so you are sure your configuration files won't be exposed to the public by accident.
How do I add Instances?
If you have a Pro or higher plan, you can add more Instances. Go to the Config Hierarchy page, scroll to the bottom Instance section. Use the plus button to add more Instances for the selected Environment.
Config vs. Git
Usually, we use Git to manage the versions of our codes and that also includes our configuration files. But how is it different when we use Config? Check out this blog post that compares Git and Config in detail.
Config vs. Spring Cloud Config
Check out this blog post that lists the differences between Spring Cloud Config and Config in detail.
How much does it cost?
Signing up makes you eligible for our Free forever plan. If you wish to have access to our advanced features, you can upgrade to one of our paid plans. Check out our Pricing page for more details.
The plan I need isn't listed. What can I do?
Please contact us and we'll be happy to create a custom plan to suit your requirements.
How do I change or cancel my plan?
You can change or cancel your plan at any time within the app. Just navigate to your account's Settings page to manage your subscription.
What types of payment do you accept?
We accept credit card payments (Visa, Mastercard, American Express, Discover, JCB, Diners Club).