Hi,
I realized that the priv map entry should work for shared too. So just use
pattern = $key. The username field should always be there for IMAP metadata for
both shared and priv.
Aki
On 1 August 2021 7.10.06 UTC, Joseph D Wagner <joe at josephdwagner.info>
wrote:>This works for /priv:
>
>map {
> pattern = $key
> table = attr_priv
> fields {
> attr_name = $key
> }
> username_field = username
> value_field = attr_value
>}
>
>Not sure what to do about /shared. I tried, for example, to comment out the
/priv map and use just this /shared map:
>map {
> pattern = $key
> table = attr_shared
> fields {
> attr_name = $key
> }
> value_field = attr_value
>}
>
>However, postgres logs showed it didn't even try to hit the database.
>
>Joseph D. Wagner
>
>-----Original Message-----
>From: dovecot <dovecot-bounces at dovecot.org> On Behalf Of Aki Tuomi
>Sent: Saturday, July 31, 2021 4:46 AM
>To: dovecot at dovecot.org; Joseph D Wagner <joe at
josephdwagner.info>
>Subject: Re: SQL Backend for IMAP METADATA Dictionary
>
>
>
>On 31 July 2021 9.12.53 UTC, Joseph D Wagner <joe at
josephdwagner.info> wrote:
>>I've seen documentation on using a SQL backend for quota dictionary
and
>>passdb&userdb dictionary. However, I can't find any examples of
a SQL
>>backend for IMAP METADATA / mail_attributes_dict.
>>
>>Is this combination possible? If so, is there an example somewhere?
>>
>>I am unsure what data structures it's expected or how to create the
map
>>entries for it.
>>
>>Thanks in advance.
>>
>>Joseph D. Wagner
>>
>
>Hi Joseph,
>
>try
>
>mail_attributes_dict = proxy::attr
>
>dict {
> attr = sql:/path/to/config
>}
>
>
>map {
> pattern = /shared/$key
> table = attr_shared
> fields {
> attr_name = $key
> }
> value_field = attr_value
>}
>
>map {
> pattern = /priv/$key
> table = attr_priv
> fields {
> attr_name = $key
> }
> username_field = username
> value_field = attr_value
>}
>
>SQL
>
>CREATE TABLE attr_shared (
> attr_name VARCHAR(255) PRIMARY KEY NOT NULL,
> attr_value VARCHAR(65535)
>)
>
>CREATE TABLE attr_priv (
> attr_name VARCHAR(255) NOT NULL,
> username VARCHAR(255) NOT NULL,
> attr_value VARCHAR(65535)
> PRIMARY KEY(attr_name, username)
>)
>
>Hopefully correct :)
>
>Aki
>
>