# 1. What is JSONAir

**JSONAir** ( /jās-on-âr/ n. ) - is a simple-to-use, centralized cloud-based configuration storage system.

In many situations, legacy flat-file configuration systems cause headaches. For example, in containerized environments, having to manually edit a YAML file, get it into a container, and redeploy is a pain. In clustered environments, it might be even worse because the flat file needs to be distributed to each container.

Some software takes this into account by using system environment variables. While this improves the process, in most cases, it requires the containers to be restarted to re-read the new environment variable.

JSONAir tackles this by making configuration distribution ‘a service.’ Configurations for your software can easily be retrieved by calling a simple API.

While many cloud providers offer proprietary configuration storage, these methods often impose a restrictive 'vendor lock-in' that limits future flexibility. JSONAir provides a simple, open-standard alternative, allowing you to secure your configuration data without being tied to a single ecosystem.

JSONAir is agnostic to “how” configuration data is stored. To JSONAir, configuration data is just “data.” It might be legacy flat ASCII files, YAML, JSON, etc. JSONAir doesn’t care. However, this means that your software still needs to “validate” the configuration data.

While there are similar projects to JSONAir, we found them to be overly complicated for most of our use cases. The concept behind JSONAir is for it to remain as simple as possible. It is a configuration retrieval system, and it does not intend to validate, update, or modify configuration data. This makes the JSONAir API incredibly simple and uni-directional (read-only).

JSONAir is written in a memory-safe language (Golang) and can be used in containers and clusters itself for high availability. It is meant to be memory and CPU efficient.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.k9.io/key9-identity/jsonair/1-what-is-jsonair.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
