Console

The Console is Tailor Platform’s web interface, providing you with access to enhanced development capabilities.

Tailor Console

After deploying the application, you can examine the data models and pipelines immediately.

You can import CSV files by following the Import CSV Files tutorial to work with your own data.

Within the seed folder of the template, you'll find the master folder containing all table data.

For instance, the ims template contains the following seed data files:

<span><span style="color: var(--shiki-color-text)">ims </span><span style="color: var(--shiki-token-comment)">// Root folder for an app</span></span>
<span><span style="color: var(--shiki-color-text)">├── seed</span></span>
<span><span style="color: var(--shiki-color-text)">│   └── master</span></span>
<span><span style="color: var(--shiki-color-text)">│       └── </span><span style="color: var(--shiki-token-constant)">contact</span><span style="color: var(--shiki-color-text)">.cue</span></span>
<span><span style="color: var(--shiki-color-text)">│       └── </span><span style="color: var(--shiki-token-constant)">products</span><span style="color: var(--shiki-color-text)">.cue</span></span>
<span><span style="color: var(--shiki-color-text)">│       └── </span><span style="color: var(--shiki-token-constant)">productsvariants</span><span style="color: var(--shiki-color-text)">.cue</span></span>
<span><span style="color: var(--shiki-color-text)">│       └── </span><span style="color: var(--shiki-token-constant)">roles</span><span style="color: var(--shiki-color-text)">.cue </span></span>
<span><span style="color: var(--shiki-color-text)">│       └── </span><span style="color: var(--shiki-token-constant)">users</span><span style="color: var(--shiki-color-text)">.cue  </span></span>
<span></span>

Explore Your New App

After successfully deploying your application, here are several ways to build upon and enhance it.

Test with GraphQL Playground

In the application, select the GraphQL Playground from the left navigation panel.

Embedded GraphQL Playground Highlight

This opens an embedded GraphQL Playground with a pre-populated access token, allowing you to execute queries and mutations for the following data operations.

GraphQL Playground

1. Fetch and filter data

Retrieve and refine data using queries to filter and sort the data based on defined criteria. You can refer to examples for filter and sort operations here.

2. Create, update, and delete records

Manage your data dynamically by executing mutations to create new entries, modify existing records, or remove them as needed. You can refer to examples for mutations here.

The application comes pre-loaded with sample data to help you get started. When you're ready to work with your own data, you can import CSV files by following the Import CSV Files tutorial.

3. Validate input data

You can confirm that the input data aligns with the validation rules defined in the schema. To learn more about data validations, refer to the guide here.

Customize your application

1. Set Up Your Workspace

Configure your workspace to match your deployed application. Run the following command to view all the created workspaces.

tailorctl config set -i

2. Update the configuration file

For example, to modify user schema with a new field, add the new field to the user.tf.

<span><span style="color: var(--shiki-token-function)">resource</span><span style="color: var(--shiki-color-text)"> </span><span style="color: var(--shiki-token-string-expression)">&quot;tailor_tailordb_type&quot;</span><span style="color: var(--shiki-color-text)"> </span><span style="color: var(--shiki-token-string-expression)">&quot;user&quot;</span><span style="color: var(--shiki-color-text)"> </span><span style="color: var(--shiki-token-string)">{</span></span>
<span><span style="color: var(--shiki-color-text)">  </span><span style="color: var(--shiki-token-function)">workspace_id</span><span style="color: var(--shiki-color-text)"> </span><span style="color: var(--shiki-token-string)">=</span><span style="color: var(--shiki-color-text)"> </span><span style="color: var(--shiki-token-string)">tailor_workspace.ims.id</span></span>
<span><span style="color: var(--shiki-color-text)">  </span><span style="color: var(--shiki-token-function)">namespace</span><span style="color: var(--shiki-color-text)">    </span><span style="color: var(--shiki-token-string)">=</span><span style="color: var(--shiki-color-text)"> </span><span style="color: var(--shiki-token-string)">tailor_tailordb.ims.namespace</span></span>
<span><span style="color: var(--shiki-color-text)">  </span><span style="color: var(--shiki-token-function)">name</span><span style="color: var(--shiki-color-text)">         </span><span style="color: var(--shiki-token-string)">=</span><span style="color: var(--shiki-color-text)"> </span><span style="color: var(--shiki-token-string-expression)">&quot;User&quot;</span></span>
<span><span style="color: var(--shiki-color-text)">  </span><span style="color: var(--shiki-token-function)">description</span><span style="color: var(--shiki-color-text)">  </span><span style="color: var(--shiki-token-string)">=</span><span style="color: var(--shiki-color-text)"> </span><span style="color: var(--shiki-token-string-expression)">&quot;User of the system.&quot;</span></span>
<span></span>
<span><span style="color: var(--shiki-color-text)">  </span><span style="color: var(--shiki-token-function)">fields</span><span style="color: var(--shiki-color-text)"> </span><span style="color: var(--shiki-token-string)">=</span><span style="color: var(--shiki-color-text)"> </span><span style="color: var(--shiki-token-string)">{</span></span>
<span><span style="color: var(--shiki-color-text)">    </span><span style="color: var(--shiki-token-function)">...</span></span>
<span><span style="color: var(--shiki-color-text)">    </span><span style="color: var(--shiki-token-function)">lastname</span><span style="color: var(--shiki-color-text)"> </span><span style="color: var(--shiki-token-string)">=</span><span style="color: var(--shiki-color-text)"> </span><span style="color: var(--shiki-token-string)">{</span></span>
<span><span style="color: var(--shiki-color-text)">      </span><span style="color: var(--shiki-token-function)">type</span><span style="color: var(--shiki-color-text)">        </span><span style="color: var(--shiki-token-string)">=</span><span style="color: var(--shiki-color-text)"> </span><span style="color: var(--shiki-token-string-expression)">&quot;string&quot;</span></span>
<span><span style="color: var(--shiki-color-text)">      </span><span style="color: var(--shiki-token-function)">description</span><span style="color: var(--shiki-color-text)"> </span><span style="color: var(--shiki-token-string)">=</span><span style="color: var(--shiki-color-text)"> </span><span style="color: var(--shiki-token-string-expression)">&quot;Last name of the user.&quot;</span></span>
<span><span style="color: var(--shiki-color-text)">    }</span></span>
<span><span style="color: var(--shiki-color-text)">  }</span></span>
<span><span style="color: var(--shiki-color-text)">}</span></span>
<span></span>

Manifest files, written in CUE, define your application's configuration. To learn about CUE, refer to the basics here.

For example, to modify user schema with a new field, add the new field to the user.cue in the /services/tailordb/master/user.cue.

<span><span style="color: var(--shiki-token-keyword)">package</span><span style="color: var(--shiki-color-text)"> master</span></span>
<span><span style="color: var(--shiki-color-text)">...</span></span>
<span><span style="color: var(--shiki-color-text)">User: tailordb.#Type </span><span style="color: var(--shiki-token-keyword)">&amp;</span><span style="color: var(--shiki-color-text)"> {</span></span>
<span><span style="color: var(--shiki-color-text)">  Fields: {</span></span>
<span><span style="color: var(--shiki-color-text)">    ...</span></span>
<span><span style="color: var(--shiki-color-text)">    lastname: {</span></span>
<span><span style="color: var(--shiki-color-text)">      Type:        tailordb.#TypeString</span></span>
<span><span style="color: var(--shiki-color-text)">      Description: </span><span style="color: var(--shiki-color-text)">&quot;</span><span style="color: var(--shiki-token-string-expression)">Last name of the user</span><span style="color: var(--shiki-color-text)">&quot;</span></span>
<span><span style="color: var(--shiki-color-text)">    }</span></span>
<span><span style="color: var(--shiki-color-text)">  }</span></span>
<span><span style="color: var(--shiki-color-text)">}</span></span>
<span></span>

3. Apply your changes

After updating the configuration, apply your changes to the deployed application:

<span><span style="color: var(--shiki-token-function)">terraform</span><span style="color: var(--shiki-color-text)"> </span><span style="color: var(--shiki-token-string)">apply</span></span>
<span></span>
<span><span style="color: var(--shiki-token-function)">tailorctl</span><span style="color: var(--shiki-color-text)"> </span><span style="color: var(--shiki-token-string)">workspace</span><span style="color: var(--shiki-color-text)"> </span><span style="color: var(--shiki-token-string)">apply</span><span style="color: var(--shiki-color-text)"> </span><span style="color: var(--shiki-token-string)">-m</span><span style="color: var(--shiki-color-text)"> </span><span style="color: var(--shiki-token-string)">./workspace.cue</span></span>
<span></span>

4. Verify your changes

In the console, you can see the new field added to the user schema on the overview page.

Schema overview page

Troubleshooting

If you encounter issues:

  1. Verify your workspace selection
  2. Check manifest file syntax

Try More Templates

You can select a workspace and deploy multiple applications within it by downloading the available templates.

Develop applications from scratch

The base template provides a flexible, foundational framework that allows you to build custom applications tailored to your unique requirements. It includes no predefined or domain-specific data, offering a clean starting point with essential components and configurations.

You can adapt and extend the template to meet diverse needs, supporting scalability and versatility across various use cases.

If you have more questions or would like to learn more, please contact us.