1
00:00:00,340 --> 00:00:03,279
-Hey, this is Michael Dyrynda.
-And this is Jake Bennett.

2
00:00:05,900 --> 00:00:09,659
And welcome to Episode 179 of the North
Meet South Web Podcast.

3
00:00:11,059 --> 00:00:13,020
I thought it was 180. 179, huh?

4
00:00:14,739 --> 00:00:15,159
Yeah.

5
00:00:16,479 --> 00:00:19,239
-179, okay. Well, hey-
-Next- next- next week, we'll get to 180.

6
00:00:19,239 --> 00:00:21,539
179 it is, folks. Um,

7
00:00:22,459 --> 00:00:27,280
it is post July 4th, and I'm still sort of
hanging on to the mustache thing here-

8
00:00:27,280 --> 00:00:28,039
-It's fine
-... a little bit.

9
00:00:28,039 --> 00:00:29,979
I can- I can... Look, the goatie, th-

10
00:00:31,279 --> 00:00:32,959
-the dirty goatie I can live with.
-It- it's okay.

11
00:00:32,959 --> 00:00:33,899
The mustache...

12
00:00:34,819 --> 00:00:36,479
-I'm gonna shave it all off for- for-
-Maybe, maybe

13
00:00:36,479 --> 00:00:39,380
... Laracon again. And now you're just
gonna have to live with, uh, Jake with the

14
00:00:39,380 --> 00:00:39,959
mustache.

15
00:00:40,840 --> 00:00:44,040
Um, no, I'm not actually not gonna do
that. I'm gonna- I'm gonna- I'm gonna just

16
00:00:44,040 --> 00:00:48,239
put it all back to how it- how it should
normally be. Um, but in other news-

17
00:00:48,239 --> 00:00:50,739
-I was just-
-We- we are actually staying at the same

18
00:00:50,739 --> 00:00:51,200
hotel.

19
00:00:52,479 --> 00:00:54,099
-I'm pretty stoked.
-Yes, finally.

20
00:00:54,099 --> 00:00:56,099
-Finally, yes.
-That- that worked out well in the end.

21
00:00:56,099 --> 00:00:58,419
-It did end up working out well.
-Worked out well in the end because

22
00:00:59,099 --> 00:01:02,439
I said back in February, like, "I've bo-
bought my ticket, I've booked my

23
00:01:02,439 --> 00:01:03,340
-accommodation-"
-Yep, yep.

24
00:01:03,340 --> 00:01:07,579
"... this is the closest hotel." And it
ended up- ended up- ended up being one of

25
00:01:07,579 --> 00:01:08,540
-the-
-Yeah, the conference, yeah

26
00:01:08,540 --> 00:01:10,440
... the official, I guess, conference
hotels.

27
00:01:11,060 --> 00:01:13,599
And so by the time you booked, three weeks
before the event-

28
00:01:13,599 --> 00:01:13,879
Yeah.

29
00:01:15,080 --> 00:01:17,719
-You're like, "There's no rooms anywhere."
-Yeah, you were like, oh-

30
00:01:17,719 --> 00:01:20,619
-I wonder why, you know?
-Right, yeah. And so they ended up opening

31
00:01:20,619 --> 00:01:22,480
-up, and, uh, yep.
-1,200 people-

32
00:01:22,480 --> 00:01:24,079
-So-
-1,200 people coming in. Yeah, so that

33
00:01:24,079 --> 00:01:28,179
-worked out.
-It's gonna be awesome. I'm so excited. We

34
00:01:28,179 --> 00:01:31,019
can do, like, pillow fights middle of the
night, just like-

35
00:01:31,019 --> 00:01:31,760
-Pillow fights.
-Yep.

36
00:01:31,760 --> 00:01:33,839
-Yeah, yep.
-Just gonna find out whose room is it. We

37
00:01:33,839 --> 00:01:37,199
gotta have- have so many people there.
Knock on the doors and just hit people

38
00:01:37,199 --> 00:01:40,539
-with pillows. It's gonna be good times.
-It's gonna be a bit like that. It's, um...

39
00:01:40,539 --> 00:01:45,199
Yeah, I looked, 'cause I, um, I messaged
Matt, Matt Stouffer, and I said, "What are

40
00:01:45,199 --> 00:01:49,279
we doing for coffee?" Because I know it's
only three days, but I can't drink

41
00:01:49,279 --> 00:01:50,439
-Starbucks for three days.
-Yep.

42
00:01:50,439 --> 00:01:51,799
-Like, that's not an option.
-Yep, yep.

43
00:01:51,799 --> 00:01:57,659
I need good coffee. It turns out... Now,
whether or not it is good is to be seen,

44
00:01:57,659 --> 00:02:02,639
but it turns out that in that hotel, in
the Vib by Best Western, for those of you

45
00:02:02,639 --> 00:02:05,839
who are staying there, there is a coffee,
there's, like, a cafe-

46
00:02:05,839 --> 00:02:07,099
-Nice. Okay, okay
-... downstairs in the hotel.

47
00:02:08,419 --> 00:02:13,159
So it- it has, like, a four-and-a-half
star rating, so I'm hoping-

48
00:02:13,159 --> 00:02:15,059
-Sweet
-... that that's good enough.

49
00:02:15,059 --> 00:02:17,659
-That'll be good.
-There is also, for those of you staying

50
00:02:17,659 --> 00:02:21,959
there, a taqueria downstairs. So tacos and
coffee, we should be sorted.

51
00:02:21,959 --> 00:02:25,499
Sounds amazing. Yeah, I'm- I'm really
excited. It looks like a really nice hotel

52
00:02:25,499 --> 00:02:27,559
-as well. Um, like you said-
-Mm-hmm

53
00:02:27,559 --> 00:02:30,779
... it's like, I think the closest hotel
to the venue of the ones that there are

54
00:02:30,779 --> 00:02:31,319
-on-
-Yeah

55
00:02:31,319 --> 00:02:32,679
-... that are on there. So, um-
-Mm-hmm

56
00:02:32,679 --> 00:02:36,499
... yeah, it's- it's gonna be amazing. I'm
so excited. I cannot wait. I'm flying in

57
00:02:36,499 --> 00:02:42,679
Monday, leaving Thursday evening. So if
any of you have no plans for Thursday,

58
00:02:42,679 --> 00:02:46,099
meaning you've stayed Wednesday, you did
the afterparty on Wednesday, you slept in

59
00:02:46,099 --> 00:02:49,239
on Thursday, and now it's Thursday
afternoon and you're looking for something

60
00:02:49,239 --> 00:02:53,999
to do, hit me up on Telegram. I'd love to
hang out because Michael will probably be

61
00:02:53,999 --> 00:02:56,079
gone by then. Michael, will you be out by
then?

62
00:02:56,079 --> 00:02:57,519
-Yeah.
-Yeah, so I'll be leaving at 5:30-

63
00:02:57,519 --> 00:02:59,379
-Yeah, we- we get in at, like, 3:00
-... which means I'll have a bit of time

64
00:02:59,379 --> 00:02:59,919
-for lunch.
-Yeah.

65
00:02:59,919 --> 00:03:02,219
I'll be able to... I'll be free for lunch
if anybody wants to hang out.

66
00:03:03,679 --> 00:03:06,759
-Yeah, we get in at 3:00-ish on-
-Monday, yep

67
00:03:06,759 --> 00:03:10,919
... Monday, Aaron and I. And then, we were
supposed to leave at 6:00 or something

68
00:03:10,919 --> 00:03:14,019
-like that, 6:00 PM on Thursday.
-Yeah.

69
00:03:14,019 --> 00:03:17,179
But our flight got pulled back to 11:00
AM.

70
00:03:17,179 --> 00:03:18,579
-Ah.
-So we're probably gonna be at the airport

71
00:03:18,579 --> 00:03:20,799
at, like, I don't know, 8:00, just to be
safe.

72
00:03:20,799 --> 00:03:21,619
-Yeah.
-Just who knows?

73
00:03:21,619 --> 00:03:22,919
Yeah, we can catch coffee. You and I can
catch coffee.

74
00:03:22,919 --> 00:03:26,459
Although I saw recently... Yeah, yeah,
we'll be all right. We'll- the- we'll have

75
00:03:26,459 --> 00:03:29,839
plenty of opportunities to- to see each
other over the- the three days-

76
00:03:29,839 --> 00:03:30,799
-For sure
-... that- that we're there, but

77
00:03:31,439 --> 00:03:36,019
yeah, I am... I saw- I saw on the news or
something, there was an article the other

78
00:03:36,019 --> 00:03:39,839
day that, like, tourism is way down for
Australians into

79
00:03:40,679 --> 00:03:43,839
-the US at the moment, like 12 or 15%-
-Wow, that's crazy

80
00:03:43,839 --> 00:03:45,439
-... on what they were expecting normally.
-Yeah.

81
00:03:46,079 --> 00:03:51,459
So I'm- I'm hoping that we have, like, a
lo- although these- these flights that we

82
00:03:51,459 --> 00:03:55,419
bought were on sale, so they're sale
dates, so I suspect that maybe they will

83
00:03:55,419 --> 00:03:59,119
be booked-booked. But it'd be nice to see
if there's a bit of, uh,

84
00:03:59,819 --> 00:04:03,119
-bit of space on the plane actually.
-Some extra legroom. Yeah, for sure.

85
00:04:03,119 --> 00:04:03,839
-Yeah.
-I actually-

86
00:04:03,839 --> 00:04:05,479
-We'll see what happens
-... there was a lady sitting in my seat on

87
00:04:05,479 --> 00:04:06,659
the last flight I was on.

88
00:04:07,659 --> 00:04:10,359
And I didn't bother her 'cause, like, it
doesn't matter, there's extra seats. And

89
00:04:10,359 --> 00:04:13,079
so I told the attendant, I was like, "Do
you mind if I sit in another seat?" And

90
00:04:13,079 --> 00:04:15,659
she's like, "Yeah, that's fine." I said,
"Why- why don't I just go sit in first

91
00:04:15,659 --> 00:04:18,559
class, it's like it's enough, should I sit
up there?" She was like, "It's fine with

92
00:04:18,559 --> 00:04:21,999
me." She's like, "But let me check." And
so she checked and the lady up front was

93
00:04:21,999 --> 00:04:25,039
like, "No". I was like, "Come on", so I
just took an exit seat. It was fine.

94
00:04:25,039 --> 00:04:27,479
-Ah, you tried.
-I did try. She was almost, I mean, almost

95
00:04:27,479 --> 00:04:28,179
-had her.
-You tried.

96
00:04:28,179 --> 00:04:31,119
-Yep. I was almost there.
-Almost. Almost there. Almost got it. Yeah,

97
00:04:31,119 --> 00:04:36,199
we- we definitely for the long haul
flights, the, uh, Sydney to Dallas and

98
00:04:36,199 --> 00:04:39,079
then the LA to Melbourne on the way back,
we-

99
00:04:40,119 --> 00:04:42,379
-we went for exit seats.
-Nice, there you go.

100
00:04:42,379 --> 00:04:44,199
-Aaron and I just-
-Yeah, some extra room.

101
00:04:44,199 --> 00:04:48,539
Um, and hopefully these are good exit
seats because the last time I was coming

102
00:04:48,539 --> 00:04:49,839
back from the US, I went

103
00:04:50,679 --> 00:04:54,499
thinking that it'd be good to sit in the,
like, the- the bulkhead row-

104
00:04:54,499 --> 00:04:56,199
-Yeah
-... behind the- the bathrooms.

105
00:04:56,199 --> 00:04:58,939
-Yeah.
-Terrible idea. Don't ever do that. Because

106
00:04:58,939 --> 00:05:00,399
-number one, the armrests-
-Oh, no.

107
00:05:00,399 --> 00:05:04,379
Like, the armrests are fixed, so you can't
move them. So I had, like... I was

108
00:05:04,379 --> 00:05:08,459
uncomfortable the whole time. And you
think because you're at the bulkhead,

109
00:05:08,459 --> 00:05:11,679
there's a bit more room, and there is
physically a bit more room to stretch your

110
00:05:11,679 --> 00:05:14,739
legs out. But the problem is people walk
past there to go-

111
00:05:14,739 --> 00:05:16,799
-Oh, God.
-... to the bathroom from the bathroom. So

112
00:05:17,799 --> 00:05:20,579
yeah, no good. So we are on the... We're
by the galley,

113
00:05:21,399 --> 00:05:26,239
um, on the exit- exit row this time, and
to, like, the- the- the left of the plane.

114
00:05:26,239 --> 00:05:31,279
So hopefully that'll be a better seat.
But I didn't... I looked at even premium

115
00:05:31,279 --> 00:05:34,619
c- premium economy was like $6,000 return
or something like that.

116
00:05:34,619 --> 00:05:35,819
-My gosh.
-I said, "Nah. Not."

117
00:05:35,819 --> 00:05:37,799
-Hey, okay, I've got one-
-No thank you, not for me

118
00:05:37,799 --> 00:05:38,899
... one quick tip for you here

119
00:05:39,759 --> 00:05:41,019
-for sleeping on planes.
-Mm-hmm.

120
00:05:41,019 --> 00:05:41,299
Okay?

121
00:05:41,959 --> 00:05:46,099
There is this amazing product called the
Sleeper Hold.

122
00:05:46,939 --> 00:05:48,479
-Sleeper Hold. Is-
-Right.

123
00:05:48,479 --> 00:05:51,319
-No, seriously. It was invented by an-
-Nonsense

124
00:05:51,319 --> 00:05:54,119
-... an MMA guy, a UFC fighter-
-Mm-hmm

125
00:05:54,119 --> 00:05:57,359
... who had to go on flights and trips and
stuff like that all the time. And he was,

126
00:05:57,359 --> 00:06:00,739
like, sick of, like, not being able to
sleep well on these- on these trips.

127
00:06:00,739 --> 00:06:02,359
-Mm-hmm.
-So he invented this thing called the

128
00:06:02,359 --> 00:06:04,639
Sleeper Hold. Now, I got one at a
conference. I was like, "What is this

129
00:06:04,639 --> 00:06:11,619
nonsense?"Oh, my gosh. I will never travel
without it again. It is amazing, and you

130
00:06:11,619 --> 00:06:15,459
can actually sleep well on flights or on
buses or on-

131
00:06:15,459 --> 00:06:17,040
-Right
-... on anything like that- ... that has,

132
00:06:17,040 --> 00:06:18,679
like a rest... Like, a seat behind you.

133
00:06:19,319 --> 00:06:22,819
It is incredible. So if you... I mean,
because you're gonna be on these insane

134
00:06:22,819 --> 00:06:26,359
flights, you know, you're gonna be hitting
14 and a half hour time difference jet

135
00:06:26,359 --> 00:06:26,919
lag thing,

136
00:06:27,519 --> 00:06:31,559
I would suggest snapping one of these up.
Now, they're not inexpensive, but they are

137
00:06:31,559 --> 00:06:35,740
amazing, amazing. And so, um, check it
out. Sleeper-

138
00:06:35,740 --> 00:06:36,500
Oh, the travel pillow. Right, right,
right, right.

139
00:06:36,500 --> 00:06:37,520
Sleeper Hold. Yeah, yeah. It's a s- it's a
no-

140
00:06:37,520 --> 00:06:40,760
-When you say sleeper hold-
-And I know, and I know, it's- it's not,

141
00:06:40,760 --> 00:06:42,740
-you know, it's not just a travel pillow.
-Yeah.

142
00:06:42,740 --> 00:06:44,159
-It's- it's- it's a little bit different.
-Yeah, yeah, yeah.

143
00:06:44,159 --> 00:06:47,100
They've got some really good marketing as
well, but I've actually used it and the

144
00:06:47,100 --> 00:06:50,219
marketing holds up. The hype holds up.
It's really good. So for any of you

145
00:06:50,219 --> 00:06:53,839
listening who are gonna be going to
Laracon, grab a Sleeper Hold. Tell them

146
00:06:53,839 --> 00:06:57,019
Jake sent you, there's no referral code or
anything. Sorry, otherwise I would give

147
00:06:57,019 --> 00:07:00,319
it to you. But, uh, they're pretty sweet.
Pretty sweet. So...

148
00:07:00,319 --> 00:07:04,099
Right. So this thing, you strap to the...
You strap to the seat, and it kind of

149
00:07:04,099 --> 00:07:05,759
holds your head so your face doesn't flop
forward.

150
00:07:05,759 --> 00:07:07,239
That's right. Yeah, so you have a little
neck thing that-

151
00:07:07,239 --> 00:07:09,119
-Yeah, cool
-... goes behind, just behind the- the,

152
00:07:09,119 --> 00:07:12,439
like, the little dip in your neck, in the
back of your neck. You just put the pillow

153
00:07:12,439 --> 00:07:12,779
-there-
-Mm-hmm

154
00:07:12,779 --> 00:07:15,659
... and then there is a strap that goes
around the back of the seat. And then

155
00:07:15,659 --> 00:07:19,839
there's like a eye mask that kind of goes
over the front of your eyes and holds your

156
00:07:19,839 --> 00:07:23,419
head in place up against the back of the
seat. And you don't, you know-

157
00:07:23,419 --> 00:07:24,599
-Yeah, right
-... those neck cushions, they don't

158
00:07:24,599 --> 00:07:27,319
actually hold your head up, so you- you
kind of, you have to try-

159
00:07:27,319 --> 00:07:28,679
-Yeah, yeah, yeah
-... lean your head back. It doesn't work

160
00:07:28,679 --> 00:07:32,599
very well. This works amazingly, and I
have slept like a baby on flights with

161
00:07:32,599 --> 00:07:36,879
-this thing. So, highly suggest it.
-I'm, uh... I have sent this to my wife.

162
00:07:36,879 --> 00:07:41,999
-Mm-hmm.
-I am very fortunate in that I, generally

163
00:07:41,999 --> 00:07:46,199
speaking, on a flight, will close my eyes
and wake up eight or nine hours later.

164
00:07:46,199 --> 00:07:49,579
-That's amazing.
-Especially on the way back. Especially on

165
00:07:49,579 --> 00:07:54,839
the way back, because it'll be, you know,
three days of go, go, go. We've got the-

166
00:07:54,839 --> 00:07:57,179
the mostly technical party on Monday
night.

167
00:07:57,179 --> 00:08:00,379
-Yep, Monday night.
-We've got after dark on- on Tuesday night,

168
00:08:00,379 --> 00:08:03,359
then there's like... I assume we'll do
something on-

169
00:08:03,359 --> 00:08:04,879
-Wednesday night, yeah. Did you-
-... on Wednesday night as well, and then

170
00:08:04,879 --> 00:08:06,719
-we're gonna be up-
-There's a link, I'll send it to you.

171
00:08:06,719 --> 00:08:10,159
-There's a Luma something.
-Yeah, yeah, yeah. I-

172
00:08:10,159 --> 00:08:11,599
-You get that one?
-Yes, that was for Tuesday night, I think,

173
00:08:11,599 --> 00:08:12,779
-that one. Yeah, I got that one s-
-I think that was-

174
00:08:12,779 --> 00:08:13,779
-So, did that, um...
-I thought that- I thought that was for

175
00:08:13,779 --> 00:08:14,239
Wednesday.

176
00:08:16,159 --> 00:08:16,639
Let me look.

177
00:08:17,839 --> 00:08:19,799
-Luma after party.
-Can you double check?

178
00:08:19,799 --> 00:08:23,259
Yep, I'm looking right now. Tuesday.
You're right, it is Tuesday. Yep.

179
00:08:23,259 --> 00:08:23,959
-Mm-hmm.
-My bad.

180
00:08:23,959 --> 00:08:24,199
Yeah.

181
00:08:24,839 --> 00:08:29,199
Yeah, so, um, that, and then Wednesday
night, I assume we'll do something. Go

182
00:08:29,199 --> 00:08:30,359
-grab dinner or something-
-Yeah, yeah

183
00:08:30,359 --> 00:08:33,019
... with the- with the guys. Anyone who's-
who's keen for that.

184
00:08:33,019 --> 00:08:35,859
-For sure.
-Um, and then Wednesday we'll be up early,

185
00:08:35,859 --> 00:08:40,659
and then we're just gonna have to try and
power through LA. Um, Aaron and I are

186
00:08:40,659 --> 00:08:44,619
gonna go and do the unthinkable. And I
don't know if we're actually gonna do

187
00:08:44,619 --> 00:08:48,979
this, but I- I joked to Aaron, I said,
"So, outside of LAX, there's a Five Guys,

188
00:08:48,979 --> 00:08:51,879
-an In-N-Out, and a Chick-fil-A."
-Gotta do it.

189
00:08:51,879 --> 00:08:53,479
And I'm like, "We'll just eat all of them.
We'll just do all three."

190
00:08:53,479 --> 00:08:53,859
You gotta do it.

191
00:08:54,659 --> 00:08:56,339
And then, uh, yeah. So

192
00:08:57,039 --> 00:09:00,559
by the time I get on that plane, and- and
this has happened every time I've left the

193
00:09:00,559 --> 00:09:06,619
US for- for any trip that I've been over
there, I'm asleep before wheels up. Like,

194
00:09:06,619 --> 00:09:08,359
before we leave the ground- ... my eyes
are shut. I'm out.

195
00:09:08,359 --> 00:09:08,519
Yeah.

196
00:09:09,399 --> 00:09:11,279
-Oh, my gosh.
-And they come- they come at like an hour

197
00:09:11,279 --> 00:09:13,999
or- or- or two later, and they're like,
"Do you want dinner?" I'm like, "It's

198
00:09:13,999 --> 00:09:15,759
midnight. I don't- I don't want dinner. Go
away."

199
00:09:15,759 --> 00:09:16,999
-That's funny.
-"Why did you wake me up for this?" So...

200
00:09:16,999 --> 00:09:20,259
-That's hilarious.
-This light- this light keeps on flicking

201
00:09:20,259 --> 00:09:23,039
off and on for some reason, I don't know
why. So every now and then I get shrouded

202
00:09:23,039 --> 00:09:23,659
in darkness.

203
00:09:24,899 --> 00:09:25,999
-Well-
-So yeah, Laracon, uh, this-

204
00:09:25,999 --> 00:09:26,859
Anyway, long story short. Yeah, absolutely

205
00:09:26,859 --> 00:09:32,319
... this will be our last- last North Meet
South before Laracon. Uh, we've got...

206
00:09:32,319 --> 00:09:35,559
We'll do an episode of Laravel News next
week. Mm-hmm.

207
00:09:35,559 --> 00:09:37,099
And then we'll be on location.

208
00:09:38,319 --> 00:09:43,179
Is it that quick? No. Oh, no. We will have
one more North Meet South before Laracon.

209
00:09:43,179 --> 00:09:43,339
Okay. Okay.

210
00:09:43,339 --> 00:09:45,899
And then we'll be on location. Yep, yep,
yep, yep, yep.

211
00:09:47,519 --> 00:09:51,659
So yeah. A- and then for Laravel News, you
and I will be,

212
00:09:52,259 --> 00:09:54,999
uh, running around. You did a day one
recap last year with-

213
00:09:54,999 --> 00:09:56,039
-Yes
-... David Hemphill.

214
00:09:56,039 --> 00:09:59,019
-Yes.
-Which made- made me feel very slighted,

215
00:09:59,019 --> 00:09:59,839
-uh, that you would-
-I'm so sorry.

216
00:09:59,839 --> 00:10:01,579
... you would do something like- like that
.

217
00:10:01,579 --> 00:10:02,739
I think I mentioned you. I thought I
mentioned you.

218
00:10:02,739 --> 00:10:03,879
-You did- you did mention me.
-Okay.

219
00:10:03,879 --> 00:10:07,519
But, uh, you know, I will- I will- I'll be
there this time, so you watch yourself.

220
00:10:07,519 --> 00:10:10,419
And so it will definitely be you and me.
Yeah, Hemphill. Watch it, you're gonna

221
00:10:10,419 --> 00:10:12,059
-get- you're gonna get a-
-So yeah, we'll do-

222
00:10:12,059 --> 00:10:13,999
-... shiv.
-We'll do a recap day one and we'll do day

223
00:10:13,999 --> 00:10:15,399
two, 'cause there was no day two last
year.

224
00:10:15,399 --> 00:10:17,959
-Right.
-Um, and I think we're gonna go around and

225
00:10:17,959 --> 00:10:19,319
-do some like vox pops-
-Absolutely

226
00:10:19,319 --> 00:10:23,199
... and speak to people and- and talk to
them as well for Laravel News, so that'll

227
00:10:23,199 --> 00:10:24,339
be a bit of fun. Something- something to
do.

228
00:10:24,339 --> 00:10:26,979
-Should be a good time.
-So if- if you are interested

229
00:10:27,599 --> 00:10:31,139
in doing that, keep an eye out for us.
We'll- we'd love to talk to you about what

230
00:10:31,139 --> 00:10:34,299
you think. I saw Taylor's got like a
two-hour

231
00:10:34,979 --> 00:10:36,759
-keynote at the end of day one.
-Wow.

232
00:10:36,759 --> 00:10:39,999
So that'll be- that'll be a bit of fun.
And looks like there's a lot of variety in

233
00:10:39,999 --> 00:10:42,959
the talks as well. If you've- if you've
seen the schedule, there's some- there's

234
00:10:42,959 --> 00:10:47,339
some, um, you know, 30-minute talks,
20-minute talks. They're all over the

235
00:10:47,339 --> 00:10:51,059
place this year, which- which is good. I
think- I think mixing things up like that

236
00:10:51,059 --> 00:10:57,019
is- is good for the audience as well. Um,
getting a- a mix of lengths and types and-

237
00:10:57,019 --> 00:10:57,919
and all sorts. So

238
00:10:58,959 --> 00:11:00,399
-very excited to get back over there-
-Yeah

239
00:11:00,399 --> 00:11:02,699
... after, what, six years or whatever
it's been.

240
00:11:02,699 --> 00:11:05,839
Yep. It's gonna be incredible to have you,
dude. It's been too long. Too long since

241
00:11:05,839 --> 00:11:09,839
we've been able to hang out in- in, uh,
the real, right? In 3D.

242
00:11:09,839 --> 00:11:12,919
-Mm-hmm.
-So it'll be fun. It'll be lots of fun. Hey

243
00:11:12,919 --> 00:11:17,839
folks, we have a couple different topics
that I would like to talk about today. The

244
00:11:17,839 --> 00:11:21,599
first one is this. Should you have

245
00:11:22,239 --> 00:11:27,979
a middleware call inside the constructor
of a controller? Okay, so

246
00:11:28,999 --> 00:11:29,699
set it up for you.

247
00:11:30,439 --> 00:11:32,739
This is something that used to be
supported and I do not think it's

248
00:11:32,739 --> 00:11:36,919
supported anymore in Laravel 12, which is
this. Inside of a controller you can, in

249
00:11:36,919 --> 00:11:41,359
the constructor, say, "This middleware,"
and then specify a middleware. And what

250
00:11:41,359 --> 00:11:45,419
this will do is this will apply that
middleware to anything that you're going

251
00:11:45,419 --> 00:11:47,659
to be accessing that controller

252
00:11:48,699 --> 00:11:52,899
through, right? Any route that references
anything that points to that controller,

253
00:11:52,899 --> 00:11:56,639
you can have a middleware in the
constructor of that controller. Okay. Are

254
00:11:56,639 --> 00:11:57,019
you ready?

255
00:11:57,639 --> 00:12:01,159
Think about it for a second. Make up your
mind. Do you think you should put it there

256
00:12:01,159 --> 00:12:01,859
or not?

257
00:12:02,579 --> 00:12:03,059
And

258
00:12:03,899 --> 00:12:05,119
go. All right, what do you think, Michael?

259
00:12:06,859 --> 00:12:09,959
No. And you, you, you posted this the
other day-

260
00:12:09,959 --> 00:12:11,979
-I did
-... in Telegram, and I-

261
00:12:11,979 --> 00:12:15,119
I'm gonna grab a water while you formulate
your response and, and tell me why I

262
00:12:15,119 --> 00:12:18,020
shouldn't do it, so then I can actually
come back and tell you why I think you

263
00:12:18,020 --> 00:12:18,779
should. But go ahead.

264
00:12:19,680 --> 00:12:19,919
Yeah.

265
00:12:20,539 --> 00:12:24,339
I mean, Laravel 12, you said you can't do
it, so that's, that's as good a reason as

266
00:12:24,339 --> 00:12:26,899
any to not do it. Um, I know

267
00:12:27,539 --> 00:12:32,600
there used to be some explicit reason to
do it. Like, you... There was some part of

268
00:12:32,600 --> 00:12:36,939
the request lifecycle that wasn't
available inside of

269
00:12:37,680 --> 00:12:40,799
your route definitions, which is why you,
you maybe wouldn't have done it

270
00:12:40,799 --> 00:12:43,520
previously. Like, you wanted to
dynamically apply a middleware or

271
00:12:43,520 --> 00:12:46,219
something like that inside of the
controller constructor.

272
00:12:47,499 --> 00:12:48,860
The, the reason I don't

273
00:12:49,540 --> 00:12:53,359
like the idea of putting the middleware in
the controller

274
00:12:53,979 --> 00:12:57,119
is kind of similar to why I don't like
using, um,

275
00:12:57,739 --> 00:13:02,259
events too much. I don't particularly like
using observers and, and global scopes,

276
00:13:02,259 --> 00:13:04,299
although those things are a little bit
more

277
00:13:05,079 --> 00:13:06,619
-opaque now-
-Yeah, for sure they are

278
00:13:06,619 --> 00:13:10,079
... because we've got the attributes to
say, like, observed by, scoped by, and all

279
00:13:10,079 --> 00:13:11,839
of that kind of stuff. But I feel like

280
00:13:14,040 --> 00:13:18,599
the routes file is the first place that
I'm going to look in a new application to

281
00:13:18,599 --> 00:13:22,079
see everything that's happening across the
application. Like, I know what

282
00:13:22,079 --> 00:13:26,300
functionality is available, I know where
to reach it. It's a very quick and easy

283
00:13:26,300 --> 00:13:29,999
way. W- this is the same reason I don't
like route definitions inside of

284
00:13:29,999 --> 00:13:32,499
controllers using attributes, which is a
thing that has-

285
00:13:32,499 --> 00:13:34,139
-Fair enough
-... like, come and gone in the past.

286
00:13:34,139 --> 00:13:38,639
Because if you want to s- I mean, you can
always do a route list and see the route

287
00:13:38,639 --> 00:13:42,659
list that way, but I think opening up the
routes file and just scrolling through it

288
00:13:42,659 --> 00:13:47,279
and seeing everything that's there is my
preferred method for, for dealing with

289
00:13:47,279 --> 00:13:48,079
that kind of stuff.

290
00:13:48,959 --> 00:13:53,319
When you start putting things in- inside a
constructor, it's, it becomes

291
00:13:54,079 --> 00:13:54,939
less visible.

292
00:13:55,560 --> 00:13:59,359
Um, it... Like, does it still appear in
the route list if you d- define a

293
00:13:59,359 --> 00:14:01,019
-middleware there?
-That's a good question. I honestly don't

294
00:14:01,019 --> 00:14:02,179
-know.
-'Cause that would be my hesitation.

295
00:14:02,179 --> 00:14:04,479
-I'm not sure.
-Yeah. 'Cause that would be, that would be

296
00:14:04,479 --> 00:14:07,079
-another hesitation of mine-
-I kinda feel like it wouldn't

297
00:14:07,079 --> 00:14:09,819
-... is that you don't know.
-I kinda feel like it would not. Yeah.

298
00:14:09,819 --> 00:14:10,099
Yeah.

299
00:14:11,539 --> 00:14:16,439
Um, so yeah, my, eh, I never, I never do.
Um,

300
00:14:17,359 --> 00:14:21,339
all of my middlewares are defined inside
of

301
00:14:21,959 --> 00:14:26,379
-the routes file. Yeah.
-Fair enough. Now that being said, uh, I

302
00:14:26,379 --> 00:14:30,799
mean there are multiple other places where
there are middlewares being placed onto

303
00:14:30,799 --> 00:14:35,619
things without your knowledge or just
explicitly by the framework. So,

304
00:14:36,239 --> 00:14:37,699
you know, one of those places is in the

305
00:14:38,359 --> 00:14:41,899
bootstrap, uh, app.php file, where you're-

306
00:14:41,899 --> 00:14:43,079
-Mm-hmm
-... setting up all your routes and all

307
00:14:43,079 --> 00:14:48,939
those things. And if you use a then, uh,
portion of the section there when you're

308
00:14:48,939 --> 00:14:53,059
defining those different routes, then you
can apply middlewares there and things

309
00:14:53,059 --> 00:14:56,579
like that. You know, you can set up a new
stack essentially. You have web, you have

310
00:14:56,579 --> 00:15:00,379
API, you have console, which are all
getting set up. You have up, which is also

311
00:15:00,379 --> 00:15:02,199
another one that ships by default with
Laravel 11.

312
00:15:02,999 --> 00:15:05,999
But if you have a then, you know, you
might do something like development

313
00:15:05,999 --> 00:15:08,559
routes. Like, if you're in development,
you will, then you'd bind these

314
00:15:08,559 --> 00:15:13,419
development routes, and you could put, uh,
prefixes or middlewares on it in there.

315
00:15:13,419 --> 00:15:17,039
Uh, there was previously in, you know,
previous versions where you had a, a route

316
00:15:17,039 --> 00:15:22,039
service provider or something like that,
or the HTTP kernel, you could do things in

317
00:15:22,039 --> 00:15:23,899
-there as well when you'd register those-
-Mm-hmm

318
00:15:23,899 --> 00:15:27,919
... or when you'd bind those sorts of
things. And so, it's not like it's only

319
00:15:27,919 --> 00:15:32,039
ever been that the routes file is the only
place where middlewares are applied. I

320
00:15:32,039 --> 00:15:33,199
-mean, there's a web-
-Right.

321
00:15:33,199 --> 00:15:35,539
There's a web stack that's applied by
default.

322
00:15:35,539 --> 00:15:36,119
-Yeah, yeah.
-So

323
00:15:36,999 --> 00:15:40,259
I get the argument that, like, if you can
just go see the web.php, you can see

324
00:15:40,259 --> 00:15:43,699
everything on there, but it's not actually
true. Like, there's... That's all the

325
00:15:43,699 --> 00:15:44,059
-things-
-Mm-hmm

326
00:15:44,059 --> 00:15:46,439
... that you would put on there, but it's
definitely not all-

327
00:15:46,439 --> 00:15:47,739
-Yeah
-... the things that are on there.

328
00:15:47,739 --> 00:15:50,539
-Yeah.
-So, um, I would say that, like, as far as

329
00:15:50,539 --> 00:15:54,919
the user definitions are defined, I agree
that the web.php is where you would go see

330
00:15:54,919 --> 00:15:59,179
all the user-defined things most of the
time. Um, you do have to be a little bit

331
00:15:59,179 --> 00:16:02,399
careful if you're migrating from legacy
applications, and that's the situation

332
00:16:02,399 --> 00:16:05,099
here. That's why we ran into this, is
we've... You know, we've been on this

333
00:16:05,099 --> 00:16:09,119
since Laravel 4, and so this very
particular application has been upgraded

334
00:16:09,119 --> 00:16:12,499
to 4, 5, 6, 7, 8, 9, 10, 11, 12. And so,
12-

335
00:16:12,499 --> 00:16:13,219
-Yeah
-... is when it sort of-

336
00:16:13,219 --> 00:16:14,619
-Yeah
-... dropped support for it and caused some

337
00:16:14,619 --> 00:16:20,119
issues for us. The one thing I will say
that is helpful, and maybe the reason why,

338
00:16:20,119 --> 00:16:24,359
um, what you were talking about, is like
if you wanted to resolve something out of

339
00:16:24,359 --> 00:16:27,919
the constructor in order to be able to
apply that to a middleware or s- pass that

340
00:16:27,919 --> 00:16:31,419
in as something to the middleware, it's
possible that at one point that was not

341
00:16:31,419 --> 00:16:34,819
available. But obviously now you can make
your own middleware classes and things

342
00:16:34,819 --> 00:16:36,759
like that, so it's not a problem. Um,

343
00:16:37,539 --> 00:16:37,799
but

344
00:16:38,759 --> 00:16:42,859
if there is a middleware that you want to
apply to every single method inside of

345
00:16:42,859 --> 00:16:43,679
that controller,

346
00:16:45,079 --> 00:16:49,139
it is possible for someone to miss that
when they're defining a new route for that

347
00:16:49,139 --> 00:16:53,559
controller, right? Maybe they don't look
and see the other places. Maybe that

348
00:16:53,559 --> 00:16:58,639
control... Maybe the, the locations where,
uh, those are defined are not co-located.

349
00:16:58,639 --> 00:17:01,299
Maybe they're just adding a new one to
the bottom of the list and they don't go

350
00:17:01,299 --> 00:17:05,939
find it. That controller middleware, uh,
is not gonna be applied now. And so,

351
00:17:06,679 --> 00:17:11,239
that could be problematic. Now, that's...
Maybe there's ways around that. Maybe you

352
00:17:11,239 --> 00:17:14,999
can put an architecture test in place. But
that was the particular argument that I

353
00:17:14,999 --> 00:17:18,799
had, which was like, it's not necessarily
all bad to be able to define it in the

354
00:17:18,799 --> 00:17:21,879
controller. I can see the arguments for
why you maybe wouldn't,

355
00:17:22,519 --> 00:17:24,059
-but I don't think it's-
-Mm-hmm

356
00:17:24,059 --> 00:17:26,999
... I don't think it's that bad. I don't
know. I don't know.

357
00:17:26,999 --> 00:17:27,319
Yeah.

358
00:17:27,999 --> 00:17:33,359
I'm just trying to look back on when, when
it was actually... 'Cause there's nothing

359
00:17:33,359 --> 00:17:35,879
in the Laravel 12 upgrade guide that I
can see

360
00:17:36,539 --> 00:17:38,399
that's obvious that says this has been

361
00:17:39,079 --> 00:17:40,279
removed. So...

362
00:17:41,139 --> 00:17:43,199
-All I know is it was throwing an error.
-Controller middleware.

363
00:17:43,199 --> 00:17:44,099
-Yeah.
-Oh no, it's still here.

364
00:17:44,099 --> 00:17:46,339
-It was throwing an error.
-Controller middleware.

365
00:17:46,339 --> 00:17:47,819
-Go ahead. Yeah, maybe just-
-Ouch

366
00:17:47,819 --> 00:17:52,739
-... maybe the way that we defined it.
-Oh, you put it... Yeah. So used to be in

367
00:17:52,739 --> 00:17:54,319
a, um,

368
00:17:55,579 --> 00:18:01,219
cons- in the construct method, and now you
can define it as a stat- a public static

369
00:18:01,219 --> 00:18:04,119
method that returns an array inside the
controller.

370
00:18:04,119 --> 00:18:04,559
I got it.

371
00:18:05,459 --> 00:18:07,779
-So it's still able to be used-
-And you, and you implement the has

372
00:18:07,779 --> 00:18:09,339
-middleware
-... just not in the same way. Oh, I see. I

373
00:18:09,339 --> 00:18:09,879
-see.
-Mm-hmm.

374
00:18:09,879 --> 00:18:12,419
Yep. Just not in the same way. Okay. Fair
enough.

375
00:18:13,371 --> 00:18:16,931
Fair enough. Middleware may be assigned to
the controller's routes in your routes

376
00:18:16,931 --> 00:18:20,451
file. You may find it convenient to
specify middleware within your controller

377
00:18:20,451 --> 00:18:24,552
class. To do so, your controller should
implement the HasMiddleware interface,

378
00:18:24,552 --> 00:18:28,811
which dictates that the controller should
have a static middleware method. From this

379
00:18:28,811 --> 00:18:31,811
method, you may return an array of
middleware that should be applied to the

380
00:18:31,811 --> 00:18:37,071
controller's actions, and you may also
define ControllerMiddleware as closures-

381
00:18:37,071 --> 00:18:38,971
-Hmm, interesting
-... which provides a convenient way to

382
00:18:38,971 --> 00:18:43,231
define an inline middleware without
writing an entire middleware class. But it

383
00:18:43,231 --> 00:18:43,671
doesn't,

384
00:18:45,252 --> 00:18:49,471
doesn't really say why or when you would
do this-

385
00:18:49,471 --> 00:18:51,811
-Sharp knives
-... which I guess is... You know, sharp

386
00:18:51,811 --> 00:18:53,132
knives, right? Laravel

387
00:18:53,851 --> 00:18:59,992
provides many ways to do the same thing. I
would, I would posit that doing it inside

388
00:18:59,992 --> 00:19:02,771
of the controller is potentially a less,

389
00:19:04,211 --> 00:19:04,671
um,

390
00:19:05,551 --> 00:19:06,292
what's the word?

391
00:19:07,171 --> 00:19:08,571
Like, a less conventional way of doing it.

392
00:19:08,571 --> 00:19:11,191
-I agree. I do agree with that.
-But, you know, it's documented. Um,

393
00:19:12,291 --> 00:19:13,611
yeah. I don- I mean,

394
00:19:14,331 --> 00:19:18,711
yeah, i- for... I wouldn't do it in the
controller for the same reason that I

395
00:19:18,711 --> 00:19:19,032
wouldn't,

396
00:19:19,812 --> 00:19:23,751
that I don't subscribe to, to doing route
definitions inside of the controller.

397
00:19:23,751 --> 00:19:25,011
-And that's fair.
-Um...

398
00:19:25,011 --> 00:19:29,072
I, I do get that. Yeah, and, and so it
sounds like it's not necessarily... Th-

399
00:19:29,072 --> 00:19:32,892
the method by which we were using it is
deprecated, but the, the idea itself-

400
00:19:32,892 --> 00:19:34,951
-Mm-hmm
-... is still very much documented and

401
00:19:34,951 --> 00:19:39,012
relevant inside of Laravel. So, fair
enough. I, I think that's, uh... You know,

402
00:19:39,012 --> 00:19:42,531
it's again, sharp knives, use them if you
want to, uh, if you don't... If you cut

403
00:19:42,531 --> 00:19:42,951
-yourself-
-Yeah

404
00:19:42,951 --> 00:19:45,231
... don't complain, right? Just deal with
it. So...

405
00:19:45,231 --> 00:19:45,451
Yeah.

406
00:19:46,111 --> 00:19:48,531
It's certainly like a top level
documentation item.

407
00:19:48,531 --> 00:19:49,391
-Yeah.
-Right? It's

408
00:19:50,012 --> 00:19:53,771
in, on this page, introduction, writing
controllers, controller middleware. So

409
00:19:53,771 --> 00:19:56,911
it's not hidden. It's not one of those
things that, like, gets pushed

410
00:19:57,531 --> 00:20:00,771
down the documentation until one day it
disappears and then you know that it's...

411
00:20:01,371 --> 00:20:01,532
It,

412
00:20:02,171 --> 00:20:04,411
it likely won't ever be removed.

413
00:20:05,332 --> 00:20:08,711
Eh, in, you know, the way that Laravel
typically handles deprecations, is just

414
00:20:08,711 --> 00:20:09,571
that at some point

415
00:20:10,371 --> 00:20:13,731
it's determined to be not the best
practice or, you know, there's another way

416
00:20:13,731 --> 00:20:17,692
of doing it that's, that's more
appropriate or more, uh, efficient or

417
00:20:17,692 --> 00:20:21,971
whatever else. And so the documented
approach becomes the way to do things, and

418
00:20:21,971 --> 00:20:22,852
stuff that drops out

419
00:20:23,491 --> 00:20:28,231
might get deprecated eventually, you know,
in two or three major releases time. But,

420
00:20:29,051 --> 00:20:34,171
um, it typically survives even though it's
not documented. So it's still, still

421
00:20:34,171 --> 00:20:35,571
there as a top level thing. But

422
00:20:36,411 --> 00:20:40,671
yeah, I don't, I don't see where this...
I, I'd have to dig to find out, you know,

423
00:20:40,671 --> 00:20:44,711
why you would do it in a constructor.
Like, what, what was the documented reason

424
00:20:44,711 --> 00:20:45,751
-for doing it-
-Yeah

425
00:20:45,751 --> 00:20:47,451
-... essentially?
-Yeah. I, I don't even know if I could tell

426
00:20:47,451 --> 00:20:50,872
you in this case. I, I think it... This
one is honestly just... It was like a

427
00:20:50,872 --> 00:20:54,452
authorization check to see if somebody had
a particular role or something like that,

428
00:20:54,452 --> 00:20:55,811
-that's all it was.
-Mm-hmm. Mm-hmm.

429
00:20:56,471 --> 00:21:00,011
Like, "Can they do this particular thing?"
If they can't do this particular thing,

430
00:21:00,011 --> 00:21:03,531
then there's no reason for them to see the
view, the update, the create, the delete.

431
00:21:03,531 --> 00:21:06,051
Th- they shouldn't be able to do any of
that stuff, like, don't bother even-

432
00:21:06,051 --> 00:21:07,531
-Right
-... doing a policy on it. There was...

433
00:21:07,531 --> 00:21:10,471
This was before policies were a thing. You
just said, "At the controller level,

434
00:21:10,471 --> 00:21:14,212
don't bother, just abort. Before they ever
do anything with it, just abort."

435
00:21:15,112 --> 00:21:16,651
Which brings me to my next question.

436
00:21:18,152 --> 00:21:22,491
Um, unless you have anything else you
wanna talk about, which I... So, I've got

437
00:21:22,491 --> 00:21:24,112
-one more thing and that's-
-No, no, go for it.

438
00:21:24,112 --> 00:21:26,571
-Okay. Okay.
-Are you... You meant, you, you, you

439
00:21:26,571 --> 00:21:30,231
floated this, like you got in early with
this one, so you've... It's obviously on

440
00:21:30,231 --> 00:21:30,872
-your mind-
-It is

441
00:21:30,872 --> 00:21:33,091
-... so let's talk about-
-Yes. Okay. So we talked about this with

442
00:21:33,091 --> 00:21:35,311
the other devs on the team earlier today.
Okay. So

443
00:21:36,151 --> 00:21:41,212
I'm gonna try and set up the world for you
a little bit and then we can chat. And I

444
00:21:41,212 --> 00:21:44,551
think you can help me point out maybe some
p- some potential flaws,

445
00:21:45,151 --> 00:21:49,411
or maybe not flaws but pitfalls that I
might be looking into or that I might need

446
00:21:49,411 --> 00:21:53,911
to investigate and/or better ways to
structure this. Okay, so here it is.

447
00:21:53,911 --> 00:21:57,351
-Mm-hmm.
-Let's say I have 20 apps, which I do, and

448
00:21:57,351 --> 00:22:02,071
let's say that each of those applications
has, currently has their own roles.

449
00:22:02,671 --> 00:22:06,451
And the way that we're checking
permissions or abilities inside of any of

450
00:22:06,451 --> 00:22:10,831
these locations and inside of any of these
applications is only through checking of

451
00:22:10,831 --> 00:22:15,851
if a user has a role. Okay? So that is,
that is the way that we've done it. Now,

452
00:22:15,851 --> 00:22:16,991
the problem with that

453
00:22:17,751 --> 00:22:22,751
is that the onl- if you only define roles,
the only way to give somebody permission

454
00:22:22,751 --> 00:22:25,491
to do something is to assign them a role.

455
00:22:26,151 --> 00:22:27,051
Does this make sense?

456
00:22:28,051 --> 00:22:28,571
-So-
-Mm-hmm. Yep

457
00:22:28,571 --> 00:22:31,811
... if you have a person, let's say that
there's a manager who's stepping out for a

458
00:22:31,811 --> 00:22:36,071
week and they have a person on their team
who's like their number two, right,

459
00:22:36,071 --> 00:22:40,791
assistant to the regional manager if you
will. And they need this , they need this

460
00:22:40,791 --> 00:22:46,951
user to sort of take their place, interim,
uh, manager, uh, for a week. The only

461
00:22:46,951 --> 00:22:49,971
way, i- but they really only need them to
do one part of their job, which is that

462
00:22:49,971 --> 00:22:53,411
they need to run this report every day and
send it to the CEO. Let's say that's the

463
00:22:53,411 --> 00:22:53,671
-deal.
-Yeah.

464
00:22:53,671 --> 00:22:54,831
Right? That's it. That's all they need to
do.

465
00:22:55,551 --> 00:22:59,511
But because the only way to give them that
permission is to assign them that role,

466
00:22:59,511 --> 00:23:02,831
in addition to getting the ability to run
the report, they also get the ability to

467
00:23:02,831 --> 00:23:08,151
put in coaching entries or reprimand other
peop- or s- read entries for other

468
00:23:08,151 --> 00:23:11,671
teams', um, employees or team members that
are on that team, right? Not what you're

469
00:23:11,671 --> 00:23:13,871
-asking for, not what you're looking for.
-No.

470
00:23:13,871 --> 00:23:18,331
Certainly, like, not a least privileged
situation. And so what we're running into

471
00:23:18,331 --> 00:23:21,751
is that we have people who have
permissions that they should never have

472
00:23:21,751 --> 00:23:25,571
just because they were given them
temporarily and then they were never

473
00:23:25,571 --> 00:23:29,351
removed. Right? So the only way that we
can catch this is if we do these audits,

474
00:23:29,351 --> 00:23:32,311
which we end up doing, but it's a big pain
in the neck. And there are ways, there

475
00:23:32,311 --> 00:23:34,731
are better ways to do this. So,

476
00:23:35,831 --> 00:23:40,031
I'm gonna ex- I'll explain to you sort of
our proposition and then I'll continue to

477
00:23:40,031 --> 00:23:43,711
kinda go through how we wanna manage it.
The proposition is in any place where we

478
00:23:43,711 --> 00:23:48,291
have a HasRoleCheck, we're gonna remove
that HasRoleCheck and we're going to name

479
00:23:48,291 --> 00:23:53,231
the thing that they're trying to do at
that check. So, instead of

480
00:23:54,091 --> 00:23:59,911
HasRole, we're going to s- HasRoleManager,
we're gonna say CanRunReports. In that

481
00:23:59,911 --> 00:24:03,631
spot, that one spot where they check to
see if they ha- if they're a manager.

482
00:24:03,631 --> 00:24:06,591
Instead we're going to say name that thing
that they're trying to do, they're trying

483
00:24:06,591 --> 00:24:11,971
to run a report, and then we're going to
ask the question User CanRunReports.

484
00:24:11,971 --> 00:24:15,791
Right? Okay. So we're going to change it
from a role to a permission or ability.

485
00:24:15,791 --> 00:24:19,271
Permission and ability are the same word,
essentially. Which do you prefer?

486
00:24:22,115 --> 00:24:28,635
Mm-hmm. I I think the, the general advice,
like the 90%, 95% use case, is to assign

487
00:24:28,635 --> 00:24:30,856
-roles and check permissions.
-Okay. Permissions.

488
00:24:30,856 --> 00:24:34,575
It's certainly the way that, that we
operate, is that we will always check that

489
00:24:34,575 --> 00:24:37,415
-the user can do something.
-Yeah. Okay.

490
00:24:37,415 --> 00:24:38,435
We would never... Well,

491
00:24:39,155 --> 00:24:45,435
I say never. In our modern stuff , in our
new stuff, it's always a permission check.

492
00:24:45,435 --> 00:24:45,995
Okay.

493
00:24:45,995 --> 00:24:51,315
Uh, or a policy check or whatever else.
Previously, in our old code, it w- it was

494
00:24:51,315 --> 00:24:53,276
-base... Like, we would assign roles.
-Yeah. Yeah.

495
00:24:53,276 --> 00:24:56,915
We had a permissions table, but p- but
permissions were never implemented, so it

496
00:24:56,915 --> 00:25:00,195
was always like, "Is... Does this user
have a role?"

497
00:25:00,195 --> 00:25:01,515
-Yeah.
-We would always check are they an admin,

498
00:25:01,515 --> 00:25:02,215
-are they a manager.
-Yep.

499
00:25:02,215 --> 00:25:07,175
Are they a group manager. We had, um...
And, and like you say, that then means

500
00:25:07,175 --> 00:25:10,235
that that person has access to everything

501
00:25:11,195 --> 00:25:13,216
that that role enables them,

502
00:25:13,915 --> 00:25:19,155
um, whereas you want, typically, I think,
your permissions to be as granular as

503
00:25:19,155 --> 00:25:19,655
possible.

504
00:25:20,455 --> 00:25:25,055
Yes. The... Yes, correct. I agree with all
of that. Um, my question specifically is,

505
00:25:25,055 --> 00:25:28,635
when we're talking about that, you're
using the word permissions to talk about a

506
00:25:28,635 --> 00:25:32,415
granular level thing that they can do.
Another word that I've heard used for that

507
00:25:32,415 --> 00:25:34,575
-is ability. So, my question is-
-Mm-hmm

508
00:25:34,575 --> 00:25:37,675
... for the remainder of our discussion,
would you prefer me call them permissions

509
00:25:37,675 --> 00:25:38,475
or abilities?

510
00:25:41,155 --> 00:25:44,075
It depends on what you... If you're just
using Lyro stuff, I'd call them

511
00:25:44,075 --> 00:25:46,755
-permissions.
-Okay. So, yeah, permissions. And that's

512
00:25:46,755 --> 00:25:48,175
-what my guys sort of said too. They said-
-And you-

513
00:25:48,175 --> 00:25:50,815
... "Oh, we like to call them permissions
instead of abilities." 'Cause I've called

514
00:25:50,815 --> 00:25:51,415
-them abilities-
-Yeah

515
00:25:51,415 --> 00:25:52,995
... in the past, and I th- we can call
them-

516
00:25:52,995 --> 00:25:53,755
-Yeah
-... permissions. That's fine.

517
00:25:53,755 --> 00:25:56,015
-It's a bit... Like, I think bouncer?
-Yes.

518
00:25:56,015 --> 00:25:57,275
'Cause I know you've used bouncer in the
past.

519
00:25:57,275 --> 00:25:57,715
Well that, well that's because of
abilities.

520
00:25:57,715 --> 00:25:59,195
Bouncer refers to the roles and abilities.

521
00:25:59,195 --> 00:26:01,975
-Yeah. Yeah.
-Yeah, right. Um, I think... How would you

522
00:26:01,975 --> 00:26:03,255
-think about this?
-And then there are no permissions, we're

523
00:26:03,255 --> 00:26:04,515
first giving out permissions.

524
00:26:05,755 --> 00:26:06,055
Yeah.

525
00:26:06,855 --> 00:26:10,495
Like, you have permission to do something,
but you have the ability

526
00:26:12,135 --> 00:26:12,595
to

527
00:26:14,395 --> 00:26:17,035
-enact that, that something, right?
-Yeah. Yeah.

528
00:26:17,035 --> 00:26:20,475
So, I think it depends on which way you're
looking at... You know, is the user

529
00:26:21,255 --> 00:26:25,175
the one that... You know, does the user
have the ability to do this thing?

530
00:26:26,935 --> 00:26:29,055
-It-
-I know. They're, they're synonymous.

531
00:26:29,055 --> 00:26:30,515
-The user has the ability-
-They're synonymous. Yeah.

532
00:26:30,515 --> 00:26:32,075
Or does the user have the permission?
Yeah.

533
00:26:32,075 --> 00:26:34,955
Yeah. And so, I'm just trying to
establish, like, uh, the domain language

534
00:26:34,955 --> 00:26:38,255
for our team, like, whether we're gonna be
using the word ability, permission. I've

535
00:26:38,255 --> 00:26:39,315
-used the word ability-
-Yeah

536
00:26:39,315 --> 00:26:40,695
... but I think we're switching over to
using the word permission.

537
00:26:40,695 --> 00:26:43,355
Sounds like if the rest of your... Yeah, I
was gonna say, it sounds like if the rest

538
00:26:43,355 --> 00:26:43,795
-of your team-
-Yeah

539
00:26:43,795 --> 00:26:45,675
-... is using permission-
-Yeah, that's the word that they would like

540
00:26:45,675 --> 00:26:47,175
-to use
-... then, then you're using permission.

541
00:26:47,175 --> 00:26:50,195
-Agreed.
-Um, and like I said, I, I think the, the

542
00:26:50,195 --> 00:26:50,595
fact that

543
00:26:51,295 --> 00:26:54,235
ability is in your head is probably owing
to the fact that you used-

544
00:26:54,235 --> 00:26:55,735
-100%
-... that you've used bouncer in the past

545
00:26:55,735 --> 00:26:56,795
-as well.
-Yes, it is.

546
00:26:56,795 --> 00:26:59,315
But, like, the Sparcy, Sparcy has a
permissions package.

547
00:26:59,315 --> 00:27:01,095
-Yeah.
-I think generally when people speak about

548
00:27:01,095 --> 00:27:04,975
-it, it's permission rather than... Yeah.
-Yeah. Okay. So,

549
00:27:05,835 --> 00:27:09,275
we've got permissions, right? In every
spot where we're doing the HasRole, we're

550
00:27:09,275 --> 00:27:12,995
going to check, uh... Instead of HasRole,
we're gonna say HasPermission essentially.

551
00:27:12,995 --> 00:27:17,435
Think about it that way, right? So, we're
gonna make everything very granular, and

552
00:27:17,435 --> 00:27:20,935
so our application will check for
permissions. Now,

553
00:27:21,675 --> 00:27:27,295
the second part of this is imagine that
across those 20 apps, you know, every app

554
00:27:27,295 --> 00:27:31,875
has its own set of permissions that, that
are a part of that, right?

555
00:27:32,715 --> 00:27:33,475
-Now-
-Mm-hmm

556
00:27:33,475 --> 00:27:38,915
... who manages those permissions is the
question. Who gets to manage those? Well,

557
00:27:38,915 --> 00:27:43,895
I will tell you, my preference is that I
never ever manage those. I want my team to

558
00:27:43,895 --> 00:27:49,275
write the code that enables people who
have that permission to do that thing.

559
00:27:49,275 --> 00:27:50,955
-That's what I want my team to do.
-Mm-hmm.

560
00:27:50,955 --> 00:27:55,435
But I do not want my team to manage
permissions. I want the IT staff to do

561
00:27:55,435 --> 00:27:55,735
that.

562
00:27:56,395 --> 00:27:56,995
-Um-
-Right

563
00:27:56,995 --> 00:27:57,255
... and

564
00:27:58,115 --> 00:27:58,595
for them,

565
00:27:59,375 --> 00:28:02,355
even only in a limited capacity. So, um,

566
00:28:03,075 --> 00:28:07,855
what I would like to have happen then is
if you can think of a

567
00:28:08,515 --> 00:28:11,835
different application... So you have these
20 applications that live on the bottom

568
00:28:11,835 --> 00:28:14,795
level there, and all those le- all those
are doing is they're checking for

569
00:28:14,795 --> 00:28:16,355
abilities. So, there is essentially no,

570
00:28:17,195 --> 00:28:21,975
no concept of roles anymore in those.
We're gonna rip those out of that

571
00:28:21,975 --> 00:28:27,255
application. No roles anymore. It's just
permission checks. We're gonna go up a

572
00:28:27,255 --> 00:28:31,255
layer, and now you're gonna have an
application, uh, one layer above that

573
00:28:31,255 --> 00:28:33,355
knows about all the different applications

574
00:28:34,095 --> 00:28:38,975
and then knows about all the different
roles in those applications, and then

575
00:28:38,975 --> 00:28:42,915
groups together different permissions for
those particular roles.

576
00:28:44,515 --> 00:28:45,615
-Mm-hmm.
-Does that make sense? Now, that

577
00:28:45,615 --> 00:28:49,995
application that sits above that is active
directory, essentially, is the idea,

578
00:28:49,995 --> 00:28:51,315
-right?
-It's exactly what that is. Yeah.

579
00:28:51,315 --> 00:28:54,635
I mean, that's what it is. And so, and so
what we're thinking is, like, why reinvent

580
00:28:54,635 --> 00:28:58,275
the wheel on that? E- essentially what we
do is we have a user,

581
00:28:58,895 --> 00:29:03,035
and that user will have a job function,
which is essentially their job title,

582
00:29:03,035 --> 00:29:06,655
right? So if I have a banking manager,

583
00:29:07,475 --> 00:29:12,795
um, that banking manager is going to have
specific permissions inside of each of

584
00:29:12,795 --> 00:29:17,555
those 20 different applications, right?
Inside of some of those applications, they

585
00:29:17,555 --> 00:29:22,755
may have a role of manager. So, like in
the case of, like, coaching, right?

586
00:29:23,735 --> 00:29:25,995
-Mm-hmm.
-Because they're a manager, they're going

587
00:29:25,995 --> 00:29:30,735
to have likely a coaching manager role
inside that application, but the

588
00:29:30,735 --> 00:29:34,655
application doesn't know anything about
that. All it knows about at the end of the

589
00:29:34,655 --> 00:29:38,515
day is which permissions that user was
granted when they come in.

590
00:29:39,215 --> 00:29:43,255
The way that this will be structured then
in Active Directory is you will have a

591
00:29:43,255 --> 00:29:43,915
coaching_,

592
00:29:45,155 --> 00:29:50,375
so it's actually namespaced in Active
Directory. App_coaching, which is the name

593
00:29:50,375 --> 00:29:53,795
of the app, _role or ability. So,

594
00:29:54,435 --> 00:29:58,975
app_coaching_manager. That's the role,
right?

595
00:29:58,975 --> 00:30:01,575
-Mm-hmm. Mm-hmm.
-And then nested underneath that

596
00:30:02,375 --> 00:30:07,455
would be additional security groups that
would apply to that particular role,

597
00:30:07,455 --> 00:30:11,535
right? So app_coaching can add new
coaching log.

598
00:30:12,335 --> 00:30:13,675
App_coaching-

599
00:30:14,275 --> 00:30:15,795
-Yep
-... can run coaching reports.

600
00:30:16,475 --> 00:30:20,915
And those abilities may only live under
app coaching manager, but they also may

601
00:30:20,915 --> 00:30:26,656
run under... May live under app coaching
admin.Right? So those abilities have

602
00:30:26,656 --> 00:30:29,795
basically a one-to-many relationship
between-

603
00:30:29,795 --> 00:30:32,715
-Mm-hmm
-... those, uh, those different security

604
00:30:32,715 --> 00:30:37,095
groups. Okay? And then each user would get
assigned to one of those security roles.

605
00:30:37,095 --> 00:30:39,935
Okay. The reason why that's all important
is because

606
00:30:40,535 --> 00:30:44,775
when a user is created in the system, they
will get a single

607
00:30:45,496 --> 00:30:46,116
set of

608
00:30:47,715 --> 00:30:51,115
roles. That's it, that's what they get.
They get the ones that belong to their

609
00:30:51,115 --> 00:30:53,655
particular job function and nothing else.

610
00:30:54,475 --> 00:30:55,635
-So if-
-Mm-hmm

611
00:30:55,635 --> 00:30:59,356
... that user that was previously
mentioned needs to take over for their

612
00:30:59,356 --> 00:31:02,176
manager for a week to run that report,

613
00:31:03,035 --> 00:31:05,336
instead of giving them

614
00:31:06,016 --> 00:31:12,695
app_coaching_runreport, or sorry, a-
app_coaching_manager, they would get the

615
00:31:12,695 --> 00:31:17,595
ability of app_coaching_cannrunreport.
They would get that single ability rather

616
00:31:17,595 --> 00:31:20,435
than the manager role. Now here's the
really interesting thing.

617
00:31:21,875 --> 00:31:26,155
We are going to say that anybody who needs
an additional permission outside of the

618
00:31:26,155 --> 00:31:31,535
ones that apply to their specific role,
they only get a lease on that permission.

619
00:31:33,515 --> 00:31:34,775
-Yeah.
-Does that make sense? So it's-

620
00:31:34,775 --> 00:31:37,075
-Yep
-... expiring, meaning that they can ask

621
00:31:37,075 --> 00:31:42,555
for it for a period of time, and then
after that, it goes away. It gets removed-

622
00:31:42,555 --> 00:31:42,675
Yeah

623
00:31:42,675 --> 00:31:43,775
-... from their user-
-Yeah

624
00:31:43,775 --> 00:31:46,835
... so that we don't end up with this mess
of what we're talking about, where a user

625
00:31:46,835 --> 00:31:50,435
gets a permission and it just is signed
forever. So you have somebody who started

626
00:31:50,435 --> 00:31:53,655
in one team and they've moved three times,
and now they have inherited permissions

627
00:31:53,655 --> 00:31:55,675
for every single team they've ever been
on.

628
00:31:55,675 --> 00:31:58,015
-Yeah. Mm-hmm.
-Which is a freaking disaster mess.

629
00:31:58,655 --> 00:31:59,615
-Um-
-Yeah

630
00:31:59,615 --> 00:32:02,855
... and it's really unclear what they
actually still need and what they don't

631
00:32:02,855 --> 00:32:04,035
-because they were never removed.
-Mm-hmm.

632
00:32:05,075 --> 00:32:05,415
-Yeah.
-And so

633
00:32:06,015 --> 00:32:07,715
that's the big picture of what we're
trying to-

634
00:32:07,715 --> 00:32:08,975
-So-
-... accomplish. Yeah.

635
00:32:09,855 --> 00:32:14,835
Mm-hmm. So are these, the expiring
permissions, are they being managed inside

636
00:32:14,835 --> 00:32:19,255
of Active Directory, or are you doing
that, like some scheduled task that goes

637
00:32:19,255 --> 00:32:23,075
through and, and cleans up these
permissions where expiry date is in the

638
00:32:23,075 --> 00:32:25,355
-past?
-Yeah, you got it. And so it's actually a

639
00:32:25,355 --> 00:32:28,915
little bit silly. We're using AD LDAP, so
Active Directory-

640
00:32:28,915 --> 00:32:31,275
-Mm-hmm
-... L- LDAP. What is, uh, listing

641
00:32:31,275 --> 00:32:33,855
directory? I don't know. It's, like, that
protocol basically that lets you-

642
00:32:33,855 --> 00:32:35,375
-Yeah, yeah, yeah
-... talk to those things.

643
00:32:35,375 --> 00:32:37,315
-Yeah.
-And what we do is when somebody wants an

644
00:32:37,315 --> 00:32:40,775
additional permission, we can say, "Okay,
they want..." You know, select the

645
00:32:40,775 --> 00:32:43,355
application you're trying to get
permissions for. Coaching. "All right,

646
00:32:43,355 --> 00:32:47,355
here are all the ab- roles and the
abilities that are available for you to

647
00:32:47,355 --> 00:32:51,475
lease." "Okay, I want to be able to run
the report." "Okay. When does it, when

648
00:32:51,475 --> 00:32:55,555
does it expire?" "It expires in, in a
week." And then they say, "Okay, request."

649
00:32:55,555 --> 00:32:59,715
Their manager has to look at it, approve
it, and once their manager approves it, it

650
00:32:59,715 --> 00:33:00,115
will then

651
00:33:00,775 --> 00:33:07,655
send that off to our auth application, and
then that thing actually adds that, uh,

652
00:33:07,655 --> 00:33:08,135
group...

653
00:33:09,115 --> 00:33:10,375
-Uh, sorry, adds that user-
-Mm-hmm

654
00:33:10,375 --> 00:33:13,555
-... sorry, to that group.
-Yeah.

655
00:33:13,555 --> 00:33:14,055
And then

656
00:33:14,715 --> 00:33:19,755
it will, you know, check the end date
every day at 7:00 AM, and when the end day

657
00:33:19,755 --> 00:33:23,695
hits, it will remove that user from that
group. And then when they log in the next

658
00:33:23,695 --> 00:33:28,275
time, it will look at the AD groups that
they are a part of and it will remove the

659
00:33:28,275 --> 00:33:31,255
ability that they previously had, uh, when
they logged in-

660
00:33:31,255 --> 00:33:32,035
-Right
-... last time.

661
00:33:32,035 --> 00:33:34,015
-Mm-hmm.
-So that's the idea. Now the, the big

662
00:33:34,015 --> 00:33:37,915
challenges that I'm running into here is
that this top level app,

663
00:33:38,535 --> 00:33:41,735
uh, that's going to help manage all these
things has to be aware of all the

664
00:33:41,735 --> 00:33:45,115
different mappings that I have for these
abilities inside of all these different

665
00:33:45,115 --> 00:33:47,375
-applications, which is-
-Yeah

666
00:33:47,375 --> 00:33:52,355
... that is the pain, but I don't really
know of a better way to do it if I don't

667
00:33:52,355 --> 00:33:52,675
-want-
-Yeah

668
00:33:52,675 --> 00:33:53,755
... my team to manage it.

669
00:33:55,215 --> 00:33:57,595
Yeah. And it also means that anytime you
add a permission

670
00:33:58,215 --> 00:33:59,775
somewhere, you've gotta do it in two
places.

671
00:33:59,775 --> 00:34:01,335
-Yes, correct.
-You've gotta do it in the app, and you've

672
00:34:01,335 --> 00:34:03,195
-gotta do it in the-
-Active Directory

673
00:34:03,195 --> 00:34:04,195
-... the overseer-
-Yeah

674
00:34:04,195 --> 00:34:04,995
-... as well.
-Yeah.

675
00:34:04,995 --> 00:34:05,115
Yeah.

676
00:34:06,995 --> 00:34:12,255
But yeah, I mean, and, and expiring
permission is a good way to, to deal with

677
00:34:12,255 --> 00:34:14,735
it, I think, especially from a compliance
perspective.

678
00:34:14,735 --> 00:34:16,455
-Yeah, exactly.
-You know, no one should have access to

679
00:34:16,455 --> 00:34:18,215
things that they shouldn't have access to,
so having that-

680
00:34:18,215 --> 00:34:20,075
-And we can see when they requested it
-... That's amazing. And it's like...

681
00:34:20,875 --> 00:34:24,295
Yeah. Yeah, if you're keeping audit trail
of it, that's, that's gonna be helpful for

682
00:34:24,295 --> 00:34:27,555
that kind of stuff as well, 'cause you
know that no one's got access to anything

683
00:34:27,555 --> 00:34:31,535
that they shouldn't. And if they do, you
know, they shouldn't typically have access

684
00:34:31,535 --> 00:34:34,995
to it. You know when they requested it,
when it was approved, by who, and when it

685
00:34:34,995 --> 00:34:37,455
was removed. And, um,

686
00:34:39,195 --> 00:34:42,595
yeah, I mean, it's no different to how
when you create GitHub tokens and things

687
00:34:42,595 --> 00:34:46,215
like that, you can request for it to be,
you know, seven days or 30 days or 90 days

688
00:34:46,215 --> 00:34:50,495
or, or, or unlimited. And as much as it
annoys me every 30 days to have to, to

689
00:34:50,495 --> 00:34:51,575
-roll a token-
-I know, right

690
00:34:51,575 --> 00:34:55,535
... I think probably having a, a 30 day
token is, is still the, the correct answer

691
00:34:55,535 --> 00:34:56,315
for most things.

692
00:34:57,115 --> 00:34:59,675
-Yeah, there's, um, the-
-Spreaker. Spreaker on the pitch.

693
00:34:59,675 --> 00:35:00,475
Yeah. Oh, he's

694
00:35:01,095 --> 00:35:01,395
...

695
00:35:02,055 --> 00:35:02,135
He-

696
00:35:02,815 --> 00:35:06,275
he's got his, uh, he's got his pajamas on.
Harrison, you wanna say hi

697
00:35:07,675 --> 00:35:09,715
real quick? Come here. Come here. Yeah,
that's fine.

698
00:35:09,715 --> 00:35:12,555
-The baby of the bunch.
-Har- come say hi here. Hold on. Hold on.

699
00:35:12,555 --> 00:35:13,415
Let me put your head phone.

700
00:35:14,395 --> 00:35:16,395
-Look at him.
-Say, say hey, Michael.

701
00:35:16,395 --> 00:35:17,335
Hi, Michael. So big.

702
00:35:18,495 --> 00:35:19,355
Hey, man. How you doing?

703
00:35:20,215 --> 00:35:20,235
He's s-

704
00:35:20,875 --> 00:35:22,955
-He's doing good.
-I remember the, the last time I saw him

705
00:35:22,955 --> 00:35:25,275
was teeny tiny in a pram

706
00:35:25,955 --> 00:35:26,695
in New York.

707
00:35:27,355 --> 00:35:30,135
-That's how long ago that was.
-Oh, that's right. Dude, that was Laracon.

708
00:35:30,135 --> 00:35:31,075
-No, look at him.
-Harrison, you were in Laracon.

709
00:35:31,075 --> 00:35:32,575
-Yeah.
-You were at Laracon with us at eight weeks

710
00:35:32,575 --> 00:35:33,235
old, remember?

711
00:35:34,515 --> 00:35:35,175
You don't remember.

712
00:35:36,095 --> 00:35:38,395
-I don't remember.
-No, he don't remember. All right, say,

713
00:35:38,395 --> 00:35:39,175
say, "Hello world."

714
00:35:40,135 --> 00:35:41,455
Say it l- nice and loud to everybody.

715
00:35:42,155 --> 00:35:43,775
Hello world.

716
00:35:45,195 --> 00:35:46,615
-There he is.
-I love the eye roll. Sorry.

717
00:35:46,615 --> 00:35:47,435
Sorry. Bye, Harry.

718
00:35:48,595 --> 00:35:48,875
Um,

719
00:35:49,595 --> 00:35:54,075
so, uh, yeah, what was the last thing I
was gonna s- oh, here's the other piece of

720
00:35:54,075 --> 00:35:55,535
this which is really interesting, I
think.

721
00:35:56,135 --> 00:35:57,315
Um, if, so

722
00:35:57,935 --> 00:36:02,435
when a permission is about to expire, we
can send an email out and say, "Hey, you

723
00:36:02,435 --> 00:36:05,815
have this permission which is about to
expire. If you need to extend your lease

724
00:36:05,815 --> 00:36:06,535
-on it-
-Mm-hmm

725
00:36:06,535 --> 00:36:10,235
... you can request, uh, an extension
here." And they could click it. It could

726
00:36:10,235 --> 00:36:10,475
-fire-
-Yeah

727
00:36:10,475 --> 00:36:13,155
... off that extension request, and then
their manager could approve it again, and

728
00:36:13,155 --> 00:36:17,175
then it could happen. Right. So I think it
re- and so what that allows essentially,

729
00:36:17,175 --> 00:36:20,875
is that allows me to not only actually
remove the burden from my software

730
00:36:20,875 --> 00:36:24,875
development team, it actually also removes
the ability of my IT guys to get

731
00:36:24,875 --> 00:36:26,955
involved. They'll have to add new
permissions-

732
00:36:26,955 --> 00:36:29,135
-Mm-hmm
-... but they should never really have to

733
00:36:29,135 --> 00:36:33,555
get involved in the modifying of
permissions outside of-

734
00:36:33,555 --> 00:36:35,255
-Yeah
-... if we need to add a default permission

735
00:36:35,255 --> 00:36:41,423
to a particular job function or job role.
Right? Um...So it'll be a little bit of

736
00:36:41,423 --> 00:36:44,803
like a hand in glove situation where we do
need to work closely with them on some of

737
00:36:44,803 --> 00:36:48,484
those things. But as it is right now,
it's sort of a pain the neck because

738
00:36:48,484 --> 00:36:51,663
they'll have to message one of the
software devs and be like, "Hey, somebody

739
00:36:51,663 --> 00:36:54,904
said they need to run that report. What
role do they need?" That's, that's...

740
00:36:54,904 --> 00:36:56,484
'Cause there's, it's not transparent to
them at all-

741
00:36:56,484 --> 00:36:58,723
-Yeah
-... what, what roles are needed for what

742
00:36:58,723 --> 00:37:00,123
particular abilities. And so

743
00:37:00,864 --> 00:37:03,663
it's just we're trading problems, and I
think it's a better solution.

744
00:37:03,663 --> 00:37:03,964
Yeah.

745
00:37:04,944 --> 00:37:07,043
-So.
-So two, two things that I just thought of.

746
00:37:07,043 --> 00:37:12,823
Number one, um, how easy are you making
it? So if I have to go and request

747
00:37:12,823 --> 00:37:17,183
permission to do some report, is it fairly
obvious that I'm like, "This is the

748
00:37:17,183 --> 00:37:18,243
permission that I want"?

749
00:37:18,884 --> 00:37:21,303
-Right. Like-
-Are you naming them in such a way? 'Cause-

750
00:37:21,303 --> 00:37:21,944
Yeah

751
00:37:21,944 --> 00:37:26,603
... most, most permission stuff would be
transparent to... I mean, maybe managers

752
00:37:26,603 --> 00:37:30,403
know what the permissions are. You know,
there would be some level of knowledge

753
00:37:30,403 --> 00:37:34,283
there depending on their technical skill.
But for most, most workers, I would

754
00:37:34,283 --> 00:37:36,364
imagine that they don't know what they're
asking for.

755
00:37:36,364 --> 00:37:40,563
That's agreed. That- that's true. And I
think right now, it's completely obli- n-

756
00:37:40,563 --> 00:37:42,763
-nobody knows. There's no good catalog-
-Yeah

757
00:37:42,763 --> 00:37:46,523
... of abilities, right? And so what we
would have to do as part of this is we'd

758
00:37:46,523 --> 00:37:49,543
have to... You know, we'd give it a good
name, and we've got a convention that

759
00:37:49,543 --> 00:37:52,063
we're using to convert the abilities, um,

760
00:37:52,883 --> 00:37:58,943
to good named AD security objects. And
then we need to give good definitions to

761
00:37:58,943 --> 00:38:00,943
them as well. A- and so that'll be part
of-

762
00:38:00,943 --> 00:38:02,663
-Yeah
-... the process of converting these over,

763
00:38:02,663 --> 00:38:06,603
is just making sure that we give good
descriptions of what they are. And then

764
00:38:06,603 --> 00:38:10,663
we'll probably have to do something like a
package, honestly, something that's going

765
00:38:10,663 --> 00:38:14,563
to help to coordinate the different
abilities between the different

766
00:38:14,563 --> 00:38:20,323
applications. Or we'll have to create an
endpoint that lives on these applications

767
00:38:20,323 --> 00:38:24,683
where they can be hit and queried, and
then they can return back those, those

768
00:38:24,683 --> 00:38:26,903
pieces of data. 'Cause I really don't
wanna have to

769
00:38:27,703 --> 00:38:28,583
update...

770
00:38:29,523 --> 00:38:31,943
I- I don't wanna have to update a package
every time I wanna add a new ability. I

771
00:38:31,943 --> 00:38:33,643
-don't wanna have to do that. And so-
-Right

772
00:38:33,643 --> 00:38:36,603
... I think if we just created an endpoint
that was like, "Hey, give me all the

773
00:38:36,603 --> 00:38:40,803
different ability. Give me, give me your
permissions catalog," and it could, it

774
00:38:40,803 --> 00:38:45,403
could say what those are, then we can just
essentially advertise that and, you know,

775
00:38:45,403 --> 00:38:49,803
use an API token, go grab the abilities,
uh, the abilities catalog, and then, um,

776
00:38:51,103 --> 00:38:53,963
push those into a config item or something
like that. You know what I mean? I'm not

777
00:38:53,963 --> 00:38:54,303
-using the-
-Yeah

778
00:38:54,303 --> 00:38:55,043
-... right wording here, but that-
-Yeah

779
00:38:55,043 --> 00:38:57,063
... that would be the idea. So yeah, that,
I think-

780
00:38:57,063 --> 00:38:58,083
-Yeah
-... that would be how you'd do it. You

781
00:38:58,083 --> 00:39:00,943
would try and make it as obvious as we
could. So that was, that was number one.

782
00:39:00,943 --> 00:39:01,223
Yeah.

783
00:39:02,363 --> 00:39:04,923
-And you had number two.
-Um, I think the, the other thing, the

784
00:39:04,923 --> 00:39:09,603
other thing was, you know, if, if you
needed to request an extension... I mean,

785
00:39:09,603 --> 00:39:10,863
you, you said at the top that

786
00:39:12,143 --> 00:39:15,783
people would be asking for permission to
do something because their manager is

787
00:39:15,783 --> 00:39:17,443
-going to be away. So if they need-
-Ah

788
00:39:17,443 --> 00:39:19,823
... to extend that, who's, who's approving
that?

789
00:39:19,823 --> 00:39:21,643
-Yeah, no.
-Because the manager's obviously, you know,

790
00:39:21,643 --> 00:39:23,663
-away for a bit longer, so there's-
-That's a good-

791
00:39:23,663 --> 00:39:26,043
-... that's something to consider as well.
-That's a good question. Um-

792
00:39:26,043 --> 00:39:27,563
Like, someone would have to approve it,

793
00:39:28,203 --> 00:39:29,063
-um-
-Yeah

794
00:39:29,063 --> 00:39:32,063
... and they would probably... Like, I
would, I would say that that is more the

795
00:39:32,063 --> 00:39:36,043
exception than the norm, where maybe, you
know, your team or IT would have to step

796
00:39:36,043 --> 00:39:36,383
-in and go-
-Yes

797
00:39:36,383 --> 00:39:37,363
... "Well, they had it."

798
00:39:38,183 --> 00:39:39,963
Yeah, typically, that, that has happened
before.

799
00:39:39,963 --> 00:39:41,703
-But then you'd have-
-Yeah, where, where we would have somebody

800
00:39:41,703 --> 00:39:44,003
-who's away-
-And I think you would probably have some

801
00:39:44,003 --> 00:39:45,423
-rules around that as well.
-Yeah.

802
00:39:45,423 --> 00:39:49,883
Like, you can only request one extension,
or the extension can only be for two days

803
00:39:49,883 --> 00:39:50,943
-or something like that.
-Yeah.

804
00:39:50,943 --> 00:39:54,863
And we did a, we did a similar kind of
thing with,

805
00:39:55,823 --> 00:40:00,303
um, like invoices. When you've got an
overdue invoice, you can request an

806
00:40:00,303 --> 00:40:04,283
extension. And so the, the frontline staff
would have permission to request an

807
00:40:04,283 --> 00:40:07,643
extension, and there'd be, there was a
series of rules. Like, you could, you

808
00:40:07,643 --> 00:40:12,243
could ask for s- uh, 14 days or seven
days, but you could only ask for each

809
00:40:12,243 --> 00:40:16,303
once. So initially, you'd get like a
14-day buffer. And then if you had already

810
00:40:16,303 --> 00:40:19,943
asked for 14 days, you could only ask for
a seven-day extension from there.

811
00:40:20,583 --> 00:40:23,843
And then there was like... that was it.
And that was, like, enforcing business

812
00:40:23,843 --> 00:40:28,163
rules ar- around those kinds of things.
Because there's also this expectation of,

813
00:40:28,163 --> 00:40:32,323
um... This was in telecommunications, so
there's, there's a whole code of practice

814
00:40:32,323 --> 00:40:34,363
around, um, not

815
00:40:35,303 --> 00:40:38,283
l- allowing customers to get, you know,
dig themselves into debt-

816
00:40:38,283 --> 00:40:40,143
-Yeah, yeah
-... over these kinds of things that, you

817
00:40:40,143 --> 00:40:43,643
know, you would have to, you'd have to cut
them off. You wouldn't be able to keep

818
00:40:43,643 --> 00:40:46,283
extending them so that you didn't keep
charging them for a service that they

819
00:40:46,283 --> 00:40:47,463
-clearly can't pay for or-
-Yeah

820
00:40:47,463 --> 00:40:49,343
... or had no interest in paying for. So,

821
00:40:49,943 --> 00:40:53,523
um, yeah, maybe something like that where,
you know, you get one,

822
00:40:54,583 --> 00:40:58,743
one, um, bump. You know, it gives you an
extra three days or something.

823
00:40:59,543 --> 00:41:02,663
And then beyond that, you have to ask for
a whole new thing.

824
00:41:02,663 --> 00:41:03,543
-Yeah.
-Um,

825
00:41:04,323 --> 00:41:08,743
that, you know... Yeah, w- what that looks
like for, for your organization and, and

826
00:41:08,743 --> 00:41:12,463
how you implement that or what the, what
the business rules around that is,

827
00:41:13,423 --> 00:41:16,943
you know, up to, up to you guys. But it
might be one approach that, that could be

828
00:41:16,943 --> 00:41:19,683
-suitable.
-It's a good idea to have a maximum number

829
00:41:19,683 --> 00:41:23,663
of, um, extensions that you could do
though. I think that's a great idea. It's

830
00:41:23,663 --> 00:41:24,223
-not something-
-Right

831
00:41:24,223 --> 00:41:27,003
... I'd thought of before. 'Cause yeah,
otherwise you could just have somebody

832
00:41:27,003 --> 00:41:29,863
continue to request extensions and just
kind of go that way. And-

833
00:41:29,863 --> 00:41:31,423
-Mm-hmm
-... that does defeat the purpose a little

834
00:41:31,423 --> 00:41:33,663
bit, especially if we have, like,
long-term leases.

835
00:41:33,663 --> 00:41:37,083
You could ask for a new... Yeah, but you
could, you could ask for a new-

836
00:41:37,083 --> 00:41:37,883
-Correct
-... extension.

837
00:41:37,883 --> 00:41:41,463
-Yes. Absolutely. Yeah, you-
-But it would, like, you couldn't just, you

838
00:41:41,463 --> 00:41:44,683
couldn't have like a seven-day extension
for the time that manager's away, and then

839
00:41:44,683 --> 00:41:47,243
you would just ask for like... I would
just top that up for another three days,

840
00:41:47,243 --> 00:41:47,763
-another three days-
-Yeah

841
00:41:47,763 --> 00:41:49,823
... another three days. Like, you would
wanna set a cap on that.

842
00:41:49,823 --> 00:41:51,803
-Yeah.
-But if they, there was genuinely a need

843
00:41:51,803 --> 00:41:54,703
for it, you know, if the manager had
delegated the responsibility of running

844
00:41:54,703 --> 00:41:58,703
that report to someone else, then, you
know, that would just have to request that

845
00:41:58,703 --> 00:41:59,863
-permission, you know-
-Absolutely

846
00:41:59,863 --> 00:42:02,343
-... and say, "Okay, yes-"
-And we have, I think the solution-

847
00:42:02,343 --> 00:42:04,403
"... let's do it again. Here's another
seven days or here's 30 days now."

848
00:42:04,403 --> 00:42:07,723
Yeah, the solution in that instance would
be like these long-term leases that we

849
00:42:07,723 --> 00:42:09,243
-would have, that would be like-
-Mm-hmm

850
00:42:09,243 --> 00:42:12,383
... you could request up to like a
six-month lease or something like that. If

851
00:42:12,383 --> 00:42:12,643
-you're-
-Yeah

852
00:42:12,643 --> 00:42:15,563
... if, you know, in some instances, maybe
it'd go through an additional approval

853
00:42:15,563 --> 00:42:18,563
process or something where it's like, "Why
are you asking for a six-month approval?"

854
00:42:18,563 --> 00:42:19,103
Mm-hmm.

855
00:42:19,103 --> 00:42:21,783
Uh, you have to have the approval of
two... Or sorry, a six-month lease, you

856
00:42:21,783 --> 00:42:24,983
have to have the approval of two people in
order to get that or something. Um, and

857
00:42:24,983 --> 00:42:27,783
if it was gonna be made a more permanent
part of a role or delegated to somebody

858
00:42:27,783 --> 00:42:31,643
else, then we might need to make an
additional layer, an initial role, like a

859
00:42:31,643 --> 00:42:35,623
training, uh, assistant. You know what I
mean? Something like that role. And then

860
00:42:35,623 --> 00:42:40,103
they just get that ability as well. Um,
but again, the nice thing about this is

861
00:42:40,103 --> 00:42:43,503
that if we needed to make that role, we
would not have to be involved with that at

862
00:42:43,503 --> 00:42:45,863
all. That decision can be made higher up
the chain-

863
00:42:45,863 --> 00:42:47,103
-Mm-hmm
-... and we just check for the ability.

864
00:42:47,103 --> 00:42:49,163
-Yeah.
-So it's really nice.

865
00:42:49,163 --> 00:42:50,283
-Yeah.
-It allows the IT teams-

866
00:42:50,283 --> 00:42:52,363
-Yeah. The roles can be created whenever.
-You got it.

867
00:42:52,363 --> 00:42:55,323
Yeah, roles can be created whenever, as
long as they're composed of existing

868
00:42:55,323 --> 00:42:57,583
-permissions.
-You got it exactly right. And so I think

869
00:42:57,583 --> 00:43:03,023
that really frees them up to do a lot of
work. Now-... um, the, the trick is naming

870
00:43:03,023 --> 00:43:07,023
the abilities well, and then the second
trick is making sure that they kinda stay

871
00:43:07,023 --> 00:43:13,363
in sync across this, uh, orchestrating,
uh, entity that, th- that sits above it.

872
00:43:13,363 --> 00:43:13,884
And so...

873
00:43:14,803 --> 00:43:18,364
That's it. That's it, but I, I think, I
think that works. Um,

874
00:43:19,783 --> 00:43:23,824
and I think we actually might be able to
get away without using permissions or

875
00:43:23,824 --> 00:43:27,723
bouncer, Laravel permissions or bouncer,
actually. Because we already have...

876
00:43:27,723 --> 00:43:29,723
-Mm-hmm
-... a process by which when a user logs

877
00:43:29,723 --> 00:43:34,224
in, we look at all the security groups
they're a part of, and we can inspect that

878
00:43:34,224 --> 00:43:36,163
and assign permissions,

879
00:43:36,923 --> 00:43:39,703
uh, it's basically just an array. It's
just an array of permissions-

880
00:43:39,703 --> 00:43:41,203
-Yeah
-... which would be an enum cast

881
00:43:41,844 --> 00:43:48,703
of, you know, w- of AD groups, AD security
groups mapped to named permissions. And

882
00:43:48,703 --> 00:43:50,763
we'll just cast them to an enum on that
user and that's it.

883
00:43:50,763 --> 00:43:52,303
-Yeah.
-There's no, there's no need for, like,

884
00:43:52,303 --> 00:43:52,704
-this one-
-Yeah, I think-

885
00:43:52,704 --> 00:43:55,563
... to many whatever, because we're not
gonna do roles inside of the application.

886
00:43:56,763 --> 00:43:59,824
Right. Yeah. I think if, if the
permissions for your application are

887
00:43:59,824 --> 00:44:02,743
coming from something like Active
Directory, then there's, there's no need

888
00:44:02,743 --> 00:44:03,023
to

889
00:44:03,664 --> 00:44:05,723
-layer the package on top.
-Agreed.

890
00:44:05,723 --> 00:44:10,604
As long as you've got some way of
translating those things into... You know,

891
00:44:10,604 --> 00:44:13,843
I mean, you could d- dynamically register
policies or whatever else, or, or gates

892
00:44:13,843 --> 00:44:14,944
-and things like that-
-Mm-hmm

893
00:44:14,944 --> 00:44:18,984
... based on this. And then, whether you
cache that, you know, for

894
00:44:19,864 --> 00:44:22,423
24 hours, do you cache that just for the
request, like do you use-

895
00:44:22,423 --> 00:44:24,143
-It's... Yeah, just for the session
-... it once or whatever?

896
00:44:24,143 --> 00:44:24,544
-Yeah, it's just... Yep.
-Yeah.

897
00:44:24,544 --> 00:44:28,463
Yeah, and when they log in again, it does
the check again. So it, it goes and talks

898
00:44:28,463 --> 00:44:31,483
to AD and says give me the list of, uh,
security groups they have.

899
00:44:31,483 --> 00:44:31,663
-So you're not-
-Yeah.

900
00:44:33,044 --> 00:44:37,044
So how are you, how are you dealing with,
like, changing in permissions if, if

901
00:44:37,044 --> 00:44:38,284
-someone like-
-Doesn't log in?

902
00:44:38,284 --> 00:44:41,264
-... has a permission unassigned-
-Yeah, right

903
00:44:41,264 --> 00:44:44,643
-... while, like, during a session?
-This is a good question. And, and this is-

904
00:44:44,643 --> 00:44:45,063
Are you-

905
00:44:45,063 --> 00:44:48,163
I don't have a good solution to this. This
is a good, this is a good question to

906
00:44:48,163 --> 00:44:48,623
ask.

907
00:44:49,443 --> 00:44:52,303
So, wh- what I will say is like right now,
and the way that they've had to do it,

908
00:44:52,303 --> 00:44:54,583
like if they've had to add a permission is
they'll add the permission and then

909
00:44:54,583 --> 00:44:56,223
they'll ask the user to sign out and sign
back in,

910
00:44:56,903 --> 00:44:59,323
right? They sign out, they sign back in,
when they sign back in-

911
00:44:59,323 --> 00:44:59,903
-Yeah. Yeah, adding, adding is fine.
-Yep.

912
00:44:59,903 --> 00:45:02,363
Because someone, because someone wants
that, I want extra things-

913
00:45:02,363 --> 00:45:04,123
-Yes
-... yeah, I'll do, do the work to sign out

914
00:45:04,123 --> 00:45:05,763
-and sign back in.
-Exactly. Now, the question is-

915
00:45:05,763 --> 00:45:07,283
-But if you are having some permission-
-... do we revoke that?

916
00:45:07,283 --> 00:45:08,523
-... revoked.
-Yeah. Yeah.

917
00:45:08,523 --> 00:45:10,223
-Yeah.
-Now, the way that we've got it set up

918
00:45:10,223 --> 00:45:11,703
-right now-
-Or, or if, or if it's a lease that it

919
00:45:11,703 --> 00:45:12,323
-expires-
-Yeah

920
00:45:12,323 --> 00:45:14,823
... like it's gonna have to log you out
somehow.

921
00:45:14,823 --> 00:45:18,363
Yeah, so the way that we do it right now
is, yeah, the thought is that we expire

922
00:45:18,363 --> 00:45:23,003
the lease at like 6:00 AM. So at 6:00 AM
on that day we say it should expire this

923
00:45:23,003 --> 00:45:25,803
day, we revoke it. And if they haven't
logged in that day, which it's very

924
00:45:25,803 --> 00:45:28,783
unlikely that they have, then when they
log in that day-

925
00:45:29,423 --> 00:45:31,363
-Mm-hmm
-... the permission will be revoked. Now,

926
00:45:31,363 --> 00:45:35,683
in some weird case where we needed to
revoke a permission for somebody

927
00:45:37,083 --> 00:45:40,523
in the middle of the day, which I, I don't
really see that happening. We don't

928
00:45:40,523 --> 00:45:45,763
typically get requests to take permissions
away. We get plenty of requests to add

929
00:45:45,763 --> 00:45:50,003
permissions, but almost never. The only
case I can think of where we say like we

930
00:45:50,003 --> 00:45:52,263
would revoke permissions would be when
somebody's getting terminated.

931
00:45:52,923 --> 00:45:54,383
-You know, that happens.
-Mm-hmm.

932
00:45:54,383 --> 00:45:56,463
-But typically the way that that works is-
-Yeah

933
00:45:56,463 --> 00:45:59,003
... a manager will set a time to say,
"Hey, at 1:00 we're gonna have the

934
00:45:59,003 --> 00:46:02,943
conversation with this person, we need to
terminate this user at 1:00." And so

935
00:46:02,943 --> 00:46:06,283
they'll pull them in, the IT team
schedules the termination for 1:00, they

936
00:46:06,283 --> 00:46:09,383
then revoke that user's access and then by
the time they get back to their machine,

937
00:46:09,383 --> 00:46:12,143
it's locked and they can't get logged back
in and it's fine. So-

938
00:46:12,143 --> 00:46:12,383
Yeah.

939
00:46:13,063 --> 00:46:17,263
I don't... It's, it's a, it's an
interesting question to posit but I'm not

940
00:46:17,263 --> 00:46:17,703
sure

941
00:46:18,483 --> 00:46:23,483
that it's a critical component of what I'm
hoping to accomplish. I, I don't-

942
00:46:23,483 --> 00:46:24,723
-Yeah.
-I don't know.

943
00:46:26,083 --> 00:46:30,703
Yeah. And, and I assume in an organization
like yours you'd have a risk register

944
00:46:30,703 --> 00:46:34,103
somewhere, and these are the kind of
questions that I sit there and I come up

945
00:46:34,103 --> 00:46:37,583
with and I send it to the risk team, and
they put it in the risk register and we

946
00:46:37,583 --> 00:46:39,283
say, "Okay, we know about this but we
don't care about it."

947
00:46:39,283 --> 00:46:41,443
-Yeah, exactly.
-And as long as it's in the risk register-

948
00:46:42,063 --> 00:46:44,263
-Yes
-... you know, it has been raised, it is,

949
00:46:44,263 --> 00:46:47,043
you know, we've decided that it's not
something that we're terribly concerned

950
00:46:47,043 --> 00:46:50,223
-with, fine, but it's been noted.
-Exactly. We mark it as an acceptable risk.

951
00:46:50,223 --> 00:46:50,903
And it's better to have something on the

952
00:46:50,903 --> 00:46:52,063
-risk register-
-Yes.

953
00:46:52,063 --> 00:46:53,723
Yeah, right, yeah, yeah. And it's better,

954
00:46:54,343 --> 00:46:58,663
for those of you listening who are in, in
smaller organizations or you're, you know,

955
00:46:58,663 --> 00:46:59,883
on your own or whatever,

956
00:47:00,523 --> 00:47:03,103
it's probably fine, you don't have to
worry about it. But in, in big

957
00:47:03,103 --> 00:47:09,183
organizations especially those that are,
you know, ISO 27001 or their SOC 1, SOC 2,

958
00:47:09,803 --> 00:47:13,663
whatever else, these are the kinds of
things that it's, it is okay

959
00:47:14,343 --> 00:47:19,743
to have these kinds of things sat on a
risk register and you just say, "That's a

960
00:47:19,743 --> 00:47:23,903
low risk, medium risk, it's acceptable,"
you know, we don't care about it but we,

961
00:47:23,903 --> 00:47:25,883
b- but you still need to think about these
kinds of things.

962
00:47:25,883 --> 00:47:28,563
-Absolutely.
-And then what you do with it is you just,

963
00:47:28,563 --> 00:47:33,003
you decide, is it something that I need
to, to put into code to protect against?

964
00:47:33,003 --> 00:47:36,643
Or, is it okay to just, just to
acknowledge that yes, that is something

965
00:47:36,643 --> 00:47:40,383
that we are aware of, but we're not
worried about it being an actual concern?

966
00:47:40,383 --> 00:47:44,903
Yeah. I- so the two words that we
typically use in those instances is that

967
00:47:44,903 --> 00:47:48,563
we would say number one, it's a known,
it's a known risk but it's a,

968
00:47:49,303 --> 00:47:50,043
it's A,

969
00:47:50,663 --> 00:47:54,843
it is an acceptable risk, and B, here is a
compensating control.

970
00:47:55,703 --> 00:48:01,123
Auditors love that phrase, a compensating
control which just means we're aware of

971
00:48:01,123 --> 00:48:04,443
this issue but we're solving it in a
different way. So we would say the

972
00:48:04,443 --> 00:48:09,963
compensating control is referenced user
termination policy line 15, right? Where

973
00:48:09,963 --> 00:48:15,043
it says, uh, you know, all user
terminations will happen within 15 minutes

974
00:48:15,043 --> 00:48:18,963
of a termination request or at the
scheduled time requested by the manager.

975
00:48:18,963 --> 00:48:22,463
And then you, you know, you basically
reference, hey, here's the pla- place

976
00:48:22,463 --> 00:48:25,943
where we say this is how we do it and this
is why it's not a concern. That the

977
00:48:25,943 --> 00:48:31,743
application handles it because our process
handles it this way. Um, and so anyway,

978
00:48:31,743 --> 00:48:35,303
those, those are good points to bring up,
especially when you're trying to do those

979
00:48:35,303 --> 00:48:39,003
things, SOC 1, SOC 2. If an auditor brings
that up and you don't have a solution for

980
00:48:39,003 --> 00:48:43,983
it like in code, i- if you have a
solution for it in policy, um, then that's

981
00:48:43,983 --> 00:48:45,643
usually good enough, so...

982
00:48:46,383 --> 00:48:47,403
Yeah. Yeah.

983
00:48:48,183 --> 00:48:49,603
-Well folks, that's all I've got.
-Cool.

984
00:48:49,603 --> 00:48:52,663
Michael, you got any... Uh, thanks for
your help on that. I, I appreciate you

985
00:48:52,663 --> 00:48:54,383
thinking through that with me. Um,

986
00:48:55,163 --> 00:48:59,083
I think we're gonna move forward with that
and I'll let you know kinda how things

987
00:48:59,083 --> 00:49:02,903
go, uh, on that front. But, I think it'll
be good. I think it's definitely gonna be

988
00:49:02,903 --> 00:49:05,123
an improvement over what we've been doing.

989
00:49:05,123 --> 00:49:07,143
-Yeah. Yeah, I think so.
-Yeah. Yeah. So...

990
00:49:07,143 --> 00:49:07,603
For sure.

991
00:49:08,783 --> 00:49:13,543
All right my friend, Episode 179 of the
North Meets South web podcast is in the

992
00:49:13,543 --> 00:49:15,963
books. If you'd like to find show notes
for this episode find them at

993
00:49:15,963 --> 00:49:22,223
northmeetsouth.audio/179. If you'd like to
talk to us on Twitter, on X, on all the

994
00:49:22,223 --> 00:49:26,903
things, hit us up @michaeldurant,
@jacobbennett or @northsouthaudio. And if

995
00:49:26,903 --> 00:49:30,143
you liked the podcast we'd really
appreciate it if you'd rate it up in your

996
00:49:30,143 --> 00:49:33,823
podcatcher of choice, five stars would be
absolutely incredible. Folks, we hope to

997
00:49:33,823 --> 00:49:38,943
see you at Laracon, please say hello. We
would love to talk to you in person. We

998
00:49:38,943 --> 00:49:42,603
don't get to see any of you. Typically,
for us this feels like speaking into the

999
00:49:42,603 --> 00:49:46,183
void. It feels like nobody's listening to
this ever until we get there and we hear

1000
00:49:46,183 --> 00:49:49,303
from all of you wonderful people. It's an
encouragement every year to keep going-

1001
00:49:49,303 --> 00:49:51,703
-Oh
-... and keep doing it, because...

1002
00:49:51,703 --> 00:49:55,343
I, I, I enjoy it. I think it's, it's good
to know that people do listen but it's

1003
00:49:55,343 --> 00:49:57,683
-also a very bizarre experience.
-Mm-hmm.

1004
00:49:57,683 --> 00:50:01,283
Because people know so much about you and
you're like, "Hello person."

1005
00:50:01,283 --> 00:50:02,563
Oh, that's so funny.

1006
00:50:03,403 --> 00:50:05,723
-Yeah.
-Don't let that deterr- d- don't, don't let

1007
00:50:05,723 --> 00:50:09,043
that deter you from doing it though, I
love, love to meet the people. Um, and

1008
00:50:09,043 --> 00:50:12,023
it's been, you know, like I said, six
years since I got to meet the people.

1009
00:50:12,023 --> 00:50:14,683
-Absolutely.
-So. Except for those of you who are kind

1010
00:50:14,683 --> 00:50:17,203
and caring enough to come all the way down
to Laracon AU.

1011
00:50:17,203 --> 00:50:18,883
One of these years I'm gonna get there
folks.

1012
00:50:19,503 --> 00:50:20,183
All right everybody.

1013
00:50:21,003 --> 00:50:23,583
Till next time, we'll see you.