JMAP Management API only allows AND operator for conditions

Issue Description

With plan like this
{ “@type”: “destroy”, “object”: “NetworkListener”, “value”: { “operator”: “NOT”, “conditions”: [ { “name”: “lol” } ] } }

Expected Behavior

Works

Actual Behavior

Only AND is supported in filters

Relevant Log Output

! stalwart-cli apply --file ./testplan.ndjson
Plan: 1 destroy, 0 update, 0 create, 0 upsert (0 objects)
✗ destroy NetworkListener: jmap error: unsupportedFilter: Only AND is supported in filters
Done: 0 destroyed, 0 updated, 0 created (1 failed)
error: jmap error: unsupportedFilter: Only AND is supported in filters

Stalwart Version

v0.16.x

Installation Method

NixOS

Database Backend

RocksDB

Blob Storage

RocksDB

Search Engine

Internal

Directory Backend

Internal

Additional Context

It seems like a pretty useful feature for plans, why isn’t it allowed?
Should also be documented when it is supported.

I have reviewed the documentation and FAQ and confirm that my issue is NOT addressed there.

on

I have searched this support forum (open and closed topics) and confirm this is not a duplicate.

on

I understand that topics in this category are triaged by a bot first but a human reply will follow up. If I’d prefer a human-only reply, I’ll add the no-ai tag to my topic.

on

That is correct, the JMAP API only supports AND operations, you can add this as a feature request.