►
Description
Target audience: Jenkins developers and advanced users. Presenter: Tim Jacomb.
Tim will take us through the System Read permission and the new ‘read-only’ Jenkins UI. We will enable System Read, see what’s available in each of the 3 read-only permissions and then will do a dive into the code, showing some of strategies required for controls to behave in a read-only manner. Then we will try and add system read support to a plugin during the demo.
References:
* Announcement blog: https://www.jenkins.io/blog/2020/05/25/read-only-jenkins-announcement/
* Jenkins JEP-224: https://github.com/jenkinsci/jep/tree/master/jep/224
A
Well,
I
welcome
to
the
Jenkins
you
a
ux
hug
fest.
Today
we
are
doing
a
demo
about
Jenkins.
They
don't
even
figuration
and
system
with
admission.
So
in
jackhammer
one
of
the
leader
of
this
effort
and
the
most
active
contributors,
we
will
be
showing
the
demo
and
will
also
show
how
to
contribute
so
and
the
floor
is
yours.
B
A
B
Right
well
thanks
everyone
for
coming
so
I'm
just
going
to
show
well
introduce
you
to
the
feature,
tell
you
what's
been
done
so
far
and
then
I
will
take
you
through
a
bit
of
a
demo.
So
the
VA
is
slightly
user
demoed.
To
begin
with
about
the
put
the
features
once
there
and
then
I'll
take
you
through
how
to
actually
add
this
feature
to
more
plugins
and
more
core
components.
B
So
what
it
is
so
the
beginning
of
this
was
for
the
configuration,
is
code
plugin
and
trying
to
introduce,
what's
known
as
a
read-only
UI,
so
that
users
are
able
to
so
the
users
are
able
to
see
everything
but
not
make
changes.
So
it's
very
useful.
If
you
want
your
users
to
contribute
to
a
configuration
of
storage,
it
could
discourage
stored
centrally
somewhere.
B
So
what?
If
we've
got
included
so
far,
so
initially,
it
was
released
and
2.2
to
2,
and
just
before
the
previous
LTS
went
in
with
two
initial
pages,
the
configure
system
page,
which
is
where
the
majority
of
the
system
configuration
is
and
also
the
system
configuration
page
just
so
that's
the
one
that
is
the
table
on
there,
which
has
Island,
took
configuration.
Values
are
between
2.2
to
2
and
2
to
3
8,
we've
added
approximately
8,
more
pages,
which
has
the
majority
of
the
core
components.
B
So
the
majority
ones
that
people
need
should
all
have
been
released.
As
of
Monday,
the
plugin
manager
cloud
configuration
was
where
it
was
recently
added.
We
have
support
and
one
plugin,
the
configuration
is
code
with
pull
requests
open
to
a
couple
more
plugins
currently
and
what
else
one
thing
that
has
changed
recently
was:
initially.
B
It
was
just
going
to
be
about
the
system
configuration
because
the
Wars
already
speak'st,
in
the
read
permission
to
give
job
configuration,
but
as
part
of
this,
we
improved
the
card
so
that
there
be
a
read-only
view
for
jobs
rather
than
just
the
standard
inputs,
and
we
also
extended
this
to
agents.
So
that
users,
with
the
agent
extended,
read
permission
aerial
to
see
agents,
see
the
excavators
configuration,
see
the
agents
logs
pretty
much
everything
available
and
that's
just
been
released
in
the
latest
weekly
2.2
3:8.
B
Okay,
so
I'm
just
gonna
get
started
with
a
demo
of
the
feature
and
then
we'll
go
on
to
seeing
how
how
to
do
it.
So
can
you
see
my
manage
tinkin
screen?
Yes,
alright!
So
this
is
just
a
Jenkins
2.23
8,
which
I
just
downloaded
off
the
the
Jenkins
website.
I've
done
nothing
to
it
other
than
just
tech
configure.
So
if
I
go
to
configure
global
security,
I
will
see
that
there's
a
so
there's
a
number
of
permissions
here.
B
B
So
that
should
just
take
a
few
seconds,
it's
the
very
small
plugin,
and
that's
done
so.
If
I
go
to
configure
global
security,
now
I
will
see
that
system
read,
has
appeared
and
I
also
see
agent
extended,
read
and
job
extend
agreed,
so
I've
got
a
user,
so
I'm
currently
logged
in
as
my
admin
user
I've
also
got
another
user
called
reader
and
I'm
going
to
grant
reader
system
read
job,
read
job
extended,
read
and
agent
extended,
read
so
I'll
just
take
just
give
you
a
quickly
tour
of
what
a
system
read
user
can
see.
B
So
this
is
initially
logged
in
I've
got
two
builds
one
pipeline,
and
only
one
freestyle
bills
see
so
this
is
a
this
is
viewing
a
job
configuration
form
if
you
I'll
show
you
in
a
second
but
there's
very
little
configured
on
this
build
surface
of
anything
else
in
every
one.
One
change
here
is
that
there's
a
a
few
configuration
label
rather
than
a
configure
just
to
try
and
indicate
that
it's
not
something
that
you
can
change.
B
So
one
thing
I
want
to
highlight
is
that
so
this
is
supposed
to
indicate
to
you
that
it's
read
only
it's
done
in
a
few
ways:
what's
a
one,
we're
possible
full
form
inputs
have
being
removed
and
just
changed
to
output,
plain
text.
So
you
see
here,
there's
there's
no
input
field
and
it's
just
a
text
and
also
we've
been
trying
to
explicitly
indicate
whether
it
feels
C
or
not.
B
And
in
some
cases
we
have
preserved
the
input
because
there's
just
technical,
which
is
really
what
there's
there's
some
complicated
JavaScript,
which
is
used
to
show
and
hide
some
some
of
the
nested
fields
and
it's
very
dependent
on
there
being
an
input
there
of
a
specific
type.
So
the
ones
that
work
have
been
disabled.
B
Seem
to
work,
but
in
general
you'll
generally
should
see
inputs
either
textual
or
disabled
and
you'll,
see
that
the
save
and
apply
ones
and
not
here
so
we've
removed
all
of
those
if
I
go
back
to
the
manage
deacons
page.
So
these
are
all
of
the
views
that
are
available
to
you.
It's
not
all
of
them,
so
there's
a
vector
administer
just
for
a
second.
So
this
is
the
total
number,
but
most
of
the
important
ones
of
the
year
and
some
more
of
them
are
coming.
B
Hopefully,
during
hackfest
there's
been
a
couple
of
requests
already
in
the
last
bit.
Is
the
agents
extended
read
so
I've
just
configured
an
agent
which
doesn't
have
anything
actually
set
up?
You
can
come
in
here
and
you
can
click
view
configuration
on
the
agent
and
see
what's
been
set
up
and
you
see
that
these
are
what's
here
are
actually
disabled
properly,
so
you
can't
click
on
them
and
you
can
go
and
view
the
agents
log.
This
agent
snippet
connectors.
There
was
not
actually
anything
there
and
you
can
see
some
monitoring
information
and
status
information.
B
B
B
I
think
that's
pretty
much.
All
you
welcome
to
explore.
Last
one
is
just
security,
so
I
can
see
I'm
not
on
the
latest
version
and
matrixsort,
but
so
the
latest
version
of
matrixsort
will
not
show
any
of
these
controls,
but
in
general
you
can
see
who
has
access,
which
should
hopefully
be
useful.
So
now
it's
time
to
go
over
to
the
current
side
of
it.
The
first
thing
I
want
to
show
is
this:
well
go
back
here,
there's
a
be
a
blog
post
that
was
announced
yesterday.
B
I
believe
so,
if
you
wish
want
to
have
a
introduction
to
read
through
just
go
to
the
team,
it's
a
website
and
it's
called
read,
only
Jenkins
configuration
and
it's
currently
the
latest
blog,
and
so
it's
just
going
over
what
I've
shown
you
gives
you
the
permission,
names
some
background,
some
screenshots
and
how
to
use
it.
So
if
you
want
to
refer
back
to
how
to
get
set
up,
you
can
refer
here
and
some
example.
B
Configuration
is
correct,
which
will
define
a
role
for
you
and
as
all
the
read
roles
at
your
knees,
but
what
I
came
here
to
show?
You
really
is
that
the
see
how
to
guide
that
I've
written
that
will
hopefully
help
any
developers
trying
to
update
either
their
plugins
or
the
Jenkins
core
to
support
this.
B
B
B
B
So
that's
so
this
used
in
a
few
places
for
simple
fields,
but
if
you
have
more
complicated
rendering,
then
you
won't
be
able
to
do
that,
and
also
this
is
only
available
from
2.20
two-ish,
which
means,
if
you
upload
any
plugin.
You
probably
can't
use
this
wrapper
if
you
want
to
stay
compatible,
you'll
have
to
directly
check
whether
it's
in
read-only
mode
or
not,
but
this
is
a
good
example
of
where
to
look.
If
you
look
at
the
form,
tags
and
Jenkins
core,
so
you
can
find
those
and
we
just
collapse
these.
B
B
B
The
jelly
tags
allow
you
to
nest.
Basically
it's
the
closest
pair
in
that
see
it's
read-only
mode,
so
you
can
sit
read-only
mode
at
the
top
and
then
you
can
unset
it
in
the
child.
So
if
it's
unlikely
you'll
come
across
that,
but
there's
an
example
of
how
to
do
that
and
here's
an
example
of
many
different
types.
B
And
then
just
a
couple
of
settings
here,
I'll
see
a
non-default
for
as
I'm
already
running
on
port
8080
I
also
see
that
it
doesn't
pop
up
and
annoy
me
and
the
first
thing
to
look
at
it's
the
pom
file.
So
this
was
released
into
real
to-to-to,
so
I'm
going
to
want
to
test
it
on
a
version
that
has
that
it's
currently
using
not
60
so
for
testing
purposes.
I'm
just
going
to
update
that
to
the
latest
version,
but
I
won't
check
that
and
as
this
will
be
compatible
in
both
directions.
B
C
B
B
B
B
So
what
we're
going
to
see
here
is
that
we
again,
we
don't
have
system
rate,
but
this
is
the
plugin.
That's
based
on
on
old
core
version
doesn't
have
system
rate
available.
It's.
What
we
need
to
do
in
this
case
is,
we
need
to
add
a
dependency
to
the
extended
read,
commissioned
plugin,
and
that
has
a
shim
that
allows
us
to
access
to
you.
I'll
show
you
the
character,
so
it
makes
sense.
B
B
We
then
installed
in
order
to
to
work
with
our
core
versions,
so
we
found
out
that
what
we're
looking
for
is
a
management
link,
which
is
what
we
found
before
so
a
anything
on
the
slash
managed
page,
which
was
those
tiles
on
it,
will
extend
from
a
management
link
and
access
to
a
management
link
is
governed
by
what's
called
the
get
required,
Commission
method,
and
by
default
there
is
Jimmy
instead
Minister.
So
we're
going
to
need
to
override.
B
B
Cool
you
say
there:
seventy
four
classes
reloaded
or
green.
So
that
means
that
two
code
changes
have
been
hot-swap
done,
so
you
can
only
do
a
hot
swap
if
you're
modifying
code,
you
can't,
if
you're,
adding
new
methods
or
fields
or
deleting
methods,
but
if
you
can
do
it
in
line
to
be
make
chicas
Department
a
lot
quicker,
so
I'm
doing
the
system
raise
and
the
Caesar
here
is
gonna
get
system.
Read
he's
also
going
to
need
overall
read
as
it's
not
granted
by
default,
and
that
should
be.
B
And
you
see
here,
the
docker
plugin
has
shown
up
now.
If
I
click
on
it,
I
can
view
it.
So
that's
quite
unusual
normally
this
would
be.
This
would
require
a
change
to
down
the
view.
So
let's
go
have
a
look
at
why
there
is
the
docker
management
index
jelly
and
if
we
look
here
and
there
layout
tag
permission,
we
see
that
it's
loading
it
from
the
from
the
management
link
here.
So
it's
actually
essentially
just
calling
get
required
permission
on
this
management
link.
That's
the
first
time
I've
seen
this
in
so
it's
nice.
B
B
C
B
A
B
A
A
So
yeah,
it
also
includes
various
connectors
and
other
things,
but
all
of
that
should
be
available
from
this
were
bein
interface.
So
there
should
be
no
additional
changes
under
the
hood,
but
there
is
a
lot
of
different
connectors
strategies,
etc,
and
in
my
case
this
beginning
was
main
reason
to
move
to
Jake
asked
on
my
own
instances
because
they
configure
them.
It
was
quite
difficult.
B
B
A
B
Just
moving
on
from
there
so
what's
next
is
the
Jenkins
one,
two
five
four
eight,
this
epic
we've
got
about
a
dozen
or
so
feature,
requests
that
are
open
and
we've
had
another
contributor
pick
up
a
couple
of
them
during
hackfest
and
the
rest
of
them
are
all
open
for
anyone
to
pick
up
and
we'd
love
it.
If
you
would
take
a
look
at
it
and
also
we'd
love,
feature
requests
or
enhancement
or
bugs
so
just
testing.
All
of
that
was
well
welcome.
B
We're
currently
using
this
epic
or
if
you
don't
drink
at
first,
you
can
just
report
it
to
the
hackfest
github
repo
and
we'll
help
those
to
the
right
place,
so
we're
current
so
with
this
was
initially
committed
in
just
plugins,
sorry
at
justice,
Jenkins
core,
and
this
would
be
a
good
time
for
any
plugins
that
need
support
to
be
added
to
it,
the
UI
and
user
experiences.
While
while
it's
functional
it
could
certainly
be
improved
and
there's
a
couple
of
those
issues
are
related
to
that.
But
anyone
knows
some
UI
experience.
We
much
appreciate.
B
B
A
A
B
Just
resign
for
create
more
feature
requests
and
bugs
so
that
we
can
get
over
the
line,
how
to
contribute
so
we're
interested
in
people,
testing,
there's
just
an
any
feedback,
and
so
these
these
slides
will
be
shared
afterwards
and
you'll
be
able
to
get
the
least
links
and
links
are
also
available
in
the
heck
fist
document.
There
early.
She
had
the
heck
first
channel
recently
and
you
can
use
in
depending
on
whichever
is
easiest
for
you
to
find,
or
you
should
be
able
to
find
the
Monticello
quite
easily,
and
it's
just
some
more
references.
A
Yeah,
so
the
approximate
timeline
for
this
feature
would
set
up
a
comment.
We
have
rain
you'll,
see
as
baseline
when
doing
next
ones
and
after
that
you'll
see
other
place
line
in
September.
So
I
did
this.
Video
goal
is
to
have
everything
delivered
by
September.
So
if
you
see
a
plug-in
which
is
working,
support
for
read-only
permission,
so
if
you
say
use
Kies,
we
could
make
it
better.
Feedback
would
be
much
appreciated
so
that
we
could
continue
this
effort
and
deliver
a
great
user
experience.
C
Tim
is
there
any
guidance
you
want
to
offer
as
I'm,
considering
how
we
phrase
the
to
235
release,
notes
the
changelog.
So
it's
not.
It
won't
have
the
full
system
reading
experience,
but
it
does
have
some
of
the
changes.
Are
there
any
isn't
a
guidance
you
want
to
give
me
there
on
how
we
should
describe
that,
how
we
should
introduce
it.
B
So
it's
got
its
got
all
of
the
school
system
read
except
for
cloud
of
what's
been
done
so
far,
Oh,
and
so
it's
missing
me.
So
it's
missing
something
be
aged
and
extended
reap,
which
is
part
of
the
read-only
templates
as
a
whole.
Since
it's
just
cloud,
that's
missing,
we
managed
to
get
everything
except
for
the
one
one
Paula
Kristen,
so
your
system
read
beta,
is
mostly
complete.
C
A
A
A
Okay,
if
not
yeah,
thanks
a
lot
Tim
for
the
presentation
and
let's
try
to
facilitate
some
contributions
around
this
story.
So
in
the
bank
we
had
discussion
about
how
we
could
help
contributors
and
how
we
get
through
the
stories
and
project
ideas
we
have
published.
So
if
you
want
to
ask
something
about
contributing-
or
if
you
want
to
just
share
your
feedback,
please
let
us
know
in
the
child
or
I
stopped
the
recording
can
we
can
discuss
now
hydrofoil
hours,
which
has
killed
20
minutes
and
some
time
now
as
well.