[data-reveal]{opacity:1!important;transform:none!important}
FAQ
Builder

FAQ

Answers to common questions about the builder.

The Edit this page button is missing

Start the backend with ajs project dev and check you are signed in as a tenant owner. The builder is off by default under ajs project start. Do not enable it on a deployment just to make the button appear: api.enabled: true allows owners to rewrite that environment's sources.

Every /api/builder route answers 404

The builder is disabled in this process: its controller is never imported. See When the builder is on.

Save fails with "stale"

The page changed on disk since you opened it: another editor, the AI assistant or a hand edit. Keep your version or reload, as the builder offers.

Save fails on the typecheck

The builder writes only code that compiles across the whole project. Open the change list: it names the check that failed. A type error elsewhere in the project, unrelated to your edit, also blocks the write: fix it first.

A chart written before DMS 0.9 reads nothing

DMS 0.9 serves the routes of a page under /dms/pages<page path>, not at the page's own path. A data source the builder wrote earlier answers at the new address, but a block whose fetchUrl still names the old one (/shop/board/stats/revenue) gets no data. Point it at /dms/pages/shop/board/stats/revenue (pageRoutePath(page, endpoint) from @antelopejs/interface-dms/page builds it). In the Data workspace, check Answers at for the source's URL and Used by for the blocks that read it.

A block shows as a stand-in on the canvas

The preview cannot build it faithfully yet, for example a table the running app has not loaded. Save, let the backend reload, and it renders for real.

A role lost access to a block I moved

Block permissions are named after where the block sits, so moving or renaming a block gives it a new permission. Grant it to the role in Roles; the change list warns about this before you save.

Where does the builder write?

Under projectRoot, in the project's own sources: pages as PageController classes, tables as Table, DataController and model files, data sources as model methods and page routes. Commit them like any code.