# Development Workflow

## Assumptions

* Assumes that you have requirements, specifications, and design documents of your application available (informal or formal).
* Assumes that you have access to Trillo Workbench UI.&#x20;
* Access to an IDE or code editor will be very useful. You need an IDE for debugging by stepping through the source code.

## Steps

* **Data Model**
  * Use the default database of Trillo Workbench. Or add a database that is accessible by the workbench (more about it later).
  * Add tables and/or introspect tables from an existing database.
  * Edit tables and attribute metadata.
* **Domain Metadata**
  * Specify domain metadata file as JSON - these are JSON files that contain configuration or metadata used in a function later.
* **Settings**
  * Add external API credentials, external authentication systems specs., public key of private/public key pairs.
  * Link GitHub account (done by admin once).
* **Functions**
  * Write a function/business logic code using the Trillo Workbench editor or an IDE.
  * Debug code using an IDE.
* **Workflows**
  * Workflows are functions.&#x20;
  * They are mentioned briefly to emphasize that they can run as a background task with their own logs accessible from history.
  * Workflows can be scheduled.
* **Access Control**
  * Developers can add or update the user roles list.
  * The actual access control rules are specified by the application users and covered in the Role-Based Access Control Chapter.

<figure><img src="https://3894296373-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MV-642lNorw6_vRdCpS%2Fuploads%2Fdhce7ypUOgyj3OIHgXaT%2FWhite%20Board%20(10).png?alt=media&#x26;token=c6d67549-6d9a-438c-9a67-2c7fd0e8a961" alt=""><figcaption><p>A typical workflow of building an application using Trillo Workbench</p></figcaption></figure>
