# Environments

### Overview

Neurelo Environments align naturally with typical Software Development LifeCycles (SDLC) as developers work on their application from development to testing to production. Developers can create and run various environments and for each environment they can provision definitions (JSON Schema, APIs, Custom queries), and link the working database. This process ensures that all the necessary components work together as a run-time workspace, letting developers build, debug and test their changes seamlessly from their application to Neurelo's  environment to the connected database.

For each project, Neurelo supports multiple environments allowing users to seamlessly operate across ephemeral dev and test workspaces to robust and persisting staging and prod deployments.

<figure><img src="/files/ebkRPfNrtifMKCjaahkL" alt=""><figcaption></figcaption></figure>

### Components of an Environment

Three key components of each environment:

1. **Data Source:** Each environment must connect with one database. Users can change the connected database anytime from Environment settings page.
2. **Definitions to be used:** Each environment must have a commit of the definitions for the project attached to it. This ensures all the relevant meta-data (Schema, APIs, Custom Query Endpoints) are provisioned in this environment and map to the connected database. Users can change the attached definition for an environment by stopping the runners and changing the commit being used. Runners can be restarted once the commit has been changed.&#x20;
3. **Runner:** A Neurelo runner is the API handling engine for an environment, which handles the API requests between applications and dat sources. The runners operate by listening for incoming API requests, translating those requests into the corresponding datasource queries and then promptly responds with the relevant and appropriate information from the datasource.&#x20;

{% hint style="danger" %}
To conserve platform resources, running environments which are inactive (no api calls) for more than 7 days may be automatically stopped. When the runners are auto-stopped for inactive environments, their configuration is not impacted. Runners can be restarted anytime by clicking on "Start Runners" when you need to use the environment again.&#x20;
{% endhint %}

### **Exploring the Environments Section**:

* In the Environments section, you'll find various options and features for building, debugging, testing, and managing your APIs.
* This section is a hub where you can interact with different aspects of your project, such as:
  * **Experiment with APIs**: Test and explore your REST and GraphQL APIs.
  * **Observability Tools**: Utilize tools to observe and monitor the performance and usage of your APIs.
  * **Migrations**: View and handle database migrations.
  * **API Keys**: Manage and create new API Keys as required for API access.
* Additionally, you can adjust environment settings to suit your testing needs.


---

# 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.neurelo.com/environments.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.
