steedos-pages

Create Amis-based custom pages for Steedos using paired page.yml and page.amis.json files.

1.6k|414|Updated Mar 4, 2019
One-click install
npx skills add https://github.com/steedos/steedos-platform --skill steedos-pages
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: steedos-pages
Source: https://github.com/steedos/steedos-platform/tree/main/skills/steedos-pages
Command: npx skills add https://github.com/steedos/steedos-platform --skill steedos-pages

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Building custom dashboards, record detail pages, and list views in Steedos requires correctly pairing metadata YAML files with Amis UI schemas, choosing the right page type, and following strict API call conventions that are easy to get wrong.

Core Features & Use Cases

  • Three Page Types: Create standalone app pages (dashboards, reports, forms), record detail pages, and list pages bound to specific objects with pageAssignments for desktop/mobile targeting.
  • Steedos Amis Components: Use steedos-record-service, steedos-record-detail-header, steedos-record-detail, and steedos-object-listview to bind UI directly to object data.
  • API v6 Rules: Enforces mandatory skip/top query parameters on /api/v6/data/ endpoints and documents the exact response structures for list, single-record, and function calls.
  • Use Case: Build a sales dashboard page with KPI cards and a recent-orders CRUD table, plus a mobile variant, by writing one .page.yml metadata file and one .page.amis.json schema file in the pages/ folder.

Quick Start

Create a standalone Steedos dashboard page named sales_dashboard with a KPI card grid and a recent orders table using the Amis page format.

Frequently Asked Questions about steedos-pages

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I create a custom page in Steedos with Amis?

Create two files in the pages/ folder: a .page.yml file with name, label, type (app, record, or list), and render_engine set to amis, plus a matching .page.amis.json file containing the Amis UI schema. Object pages also need object_name and pageAssignments.

What is the difference between app, record, and list page types in Steedos?

App pages are standalone pages like dashboards or reports not tied to any object. Record pages replace the default detail view for a specific object, and list pages replace its default list view. Record and list pages require object_name and pageAssignments.

Why does my Amis page return incomplete data from /api/v6/data/?

The /api/v6/data/ endpoints require the skip and top query parameters on every list call. Omitting them causes errors or incomplete results, so always use a URL like /api/v6/data/orders?skip=0&top=20.

What response format does the Steedos API v6 return for Amis adaptors?

List endpoints return { data: [...], totalCount: N }, while single-record, create, and update endpoints return the raw document without wrapping. Function endpoints return the raw function return value, so adaptors must extract data accordingly.

How do I show related records on a Steedos record detail page?

Wrap the page body in a steedos-record-service component, then embed a steedos-object-listview for the related object with filters referencing the parent record, such as [["order", "=", "${_id}"]]. Child components access record fields via ${fieldName}.

When should I use React webapps instead of Amis pages in Steedos?

Amis pages suit schema-driven dashboards, forms, and record views defined in JSON. Use a React webapp when you need fully custom frontend logic beyond what Amis components and Steedos-specific components can express.