The Dashboard
The Form Studio dashboard is your central command center — search, filter, and navigate to every form in your tenant. Understanding the dashboard helps you manage large form libraries efficiently.
Dashboard Layout
The dashboard renders a paginated list of all forms accessible to your tenant. It uses FormDefinitionApiClient.listForms() to fetch forms from the API, with built-in caching that reduces repeated calls by up to 80%.
The dashboard has three primary zones:
- Search & Filter Bar — Full-text search across form name, title, and description. Filter dropdowns for category, type, and status.
- Form List — Paginated grid of form cards showing name, category, type, status badge, and last-modified date.
- Action Bar — New Form button, bulk actions (when forms are selected), and view toggle (grid/list).
Form List API Call
The dashboard calls listForms() with pagination and sorting parameters. This is the same API you call when embedding a form browser in your own application:
import { FormDefinitionApiClient } from '@atlas-forms/api-client-js';
const client = new FormDefinitionApiClient({ baseUrl: 'https://api.example.com' });
const result = await client.listForms(tenantId, {
search: 'invoice',
sort: { field: 'lastModifiedOn', direction: 'desc' },
page: { pageNumber: 1, pageSize: 20 }
});
// result.data — array of FormDefinition
// result.metadata.totalCount — total matching forms
// result.metadata.totalPages — pages available
Status Badges
Each form card displays a status badge indicating where the form sits in its lifecycle:
| Status | Meaning | Editable | API Visible |
|---|---|---|---|
| Draft | Work in progress, not yet published | Yes | No |
| In Review | Submitted for approval, locked for edits | No | No |
| Published | Live and accessible via API | No (create new version) | Yes |
| Archived | Retired — not deleted, not accessible | No | No |
Search and Filter
The search bar performs real-time filtering using the API's search parameter. Results update as you type with a 300ms debounce to avoid excessive API calls.
Filter Options
- Category — Groups forms by product area (e.g., GuardRails, NodePolicies). Corresponds to
FormCategoryIDin the database. - Type — Distinguishes List Forms from Property Forms. Corresponds to
FormTypeID. - Status — Filter by draft, in-review, published, or archived.
- My Forms — Show only forms created by the current user.
Form Card Information
Each card in the grid shows:
- Form Name — The
namefield (used in code references) - Form Title — The
titlefield (shown to end users) - Form Number — The numeric ID (e.g., 13001 for GuardRails first form)
- Category & Type — Colour-coded chips
- Status Badge — Draft / In Review / Published / Archived
- Last Modified — Timestamp with author name
- Quick Actions — Open Designer, Preview, Duplicate, Archive
Pagination
The dashboard uses server-side pagination. The default page size is 20 forms. Use the page controls at the bottom to navigate. The total count displays in the top-right corner of the list.
listForms() responses for 5 minutes. If you just published a form and don't see the status change, use the Refresh button to bypass the cache and fetch live data.
Bulk Actions
Select multiple forms using the checkboxes to perform bulk operations:
- Bulk Archive — Soft-delete selected forms (recoverable)
- Bulk Export — Download form schemas as a ZIP of JSON files
- Bulk Assign Category — Reassign multiple forms to a different category