@backstage/create-app 0.0.0-nightly-202201323044 → 0.0.0-nightly-202202921733

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,6 +1,598 @@
1
1
  # @backstage/create-app
2
2
 
3
- ## 0.0.0-nightly-202201323044
3
+ ## 0.0.0-nightly-202202921733
4
+
5
+ ### Patch Changes
6
+
7
+ - f27f5197e2: Apply the fix from `0.4.16`, which is part of the `v0.65.1` release of Backstage.
8
+ - 24ef62048c: Adds missing `/catalog-graph` route to `<CatalogGraphPage/>`.
9
+
10
+ To fix this problem for a recently created app please update your `app/src/App.tsx`
11
+
12
+ ```diff
13
+ + import { CatalogGraphPage } from '@backstage/plugin-catalog-graph';
14
+
15
+ ... omitted ...
16
+
17
+ </Route>
18
+ <Route path="/settings" element={<UserSettingsPage />} />
19
+ + <Route path="/catalog-graph" element={<CatalogGraphPage />} />
20
+ </FlatRoutes>
21
+ ```
22
+
23
+ - cef64b1561: Added `tokenManager` as a required property for the auth-backend `createRouter` function. This dependency is used to issue server tokens that are used by the `CatalogIdentityClient` when looking up users and their group membership during authentication.
24
+
25
+ These changes are **required** to `packages/backend/src/plugins/auth.ts`:
26
+
27
+ ```diff
28
+ export default async function createPlugin({
29
+ logger,
30
+ database,
31
+ config,
32
+ discovery,
33
+ + tokenManager,
34
+ }: PluginEnvironment): Promise<Router> {
35
+ return await createRouter({
36
+ logger,
37
+ config,
38
+ database,
39
+ discovery,
40
+ + tokenManager,
41
+ });
42
+ }
43
+ ```
44
+
45
+ - e39d88bd84: Switched the `app` dependency in the backend to use a file target rather than version.
46
+
47
+ To apply this change to an existing app, make the following change to `packages/backend/package.json`:
48
+
49
+ ```diff
50
+ "dependencies": {
51
+ - "app": "0.0.0",
52
+ + "app": "file:../app",
53
+ ```
54
+
55
+ ## 0.4.16
56
+
57
+ ### Patch Changes
58
+
59
+ - c945cd9f7e: Adds missing `/catalog-graph` route to `<CatalogGraphPage/>`.
60
+
61
+ To fix this problem for a recently created app please update your `app/src/App.tsx`
62
+
63
+ ```diff
64
+ + import { CatalogGraphPage } from '@backstage/plugin-catalog-graph';
65
+
66
+ ... omitted ...
67
+
68
+ </Route>
69
+ <Route path="/settings" element={<UserSettingsPage />} />
70
+ + <Route path="/catalog-graph" element={<CatalogGraphPage />} />
71
+ </FlatRoutes>
72
+ ```
73
+
74
+ ## 0.4.15
75
+
76
+ ### Patch Changes
77
+
78
+ - 01b27d547c: Added three additional required properties to the search-backend `createRouter` function to support filtering search results based on permissions. To make this change to an existing app, add the required parameters to the `createRouter` call in `packages/backend/src/plugins/search.ts`:
79
+
80
+ ```diff
81
+ export default async function createPlugin({
82
+ logger,
83
+ + permissions,
84
+ discovery,
85
+ config,
86
+ tokenManager,
87
+ }: PluginEnvironment) {
88
+ /* ... */
89
+
90
+ return await createRouter({
91
+ engine: indexBuilder.getSearchEngine(),
92
+ + types: indexBuilder.getDocumentTypes(),
93
+ + permissions,
94
+ + config,
95
+ logger,
96
+ });
97
+ }
98
+ ```
99
+
100
+ - a0d446c8ec: Replaced EntitySystemDiagramCard with EntityCatalogGraphCard
101
+
102
+ To make this change to an existing app:
103
+
104
+ Add `@backstage/catalog-graph-plugin` as a `dependency` in `packages/app/package.json`
105
+
106
+ Apply the following changes to the `packages/app/src/components/catalog/EntityPage.tsx` file:
107
+
108
+ ```diff
109
+ + import {
110
+ + Direction,
111
+ + EntityCatalogGraphCard,
112
+ + } from '@backstage/plugin-catalog-graph';
113
+ + import {
114
+ + RELATION_API_CONSUMED_BY,
115
+ + RELATION_API_PROVIDED_BY,
116
+ + RELATION_CONSUMES_API,
117
+ + RELATION_DEPENDENCY_OF,
118
+ + RELATION_DEPENDS_ON,
119
+ + RELATION_HAS_PART,
120
+ + RELATION_PART_OF,
121
+ + RELATION_PROVIDES_API,
122
+ + } from '@backstage/catalog-model';
123
+ ```
124
+
125
+ ```diff
126
+ <EntityLayout.Route path="/diagram" title="Diagram">
127
+ - <EntitySystemDiagramCard />
128
+ + <EntityCatalogGraphCard
129
+ + variant="gridItem"
130
+ + direction={Direction.TOP_BOTTOM}
131
+ + title="System Diagram"
132
+ + height={700}
133
+ + relations={[
134
+ + RELATION_PART_OF,
135
+ + RELATION_HAS_PART,
136
+ + RELATION_API_CONSUMED_BY,
137
+ + RELATION_API_PROVIDED_BY,
138
+ + RELATION_CONSUMES_API,
139
+ + RELATION_PROVIDES_API,
140
+ + RELATION_DEPENDENCY_OF,
141
+ + RELATION_DEPENDS_ON,
142
+ + ]}
143
+ + unidirectional={false}
144
+ + />
145
+ </EntityLayout.Route>
146
+ ```
147
+
148
+ ```diff
149
+ const cicdContent = (
150
+ <Grid item md={6}>
151
+ <EntityAboutCard variant="gridItem" />
152
+ </Grid>
153
+ + <Grid item md={6} xs={12}>
154
+ + <EntityCatalogGraphCard variant="gridItem" height={400} />
155
+ + </Grid>
156
+ ```
157
+
158
+ Add the above component in `overviewContent`, `apiPage` , `systemPage` and domainPage` as well.
159
+
160
+ - 4aca2a5307: An example instance of a `<SearchFilter.Select />` with asynchronously loaded values was added to the composed `SearchPage.tsx`, allowing searches bound to the `techdocs` type to be filtered by entity name.
161
+
162
+ This is an entirely optional change; if you wish to adopt it, you can make the following (or similar) changes to your search page layout:
163
+
164
+ ```diff
165
+ --- a/packages/app/src/components/search/SearchPage.tsx
166
+ +++ b/packages/app/src/components/search/SearchPage.tsx
167
+ @@ -2,6 +2,10 @@ import React from 'react';
168
+ import { makeStyles, Theme, Grid, List, Paper } from '@material-ui/core';
169
+
170
+ import { CatalogResultListItem } from '@backstage/plugin-catalog';
171
+ +import {
172
+ + catalogApiRef,
173
+ + CATALOG_FILTER_EXISTS,
174
+ +} from '@backstage/plugin-catalog-react';
175
+ import { DocsResultListItem } from '@backstage/plugin-techdocs';
176
+
177
+ import {
178
+ @@ -10,6 +14,7 @@ import {
179
+ SearchResult,
180
+ SearchType,
181
+ DefaultResultListItem,
182
+ + useSearch,
183
+ } from '@backstage/plugin-search';
184
+ import {
185
+ CatalogIcon,
186
+ @@ -18,6 +23,7 @@ import {
187
+ Header,
188
+ Page,
189
+ } from '@backstage/core-components';
190
+ +import { useApi } from '@backstage/core-plugin-api';
191
+
192
+ const useStyles = makeStyles((theme: Theme) => ({
193
+ bar: {
194
+ @@ -36,6 +42,8 @@ const useStyles = makeStyles((theme: Theme) => ({
195
+
196
+ const SearchPage = () => {
197
+ const classes = useStyles();
198
+ + const { types } = useSearch();
199
+ + const catalogApi = useApi(catalogApiRef);
200
+
201
+ return (
202
+ <Page themeId="home">
203
+ @@ -65,6 +73,27 @@ const SearchPage = () => {
204
+ ]}
205
+ />
206
+ <Paper className={classes.filters}>
207
+ + {types.includes('techdocs') && (
208
+ + <SearchFilter.Select
209
+ + className={classes.filter}
210
+ + label="Entity"
211
+ + name="name"
212
+ + values={async () => {
213
+ + // Return a list of entities which are documented.
214
+ + const { items } = await catalogApi.getEntities({
215
+ + fields: ['metadata.name'],
216
+ + filter: {
217
+ + 'metadata.annotations.backstage.io/techdocs-ref':
218
+ + CATALOG_FILTER_EXISTS,
219
+ + },
220
+ + });
221
+ +
222
+ + const names = items.map(entity => entity.metadata.name);
223
+ + names.sort();
224
+ + return names;
225
+ + }}
226
+ + />
227
+ + )}
228
+ <SearchFilter.Select
229
+ className={classes.filter}
230
+ name="kind"
231
+ ```
232
+
233
+ - 1dbe63ec39: A `label` prop was added to `<SearchFilter.* />` components in order to allow
234
+ user-friendly label strings (as well as the option to omit a label). In order
235
+ to maintain labels on your existing filters, add a `label` prop to them in your
236
+ `SearchPage.tsx`.
237
+
238
+ ```diff
239
+ --- a/packages/app/src/components/search/SearchPage.tsx
240
+ +++ b/packages/app/src/components/search/SearchPage.tsx
241
+ @@ -96,11 +96,13 @@ const SearchPage = () => {
242
+ )}
243
+ <SearchFilter.Select
244
+ className={classes.filter}
245
+ + label="Kind"
246
+ name="kind"
247
+ values={['Component', 'Template']}
248
+ />
249
+ <SearchFilter.Checkbox
250
+ className={classes.filter}
251
+ + label="Lifecycle"
252
+ name="lifecycle"
253
+ values={['experimental', 'production']}
254
+ />
255
+ ```
256
+
257
+ ## 0.4.14
258
+
259
+ ### Patch Changes
260
+
261
+ - d4941024bc: Rebind external route for catalog import plugin from `scaffolderPlugin.routes.root` to `catalogImportPlugin.routes.importPage`.
262
+
263
+ To make this change to an existing app, make the following change to `packages/app/src/App.tsx`
264
+
265
+ ```diff
266
+ const App = createApp({
267
+ ...
268
+ bindRoutes({ bind }) {
269
+ ...
270
+ bind(apiDocsPlugin.externalRoutes, {
271
+ - createComponent: scaffolderPlugin.routes.root,
272
+ + registerApi: catalogImportPlugin.routes.importPage,
273
+ });
274
+ ...
275
+ },
276
+ });
277
+ ```
278
+
279
+ - b5402d6d72: Migrated the app template to React 17.
280
+
281
+ To apply this change to an existing app, make sure you have updated to the latest version of `@backstage/cli`, and make the following change to `packages/app/package.json`:
282
+
283
+ ```diff
284
+ "history": "^5.0.0",
285
+ - "react": "^16.13.1",
286
+ - "react-dom": "^16.13.1",
287
+ + "react": "^17.0.2",
288
+ + "react-dom": "^17.0.2",
289
+ "react-router": "6.0.0-beta.0",
290
+ ```
291
+
292
+ Since we have recently moved over all `react` and `react-dom` dependencies to `peerDependencies` of all packages, and included React 17 in the version range, this should be all you need to do. If you end up with duplicate React installations, first make sure that all of your plugins are up-to-date, including ones for example from `@roadiehq`. If that doesn't work, you may need to fall back to adding [Yarn resolutions](https://classic.yarnpkg.com/lang/en/docs/selective-version-resolutions/) in the `package.json` of your project root:
293
+
294
+ ```diff
295
+ + "resolutions": {
296
+ + "react": "^17.0.2",
297
+ + "react-dom": "^17.0.2"
298
+ + },
299
+ ```
300
+
301
+ - 5e8d278f8e: Added an external route binding from the `org` plugin to the catalog index page.
302
+
303
+ This change is needed because `@backstage/plugin-org` now has a required external route that needs to be bound for the app to start.
304
+
305
+ To apply this change to an existing app, make the following change to `packages/app/src/App.tsx`:
306
+
307
+ ```diff
308
+ import { ScaffolderPage, scaffolderPlugin } from '@backstage/plugin-scaffolder';
309
+ +import { orgPlugin } from '@backstage/plugin-org';
310
+ import { SearchPage } from '@backstage/plugin-search';
311
+ ```
312
+
313
+ And further down within the `createApp` call:
314
+
315
+ ```diff
316
+ bind(scaffolderPlugin.externalRoutes, {
317
+ registerComponent: catalogImportPlugin.routes.importPage,
318
+ });
319
+ + bind(orgPlugin.externalRoutes, {
320
+ + catalogIndex: catalogPlugin.routes.catalogIndex,
321
+ + });
322
+ },
323
+ ```
324
+
325
+ - fb08e2f285: Updated the configuration of the `app-backend` plugin to enable the static asset store by passing on `database` from the plugin environment to `createRouter`.
326
+
327
+ To apply this change to an existing app, make the following change to `packages/backend/src/plugins/app.ts`:
328
+
329
+ ```diff
330
+ export default async function createPlugin({
331
+ logger,
332
+ config,
333
+ + database,
334
+ }: PluginEnvironment): Promise<Router> {
335
+ return await createRouter({
336
+ logger,
337
+ config,
338
+ + database,
339
+ appPackageName: 'app',
340
+ });
341
+ }
342
+ ```
343
+
344
+ - 7ba416be78: You can now add `SidebarGroup`s to the current `Sidebar`. This will not affect how the current sidebar is displayed, but allows a customization on how the `MobileSidebar` on smaller screens will look like. A `SidebarGroup` will be displayed with the given icon in the `MobileSidebar`.
345
+
346
+ A `SidebarGroup` can either link to an existing page (e.g. `/search` or `/settings`) or wrap components, which will be displayed in a full-screen overlay menu (e.g. `Menu`).
347
+
348
+ ```diff
349
+ <Sidebar>
350
+ <SidebarLogo />
351
+ + <SidebarGroup label="Search" icon={<SearchIcon />} to="/search">
352
+ <SidebarSearchModal />
353
+ + </SidebarGroup>
354
+ <SidebarDivider />
355
+ + <SidebarGroup label="Menu" icon={<MenuIcon />}>
356
+ <SidebarItem icon={HomeIcon} to="catalog" text="Home" />
357
+ <SidebarItem icon={CreateComponentIcon} to="create" text="Create..." />
358
+ <SidebarDivider />
359
+ <SidebarScrollWrapper>
360
+ <SidebarItem icon={MapIcon} to="tech-radar" text="Tech Radar" />
361
+ </SidebarScrollWrapper>
362
+ + </SidebarGroup>
363
+ <SidebarSpace />
364
+ <SidebarDivider />
365
+ + <SidebarGroup
366
+ + label="Settings"
367
+ + icon={<UserSettingsSignInAvatar />}
368
+ + to="/settings"
369
+ + >
370
+ <SidebarSettings />
371
+ + </SidebarGroup>
372
+ </Sidebar>
373
+ ```
374
+
375
+ Additionally, you can order the groups differently in the `MobileSidebar` than in the usual `Sidebar` simply by giving a group a priority. The groups will be displayed in descending order from left to right.
376
+
377
+ ```diff
378
+ <SidebarGroup
379
+ label="Settings"
380
+ icon={<UserSettingsSignInAvatar />}
381
+ to="/settings"
382
+ + priority={1}
383
+ >
384
+ <SidebarSettings />
385
+ </SidebarGroup>
386
+ ```
387
+
388
+ If you decide against adding `SidebarGroup`s to your `Sidebar` the `MobileSidebar` will contain one default menu item, which will open a full-screen overlay menu displaying all the content of the current `Sidebar`.
389
+
390
+ More information on the `SidebarGroup` & the `MobileSidebar` component can be found in the changeset for the `core-components`.
391
+
392
+ - 08fa6a604a: The app template has been updated to add an explicit dependency on `typescript` in the root `package.json`. This is because it was removed as a dependency of `@backstage/cli` in order to decouple the TypeScript versioning in Backstage projects.
393
+
394
+ To apply this change in an existing app, add a `typescript` dependency to your `package.json` in the project root:
395
+
396
+ ```json
397
+ "dependencies": {
398
+ ...
399
+ "typescript": "~4.5.4",
400
+ }
401
+ ```
402
+
403
+ We recommend using a `~` version range since TypeScript releases do not adhere to semver.
404
+
405
+ It may be the case that you end up with errors if you upgrade the TypeScript version. This is because there was a change to TypeScript not long ago that defaulted the type of errors caught in `catch` blocks to `unknown`. You can work around this by adding `"useUnknownInCatchVariables": false` to the `"compilerOptions"` in your `tsconfig.json`:
406
+
407
+ ```json
408
+ "compilerOptions": {
409
+ ...
410
+ "useUnknownInCatchVariables": false
411
+ }
412
+ ```
413
+
414
+ Another option is to use the utilities from `@backstage/errors` to assert the type of errors caught in `catch` blocks:
415
+
416
+ ```ts
417
+ import { assertError, isError } from '@backstage/errors';
418
+
419
+ try {
420
+ ...
421
+ } catch (error) {
422
+ assertError(error);
423
+ ...
424
+ // OR
425
+ if (isError(error)) {
426
+ ...
427
+ }
428
+ }
429
+ ```
430
+
431
+ Yet another issue you might run into when upgrading TypeScript is incompatibilities in the types from `react-use`. The error you would run into looks something like this:
432
+
433
+ ```plain
434
+ node_modules/react-use/lib/usePermission.d.ts:1:54 - error TS2304: Cannot find name 'DevicePermissionDescriptor'.
435
+
436
+ 1 declare type PermissionDesc = PermissionDescriptor | DevicePermissionDescriptor | MidiPermissionDescriptor | PushPermissionDescriptor;
437
+ ```
438
+
439
+ If you encounter this error, the simplest fix is to replace full imports of `react-use` with more specific ones. For example, the following:
440
+
441
+ ```ts
442
+ import { useAsync } from 'react-use';
443
+ ```
444
+
445
+ Would be converted into this:
446
+
447
+ ```ts
448
+ import useAsync from 'react-use/lib/useAsync';
449
+ ```
450
+
451
+ ## 0.4.13
452
+
453
+ ### Patch Changes
454
+
455
+ - fb08e2f285: Updated the configuration of the `app-backend` plugin to enable the static asset store by passing on `database` from the plugin environment to `createRouter`.
456
+
457
+ To apply this change to an existing app, make the following change to `packages/backend/src/plugins/app.ts`:
458
+
459
+ ```diff
460
+ export default async function createPlugin({
461
+ logger,
462
+ config,
463
+ + database,
464
+ }: PluginEnvironment): Promise<Router> {
465
+ return await createRouter({
466
+ logger,
467
+ config,
468
+ + database,
469
+ appPackageName: 'app',
470
+ });
471
+ }
472
+ ```
473
+
474
+ - 7ba416be78: You can now add `SidebarGroup`s to the current `Sidebar`. This will not affect how the current sidebar is displayed, but allows a customization on how the `MobileSidebar` on smaller screens will look like. A `SidebarGroup` will be displayed with the given icon in the `MobileSidebar`.
475
+
476
+ A `SidebarGroup` can either link to an existing page (e.g. `/search` or `/settings`) or wrap components, which will be displayed in a full-screen overlay menu (e.g. `Menu`).
477
+
478
+ ```diff
479
+ <Sidebar>
480
+ <SidebarLogo />
481
+ + <SidebarGroup label="Search" icon={<SearchIcon />} to="/search">
482
+ <SidebarSearchModal />
483
+ + </SidebarGroup>
484
+ <SidebarDivider />
485
+ + <SidebarGroup label="Menu" icon={<MenuIcon />}>
486
+ <SidebarItem icon={HomeIcon} to="catalog" text="Home" />
487
+ <SidebarItem icon={CreateComponentIcon} to="create" text="Create..." />
488
+ <SidebarDivider />
489
+ <SidebarScrollWrapper>
490
+ <SidebarItem icon={MapIcon} to="tech-radar" text="Tech Radar" />
491
+ </SidebarScrollWrapper>
492
+ + </SidebarGroup>
493
+ <SidebarSpace />
494
+ <SidebarDivider />
495
+ + <SidebarGroup
496
+ + label="Settings"
497
+ + icon={<UserSettingsSignInAvatar />}
498
+ + to="/settings"
499
+ + >
500
+ <SidebarSettings />
501
+ + </SidebarGroup>
502
+ </Sidebar>
503
+ ```
504
+
505
+ Additionally, you can order the groups differently in the `MobileSidebar` than in the usual `Sidebar` simply by giving a group a priority. The groups will be displayed in descending order from left to right.
506
+
507
+ ```diff
508
+ <SidebarGroup
509
+ label="Settings"
510
+ icon={<UserSettingsSignInAvatar />}
511
+ to="/settings"
512
+ + priority={1}
513
+ >
514
+ <SidebarSettings />
515
+ </SidebarGroup>
516
+ ```
517
+
518
+ If you decide against adding `SidebarGroup`s to your `Sidebar` the `MobileSidebar` will contain one default menu item, which will open a full-screen overlay menu displaying all the content of the current `Sidebar`.
519
+
520
+ More information on the `SidebarGroup` & the `MobileSidebar` component can be found in the changeset for the `core-components`.
521
+
522
+ - 08fa6a604a: The app template has been updated to add an explicit dependency on `typescript` in the root `package.json`. This is because it was removed as a dependency of `@backstage/cli` in order to decouple the TypeScript versioning in Backstage projects.
523
+
524
+ To apply this change in an existing app, add a `typescript` dependency to your `package.json` in the project root:
525
+
526
+ ```json
527
+ "dependencies": {
528
+ ...
529
+ "typescript": "~4.5.4",
530
+ }
531
+ ```
532
+
533
+ We recommend using a `~` version range since TypeScript releases do not adhere to semver.
534
+
535
+ It may be the case that you end up with errors if you upgrade the TypeScript version. This is because there was a change to TypeScript not long ago that defaulted the type of errors caught in `catch` blocks to `unknown`. You can work around this by adding `"useUnknownInCatchVariables": false` to the `"compilerOptions"` in your `tsconfig.json`:
536
+
537
+ ```json
538
+ "compilerOptions": {
539
+ ...
540
+ "useUnknownInCatchVariables": false
541
+ }
542
+ ```
543
+
544
+ Another option is to use the utilities from `@backstage/errors` to assert the type of errors caught in `catch` blocks:
545
+
546
+ ```ts
547
+ import { assertError, isError } from '@backstage/errors';
548
+
549
+ try {
550
+ ...
551
+ } catch (error) {
552
+ assertError(error);
553
+ ...
554
+ // OR
555
+ if (isError(error)) {
556
+ ...
557
+ }
558
+ }
559
+ ```
560
+
561
+ - Updated dependencies
562
+ - @backstage/plugin-tech-radar@0.5.3-next.0
563
+ - @backstage/plugin-auth-backend@0.7.0-next.0
564
+ - @backstage/core-components@0.8.5-next.0
565
+ - @backstage/plugin-api-docs@0.6.23-next.0
566
+ - @backstage/plugin-catalog-backend@0.21.0-next.0
567
+ - @backstage/plugin-permission-common@0.4.0-next.0
568
+ - @backstage/cli@0.12.0-next.0
569
+ - @backstage/core-plugin-api@0.6.0-next.0
570
+ - @backstage/plugin-catalog@0.7.9-next.0
571
+ - @backstage/plugin-user-settings@0.3.17-next.0
572
+ - @backstage/backend-common@0.10.4-next.0
573
+ - @backstage/config@0.1.13-next.0
574
+ - @backstage/plugin-app-backend@0.3.22-next.0
575
+ - @backstage/core-app-api@0.5.0-next.0
576
+ - @backstage/plugin-catalog-import@0.7.10-next.0
577
+ - @backstage/plugin-scaffolder@0.11.19-next.0
578
+ - @backstage/plugin-search@0.5.6-next.0
579
+ - @backstage/plugin-techdocs@0.12.15-next.0
580
+ - @backstage/plugin-permission-node@0.4.0-next.0
581
+ - @backstage/catalog-model@0.9.10-next.0
582
+ - @backstage/integration-react@0.1.19-next.0
583
+ - @backstage/plugin-explore@0.3.26-next.0
584
+ - @backstage/plugin-github-actions@0.4.32-next.0
585
+ - @backstage/plugin-lighthouse@0.2.35-next.0
586
+ - @backstage/plugin-scaffolder-backend@0.15.21-next.0
587
+ - @backstage/backend-tasks@0.1.4-next.0
588
+ - @backstage/catalog-client@0.5.5-next.0
589
+ - @backstage/test-utils@0.2.3-next.0
590
+ - @backstage/plugin-proxy-backend@0.2.16-next.0
591
+ - @backstage/plugin-rollbar-backend@0.1.19-next.0
592
+ - @backstage/plugin-search-backend@0.3.1-next.0
593
+ - @backstage/plugin-techdocs-backend@0.12.4-next.0
594
+
595
+ ## 0.4.12
4
596
 
5
597
  ### Patch Changes
6
598
 
@@ -16,7 +608,7 @@
16
608
 
17
609
  function makeCreateEnv(config: Config) {
18
610
  ...
19
- + const permissions = ServerPerimssionClient.fromConfig(config, {
611
+ + const permissions = ServerPermissionClient.fromConfig(config, {
20
612
  + discovery,
21
613
  + tokenManager,
22
614
  + });
@@ -62,43 +654,6 @@
62
654
  + "@backstage/plugin-permission-node": "...",
63
655
  ```
64
656
 
65
- - Updated dependencies
66
- - @backstage/test-utils@0.0.0-nightly-202201323044
67
- - @backstage/config@0.0.0-nightly-202201323044
68
- - @backstage/plugin-scaffolder-backend@0.0.0-nightly-202201323044
69
- - @backstage/backend-common@0.0.0-nightly-202201323044
70
- - @backstage/core-components@0.0.0-nightly-202201323044
71
- - @backstage/plugin-catalog-backend@0.0.0-nightly-202201323044
72
- - @backstage/cli@0.0.0-nightly-202201323044
73
- - @backstage/core-plugin-api@0.0.0-nightly-202201323044
74
- - @backstage/plugin-permission-node@0.0.0-nightly-202201323044
75
- - @backstage/plugin-auth-backend@0.0.0-nightly-202201323044
76
- - @backstage/plugin-catalog-import@0.0.0-nightly-202201323044
77
- - @backstage/plugin-scaffolder@0.0.0-nightly-202201323044
78
- - @backstage/plugin-search-backend-node@0.0.0-nightly-202201323044
79
- - @backstage/plugin-techdocs@0.0.0-nightly-202201323044
80
- - @backstage/plugin-techdocs-backend@0.0.0-nightly-202201323044
81
- - @backstage/plugin-api-docs@0.0.0-nightly-202201323044
82
- - @backstage/core-app-api@0.0.0-nightly-202201323044
83
- - @backstage/errors@0.0.0-nightly-202201323044
84
- - @backstage/backend-tasks@0.0.0-nightly-202201323044
85
- - @backstage/catalog-client@0.0.0-nightly-202201323044
86
- - @backstage/catalog-model@0.0.0-nightly-202201323044
87
- - @backstage/integration-react@0.0.0-nightly-202201323044
88
- - @backstage/theme@0.0.0-nightly-202201323044
89
- - @backstage/plugin-app-backend@0.0.0-nightly-202201323044
90
- - @backstage/plugin-catalog@0.0.0-nightly-202201323044
91
- - @backstage/plugin-explore@0.0.0-nightly-202201323044
92
- - @backstage/plugin-github-actions@0.0.0-nightly-202201323044
93
- - @backstage/plugin-lighthouse@0.0.0-nightly-202201323044
94
- - @backstage/plugin-permission-common@0.0.0-nightly-202201323044
95
- - @backstage/plugin-proxy-backend@0.0.0-nightly-202201323044
96
- - @backstage/plugin-rollbar-backend@0.0.0-nightly-202201323044
97
- - @backstage/plugin-search@0.0.0-nightly-202201323044
98
- - @backstage/plugin-search-backend@0.0.0-nightly-202201323044
99
- - @backstage/plugin-tech-radar@0.0.0-nightly-202201323044
100
- - @backstage/plugin-user-settings@0.0.0-nightly-202201323044
101
-
102
657
  ## 0.4.11
103
658
 
104
659
  ## 0.4.10