Settings reference
Every field on /app/migrator-settings.
Editable by System Manager and Hydra Admin. Hydra User cannot open this page.
Git Configuration
| Field | Type | Description |
|---|---|---|
| GitHub PAT | Password (stored encrypted) | GitHub Fine-Grained Personal Access Token with contents:write + pull_requests:write scopes |
| Remote Name | Data | Git remote name. upstream for apps installed via bench get-app, origin for cloned repos |
| Remote URL | Data | Edit to override; leave blank to auto-detect from the target app's git config |
| Test Connection | Button | Validates the PAT against the configured remote |
| Connection Status | HTML | Live render of the most recent test result |
Target Configuration
| Field | Type | Description |
|---|---|---|
| Target App | Select (from installed apps) | The app where customisation JSON files will be written |
| Base Branch | Select (from remote branches) | The branch your PRs merge into. Common: develop, main, staging |
Initialize Git Repository
If the Target App has no .git directory (common in Docker), an Initialize Git Repository button appears under the Target App field. Fill in Remote URL first, then click. Your existing files aren't touched.
DocType Configuration
The Migrator DocTypes child table controls what types appear in the sidebar tree on /app/custom_migrator.
| Column | Type | Description |
|---|---|---|
| Document Type | Link → DocType | The DocType name (e.g. Custom Field, Print Format) |
| Filters | Small Text (JSON) | Optional dict passed to frappe.get_all(). Leave blank for "everything" |
| Enabled | Check | Whether this type appears in the sidebar tree |
| Is Default | Check | Marks the rows that came preconfigured. Leave this off on your own additions |
| Label Field | Data | Optional field name to use as the human label in the items list, instead of name |
Defaults you start with
You start with eight DocTypes preconfigured. They survive bench migrate upgrades.
| DocType | Filter |
|---|---|
DocType | {"custom": 1} |
Custom Field | {"is_system_generated": 0} |
Property Setter | {"is_system_generated": 0} |
Client Script | |
Server Script | |
Workflow | |
Workflow State | |
Notification |
Filter examples
The two filters that ship preconfigured:
json
{ "custom": 1 }
{ "is_system_generated": 0 }Anything frappe.get_all() accepts works. Invalid JSON silently shows zero rows for that type.
Adding a tracked DocType
Migrator Settings → DocType Configuration table → Add Row
Fill Document Type (and optionally Filters)
Leave Enabled ticked. Leave Is Default off.
Save
Appears in the sidebar tree on next page load.