Create layouts for data access
A generated client reads and writes through a FileMaker layout. The layout determines the table-occurrence context, fields, related fields, portals, value lists, and account access visible to the app.
Use dedicated data layouts
A dedicated data layout gives the app a stable contract without tying data access to a user-facing FileMaker screen. Keep it focused on one table-occurrence context and expose only the fields the app needs.
Apply the project's layout naming standards and make the purpose clear to FileMaker developers. A data layout may be visually minimal because object placement exists to expose metadata and records, not to provide the Web Viewer UI.
Place required objects
Place every field that the generated client must read or write. Include primary keys and any fields needed to identify, sort, find, validate, or update records.
Related fields require a valid relationship path from the layout's table occurrence. Portals expose related rows and must have stable object and portal names for generated clients. Attached value lists become part of generated metadata and validation when enabled in adt.config.json.
Do not expose sensitive fields only because they are convenient. FileMaker privileges remain the security boundary, but a smaller layout contract is easier to audit and maintain.
Add the layout to Typegen
Record the exact FileMaker layout name and its TypeScript schema name in the app's adt.config.json. Then run Typegen to generate its schema, types, and client.
See adt.config.json for the configuration format and Generate types with Typegen for generated output.
Change a data layout safely
Before renaming or deleting a data layout or removing one of its objects:
-
Find each app configuration that names the layout.
-
Update the FileMaker layout and configuration together.
-
Regenerate types because the database schema contract changed.
-
Fix resulting application type or validation errors.
-
Test record reads, writes, portals, and value lists against the updated layout.
FileMaker does not show that an external adt.config.json references a layout. Treat configured data layouts as application dependencies during FileMaker cleanup.