diff --git a/README.md b/README.md index 17789a6e1a..889bb63882 100644 --- a/README.md +++ b/README.md @@ -439,6 +439,26 @@ How to use icon: npm run dev-font ``` +# Case Retention Tier (CASE_RETENTION_TIER) + +The case retention policy controls how long cases are stored before they are automatically and permanently deleted. The **CASE_RETENTION_TIER** environment variable determines which retention periods customers can select when configuring a process. Each tier exposes a different set of options in the UI; options for higher tiers are visible but disabled so users see what is available at higher tiers. + +### Supported tiers + +| Tier | Retention options available | +|------|----------------------------| +| **1** | Six months, One year | +| **2** | Six months, One year, Three years | +| **3** | Six months, One year, Three years, Five years | + +Set the variable in your `.env` file: +```env +CASE_RETENTION_POLICY_ENABLED=true +CASE_RETENTION_TIER=1 +``` +Use `1`, `2`, or `3`. The default is `1` if not set. The default retention period shown in the UI for Tier 1 is one year. + + # Prometheus and Grafana diff --git a/config/app.php b/config/app.php index 66d45571b3..2355c60edc 100644 --- a/config/app.php +++ b/config/app.php @@ -306,5 +306,13 @@ // When true, shows the Cases Retention section on process configuration 'case_retention_policy_enabled' => filter_var(env('CASE_RETENTION_POLICY_ENABLED', false), FILTER_VALIDATE_BOOLEAN), + // Controls which retention periods are available in the UI for the current tier. + 'case_retention_tier' => env('CASE_RETENTION_TIER', '1'), + 'case_retention_tier_options' => [ + '1' => ['six_months', 'one_year'], + '2' => ['six_months', 'one_year', 'three_years'], + '3' => ['six_months', 'one_year', 'three_years', 'five_years'], + ], + 'resources_core_path' => base_path('resources-core'), ]; diff --git a/devhub/pm-font/svg/exclamation-triangle.svg b/devhub/pm-font/svg/exclamation-triangle.svg new file mode 100644 index 0000000000..dc9fa5ea18 --- /dev/null +++ b/devhub/pm-font/svg/exclamation-triangle.svg @@ -0,0 +1,3 @@ + + + diff --git a/resources/fonts/pm-font/index.html b/resources/fonts/pm-font/index.html index 5ad82a9a14..19b60faa9a 100644 --- a/resources/fonts/pm-font/index.html +++ b/resources/fonts/pm-font/index.html @@ -115,7 +115,7 @@

ProcessMaker Icons2026.2.4

fp-desktop

fp-edit-outline

+
  • + +

    fp-exclamation-triangle

    +
  • +
  • ProcessMaker Icons2026.2.4

      -
    • add-outlined

      
    • arrow-left

      
    • box-arrow-up-right

      
    • bpmn-action-by-email

      
    • bpmn-data-connector

      
    • bpmn-data-object

      
    • bpmn-data-store

      
    • bpmn-docusign

      
    • bpmn-end-event

      
    • bpmn-flowgenie

      
    • bpmn-gateway

      
    • bpmn-generic-gateway

      
    • bpmn-idp

      
    • bpmn-intermediate-event

      
    • bpmn-pool

      
    • bpmn-send-email

      
    • bpmn-start-event

      
    • bpmn-task

      
    • bpmn-text-annotation

      
    • brush-icon

      
    • check-circle-blue

      
    • check-circle-outline

      
    • close

      
    • cloud-download-outline

      
    • connector-outline

      
    • copy-outline

      
    • copy

      
    • desktop

      
    • edit-outline

      
    • expand

      
    • eye

      
    • fields-icon

      
    • flowgenie-outline

      
    • folder-outline

      
    • fullscreen

      
    • github

      
    • inbox

      
    • layout-icon

      
    • link-icon

      
    • map

      
    • minimize

      
    • mobile

      
    • pdf

      
    • pen-edit

      
    • play-outline

      
    • plus-thin

      
    • plus

      
    • pm-block

      
    • remove-outlined

      
    • screen-outline

      
    • script-outline

      
    • slack-notification

      
    • slack

      
    • slideshow

      
    • table

      
    • tachometer-alt-average

      
    • trash-blue

      
    • trash

      
    • unlink

      
    • update-outline

      
    • +
    • add-outlined

      
    • arrow-left

      
    • box-arrow-up-right

      
    • bpmn-action-by-email

      
    • bpmn-data-connector

      
    • bpmn-data-object

      
    • bpmn-data-store

      
    • bpmn-docusign

      
    • bpmn-end-event

      
    • bpmn-flowgenie

      
    • bpmn-gateway

      
    • bpmn-generic-gateway

      
    • bpmn-idp

      
    • bpmn-intermediate-event

      
    • bpmn-pool

      
    • bpmn-send-email

      
    • bpmn-start-event

      
    • bpmn-task

      
    • bpmn-text-annotation

      
    • brush-icon

      
    • check-circle-blue

      
    • check-circle-outline

      
    • close

      
    • cloud-download-outline

      
    • connector-outline

      
    • copy-outline

      
    • copy

      
    • desktop

      
    • edit-outline

      
    • exclamation-triangle

      
    • expand

      
    • eye

      
    • fields-icon

      
    • flowgenie-outline

      
    • folder-outline

      
    • fullscreen

      
    • github

      
    • inbox

      
    • layout-icon

      
    • link-icon

      
    • map

      
    • minimize

      
    • mobile

      
    • pdf

      
    • pen-edit

      
    • play-outline

      
    • plus-thin

      
    • plus

      
    • pm-block

      
    • remove-outlined

      
    • screen-outline

      
    • script-outline

      
    • slack-notification

      
    • slack

      
    • slideshow

      
    • table

      
    • tachometer-alt-average

      
    • trash-blue

      
    • trash

      
    • unlink

      
    • update-outline

      
    {{ __('Retention Policy') }}

    {{ __('Each case in this process is retained from the moment it is created for the period defined in this section.')}}

    -

    {{ __('After this period expires, the case is automatically and permanently deleted, regardless of its status. - This deletion includes all files and all data associated with the case and cannot be undone.')}}

    +

    {{ __('After this period expires, the case is automatically and ') }}{{ __('permanently deleted') }}{{ __(', regardless of its status. This deletion includes all files and all data associated with the case and cannot be undone.') }}

    -
    {{__('Retention Period')}}
    +
    {{ __('Retention Period') }}

    {{ __('Retention periods over one year must be handled by Technical Support. Please contact Technical Support for assistance.')}}

    @@ -387,21 +386,76 @@ class="collapse show" -