# Understanding the CloudIO data sources

Data sources are used to fetch the data from and perform DML operations (for example, insert, update, delete) on underlying database objects or cloud services. The components of the user interface such as *Grids*, *Charts* or *Form Fields* interact with the database through a data source.

## Naming conventions

Every data source must have a unique name which is used while interacting with the database. Ideally, the data source name must be simple, concise and user-friendly.

* The data source name must not contain any special characters or space.
* The data source name can have maximum 128 characters.
* As a standard practice, you should name your data sources using the Title/Camel Case. For example, if your table name is *MTL\_SYSTEM\_ITEMS*, then your data source name should be *MTLSystemItems*.

## Benefits of CloudIO data sources

CloudIO data sources encapsulates the database objects and provides an additional layer of security on top of what the database already provides. It combines the data access layer along with the business logic you have defined. Developers can control the way the system generates the SQL query for fetching the data.

The use of the CloudIO data source has the following benefits:

* **Flexible**: Data sources are defined using a highly flexible metadata layer. The developer can configure/customize the process of retrieving data from and posting data to the underlying object.
* **Secure**: Data sources are highly secured and one can grant access privileges based on roles. For example, a user role can be granted to only view the data, while an admin role can be granted access to perform delete operations. You can also control the access to individual columns and specify whether a user can view or update a specific column.
* **High-speed**: Data sources exhibit high performance with speeds measured in milliseconds.
* **Customizable queries**: The SQL query generated by the data  source may not be the one preferred by an SQL expert. In such cases, the developer can change the construction of the query.
* **Audit**: The changes made to the data through the data source are audited and the user with the appropriate access privileges can view all the changes made to a given row.
* **REST Enabled**: A data source in CloudIO is a single source where you can define all your business and data access logic using the REST APIs.
* **Proactive**: Data sources will proactively send email alerts to the developer if there is any performance issue or if a user encounters a programmatic error. In other words, as a developer, you will know the issue even before the user reports it to you.


---

# 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.cloudio.io/creating-datasources/working-with-datasources/understanding-the-cloudio-data-sources.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.
