[jira] [Updated] (JAMES-4148) Webadmin: Ability to run filtering rules on folders

René Cordier (Jira) <[email protected]>
Newsgroups gmane.comp.jakarta.james.devel
Message-ID <[email protected]>
     [ https://issues.apache.org/jira/browse/JAMES-4148?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

René Cordier updated JAMES-4148:
--------------------------------
    Description: 
Use a rule (jmap filtering) against a folder content and use it to sort messages,

API:
{code:bash}
curl -XPOST /users/mailboxes/:id?messages?action=triage
curl -XPOST /messages?action=triage&(mailboxName=Archives)

{
  "id": "1",
  "name": "My first rule",
  "conditionGroup": {
    "conditionCombiner": "AND",
    "conditions": [
      {
        "field": "subject",
        "comparator": "contains",
        "value": "question"
      },
      {
        "field": "header:X-custom",
        "comparator": "contains",
        "value": "cguivgwelrf"
      },
      {
        "field": "header:X-custom",
        "comparator": "contains",
        "value": "cguivgwelrf"
      },
      {
        "field": "flag",
        "comparator": "isSet",
        "value": "\Seen"
      },
      {
        "field": "flag",
        "comparator": "isUnset",
        "value": "\Important"
      },
      {
        "field": "flag",
        "comparator": "isSet",
        "value": "xyz"
      },
      {
        "field": "savedDate",
        "comparator": "isOlderThan",
        "value": "30d"
      },
      {
        "field": "internalDate",
        "comparator": "isOlderThan",
        "value": "30d"
      },
      {
        "field": "from",
        "comparator": "contains",
        "value": "user2"
      }
    ]
  }
  "action": {
    "moveTo": {
      "mailboxName": "Trash"
    }
  }
}
{code}

Steps to implement:

 - [ ] Ability to run  RuleMatcher on MessageResult and not just mails
 - [ ] Webadmin endpoint + task to run a rule against a folder
 - [ ] Webadmin endpoint to run a rule cluster wide (generate tasks to run a rule against a folder - do not write new task)
 - [ ] Conditions for 'stock': flag, savedDate, internalDate evaluated on message results but skept in Mail
 - [ ] Action 'moveTo' based on a mailbox name (needed to trun mass treatment on several users as we cannot hard code mailboxid)

  was:
## what

Use a rule (jmap filtering) against a folder content and use it to sort messages,

API:

```
curl -XPOST /users/mailboxes/:id?messages?action=triage
curl -XPOST /messages?action=triage&(mailboxName=Archives)

{
  "id": "1",
  "name": "My first rule",
  "conditionGroup": {
    "conditionCombiner": "AND",
    "conditions": [
      {
        "field": "subject",
        "comparator": "contains",
        "value": "question"
      },
      {
        "field": "header:X-custom",
        "comparator": "contains",
        "value": "cguivgwelrf"
      },
      {
        "field": "header:X-custom",
        "comparator": "contains",
        "value": "cguivgwelrf"
      },
      {
        "field": "flag",
        "comparator": "isSet",
        "value": "\Seen"
      },
      {
        "field": "flag",
        "comparator": "isUnset",
        "value": "\Important"
      },
      {
        "field": "flag",
        "comparator": "isSet",
        "value": "xyz"
      },
      {
        "field": "savedDate",
        "comparator": "isOlderThan",
        "value": "30d"
      },
      {
        "field": "internalDate",
        "comparator": "isOlderThan",
        "value": "30d"
      },
      {
        "field": "from",
        "comparator": "contains",
        "value": "user2"
      }
    ]
  }
  "action": {
    "moveTo": {
      "mailboxName": "Trash"
    }
  }
}
```

Steps to implement:

 - [ ] Ability to run  RuleMatcher on MessageResult and not just mails
 - [ ] Webadmin endpoint + task to run a rule against a folder
 - [ ] Webadmin endpoint to run a rule cluster wide (generate tasks to run a rule against a folder - do not write new task)
 - [ ] Conditions for 'stock': flag, savedDate, internalDate evaluated on message results but skept in Mail
 - [ ] Action 'moveTo' based on a mailbox name (needed to trun mass treatment on several users as we cannot hard code mailboxid)


> Webadmin: Ability to run filtering rules on folders
> ---------------------------------------------------
>
>                 Key: JAMES-4148
>                 URL: https://issues.apache.org/jira/browse/JAMES-4148
>             Project: James Server
>          Issue Type: Improvement
>            Reporter: René Cordier
>            Priority: Major
>
> Use a rule (jmap filtering) against a folder content and use it to sort messages,
> API:
> {code:bash}
> curl -XPOST /users/mailboxes/:id?messages?action=triage
> curl -XPOST /messages?action=triage&(mailboxName=Archives)
> {
>   "id": "1",
>   "name": "My first rule",
>   "conditionGroup": {
>     "conditionCombiner": "AND",
>     "conditions": [
>       {
>         "field": "subject",
>         "comparator": "contains",
>         "value": "question"
>       },
>       {
>         "field": "header:X-custom",
>         "comparator": "contains",
>         "value": "cguivgwelrf"
>       },
>       {
>         "field": "header:X-custom",
>         "comparator": "contains",
>         "value": "cguivgwelrf"
>       },
>       {
>         "field": "flag",
>         "comparator": "isSet",
>         "value": "\Seen"
>       },
>       {
>         "field": "flag",
>         "comparator": "isUnset",
>         "value": "\Important"
>       },
>       {
>         "field": "flag",
>         "comparator": "isSet",
>         "value": "xyz"
>       },
>       {
>         "field": "savedDate",
>         "comparator": "isOlderThan",
>         "value": "30d"
>       },
>       {
>         "field": "internalDate",
>         "comparator": "isOlderThan",
>         "value": "30d"
>       },
>       {
>         "field": "from",
>         "comparator": "contains",
>         "value": "user2"
>       }
>     ]
>   }
>   "action": {
>     "moveTo": {
>       "mailboxName": "Trash"
>     }
>   }
> }
> {code}
> Steps to implement:
>  - [ ] Ability to run  RuleMatcher on MessageResult and not just mails
>  - [ ] Webadmin endpoint + task to run a rule against a folder
>  - [ ] Webadmin endpoint to run a rule cluster wide (generate tasks to run a rule against a folder - do not write new task)
>  - [ ] Conditions for 'stock': flag, savedDate, internalDate evaluated on message results but skept in Mail
>  - [ ] Action 'moveTo' based on a mailbox name (needed to trun mass treatment on several users as we cannot hard code mailboxid)



--
This message was sent by Atlassian Jira
(v8.20.10#820010)
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.