[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'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.<br \
/></div><div><br /></div><div>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 ?<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'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 ? <br />We'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 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