adt.json
adt.json is the project manifest. It contains the manifest version, FileMaker file targets, Web Viewer app bindings, and an optional project standards pack.
{
"version": 1,
"standards": {
"pack": "acme-filemaker-standards",
"enabled": {
"advisory.md": false
}
},
"files": {
"Inventory": {
"target": "fmnet://filemaker.example.com/Inventory",
"username": "adt-developer"
},
"Sandbox": {
"target": "files/Sandbox.fmp12"
}
},
"apps": {
"inventory-dashboard": {
"path": "webviewer-apps/inventory-dashboard",
"file": "Inventory"
}
}
}
Top-level keys
| Key | Type | Required | Description |
|---|---|---|---|
version
|
1
|
Yes | Manifest schema version. The current and only supported value is 1. |
files
|
Record<string, FileEntry>
|
Yes | FileMaker files known to the project, keyed by the name used elsewhere in the manifest. An empty project uses {}. |
apps
|
Record<string, AppEntry>
|
Yes | Web Viewer apps in the project, keyed by app name. An empty project uses {}. |
standards
|
StandardsEntry
|
No | Project-specific FileMaker standards. Omit this key to use the global defaults without a project standards pack. |
files
Each key in files identifies one FileMaker file. A key cannot be empty or contain /.
{
"files": {
"Inventory": {
"target": "fmnet://filemaker.example.com/Inventory",
"username": "adt-developer"
}
}
}
| Key | Type | Required | Description |
|---|---|---|---|
target
|
string
|
Yes | An fmnet://<host>/<FileName> address or a path to a local .fmp12 file. |
username
|
string
|
No | FileMaker account name associated with this target. It cannot be empty. |
An fmnet:// target names a file hosted by FileMaker Pro or FileMaker Server. Its file name does not include the .fmp12 extension.
A relative local target is resolved from the directory that contains adt.json. An absolute local path is also valid. A path beginning with ~ is invalid because ADT does not expand it.
username is an account name, not a credential. Passwords and tokens are not valid manifest fields.
The FileMaker Pro Agent Access port is not a manifest field either. It belongs to the machine and that copy of FileMaker Pro, not to the project, so ADT reads a custom port from the FM_DEV_SERVER_PORT environment variable and otherwise uses 19080. Keep the variable in your shell profile or coding agent host's environment configuration; it does not travel with adt.json. See System Requirements.
apps
Each key in apps is an app name. Names use lowercase alphanumeric characters plus -, _, ., and ~; npm-style scoped names are also valid.
{
"apps": {
"inventory-dashboard": {
"path": "webviewer-apps/inventory-dashboard",
"file": "Inventory"
}
}
}
| Key | Type | Required | Description |
|---|---|---|---|
path
|
string
|
Yes | Path to the app directory, relative to the project root. |
file
|
string
|
Yes | Key of the FileMaker file in the top-level files object that this app deploys to. |
standards
The optional standards object declares a project-specific standards pack. Without this object, the coding-agent plugin applies its global default standards.
{
"standards": {
"pack": "acme-filemaker-standards",
"enabled": {
"naming.md": true,
"patterns.md": true,
"advisory.md": false,
"checks.json": true
}
}
}
| Key | Type | Required | Description |
|---|---|---|---|
pack
|
string
|
Yes | Name declared by the standards pack's META.json. The value cannot be empty. |
enabled
|
Record<string, boolean>
|
No | Per-file switches for the pack. A missing key is enabled. |
The recognized standard files are naming.md, patterns.md, advisory.md, and checks.json. The map also accepts additional file names so a standards pack can define files introduced by a newer ADT version.
Validation and serialization
The manifest must contain one JSON object. ADT rejects an unsupported version, invalid key type, invalid app name, empty username, or malformed entry.
ADT serializes standards, files, and apps in that order. File and app names are sorted. Empty standards.enabled objects are omitted, as are missing usernames. Fields outside the documented schema are not preserved when ADT rewrites the manifest.