# Welcome

This workshop will guide the attendee through some of the most common elements of creating an API using Box products. Using either postman or a provided JS UI which they will not need to edit the attendee will:

* Open CommandBox and do a new Coldbox Installation
* Use CFConfig to create a datasource from values stored in the .env file.
* Use Migrations to create the data base schema and pre-populate data
* Create two endpoints, two handlers and two models to support the UI
* Create Quick Entities for saving data to two of the tables
* Use QB to retrieve data from two other tables
* Use CBValidation to validate data coming in from the UI
* Other items which time and logical inclusion permit.

The goal is that the attendee will be comfortable enough with each of the products to dive deeper into the docs when the need arises. For each of the products / sections, we’ll do a “where do you go from here” which can talk about next steps. i.e. - “Today we used CBValidation to ensure the min / max and data type coming in. Here are some of the other objects and ways you can validate on such as structs, rows in the database and more. Here are the docs. ”


---

# 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://justenough.ortusbooks.com/readme.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.
