►
From YouTube: PWA Studio Community Meeting 24 April, 2020
Description
Demos for GraphQL persistence, clearing sensitive data, and a quick overview of current roadmap and upcoming projects for Magento PWA Studio.
A
A
Right,
happy,
Friday
everybody
thanks
again
for
joining
another
PwC,
do
communities
think
so
today
we
have.
We
have
a
couple
demos
from
the
team.
We
have
a
couple
of
topics
to
run
through
just
on
kind
of
upcoming
projects
to
help
out
the
community
and
then
we'll
take
another
look.
I
know:
we've
done
this
before
we'll
take
a
look
at
the
roadmap
talk
about
what
the
team
is
currently
working
on,
what
the
state
is
and
what's
coming
up
just
give
everyone
a
good
overview
of
that
and
then
we'll
kind
of
wrap
up
from
there.
So
Steven.
B
So
that's
why
I
like
to
just
use
the
local
storage
view,
but,
as
you
can
see
over
here,
I
have
a
I.
Have
a
guest,
cart.
I
filled
out
some
shipping
information
and
I
haven't
yet
selected
a
shipping
method,
even
though
there's
only
one
option
available,
but,
as
you
can
see
in
the
in
the
cache,
we
have
a
cart
entry
and
that
cart
entry
has
the
email
for
the
user
example.
Example.
The
shipping
address
that
we've
submitted.
B
Will
it's
a
cache
key
that
references
this
this
in
memory
address
here
or
here?
So
all
this
is
sort
of
PII
about
the
user
that
we're
storing
for
display
purposes,
and
so
we
have
like
an
in
a
way
to
to
display
the
data
to
render
the
data
for
the
user.
If
they
refresh
the
page.
You
know
we
don't
want
to
have
to
make
another
call
to
the
server
you
saw.
That
was
pretty
fast
for
what
was
already
filled
out
in
in
the
store.
B
So
you
know,
obviously,
if
I'm
a
guest
user,
maybe
I'm
on
a
shared
computer
or
something
or
maybe
I'm
on
a
website.
I
haven't
used
before
I'll
have
some
information
in
that
in
the
checkout
and
when
I,
complete,
checkout
I
want
it
to
be
I
want
all
my
data
to
be
to
be
wiped
right.
Obviously,
if
it's
a
shared
computer,
you
wouldn't
want
your
information
accessible
by
some
knowledgeable
person,
some
technical
person
that
might
go
snooping
around
local
storage
or
some
third
party
script,
that's
running
on
the
clients
page.
So
what
my
pr's
do?
B
B
So
one
thing
we've
done
is
anywhere
that
we
have
a
mutation
that
takes
the
Kart
ID.
So,
first
of
all,
all
that
data
that
you
saw
in
the
store
is
sort
of
accessible
by
the
card
ID.
So
that's
important
to
know.
So,
if
you,
if
anybody,
has
a
card
ID
and
they
make
a
query
to
your
back-end
for
card
information
on
a
guest
card,
they
can
get
that
information
off
users.
You
have
to
have
a
bearer
token,
so
that's
a
little
bit
safer
but
still
like
if
you
it's
technically
leaky,
so
we
don't
want
to.
B
We
don't
want
to
expose
those
card
IDs
if
we
don't
have
to,
though
mutations
throughout
the
app
that
take
card.
Ids
now
have
to
be,
and
now
have
to
have
a
connection
key
and
we've
just
come
up
with
some
some
random
key
name
for
these.
It's
just
the
mutation
name
itself.
So
all
the
mutation
you'll
see
that
take
card.
Id
now
have
a
mutate,
a
key
that
that
replace
their
their
prior
key.
B
Before
this,
you
would
see
in
the
cache
place
order
with
like
Open
bracket
card
ID
and
then
you'd
see
the
card
ID
in
plaintext
right
there.
So
Andy
covered
this
a
few
weeks
ago,
and
this
is
just
a
way
to
sort
of
obscure
that
information
from
people
snooping
in
the
in
the
local,
storage
or
third
party
scripts,
and
the
same
goes
for
cart
for
queries
that
reference
cart
data.
So
this
is
the
cart
query
that
takes
a
cart
ID
and
what
we've
done
is
every
time
we
make
a
query
for
cart
data.
B
B
So
checkouts
not
fully
done
yet
so
I'm
just
going
to
show
you
an
example,
but
when
I
was
assumed,
we're
on
a
shared
computer
and
I've
come
here
and
I'm
going
to
sign
in
as
another
user
when
I
sign
in,
we
don't
refresh
the
page
but
you'll
notice
that
the
cache
has
just
done
a
bunch
of
stuff
and
it's
and
it's
updated.
There's
a
different
card.
Id,
there's
a
different
email.
Different
shipping
address,
there's
no
reference
in
the
cache
to
the
guest
users,
information
that
was
filled
out
previously.
B
Obviously,
if
they
left
there
the
page
open,
it
would
be
there.
But
you
know
it's
it's
it's
just
one.
It's
just!
It
just
clears
out
that
information
on
when
a
new
user
logs
in
and
it
does
that
by
these
new
functions,
delete
cache
entry
that
I
created
and
we're
targeting
the
specific
key
of
cart,
and
this
dollar
sign
card
is
a
bug.
I
just
ran
into
this
morning.
Apollo's
in
memory
is
actually
storing
stuff,
so
I
had
to
also
target
that.
B
So
that's
that's.
Basically,
if
you
look
well
a
bunch
of
references
to
delete
cache
entry
throughout
the
app
anytime
that
we
need
to
clear
the
cart,
we're
just
going
to
target
these,
these
cache
keys
and
this
function
will
check
the
client,
the
Apollo
cache
data,
delete
it
and
then
tell
the
persister
to
remember
those
remember
that
deletion,
so
so
so
yeah.
B
B
B
So
if
I
go
to
checkout
here
and
I've
signed
in
as
this
user,
you'll
see
the
first
time
that
we
load
this
the
checkout
page
as
this
user,
even
though
I'm
logged
in
and
the
cart
has
a
bunch
of
data,
there
was
sort
of
a
cascade
I,
don't
know
if
the
video
caught
it,
but
there
was
a
cascade
of
data
where
the
graph
QL
server
or
the
the
client
was
saying.
I
need
this.
B
We
have
a
checkout
step
and
this
is
not
coming
from
graph
QL.
This
isn't
a
fuel
that
you
can
access
in
graph
QL
and
if
you
refresh
the
page,
it's
just
going
to
open
right
back
up
to
where
you
were
and
there's
no
network
calls.
If
you
look
right
now,
there's
like
for
network
calls
if
I
delete
the
Apollo
cache
entirely
and
refresh
this
checkout
page,
there's
gonna
be
a
lot
more
Network
calls
that
get
made
to
get
all
the
data
that
we
need
to
render
this
page.
B
B
The
way
I
did
this
check
out
step
four
for
the
check
out
page
in
the
check
out
details.
Query.
This
query
is
made
when
a
user
lands
on
the
page
on
the
checkout
page
Apollo
does
all
their
intelligent
stuff.
They
check
to
see
if
they
have
the
data
in
cache,
if
they
don't,
they
make
a
network
halt.
But
here
you
can
see.
B
B
Inside
the
used,
checkout
page
says,
is
basically
this
this
callback
here,
if
I'm
on
shipping
address
then
set
the
set
the
step
to
the
next
one,
and
so
this
is
why
you
saw
that
sort
of
waterfall
effects.
We
loaded
up
the
page.
We
didn't
have
anything
in
cash,
we're
on
step,
one.
The
shipping
information
talents
said:
okay,
I,
have
the
data
I
need
now
that
I've
got
it
back
from
graph
QL
so
set
in
step
two
to
step
two
ran
through
the
same
process.
B
It
said:
do
I,
have
the
data
I
need
ok,
cool,
set,
step
two
three
and
now
we're
on
payment
information.
So
I
was
just
explaining
that,
because
that
whole,
like
roundabout
logic,
could
kind
of
just
be
done
inside
this
resolver.
If
we
wanted
to
expose
the
step
that
that
sort
of
logic,
you
know
shipping
data
shipping
data
city
to
the
checkout
page,
so
that
could
be
done
right
here.
Just
say:
if
card
shipping
data
and
card
dot
shipping
in
a
city,
then
we
know
that
we're
on
step
two
etc.
B
I,
don't
think
I
have
anything
else
and
I
feel
like
I've
gone
over
a
lot,
but
the
PR
czar
up.
We
had
a
merged
PR
23:22.
That
was
to
clear
the
sensitive
data.
We
realized
that
I
realized
in
working
on
this
PR
23:54
that
we
weren't
actually
doing
it
correctly
because
of
the
way
I
had
done
some
stuff
with
persister.
So
if
you
want
to
check
it
out,
you
can
see
that,
but
this
P
are
still
in
progress
23:54
and
it
just
fixes
how
the
persister
was
was
was
functioning
yeah.
That's
it
any
questions.
B
I
mean
yeah
talking
through
us,
I
realized
that
was
the
last
stuff,
but
but
it's
all
it's
all
very
important.
You
know
we
want
to
make
sure
that
nothing
is
exposed
to
a
malicious
user,
though
so
this
is
you
should
it's
just
better
security.
Your
clients
will
be
happier.
You
know.
This
is
all
good
and.
B
B
C
D
D
B
Wish
you
I
own
estate,
didn't
cascade
though
it
ideally,
it
would
just
boom
you're
on
the
right
step,
but
yeah,
that's
a
little
more
logic
in
the
checkout
page
than
is
necessary
or
the
night
that
I
feel
is
necessary
like
right
now
the
checkout,
the
checkout
page,
doesn't
know
anything
about
its
children.
The
steps
that
we've
added
so
use
people
are
free
to
add
their
own
steps
that
they
want.
A
A
good
idea,
oh
right,
so
that's
it
I!
Think
in
terms
of
demo
topics,
almost
anybody
on
the
cause
as
a
specific
demo,
they
learned
of
one
third
next
up
I,
wanted
to
jump
into
the
product
roadmap,
really
quickly
talk
about
where
we
are
today,
where
we're
going,
give
everybody
a
quick
overview
of
that.
So
let
me
pull
that
up.
A
That
is
not
it,
so
everyone
on
the
call
should
have
seen
this
should
be
familiar
with
this
and
I've.
Seen
this
before.
We've
talked
about
it
on
previous
calls.
What
you're
looking
at
is
a
view
of
the
PWA
studio
roadmap
for
2020
overlaid
on
top
of
the
graph
QL
roadmap,
obviously
because
there's
a
very
tight
dependency
on
the
features
that
we're
working
on
and
the
availability
of
graph
QL
in
that
area.
A
So
over
the
the
first
quarter,
you
know
you've
seen
the
progress
from
the
team
on
you
know
not
only
launching
page
builders
support
the
navigation,
but
the
more
recent
work
for
area
that
improved
cart,
experience
and
now,
with
the
with
what
the
team
is
working
on
directly
with
the
checkout
experience.
So
all
of
those
things
are
still
have
are
either
complete
or
her
are
close
to
being
complete
with
checkout.
A
Before
we
move
on
to
these
items,
you
see
in
that
q2
column,
keep
in
mind
that
this
roadmap
view
is
is
is
expressed
in
terms
of
calendar
year
and
calendar
quarters,
not
Adobe's
fiscal
year
in
fiscal
quarters.
If
you
were
following
along
and
playing
that
game,
so
42
right
the
next,
the
next
kind
of
big
feature
that
we
have
up
in
the
pipeline
is
my
account.
You'll
start
to
hear
more
news
from
us
on
my
account
and
see
more
of
the
same
types
of
demos,
we've
done
for
kind
of
design
and
usability
usability.
A
Those
studies
are
actually
going
on
I
think
this
week
or
beginning
of
next
week,
so
at
an
upcoming
demo,
we'll
we'll
get
a
good
look
at
the
design.
From
my
account
before
the
team
starts
implementing
it
following
the
check
out
work
and
then
you
know
there
have
been
a
few
questions,
I
think
in
community
slack
on
hey
where's.
The
support
for
you
know
bundled
products
original
files,
downloadable
products
that
work
is
also
staged
for,
following
my
account.
A
So
if
you're
curious
about
kind
of
what's
coming
along
in
my
account
again
we'll
have
that
demo
coming
up
and
that's
kind
of
the
the
bulk
of
the
work
we're
targeting
for
q2
as
well
as
just
doing
some
minor
clean-up
on
the
mini
cart
experience
that
exists
in
venue
today.
So
that
way,
we
can
make
sure
that
mini
cart,
cart
and
checkout
that
we've
all
worked
on
over
this
last
quarter
are
available
in
the
app
and
you
know
present
a
cohesive
shopper
experience.
A
So
all
that
will
be
landing
or
being
started
in
q2
and
then
further
out
there
in
q3.
Obviously,
you
see
the
items
run
internationalization
the
good
news
there
is,
as
everyone
on
this
call
is
likely
aware
of,
because
we've
had
Chris
brought
bender
here
on
the
call
demoing
his
PR
for
internationalization.
Is
that
he's
given
us
a
good
head
start
and
accelerating
of
that
work,
we're
looking
at
it
from
a
team
perspective?
You
know
how
do
we,
how
do
we,
you
know
long,
zetlen
Jimmy,
looking
at?
A
How
can
we
determine
the
next
steps
there
and
keep
that
thing
moving
forward,
but
good
news
there
on
everyone?
That's
looking
for
that
solution
around
multi
locale,
and
then
we
have
some
additional
features
that
we've
listed
there
in
q3
that
we're
targeting
as
well
that
are
further
out
still
in
the
kind
of
research
and
design
phase.
So
any
questions
on
kind
of
the
roadmap,
where
we're
at
what
we're
working
on
things
that
maybe
anybody
on
the
call
from
the
community
would
like
to
see
us
working
on
that.
You
don't
see
represented
here.
A
Awesome
we
were
doing
all
the
right
things.
Community
loves
it.
Everybody
loves
us,
that's
the
takeaway
great.
So
let
me
stop
sharing
really
quick
for
community
corner
Jordan
could
not
make
the
call
today
we
do
have
Lars
on
the
call
Lars
I.
Don't
think
that
you
have
anything
particularly
to
present
for
community
corner
right.
Correct
me
if
I'm
wrong.
E
No
I
don't
have
anything
to
present
every
wish
Jordan
and
we
are
speaking
about
of
a
couple
ideas
to
set
up
a
cue
page
or
something
like
that,
but
yeah.
It's
currently
nothing
what
we
can
present,
how
it
should
look
like
and
but
yeah.
Maybe
we
can
present
something
next
week
or
in
two
weeks,
bird
yeah,
we're
planning
some
things
and
starting
a
conversation
here.
Yeah.
D
D
A
A
great
call-
and
maybe
we
can
you
know
between
James
of
ours-
start
a
quick
thread
in
the
community.
Slack
I
think
anybody
in
the
community
that
has
generally
has
questions
that
yet
that
are
common
questions
that
you've
had
you've
seen
in
the
community
around
PW
studio
how
to
get
started
with
it.
How
to
develop
on
pwace
to
do
you
know
that
content
is
going
to
be
great
to
help
us
inform
what
what
jimothy
is
building
into
that
FAQ?
So
if
you
have
any
of
that
feedback
for
us,
please
feel
free
to.
A
A
So
if
you're
curious
about
picking
up
some
work
and
contributing
that's
the
great
place,
a
great
place
to
start,
is
this
community
backlog
project
in
the
prioritized
column
you
can
reach
out
to
Lars,
you
can
reach
out
to
Jordan
who
can
help
direct
you
to
get
him
started
on
contributing
and
there's
something
on
the
board,
not
on
the
board
that
you
would
love
to
see
in
the
project.
There's
a
you
know.
You
can
also
create
an
issue
within
the
project
and
then
we'll
start.
A
We
have
a
weekly
grooming
session
where
we
pull
these
things
in
and
they
obviously
make
their
way
into
the
prioritized
column.
So
you
know
that
is
also
something
that
you
can
do,
but
if
you
have
any
questions
on
a
community
contribution,
how
you
can
get
involved
in
the
project
reach
out
to
Lars
reach
out
to
Jordan
reach
out
to
myself,
and
we
definitely
appreciate
you
and
everyone
that
has
been
involved
and
will
be
involved
in
kind
of
contributing
things
back
to
us.
So
there
you
go.
A
C
Nothing
that
I
yeah,
nothing
that
I
have
prepared,
but
I
am
super
excited
to
start
sharing
through
other
means,
the
documentation
for
the
upcoming
transforms
and
additional
features
to
the
extensibility
system.
I
am
pleased,
I,
guess
to
hint
that
we
have
more
sophisticated
extension
concepts
now,
including
the
ability
to
do
text,
modifications
or
abstract
syntax
tree
modifications
to
any
javascript
file
in
the
build
and
to
be
able
to
target
that
from
any
dependency
that
has
that
file
effectively.