[prev in list] [next in list] [prev in thread] [next in thread] 

List:       cyrus-devel
Subject:    Admin API and architecture questions (ex with quota)
From:       "Bruno Thomas via Devel" <devel () cyrus ! topicbox ! com>
Date:       2021-12-24 10:56:06
Message-ID: 16403433660.B002Cf1b.70112 () composer ! cyrus ! topicbox ! com
[Download RAW message or body]


--16403433661.d3d8d9f3.70112
Date: Fri, 24 Dec 2021 05:56:06 -0500
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

Hello mailers,


We are currently migrating our small service (iroco.co) from dovecot to cyrus, mostly \
for efficiency reasons : with this study : \
https://greenlab.di.uminho.pt/wp-content/uploads/2017/10/sleFinal.pdf we can see that \
C is still the most effective language, and cyrus is doing a great job gathering \
IMAP/JMAP/CalDAV/CardDAV... around the same data stores (no need to duplicate/proxy \
or whatever). Thanks for all the code, specifications (JMAP), documentations and \
thoughts. It is a great digital common and we hope that we will be able to contribute \
in return.

We have currently only one server and several domains (there could be customs, and we \
didn't want to "specialize" the servers by domain), so we deployed a SNI/TLS proxy \
termination with HAproxy (that we will document). Before, we were using a small \
Svelte webapp that was sharing a postgresql database with dovecot (setting the quota \
was made by the webapp, updating the DB). So we've chosen to use SQL backend with \
cyrus also, thinking that we could "share" information & state.

For example, we wanted to update the quota value for an account, and we've seen that \
the content of the db is encoded. We then thought that we could decode and set a new \
value. But was it the proper way of doing so ?

We tried with cyr_dbtool but we have to provide a file, we tried with \
/dbname/quota_db but it didn't make it.

Does that architecture make sense or do we twist the cyrus ecosystem design? If so \
how our webapp could interact with cyrus admin tasks ?   We've seen this draft  \
<https://www.ietf.org/ietf-ftp/internet-drafts/draft-ietf-jmap-quotas-02.html>for \
quotas, is it the way of doing quota change ? 

Thanks for your advises and happy Christmas eve.

Bruno Thomas

------------------------------------------
Cyrus: Devel
Permalink: https://cyrus.topicbox.com/groups/devel/T034a11289ee47103-M92b9c8c9958d7a11b218cb20
 Delivery options: https://cyrus.topicbox.com/groups/devel/subscription

--16403433661.d3d8d9f3.70112
Date: Fri, 24 Dec 2021 05:56:06 -0500
MIME-Version: 1.0
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE html>
<html><html><html><body><div>Hello mailers,<br /></div><div><br /></div><div><br \
/></div><div>We are currently migrating our small service (iroco.co) from dovecot to \
cyrus, mostly for efficiency reasons : with this study : <a \
href="https://greenlab.di.uminho.pt/wp-content/uploads/2017/10/sleFinal.pdf">https://greenlab.di.uminho.pt/wp-content/uploads/2017/10/sleFinal.pdf</a> \
we can see that C is still the most effective language, and cyrus is doing a great \
job gathering IMAP/JMAP/CalDAV/CardDAV... around the same data stores (no need to \
duplicate/proxy or whatever). Thanks for all the code, specifications (JMAP), \
documentations and thoughts. It is a great digital common and we hope that we will be \
able to contribute in return.<br /></div><div><br /></div><div>We have currently only \
one server and several domains (there could be customs, and we didn&#39;t want to \
&quot;specialize&quot; the servers by domain), so we deployed a SNI/TLS proxy \
termination with HAproxy (that we will document). Before, we were using a small \
Svelte webapp that was sharing a postgresql database with dovecot (setting the quota \
was made by the webapp, updating the DB). So we&#39;ve chosen to use SQL backend with \
cyrus also, thinking that we could &quot;share&quot; information &amp; state.<br \
/></div><div><br /></div><div>For example, we wanted to update the quota value for an \
account, and we&#39;ve seen that the content of the db is encoded. We then thought \
that we could decode and set a new value. But was it the proper way of doing so ?<br \
/></div><div><br /></div><div>We tried with <code style="border-radius:3px;border:1px \
solid #ccc;padding:1px \
3px;background:#f6f6f6;font-family:menlo,consolas,monospace;font-size:90%;">cyr_dbtool</code> \
but we have to provide a file, we tried with <code \
style="border-radius:3px;border:1px solid #ccc;padding:1px \
3px;background:#f6f6f6;font-family:menlo,consolas,monospace;font-size:90%;">/dbname/quota_db</code> \
but it didn&#39;t make it.<br /></div><div><br /></div><div>Does that architecture \
make sense or do we twist the cyrus ecosystem design? If so how our webapp could \
interact with cyrus admin tasks ?&nbsp;<br />We&#39;ve seen <a \
href="https://www.ietf.org/ietf-ftp/internet-drafts/draft-ietf-jmap-quotas-02.html">this \
draft </a>for quotas, is it the way of doing quota change ? <br /></div><div><br \
/></div><div>Thanks for your advises and happy Christmas eve.<br /></div><div><br \
/></div><div>Bruno Thomas<br /></div><div><br /></div><div id="topicbox-footer" \
style="margin:10px 0 0;border-top:1px solid \
#ddd;border-color:rgba(0,0,0,.15);padding:7px 0;">

<strong><a href="https://cyrus.topicbox.com/latest" \
style="color:inherit;text-decoration:none">Cyrus</a></strong>  / Devel / see
<a href="https://cyrus.topicbox.com/groups/devel">discussions</a>
  +
<a href="https://cyrus.topicbox.com/groups/devel/members">participants</a>
  +
<a href="https://cyrus.topicbox.com/groups/devel/subscription">delivery&nbsp;options</a>
 <a href="https://cyrus.topicbox.com/groups/devel/T034a11289ee47103-M92b9c8c9958d7a11b218cb20" \
style="float:right">Permalink</a> </div>
</body></html></html></html>
--16403433661.d3d8d9f3.70112--


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic