►
From YouTube: Magento GraphQL Community Meeting, 11 October 2018
Description
Agenda:
-) GraphQL-55: Mutations] My Account - Change account information (@nuzil)
-) Questions about GraphQL-176: Show only active CMS Blocks (@vnayda)
-) Query Caching with Varnish prototype (@Alex Paliarush)
GraphQL Community Project Wiki: https://github.com/magento/graphql-ce/wiki
Mind Map: https://www.mindmeister.com/1094880388?t=a5LVAQ71Vq
Backlog (with Zenhub): https://github.com/magento/graphql-ce#boards?repos=128075669&showPRs=false
Backlog (without Zenhub): https://github.com/magento/graphql-ce/issues
Zenhub Chrome Add-on: https://chrome.google.com/webstore/detail/zenhub-for-github/ogcgkffhplmphkaahpmffcafajaocjbd
A
A
B
Yep
good
to
share
my
screen,
elsa
second
hi
guys
so
today,
I'll
show
you
client
turn
consultations.
I
was
poor
request
on
long
time
ago,
and
then
it's
most
affected
several
times
and
during
the
last
days,
well
they're
a
bit
like
full
refactor
of
the
stuff
I've.
It
shows
that
it's
now
currently
my
poor
request,
a
lot
or
not
so,
but
still
at
least
I
can
show
you
what
will
start
how
it
works
now.
So
hope
you
see
my
screen.
B
That's
the
name
of
rotation
journey
where
changed
now
is
called
update,
customer
and
had
input,
input,
parameters
here
and
I,
first,
double
who
start
from
something
smaller.
So
if
you
want
to
update
the
first
name
in
left
and
last
name
of
our
account,
so
that's
how
the
code
looks
currently
and
if
you'll
do
it,
you
can
join
it.
Also
it
here
last
name:
we
deliver
it
back
and
yep.
So
that's
like
the
basic
case,
very
simple
one.
Anyone
to
update
a
first
name
and
last
name.
B
They
also
like
more
complex
cases,
so
generous
call
allows
you
to
update
first
name
last
name:
email
subscription,
yep,
those
four
fields.
If
you
know
in
magenta,
if
you
want
to
update
your
subscripts
your
email,
you
have
to
provide
your
password.
So
if
I'll
try
to
do
something
like
I,
have
this
one.
C
B
B
B
B
Yep
I
guess
yep
here
it
was
updated
to
false
and
I
guess
here
also
it
was
updated
to
false
from
code
perspective.
If
you
call
make
this
one
more
time
and
the
subscription
will
not
be
touched
so
they're
technically
the
it's
not
unsubscribing,
you
the
second
time.
It's
checking
solid
agent.
If
you
already
unsubscribed
and
it's
not
doing
anything.
B
Yeah,
in
one
more
case,
for
example,
it
will
try
to
change
my
email,
which
is,
it
was
correct.
Password
part
I
will
use
email
which
is
already
presented
in
the
system.
I
guess
this
one
then
I
get
another
error
message
to
the
customer
with
the
same
email
address
already
exists
in
saturated
website.
So
that's
your
journey
currently.
What's
this
mutation
is
doing
and
it
addition
in
force
or
a
tune
of
this
mutation?
B
There's
a
customer
object,
so
you
generally
can
expect
not
only
those
fields
there,
but
all
fields
which
are
related
to
your
customer,
like
it's
like
an
example
right
here,
like
default
billion
group
ID,
which
is
not
presented
in
this
code,
but
they're
also
available
for
for
for
fetching
back
yeah.
That's
that's
all
then
have
any
questions
then
feel
free.
A
A
A
For
example,
we
have
some
disabled
group,
we
have
some
enabled
walk
and
we
provide
some
interfere
letters
from
existing
books,
important
indicator.
So
now
we
have
message
like
the
same
as
box
with
no
resistible.
That
does
not
exist.
The
wrote
this
proper
behavior
do.
We
need,
in
this
case,
even
or
disabled,
in
an
existent
book
and
provide
clear
result
only
for
active
books,
for
example.
If
I
query
this
request,
I
will
got
this
result
eliminate
the
block
or
we
need
something
like
data
for
a
cube
blocks
and
also
some
block.
C
I
suppose
we
should
like
in
draft
or
in
general,
you
should
always
return
whatever
you
can
return,
and
then
you
should
also
provide
a
list
of
errors
if
there,
any
so
I
believe,
like
you
show
on
the
screen.
This
is
how
it
should
behave
like
an
active
block,
and
then
you
give
errors
about
inactive
and
non-existent
block.
C
A
C
Okay,
so
I'm
going
to
show
you
prototype,
so
this
is
not
complete
implementation
or
it's
like
not
in
Cabo.
This
is
prototype
and
we
are
just
trying
to
find
a
way
to
enable
clear
occasion
with
varnish,
and
there
are
multiple
ways
how
we
can
land
it
and
that's
why
it
is
not
very
straightforward,
basically
prototype.
C
Another
main
idea
is
that
we
have
some
cash
enabled
similar
to
page
cache
for
HTML,
that
we
have
it
now
on
storefront
that
we
that
will
have
similar
cache
for
graphical
queries
and
just
to
recap,
actually,
we
discussed
the
trees
to
budgetary
cap.
It's
not
possible
to
have
cash
for
post
requests,
enabled
without
adding
module
for
varnish,
and
it's
why
this
is
not
an
option
fastest.
We
don't
want
to
introduce
Independence's
and
that's
why
it
is
making
sense
to
just
enable
get
queries
for
graph
care.
C
It
is
not
prohibited
by
specification,
so
there
should
be
no
issues
from
that
side
and
after
that
we
also
need
to
think
about
query
lens
limit,
but
in
this
case
I
believe
it
is
also
not
a
problem,
because
all
queries
will
be
sent
usual
programmatically
and
they
will
be
generated
automatically
and
limitation
of
about
2,000
characters
usually
exists
on
browser
side,
since
we
are
not
going
to
send
this
request
manually
from
browser
a
should
fine.
Also,
we
are
not
going
to
restrict
access
for
posture
class
because
the
tools
like
graphical
I,
don't
think
they
support.
C
C
Yes,
so
that
it's
like
one
of
bones,
then
also
we
are
trying
to
make
it
as
non-invasive
as
possible
and
we
try
to
leverage
existing
large
structure
as
much
as
possible.
That's
why
we
do
not
introduce
any
new
tags
or
like
cache
tags,
or
we
try
to
avoid
modifications
to
varnish
ratio
and
make
it
seamless
if
you
want
to
enable
to
craft,
if
you
already
have
it
configured
for
your
HTTP,
just
the
HTML
pages
and
over
to
speed.
So
then,
each
of
those
work
for
that
kills
to
be
close
and.
C
Also,
we
have
some
tricky
scenarios,
probably
add
more
scenarios
here,
like
one
of
the
two
key
scenarios.
Let's
say
if
you
have
product
query,
which
contains
list
of
category
assignments
in
this
case,
if
let's
say
modified
category,
to
which
this
product
inside
product
query
cache,
also
be
invalidated.
C
On
the
other
hand,
if
you
don't
have
categories
requested
in
specific
graph
kill
query,
category
modification
should
not
affect
the
cache
of
that
product
query,
and
this
is
one
of
one
of
three
key
parts,
because
actually
I
will
always
keep
a
place,
a
tricky,
but
just
keep
in
mind.
So
now,
I'm
going
to
show
you
the
quick
demo,
I
should.
C
So
what
you
do
you
just
URL
encode
your
query,
your
JSON
graphical
query,
and
you
put
it
as
query
argument,
get
three
argument
and
you
send
this
query
and
you
can
take
a
look
at
this
time
like
which
it
takes.
So
obviously
it
cannot
be
served
by
Magento
again
this
time.
So
this
is
this
varnish
labels
right
now
and
I
have
not
done
any
modifications
to
varnish.
You
know
so
this
is
extended.
Magento
varnish
we
sell
for
now
we
will
probably
fill
or
improve
our
cash
heat
generation,
but
I
mean
enough
for
prototype
purposes.
C
C
C
And
I
said
this
pellet
I:
have
they
don't
save
all?
It
should
be
updated
immediately
and
now
I
send
this,
and
you
can
see
it
takes
like
seven
hundred
milliseconds
and
means
it
was
generated
by
HP,
and
the
subsequent
query
takes
like
seven
milliseconds
now
when
I
try
to
modify
product
out
of
scope
of
this
query
should
be
a
product
21.
C
C
C
Okay,
so
it's
not
this
case,
maybe
that
product,
the
first
one
which
I
mean
the
second
one
which
I
bet-
maybe
it
wasn't
the
response,
and
now
I
would
like
to
show
you
briefly
ideas
behind
the
implementation,
so
we
are
trying
to
make
it
cohesive
and
make
it
a
separate
module,
and
ideally
you
should
not
even
know
that
the
cash
is
there
like
your
implementation,
your
resolvers
should
not
be
modified
for
it,
and
we've
had
to
hit
upon
changes.
One
of
the
changes
is
enablement
of
get
queries,
how
it
is
done
somewhere.
C
He
can
graphical
model,
but
this
is
generic
change,
which
probably
is
not
specific,
so
we
just
enable
cat
clears
also.
We
have
somehow
led
drug
killed.
What
really
should
be
cast
and
for
that
purpose.
For
that
purpose,
we
have
to
modify
schema.
So
we
decided
that
it's
better
to
have
some
declarative
way
of
declaring
cacheable
queries
and
when,
at
one
crafty,
oh.
C
C
C
Because
if
you
just
add
these
products,
it
means
that
you
cannot
achieve
the
scenario
when
your
your
cache
will
be
related.
Only
if
one
of
the
included
products
it
will
be
modified
because,
basically,
if
all
product
queries
have
same
tag,
you
can
unload
it
all
them
together.
Only
and
to
achieve
this
we
have
to,
we
have
to
actually
add
cash
at
cache.
The
cache
headers
after
this
patch
of
graph
QL
from
controller
and
first
of
all
check
is
get
request.
C
Yes,
then
we
add
headers
and
second
now
do
we
have
any
tags,
and
that
is
tricky
part.
Like
how
do
we
get
tags
relevant
for
specific
query,
because
you
may
know
that
graph
Cal
has
sort
of
resolvers,
and
you
know
you
never
know
when
it
wants?
What
results
will
be
executed
for
specific
query,
because
you
can
you
can
basically
construct
your
query
as
you
as
you
wish,
and
the
tricky
part
is:
how
do
we
get
those
cache
tags
and
for
now
the
idea
is
that
you,
we
can
add
one
plugin
for
resolver
interface.
C
It's
after
plugin
for
is
over
interface
means
it
will
be
executed
after
any
resolver
in
the
system,
we'll
process
the
query
and
then
what
we
can
do
we
can
so
for
now,
I
don't
have
region
from
the
schema
implemented,
but
what
we
can
do
we
can
just
read
from
this
schema.
We
can
check
first
of
all
if
this
directive
was
declared
or
not
for
specific
resolver
and
second,
we
can
see
what
tag
is
supposed
to
be
used
and
then
what
we
do.
C
C
So
we
just
take
cache
tag
for
entity
and
we
append
we
append
ID
of
the
entity
vis
underscore,
and
that
is
a
list
of
additional
tags
which
can
be
used
to
flash
cache
for
this
query,
and
the
idea
is
to
make
it
an
invasive
and
the
only
way
which
I
can
think
of
for
now
is
to
make
it
convention
based.
So
we
can
have
convention
that
okay
either
we
will
add
some
array
of
IDs
in
the
resolver.
So
basically,
if
you
look
at
some
resolver
like
this
one,
this
is
product
resolver.
C
C
Second,
we
would
say
have
convention
that
we
might
have
items
like
here
and
then
each
item
will
have
ID
as
he
in
associative
array
and
we
just
destroyed
those
IDs,
and
that
is
actually
what
was
working
for
product
right
now,
because
we
know
that
we
have
at
it,
and
we
can
actually
add
these
rules.
We
can
make
it.
We
can
add
extension
important
and
make
it
possible
for
extension
developer
if
they
have
customers
over
which
has
different
rules
for
extracting
IDs.
They
can
add
these
extractors,
they
can
declare
them
and
they
can
use
it.
C
Another
way
could
probably
be
if
you
have
just
an
array
of
entities
as
a
result
of
his
over.
We
will
just
look
for
ID
field
in
each
item
of
the
array
and
as
soon
as
we
identify
what
ideas
are
resolved
by
these
specific
resolver,
we
can
just
construct
all
the
cash
tags
and
declare
them
in
singleton
class,
which
just
holds
this
tag.
So
basically,
this
class
adds
tags,
and
then
this
plugin
and
the
other
plugin
consumes
tags,
and
it
is
all
part
of
single
module.
C
Graphical
cache
graphical
cache,
and
it
means
that
you
don't
have
to
create
any
modifications
potentially
in
existent
resolvers
or
you
don't
have
to
create,
let's
say
catalogue,
graph,
QL
cash
or
customer
graph,
QL
cash
or
like
I'm.
Sorry
also
focus
on
probably
doesn't
make
sense,
but
it's
a
CMS
same
as
graph
geocache.
A
C
But
as
I
said
like
or
the
only
limitation,
IDs
must
be
somewhere
in
the
resolver
result,
because
if
there
are
no
IDs,
then
we
don't
have
a
way
to
turn
those
entities.
So
this
is
addiction,
but
at
the
same
time
IDs
could
be
present
in
different
elements
in
the
response.
So
we
can
create
extractor,
which
know
where
to
look
for
those
IDs
but
I.
This
must
be
there
and
the
other
option,
which
I
believe
is
less
preferable,
is
probably
in
some
interface
where
it's
all
very.
C
Let's
say
we
have
this
identity,
identity
interface,
which
is
currently
used
by
our
blogs
and
entities,
and
then
it
is
used
by
page
cache
module
to
get
list
of
all
those
taxa
basic
identities
is
a
list
of
tags
and
it
could
be
possible
to
say
now.
Product
resolver
must
implement
this
identity
interface,
but
it
will,
it
will
be
like
invasive,
and
you
will
not
be
able
to
have
cache
as
separate
module
like
it
will
be.
It
will
be
requirement
to
have
it
as
part
of
graph
kill
module
and
it's
why
I?
C
Okay,
so
if
no
other
questions
for
now,
you
can
still
go
back
to
this
task
and
you
can
leave
your
comments
if
you
like,
or
device
I
will
probably
continue
working
on
this
prototype
and
just
clarifying
some
details
and
at
the
same
time
we
will
probably
start
creating
tasks
for
known,
implement
like
known
parts
of
implementation.
Like
add
support
for
that
creates,
because
we
know
that
most
likely,
we
need
this
anyway,
so
we
will
just
create
a
schism
for
other
pieces,
we'll
probably
get
more
details
on
the
next
meetings.
A
You
remember
previous
demo,
Bashar
Santana
station,
so
I
will
show
only
result
of
internal
performance,
a
substance
built,
and
you
can
see
that
after
merchants
progress,
we
have
significant
improvement.
Like
subject
percents
now,
this
poor
quest
is
delivered
to
to
2.30
release,
but
it
will
be
seen
in
a
description.
A
So
I
am
working
right
now
on
some
conflicts
between
2.30
and
to
do
free,
develop
branch
and
I
believe
this
functionality
will
be
merge
it
in
current
developer
hunch
today,
maybe
tomorrow
also,
we
have
a
few
pull
requests.
This
pull
request
a
close
to
finish:
I
communicate
to
easier
Islamic
Azad.
He
is
going
to
show
to
demonstrate
some
final
result
of
graphical
shipping
address
safety
during
checkout
and
manage
address
book.
This
request
is
finished.
We
already
demonstrated
it,
but
we
need
to
change
some
contribute,
fixes
and
I
believe
we
also
can
demonstrate
some
functionality.
A
And
yes,
of
course,
we
have
about
three
tickets.
I
am
going
through
contribution
date,
Romania
at
this
weekend
and
after
that
maybe
also
I
visit
uncle.
There
are
arguing
to
taste
contribution
day
and
I
believe
we
need
to
prepare
some
tasks,
I'm
going
to
do
it
tomorrow
and
finally,
we
have
a
few
tasks.
Still
in
progress
related
to
a
deal
differ
product
types
shot
in
cart,
as
I
said
we
will
have.