►
From YouTube: IETF102-JMAP-20180716-1330
Description
JMAP meeting session at IETF102
2018/07/16 1330
https://datatracker.ietf.org/meeting/102/proceedings/
A
B
A
C
D
C
A
C
Beer
is
a
good
excuse
all
right.
Well,
while
we're
here,
let's
flick
to
the
note
well,
which
everyone
can
read
upside
down,
of
course,
and
I'm
sure
you
all
know
it
well.
By
now
welcome
to
the
jam
obsession,
we
have
six
remote
people
and
looks
like
around
about
9:00
in
the
room,
which
is
higher
than
average.
A
A
E
C
E
C
This
is
gonna,
be
a
great
session.
Welcome
everybody
blue
sheets
are
making
their
way
around.
We
have
a
rough
agenda,
15
minutes
on
gem,
EPCOR
50
minutes
on
gem,
atmail
20
minutes
to
talk
about
extensions
and
ten
minutes
for
any
other
business.
This
is
obviously
fairly
rough
and
we'll
see
how
we
go
with
that.
Yes,
but
let's
get
started
with
core
and
we
have
Neil
is
somewhat
awake.
So
if
you
feel
like
speaking
to
any
of
this
Neil,
put
your
put
your
virtual
hand
up
and
I'll
pop
you
up
there.
C
A
C
F
G
F
Yeah,
this
reminds
me
of
something
else
partially
related.
At
least
early
version
of
the
document
had
lots
of
arrow
types
defined
for
different
methods,
and
it
was
very
hard
to
review
and
figure
out
whether
there
was
supposed
to
be
the
same,
and
just
some
didn't
apply
to
some
of
the
methods
or
whether
it
was
a
single
set.
Having
a
single
register
would
help,
but
I
know
it's
it's
it's
sort
of
one
a
particular
thing
of
trying
to
review
and
maybe
implement
and
figure
out
what
applies
not
all.
C
H
Yeah,
let's
see
the
we've,
though
I've
redone
in
the
spectrum
I
think
you
look,
then
because
they
they
are
an
owl
together
in
the
speckles
like
these
are
the
standard
errors
that
return
to
any
of
the
method.
It's
only
if
there's
one,
that's
a
specific
to
a
particular
method.
Is
that
just
with
that
method,
so
they
are
already
grouped
together.
I
think
you
expect
my
feeling
is,
it
seems
to
most
people
don't
seem
to
think
we
need
one
of
this
stage
as
a
registry
and
based
on
our
lack
of
experience.
H
C
Fertile
later,
all
right
just.
G
C
F
C
As
the
consumer
decide
generally
suppressing
the
push
subscription
that
pushes
a
common
case
that
we
run
into
is
where
you
have
an
alerts:
folder,
that's
receiving
an
email
every
30
seconds
all
day,
and
you
don't
want
your
phone
to
wake
up.
For
that,
just
to
say,
there's
nothing's
changed
in
the
Inbox
right.
F
H
At
the
moment
you
can
register
for
which
types
he
care
about.
So
if
there
was
an
extension
that
had
calendars
as
well
and
you're,
only
making
a
male
clients,
you
don't
need
to
receive,
pushes
or
calendar
types.
But
yes,
you
would
receive
at
a
time
that
any
change
to
they
any
email
and
could
be
a
lot
of
changes,
not
what
the
app
is
doing.
If
the,
if
seeing
the
out
of
my
hand,
pushes
is
notification,
impossible,
Ron
said
and
I
don't
know.
H
If
there's
a
situation
where
the
device
might
start
people
making
make
too
much
as
well,
because
they're
happy
and
restrictions
on
how
much
he
weighs
you
up
in
the
background
Wow,
but
it
could
be
pretty
expensive
because
it
you
have
to
the
server
would
have
to
look
at
all
of
the
changes
the
valuation
I
gave
over
and
then
whether
that
will
wear
whether
pretend
push
hold
on
so
I
think
it
would
probably
have
to
be
optional.
An
optional
duck,
I
wave.
I
H
C
C
C
F
F
H
No
yes,
sir,
my
client,
author
hat
on
I
will
be
fine
dealing
with
the
complexity.
I'm
gonna
get
a
big
performant
win
from
the
server
it's
much
faster.
It
seems
I,
think
so.
I
think
it
really
is
a
question
of
do
we
have
either
any
data,
or
at
least
knowledge
based
on
plantations
that
it's
gonna
be
a
lot.
H
G
C
H
C
I
I
A
C
A
All
Zakes
it
so
Neil
says
if
the
server
just
has
the
data
available,
I
suggested
on
the
list
just
return
it
so
I.
The
I
have
the
issue
I
have
with
that
is
then
them
were
inconsistent.
That
I
would
rather
have
predictable
results
that
when
you
ask
for
something
you
get
a
certain
thing
and
when
you
don't
ask
for
it,
you
get
a
certain
thing.
Yeah.
G
C
It's
comparative
thing
with
is
list
special
use.
You
know,
I'm
at
a
lot
of
servers
will
return
the
special
use
now,
whether
requested
or
not,
and
there
are
clients
out
there
that
assume
that
behavior
and
break.
If
you
don't
return
the
special
use
data,
even
if
it
wasn't
requested
right.
Yes,
it's
a
real
thing.
So.
A
C
Yeah
this
this
is
particularly
interesting
if
we
then
had
an
extension
that
allowed
you
to
have
a
best-effort
sort
rather
than
an
exact
sort,
where
you
could
say
just
go,
find
me
30
matches
now
and
give
me
them
with
a
state
string
that
lets
me
know
what
I've
already
returned
so
that
I
can
I
can
then
return
the
next
page
and
so
on,
and
this
is
the
best
effort
match
search
engine
type
of
case
where
there's
a
pool
of
messages
of
unknown
size.
I
can
see
a
map
being
useful
for
this
kind
of
thing.
C
If
you
don't
have
to
calculate
the
totals,
but
if
you
do
have
to
calculate
the
totals
that
suddenly
becomes
very
difficult
to
to
know
exactly
what
may
or
may
not
match
in
your
pool
of
messages
all
right.
So
it
looks
like
we've
come
to
a
conclusion
that
having
the
client
explicitly
asked
for
the
total,
if
at
once
it
is
reasonable
but
giving
the
total
if
you
haven't
been
asked
for
it
is
then
not
good
cool.
A
C
Is
exactly
the
same
in
J
map
where
you
do
a
query
with
a
filter?
Obviously
a
filter
of
in
mailbox.
You
might
have
an
efficient
count
for,
but
in
mailbox
and
matches
from
Bari
is
probably
less
likely
to
have
a
pre
calculated
count
up
front,
though
a
server
that
was
clever
enough
to
cache
common
queries
might
say
well,
I've
been
asked
for
how
many
messages
of
the
head
from
Bari
every
five
minutes
for
the
last
24
hours.
Maybe
I'll
preemptively
keep
that
cash
up
to
date
for
a
while.
C
A
C
The
correct
answer
is:
no:
if
you
don't
see
anything,
that's
not
I'm,
not
seeing
a
vast
number
of
people
jumping
up,
so
we
will
proceed
to
work
in
group
last
call
once
we've
integrated
these
changes,
then
yeah.
Alright,
next
J
map
male.
There
are
three
items
in
here,
starting
with
the
email
groups.
This
discussion
has
been
happening
on
the
mailing
list.
C
This
is
an
example
of
how
it
looks
latest
conclusion
from
the
mailing
list
seems
to
be
that
we
do
need
to
support
email
groups,
and
the
question
is
whether
this
is
the
correct
way
to
do
it.
It's
basically
either
this
or
a
two-level
system
which
some
of
the
libraries
that
use
they
they
group
it
into
either
the
unnamed
set
or
named
group
sets.
F
C
All
right
good,
we're
happy,
then
that's
done
things
to
take
to
be
extensions
and
we've
added
a
new
thing
to
that,
which
is
the
filtered
push.
A
vacation
response
will
be
separated
out
from
the
main
email
of
men.
Men,
mail,
spec
into
a
separate
extension
and
search
within
attachments
was
optional.
So
moving
that
into
an
extension.
F
C
C
That's
basically
the
two
level
hash
or
two
level
array
where
you
have
an
array
of
group
name
to
address
as
the
address
specs
that
are
associated
with
it,
which
is
another
way
to
do
things,
but
it
makes
it
more
complex
in
the
basic
case
where
you
would
then
have
a
top-level,
no
name.
I,
oh
he's,
saying
yeah
see
ignore
it's
all
a
hack
cool
vacation
response,
Neil
j.a
did
you
have
a
response
to
that?
Why
why?
C
C
At
the
same
time
as
a
common
extension,
then
it's
still
quite
easy
to
add
to
both
clients
and
servers
as
a
reason
to
use
jam
app,
though,
on
the
next
page,
we're
going
to
be
talking
about
full
sieve,
which
is
making
sure
that
you
can
do
full
server
and
vacation
without
them.
Stomping
on
each
other
will
be
an
interesting
question.
A
G
Yeah
Chris
Newman
I
would
have
a
slight
preference
for
just
adding
a
capability
name
for
vacation
but
leaving
it
in
the
base
spec
on
this,
then
you
end
up
with
an
example
of
an
extension
in
the
base
spec.
However
yo
we
definitely
do
want
to
make
sure
we've
got
the
sieve
interaction.
Sorted
yes,
mm-hmm
I
will
say
our
server
supports
full
sieve
and
has
a
legacy
vacation
mechanism-
and
you
know,
we've
worked
out
making
that
work
together.
So
it's
a
solvable
problem.
C
A
I
think
we
actually
were
leading
the
other
way
on
vacation
and
saying
that
we
would
like
to
put
it
in
the
base
spec
as
an
optional
feature,
so
that
we
have
the
extra
capability,
the
extension
mechanism
and
one
example
of
it
in
the
base
spec.
But
it's
clearly
labeled
as
as
an
yep.
That's
what,
as
an
optional
feature.
C
C
A
fantastic
job
here,
lovely
and
here's.
The
first
question:
do
we
need
to
update
the
Charter?
Our
deliverables
at
the
moment
are
just
core
and
male
plus
supporting
documents
and
tools,
but
they
don't
explicitly
call-out
extensions
as
something
that's
in
charter
for
this
group,
we'd
planned
to
reach
other
for
calendar
and
contacts,
but
maybe
just
updating
the
Charter
to
say
extensions
to
jameth
or
in
scope
will
give
us
yeah.
A
F
I
think
opinions
differ.
You
know
some
people
don't
like
already
open
and
the
charters.
Another
I
mean
it
sort
of
depends
whether
you
have
a
list
of
specific
extensions
you
already
know
about,
and
if
you
can
put
them,
as
in
the
chatter
saying
you
know,
we
are
going
to
work
on
this
first
and
then
we
might
recharter,
or
you
know
you
can
take
others
once
you're
done
with
this.
That
might
be
more
agreeable.
Well.
C
C
E
Saw
the
the
genesis
of
this
was
a
colleague
had
asked
about
J
map
over
WebSockets
and
I
happened
to
be
playing
with
WebSockets
for
something
something
else
so
I
hacked
up
some
codes
in
the
cyrus
jameth
implementation
and
brought
up
a
0-0
draft
to
document
what
I
did
and
Alexei
found
it
interesting.
So
here
we
are.
Oh
sorry,
hey
you
got
a
clicker
there.
You
go
yeah,
so
this
pretty
much
a
straightforward
sub
protocol
and
WebSockets
akin
to
what
XMPP
does
I
set
up.
E
E
Sorry,
one
of
the
benefits
were
two
main
benefits
that
we
found
with
this
one,
one
of
which
is
you
get
bi-directional
compression
using
the
WebSocket
compression
extension
we're
currently
with
with
J
map
I,
don't
believe,
there's
any
browsers
that
compress
request
bodies.
If
there
are
please
let
me
know,
it's
also
a
little
bit
less
lower
overhead,
because
you
don't
have
every
single
API
request
being
authenticated.
Fine
occation
is
done
upfront.
E
E
If
we
found
the
need
sample
discovery,
you
know
hit
the
endpoint
and
there's
the
URL
that
you
want
to
use
example
handshake
for
those
that
maybe
haven't
seen
how
this
works
uses
the
HTTP
one
upgrade
mechanism,
there's
a
specific
web,
socket
headers,
sub
protocol
game
app
and
in
this
particular
case
it's
trying
to
negotiate
compression
and
comes
back
with
the
101
and
you're
ready
to
ready
the
rock
and
roll.
At
that
point
similar
for
HTTP,
it
uses
a
modified
Connect
method
which
is
signified
or
signaled
by
that's
a
particular
bit
in
the
settings
frame.
E
E
Okay,
couple
issues
that
I've
run
across
as
I
was
implementing
this
because
everything
is
JSON.
You
can't
have
the
typical
HTTP
response
line
this
the
status
line
come
back,
so
any
top-level
errors
related
to
bad,
JSON
or
what-have-you
needs
to
be
in
a
JSON
proble
problem
details,
object,
which
I
think
neil
has
recently
added
to
his
spec.
E
One
question
I
had
was:
do
we
need
to
have
a
way
to
signal
to
the
client?
What
object
is
being
returned,
whether
it's
an
actual
response
object
or
a
problem
details
object?
My
initial
thought
was:
the
client
probably
could
just
figure
it
out
based
on
context
of
what's
in
there.
But
that's
that's
an
open-ended
question.
E
This
first
point
here
was
something
Neil
brought
up.
Yeah
I
currently
have
this
implemented
where
everything
is
processed
in
order,
just
like
you
would
with
number
J
map.
If
you
move
this
for
what
we
want
to
have
out
of
order
processing
and
if
so,
we
obviously
need
a
way
to
indicate
which
response
has
been
sent
back,
simple
ID
property
in
the
response
in
the
request,
same
response,
we'll
do
that
and
the
other
issue
would
would
be
because
this
this
connection
is
open
all
the
time.
E
E
C
Out
of
great
there's,
one
question
that
came
up
for
me
here,
which
was
the
ws
URL
property
on
the
gem
obsession
object.
Are
we
allowing
extensions
to
put
things
in
there
because
they
haven't
yet
been
requested
by
using?
So
if
we
add
anything
other
than
underneath
the
the
key
for
the
extension
I?
If.
E
E
C
G
D
A
H
A
C
C
If
you,
if
we're
going
to
support,
seems
then
we
want
a
way
to
manage
sip
via
J
map,
rather
than
having
to
call
out
to
the
Mensa
protocol,
which
is
awful
and
horrible.
I
have
been
tempted
to
put
managed
sieve
support
in
IMAP
day
many
times,
with
a
just,
create
an
IMAP
command
to
allow
people
to
push
their
subscribe
and
having
to
authenticate
separately
and
do
all
this
anyway.
C
G
E
G
A
E
C
A
E
A
C
The
vast
mouth
system-
it
has
a
powerful
rule
builder
that
lets
you
do
sets
of
rules
in
particular
places
and
then
you
can
go
to
the
advanced
screen
and
it
it
has
the
spots
where
your
rules
will
get
filled
into
the
final
subscript
and
you
can
inject
arbitrary
civ
between
each
section.
So
you
can
add
your
custom
sections
as
well
obviously
compile
tests
that
before
letting
you
save
it,
then.
A
J
So
my
point
is
that
17
would
be
a
very
good
customer
feature,
but
I
think
it's
pretty
complex
to
add
the
full
feature
set
down
and
and
to
have
a
nice
interface
to
show
to
through
the
rules,
so
might
be
just
a
subset
of
what
the
sieves,
such
as
what
is
doing
a
run
cube,
for
example,
on
sieve.
We've
just
simple
rules
with
one
condition
and
one
Hashanah
can
be
sufficient
and
and
a
good
trick
to
account.
C
Okay,
so
we
will
keep
discussing
this
one
on
the
mailing
list.
We
don't
we
don't
have
a
conclusion.
That's
close
enough
to
say,
take
any
particular
path
at
this
point,
so
we'll
punt
punt
on
this
one
for
now
generating
mdn
message.
Delivery
notifications
is
this
something
that
there
are
people
interested
in
implementing.
J
A
C
Single
HTML
body,
we
discussed
this
one
in
London,
haven't
done
anything
with
it
since,
but
the
general
concept
was,
if
you
have
a
dumb
client
that
just
renders
HTML
and
that's
all,
then
if
you
throw
it
HTML
that
has
CID
links
in
it,
it
needs
some
way
to
resolve
them
and
and
fetch
the
data.
So
it's
going
to
have
to
understand
blob,
IDs
and
understand
quite
a
lot
of
gel
map.
C
Do
we
want
to
have
a
way
of
asking
the
server
to
generate
you,
an
HTML
body
that
self-contained
contains
either
HTTP
leaves
that
will
fetch
that
have
all
the
authentication
and
then
we'll
fetch
that
blob
from
the
server
somehow
or
even
just
encoder.
This
dot-eu
our
eyes
directly
into
the
HTML
block
here,
render
this
thing
in
an
iframe
or
a
div,
and
it
will
show
you
the
message
as
it's
meant
to
be
presented.
C
C
A
G
Chris
Newman
just
wondering
if,
if
that,
if
anybody
had
standardized
web
I'm,
not
enough
in
the
web
community
know
the
answer
this
question.
But
if
anybody
it's
standardized
on
a
web
archive
file
format,
because
I
know
a
lot
of
browsers
offer
a
save
it
saved
as
web
archive.
So
you
get
the
whole
picture
with
images
and
everything
in
one
blob.
C
A
C
Is
good
because
we're
nearly
at
any
other
business
search
inside
attachments?
This
was
originally
in
scope
for
the
domain.
Males
Beckham
has
been
separated
out,
I,
don't
know
how
much
is
needed
on
this,
whether
we
already
have
text
on
it,
but
who
wants
to
take
this
Neil
J?
He
didn't
seem
too
keen
to
do
it.
The
only
thing
I
want
to
ask.
A
Guess
yeah
I
mean
we
all
kind
of
vaguely
know
what
we're
talking
about.
If
I
have
a
text
message
with
a
PowerPoint
attachment,
do
I
search
the
PowerPoint,
but,
let's
you
know
in
more
cases,
if
I
have
a
multi-part
message
with
multiple
text
parts,
how
many
of
them
are
attachments?
How
many
of
them
are
not?
What's
the
scope
of
this,
what
happens
if
it's
multi-part
alternative?
Is
there
a
difference
in
how
it's
searched
and
so
on?
Chris,
okay,.
G
G
It
it
says,
serve,
it
says
the
the
message,
the
body
of
the
message
contains
this
text
and
it
also
says
servers
aren't
required
to
read
to
return
matches
for
non-text
body
parts.
That's
what
that's
what
the
I've
aspect
says.
There
are
IMAP
implementations
that
do
return
matches
for
non-text
body
parts
right.
G
A
G
A
G
G
A
A
So
if
there's
no
other
other
business,
we
thought
we
would
go
back
to
the
previous
conversation
about
the
null
termination,
crap
stuff
thing,
a
Pete.
You
want
to
pipe
up
Neil
you
want
to
pipe
up.
One
of
you
beats
sitting
there
in
the
corner.
Saying
now,
I'll
leave
me
out
of
this
Dave
Crocker
says
on
the
previous
issue.
The
discussion
is
assuming
that
users
will
know
what
non-text
means
they
won't.
Powerpoint
is
texts
in
their
minds.
A
G
A
C
C
Supports
attachment
search,
they
would
get
something
that
tells
them.
This
server
is
only
capable
of
searching
some
parts
of
the
message
or
the
server
is
capable
of
searching
all
parts
of
the
message,
because
unless
we
require
every
server
to
support,
decoding
images
and
finding
and
doing
text
matches
on
them,
but.
A
B
I
This
is
Jim
pen,
I
I,
don't
think
we
can
satisfy
user
expectations
there,
because
I
mean
the
file
could
be
a
zipped
PDF,
and
you
know
what
compression
formats
are
you
supporting
all
those
things?
I,
don't
think
it's
possible
or
reasonable
for
the
J
map
server
to
understand
all
of
the
different
ways.
These
things
could
be
expressed,
so
I
I,
don't
think
I
mean
I
I.
Think
it's
a
great
aspiration
that
Dave,
the
Dave
Express
is
there
to
try
and
satisfy
user
expectations,
but
I'm
not
sure
it's
possible
to
do
well.
A
So
that's
why
I
think
the
right
answer
is
to
have
a
discussion
of
this
in
the
document
and
then
let's
service
figure
out
what
they're
going
to
do,
because
there's
really
no
way
you're
going
to
convey
to
the
user.
What's
going
to
happen,
the
user
is
just
going
to
be
happy
with
or
surprised
with,
the
search
results.
C
A
K
Doesn't
have
to
implement
this
crap
and
you
know
so:
yeah
I
mean
I
showed
what
I
think
is
legit
j-jason
syntax
and
if
that's
gonna
be
a
complete
pain
in
the
rear
for
someone
to
implement
or
for
most
people
to
implement
then
okay
hack
away
it
just
it.
The
hack
looks
like
the
potential
for
real
implementation,
bugs
it
just
it.
It
just
feels
that
way.
C
So
as
having
a
look
at
that,
the
suggestion
basically
is,
if
there's
no
group,
then
it's
just
an
address,
and
if
there
is
a
group,
then
it
has
different
keys
inside
the
object,
and
that
key
is
a
group
that
then
has
a
list
of
addresses
inside
it,
which
is
very
much
a
direct
mapping
of
how
it
looks
in
the
text.
The
downside
there
is
that
you
need
to
be
able
to
both
go
through
the
top-level
keys
and
inspect
inside
groups
to
find
things
that
have
email
addresses
on
them.
I
L
Yes
right
so
I
look
at
what
we
have
right
now
and
it
does
look
as
someone
said,
like
a
hack
and
it's
clearly
one
that
works,
and
it's
one
that
we're
kind
of
used
to
I.
Wonder
and
I
don't
want
to
get
too
far
into
like
specific
alternatives,
but
isn't
a
very
simple
way
to
solve
this
problem:
to
have
a
list
of
objects.
Every
object
has
a
name
and
email
address,
so
it's
like
a
normal
address
and
if
it's
in
a
group
you
give
it
an
additional
key
of
group
name.
L
So
you
have
a
run
of
seven
addresses
in
the
first
three
are
a
group.
They
all
have
the
same
group
name
and
then
the
next
one
doesn't
you've
left
the
group
like
there.
There
is
a
small
anomaly
problem
where
you
could
have
some
from
out
of
order
or
you
could
you
know,
do
goopy
things
but
I
think
it's
much
less
of
a
hack
and
if
you
don't
know
about
groups
in
your
client,
you've
just
flattened
them
and
probably
no
harm
done
so.