Where/how is an individual principal's `picture` field set & stored in 0.16.x?

Your question

The individual-principal docs list a picture field — “Stores the account’s profile picture… often used in email clients to display alongside the user’s name or email address.” I’d like to set per-account profile pictures (use case: avatars shown in webmail), but I can’t find where or how in 0.16.x. This is a how-to / docs-clarification question.

What I found

  • stalwart-cli describe x:Account (server 0.16.6) lists the User fields as: aliases, createdAt, credentials, description, domainId, emailAddress, encryptionAtRest, locale, memberGroupIds, memberTenantId, name, permissions, quotas, roles, timeZone, usedDiskQuotano picture.
  • PATCH /api/principal/{id} (the management endpoint shown in the docs) returns 404 on 0.16.x — principal management seems to have moved to the x:Account schema-object API.
  • In the source, picture only appears as an OIDC userinfo claim (crates/common/src/auth/oauth/oidc.rs), not as an Account/principal field.

Questions

  1. In 0.16.x, is picture settable on an individual account? Via which API/field (an x:Account field, a management endpoint, or JMAP)?
  2. Where is it stored — the internal store?
  3. Does it work when the account is backed by an external SQL directory (column mappings are email/secret/class/description/quota — no picture column)? Or is picture internal-directory only?
  4. How do clients retrieve it (JMAP property, HTTP endpoint, OIDC claim)?

Environment

  • Stalwart 0.16.6 (also relevant to 0.16.9 per source)
  • Install: native binary (GitHub releases)
  • Data/blob store: RocksDB
  • Directory: external SQL (MariaDB)

Trying to determine whether a native per-mailbox avatar is achievable, or whether the docs are ahead of the 0.16 implementation. Thanks!

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

Let me research this thoroughly before answering.

Currently the picture field is reserved for future use but it does not do anything at the moment as the WebUI does not display it yet.