Available on: >= 0.18.0

Use purge tasks to remove old executions, logs, and Key-value pairs, helping reduce storage usage.

The recommended to keep optimized storage is to use io.kestra.plugin.core.execution.PurgeExecutions, io.kestra.plugin.core.log.PurgeLogs, and io.kestra.plugin.core.kv.PurgeKV.

  • PurgeExecutions: deletes execution records
  • PurgeLogs: removes both Execution and Trigger logs in bulk
  • PurgeKV: deletes expired keys globally for a specific namespace.

Together, these replace the legacy io.kestra.plugin.core.storage.Purge task with a faster and more reliable process (~10x faster).

The flow below purges executions and logs:

yaml
id: purge
namespace: company.myteam
description: |
  This flow will remove all executions and logs older than 1 month.
  We recommend running it daily to prevent storage issues.

tasks:
  - id: purge_executions
    type: io.kestra.plugin.core.execution.PurgeExecutions
    endDate: "{{ now() | dateAdd(-1, 'MONTHS') }}"
    purgeLog: false

  - id: purge_logs
    type: io.kestra.plugin.core.log.PurgeLogs
    endDate: "{{ now() | dateAdd(-1, 'MONTHS') }}"

triggers:
  - id: daily
    type: io.kestra.plugin.core.trigger.Schedule
    cron: "@daily"

The example below purges expired Key-value pairs from the company Namespace. It's set up as a flow in the system namespace.

yaml
id: purge_kv_store
namespace: system

tasks:
  - id: purge_kv
    type: io.kestra.plugin.core.kv.PurgeKV
    expiredOnly: true
    namespaces:
      - company
    includeChildNamespaces: true

Purge tasks vs. UI deletion

Purge tasks perform hard deletion, permanently removing records and reclaiming storage. In contrast, deleting items in the UI is a soft deletion—the data is hidden but retained (e.g., revision history and past executions can reappear if a flow with the same ID is recreated).

This distinction matters for compliance and troubleshooting: purge flows are best for cleaning up space, while UI deletions preserve history for auditability.

Renamed Purge Tasks in 0.18.0

Was this page helpful?