* Thoughts on search-based imap mailboxes
@ 2020-10-02 14:34 Konstantin Ryabitsev
2020-10-02 20:08 ` Eric Wong
0 siblings, 1 reply; 6+ messages in thread
From: Konstantin Ryabitsev @ 2020-10-02 14:34 UTC (permalink / raw)
To: meta
Hello:
While discussing something else on the kernel.org users list, the
question of "virtual inbox folders" came up when talking about imap and
public-inbox. Here's how I imagine it could work in a way that doesn't
require any kind of real user management.
- any site visitor can create a saved search against any index, which
would be generated with a random name (e.g. guid4) and stored on the
server via a simple guid->(index, search terms) mapping
- if imap is enabled, any user can also create an imap "account" that
would also be a guid random string, perhaps with a random password as
well (or no password, since guid4 strings should suffice)
- users can freely associate saved searches with these accounts, perhaps
optionally allowing them to save them with aliases, such that the
record is:
user_guid->(saved_search_guid, alias)
- when logging into imap with an actual random account name, the
associated inboxes would be displayed instead of the general listing
- accounts and saved searches that were not accessed within $DAYS would
be automatically purged
What are your thoughts about this scheme? I like it because it respects
users' privacy, since we cannot map accounts to developers, and because
it doesn't require any kind of central identity gatekeeping. Anyone
setting up a public-inbox mirror can immediately start using this scheme
without needing to set up any kind of identity management backends.
-K
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Thoughts on search-based imap mailboxes
2020-10-02 14:34 Thoughts on search-based imap mailboxes Konstantin Ryabitsev
@ 2020-10-02 20:08 ` Eric Wong
2020-10-03 14:50 ` Konstantin Ryabitsev
0 siblings, 1 reply; 6+ messages in thread
From: Eric Wong @ 2020-10-02 20:08 UTC (permalink / raw)
To: meta
Konstantin Ryabitsev <konstantin@linuxfoundation.org> wrote:
> Hello:
>
> While discussing something else on the kernel.org users list, the
Btw, is this list public?
> question of "virtual inbox folders" came up when talking about imap and
> public-inbox. Here's how I imagine it could work in a way that doesn't
> require any kind of real user management.
>
> - any site visitor can create a saved search against any index, which
> would be generated with a random name (e.g. guid4) and stored on the
> server via a simple guid->(index, search terms) mapping
> - if imap is enabled, any user can also create an imap "account" that
> would also be a guid random string, perhaps with a random password as
> well (or no password, since guid4 strings should suffice)
> - users can freely associate saved searches with these accounts, perhaps
> optionally allowing them to save them with aliases, such that the
> record is:
> user_guid->(saved_search_guid, alias)
> - when logging into imap with an actual random account name, the
> associated inboxes would be displayed instead of the general listing
> - accounts and saved searches that were not accessed within $DAYS would
> be automatically purged
>
> What are your thoughts about this scheme? I like it because it respects
> users' privacy, since we cannot map accounts to developers, and because
> it doesn't require any kind of central identity gatekeeping. Anyone
> setting up a public-inbox mirror can immediately start using this scheme
> without needing to set up any kind of identity management backends.
I actually considered something nearly identical several years
ago with NNTP (and GUIDs or base-64-queries as NNTP group
names).
Maybe it can be done; but temporary storage + expiration
policies would require more admin overhead and possible
permissions problems if JMAP and IMAP are run as different users.
The GUID/base64 mapping might also require a dedicated
client-side tool and might not be very usable from normal MUAs.
Right now, one of the most annoying thing for me with using
public-inbox-imapd is the inability to mark messages as Seen
using normal MUAs.
A client-side tool is likely required anyways, I'm thinking
having saved search functionality in a local tool writing to
Maildir/mbox might be the best way forward as w.r.t. scalability
and offline access (and reading + saving flags from the
Maildir/mbox).
External/detached index I'm working on for global search will
also be appropriate for client-side tooling, I think, as it's
being designed with non-public-inbox data sources in mind, too.
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Thoughts on search-based imap mailboxes
2020-10-02 20:08 ` Eric Wong
@ 2020-10-03 14:50 ` Konstantin Ryabitsev
2020-10-03 19:40 ` Eric Wong
2021-02-05 22:37 ` James Bottomley
0 siblings, 2 replies; 6+ messages in thread
From: Konstantin Ryabitsev @ 2020-10-03 14:50 UTC (permalink / raw)
To: Eric Wong; +Cc: meta
On Fri, Oct 02, 2020 at 08:08:30PM +0000, Eric Wong wrote:
> Konstantin Ryabitsev <konstantin@linuxfoundation.org> wrote:
> > Hello:
> >
> > While discussing something else on the kernel.org users list, the
>
> Btw, is this list public?
It's not, because it's supposed to be just for people with accounts on
kernel.org and for things like maintenance and service outage
notifications. However, discussions routinely veer into various
directions, as one would expect.
> A client-side tool is likely required anyways, I'm thinking
> having saved search functionality in a local tool writing to
> Maildir/mbox might be the best way forward as w.r.t. scalability
> and offline access (and reading + saving flags from the
> Maildir/mbox).
>
> External/detached index I'm working on for global search will
> also be appropriate for client-side tooling, I think, as it's
> being designed with non-public-inbox data sources in mind, too.
Instead of a "client-side" can it just be an intermediary tool that can
run either on the client, or on any other piece of infrastructure? The
main reason I'm interested in that is because several people I know use
very thin clients for their work (chromebooks) and I would like to offer
them this service as a perk of kernel.org instead of forcing them to set
it up and maintain on their own.
-K
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Thoughts on search-based imap mailboxes
2020-10-03 14:50 ` Konstantin Ryabitsev
@ 2020-10-03 19:40 ` Eric Wong
2021-02-05 22:37 ` James Bottomley
1 sibling, 0 replies; 6+ messages in thread
From: Eric Wong @ 2020-10-03 19:40 UTC (permalink / raw)
To: meta
Konstantin Ryabitsev <konstantin@linuxfoundation.org> wrote:
> On Fri, Oct 02, 2020 at 08:08:30PM +0000, Eric Wong wrote:
> > A client-side tool is likely required anyways, I'm thinking
> > having saved search functionality in a local tool writing to
> > Maildir/mbox might be the best way forward as w.r.t. scalability
> > and offline access (and reading + saving flags from the
> > Maildir/mbox).
> >
> > External/detached index I'm working on for global search will
> > also be appropriate for client-side tooling, I think, as it's
> > being designed with non-public-inbox data sources in mind, too.
>
> Instead of a "client-side" can it just be an intermediary tool that can
> run either on the client, or on any other piece of infrastructure? The
> main reason I'm interested in that is because several people I know use
> very thin clients for their work (chromebooks) and I would like to offer
> them this service as a perk of kernel.org instead of forcing them to set
> it up and maintain on their own.
What are the limitations of chromebooks? Small eMMC storage?
Can they run curl, perl and git? I could probably work with
that; maybe just curl + POSIX sh. I get Xapian might be
stretching it, but they probably have SQLite already (though not
the Perl bindings)
CPU and RAM on Chromebooks seem to be as good or more powerful
than the ancient Thinkpads I use.
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Thoughts on search-based imap mailboxes
2020-10-03 14:50 ` Konstantin Ryabitsev
2020-10-03 19:40 ` Eric Wong
@ 2021-02-05 22:37 ` James Bottomley
2021-02-06 0:01 ` Eric Wong
1 sibling, 1 reply; 6+ messages in thread
From: James Bottomley @ 2021-02-05 22:37 UTC (permalink / raw)
To: Konstantin Ryabitsev, Eric Wong; +Cc: meta
On Sat, 2020-10-03 at 10:50 -0400, Konstantin Ryabitsev wrote:
> On Fri, Oct 02, 2020 at 08:08:30PM +0000, Eric Wong wrote:
[...]
> > A client-side tool is likely required anyways, I'm thinking
> > having saved search functionality in a local tool writing to
> > Maildir/mbox might be the best way forward as w.r.t. scalability
> > and offline access (and reading + saving flags from the
> > Maildir/mbox).
Colour me annoyed by the inability to mark email messages as Seen too.
> > External/detached index I'm working on for global search will
> > also be appropriate for client-side tooling, I think, as it's
> > being designed with non-public-inbox data sources in mind, too.
>
> Instead of a "client-side" can it just be an intermediary tool that
> can run either on the client, or on any other piece of
> infrastructure? The main reason I'm interested in that is because
> several people I know use very thin clients for their work
> (chromebooks) and I would like to offer them this service as a perk
> of kernel.org instead of forcing them to set it up and maintain on
> their own.
Actually, I'd like a "server" side solution to this as well because I
want the message "seen" status to be updated on all my devices when I
read a message on any of them. Could this be implemented as something
like a pass-through imap server which has a login infrastructure for
storing the flag metadata but sends most other queries to the backend?
If such a beast existed I'd be happy to run it locally on my cloud
system, and I'm sure Konstantin could run it for all those of use with
kernel.org addresses.
James
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Thoughts on search-based imap mailboxes
2021-02-05 22:37 ` James Bottomley
@ 2021-02-06 0:01 ` Eric Wong
0 siblings, 0 replies; 6+ messages in thread
From: Eric Wong @ 2021-02-06 0:01 UTC (permalink / raw)
To: James Bottomley; +Cc: Konstantin Ryabitsev, meta
James Bottomley <James.Bottomley@HansenPartnership.com> wrote:
> On Sat, 2020-10-03 at 10:50 -0400, Konstantin Ryabitsev wrote:
> > On Fri, Oct 02, 2020 at 08:08:30PM +0000, Eric Wong wrote:
> [...]
> > > A client-side tool is likely required anyways, I'm thinking
> > > having saved search functionality in a local tool writing to
> > > Maildir/mbox might be the best way forward as w.r.t. scalability
> > > and offline access (and reading + saving flags from the
> > > Maildir/mbox).
>
> Colour me annoyed by the inability to mark email messages as Seen too.
Yup, working on it with "lei" :> ("local email interface")
> > > External/detached index I'm working on for global search will
> > > also be appropriate for client-side tooling, I think, as it's
> > > being designed with non-public-inbox data sources in mind, too.
> >
> > Instead of a "client-side" can it just be an intermediary tool that
> > can run either on the client, or on any other piece of
> > infrastructure? The main reason I'm interested in that is because
> > several people I know use very thin clients for their work
> > (chromebooks) and I would like to offer them this service as a perk
> > of kernel.org instead of forcing them to set it up and maintain on
> > their own.
The add-external + "lei q --remote" example below covers that,
I think (it doesn't cache+memoize yet, but it will).
> Actually, I'd like a "server" side solution to this as well because I
> want the message "seen" status to be updated on all my devices when I
> read a message on any of them. Could this be implemented as something
> like a pass-through imap server which has a login infrastructure for
> storing the flag metadata but sends most other queries to the backend?
> If such a beast existed I'd be happy to run it locally on my cloud
> system, and I'm sure Konstantin could run it for all those of use with
> kernel.org addresses.
Right now the plan is to have a way to import+export keywords(*)
or entire messages to/from existing (IMAP|Maildir|mbox) mail
sources.
I don't think there needs to be new servers; existing read-write
IMAP servers should be usable as-is.
# import any unimported messages from a personal mailbox
# into ~/.local/share/lei/store:
lei import imaps://user@example.com/INBOX
# (IMAP doesn't work yet, but mboxes do, Maildir next)
# add LKML as a (remote) external source
lei add-external https://lore.kernel.org/lkml/
# search for everything imported and in remote external sources
# Anything from remote sources will be cached/memoized locally
# by default.
lei q --remote -o ~/tmp/results-Maildir SEARCH_TERMS...
# "-o imaps://..." is on horizon
# open results-Maildir (or mbox or IMAP folder)
$YOUR_FAVOURITE_MUA ~/tmp/results-Maildir
# lei will continue monitoring ~/tmp/results-Maildir for
# keyword changes in background (not implemented)
# Nothing below is implemented, yet :<
# send keywords changes from background monitoring to IMAP
# source (this won't put new messages in the IMAP source)
lei export --kw-only imaps://user@example.com/INBOX
# if your MUA interacted from an IMAP server directly,
# just fetch keywords:
lei import --kw-only imaps://user@example.com/INBOX
# via ssh, assuming $HOST has lei installed, too:
lei export --kw-only ssh://user@$HOST/
"add-external" and "q" are somewhat usable at the moment but
will get fleshed out. "q" has yet to gain "-o imaps://..."
support.
"lei q" will eventually support saved searches + results metadata
caching. My goal is to have "lei q" return usable results in
<100ms if rerunning a previous query (and if the results folder
didn't get clobbered by the user).
I've barely started working on "lei import" (only mboxes so
far), and haven't started on export, yet...
WARNING:
"q" matches mairix(1) behavior by clobbering the output
folder before writing results (-a/--augment disables it
just as it does in mairix(1).
As a safety feature, I will probably have "q" check and
import any edited or uncached messages into its internal
store. "lei import" needs to be fleshed out, first.
The first release will not support removing any
imported/cached messages at all.
(*) IMAP uses "flags", JMAP calls them "keywords". I'm trying
to favor "keywords" since flags may be limited to the few
flags supported by mbox/Maildir formats. I've used "flags"
for a long time and habits are hard-to-break.
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2021-02-06 0:01 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-10-02 14:34 Thoughts on search-based imap mailboxes Konstantin Ryabitsev
2020-10-02 20:08 ` Eric Wong
2020-10-03 14:50 ` Konstantin Ryabitsev
2020-10-03 19:40 ` Eric Wong
2021-02-05 22:37 ` James Bottomley
2021-02-06 0:01 ` Eric Wong
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).