Builtin Pipelines
Builtin pipelines are loaded at startup and are available to all schemas without any configuration.
All builtin pipelines carry a run_permission of p_pipeline_run. The caller must hold this permission to execute them against a schema.
bulk_disable_out_of_sync
Disables assets whose last_sync field is older than 3 months.
This pipeline is intended to be applied to any Schema that tracks synchronization with an external system via a last_sync field. Assets that have not been seen for more than 3 months are marked for disable by setting _action: disable.
Assets without a last_sync field or with a recent sync date are not modified — they are discarded by the pipeline and left untouched in the database.
Logic:
| Step | Task | Effect |
|---|---|---|
| 1 | field_set _action noop |
Safe default — no change unless stale |
| 2 | field_datetime _cutoff now() -3month |
Compute cutoff = now − 3 months |
| 3 | set_condition HAS_SYNC exists last_sync |
True if last_sync field is present |
| 4 | set_condition IS_STALE lt last_sync _cutoff |
True if last_sync is older than cutoff |
| 5 | discard !HAS_SYNC |
Skip assets with no last_sync (left untouched in DB) |
| 6 | discard !IS_STALE |
Skip recently synced assets (left untouched in DB) |
| 7 | field_set _action disable |
Mark stale assets for disable |
| 8 | field_delete _cutoff |
Remove temporary field |
Notes:
last_syncmust be a datetime string inYYYY-MM-DD HH:MM:SSformat.- The 3-month threshold is computed at pipeline execution time from the current local datetime.
- Discarded entries are never written to the database — only stale assets are updated.
bulk_delete_out_of_sync
Deletes assets that are already disabled and whose last_sync field is older than 6 months.
This pipeline is the second step of a two-phase cleanup workflow. It only targets assets that have previously been disabled (e.g. by bulk_disable_out_of_sync) and have still not been seen for 6 months. Assets that are still enabled, have no last_sync field, or were synced recently are not modified.
Typical workflow:
- Apply
bulk_disable_out_of_sync— disables assets not seen for 3 months - Apply
bulk_delete_out_of_sync— deletes assets that remain disabled and unseen for 6 months
Logic:
| Step | Task | Effect |
|---|---|---|
| 1 | field_set _action noop |
Safe default — no change unless criteria met |
| 2 | field_datetime _cutoff now() -6month |
Compute cutoff = now − 6 months |
| 3 | set_condition HAS_SYNC exists last_sync |
True if last_sync field is present |
| 4 | set_condition IS_DISABLED is_false is_enabled |
True if asset is disabled |
| 5 | set_condition IS_STALE lt last_sync _cutoff |
True if last_sync is older than cutoff |
| 6 | discard !HAS_SYNC |
Skip assets with no last_sync (left untouched in DB) |
| 7 | discard !IS_DISABLED |
Skip assets that are still enabled (left untouched in DB) |
| 8 | discard !IS_STALE |
Skip recently synced assets (left untouched in DB) |
| 9 | field_set _action delete |
Mark disabled+stale assets for deletion |
| 10 | field_delete _cutoff |
Remove temporary field |
Notes:
last_syncmust be a datetime string inYYYY-MM-DD HH:MM:SSformat.- The 6-month threshold is computed at pipeline execution time from the current local datetime.
- Discarded entries are never written to the database — only disabled+stale assets are deleted.
- Assets that are still enabled are intentionally preserved, even if stale.
bulk_delete_all
Deletes all assets of the target schema unconditionally.
Warning: This pipeline is destructive and irreversible. All instances of the schema will be permanently deleted.
Logic:
| Step | Task | Effect |
|---|---|---|
| 1 | field_set _action delete |
Mark every asset for deletion — no condition |
Notes:
- No conditions are checked — every instance in the schema is deleted.
- There is no undo. Back up your data before running this pipeline.
- A dry-run mode is available to preview the count without making changes.
bulk_refresh
Re-saves all assets of the target schema without any modification. Triggers a read-then-write cycle for each instance, which refreshes the EAV cache and normalizes stored data.
Useful after schema changes, cache corruption, or bulk imports that bypassed normal save hooks.
Logic:
| Step | Task | Effect |
|---|---|---|
| 1 | field_set _action update |
Re-save every asset — no condition, no data change |
Notes:
- No data is modified — assets are read and written back as-is.
- All instances are processed, regardless of their enabled/disabled status.
- This pipeline has no destructive effect.