@backstage/create-app 0.4.5 → 0.4.6
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 +67 -0
- package/dist/index.cjs.js +17 -17
- package/package.json +2 -2
- package/templates/default-app/app-config.yaml.hbs +5 -0
- package/templates/default-app/packages/app/src/components/Root/Root.tsx +7 -2
- package/templates/default-app/packages/backend/src/index.ts +3 -1
- package/templates/default-app/packages/backend/src/plugins/search.ts +10 -2
- package/templates/default-app/packages/backend/src/types.ts +2 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,72 @@
|
|
|
1
1
|
# @backstage/create-app
|
|
2
2
|
|
|
3
|
+
## 0.4.6
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 24d2ce03f3: Search Modal now relies on the Search Context to access state and state setter. If you use the SidebarSearchModal as described in the [getting started documentation](https://backstage.io/docs/features/search/getting-started#using-the-search-modal), make sure to update your code with the SearchContextProvider.
|
|
8
|
+
|
|
9
|
+
```diff
|
|
10
|
+
export const Root = ({ children }: PropsWithChildren<{}>) => (
|
|
11
|
+
<SidebarPage>
|
|
12
|
+
<Sidebar>
|
|
13
|
+
<SidebarLogo />
|
|
14
|
+
- <SidebarSearchModal />
|
|
15
|
+
+ <SearchContextProvider>
|
|
16
|
+
+ <SidebarSearchModal />
|
|
17
|
+
+ </SearchContextProvider>
|
|
18
|
+
<SidebarDivider />
|
|
19
|
+
...
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
- 905dd952ac: Incorporate usage of the tokenManager into the backend created using `create-app`.
|
|
23
|
+
|
|
24
|
+
In existing backends, update the `PluginEnvironment` to include a `tokenManager`:
|
|
25
|
+
|
|
26
|
+
```diff
|
|
27
|
+
// packages/backend/src/types.ts
|
|
28
|
+
|
|
29
|
+
...
|
|
30
|
+
import {
|
|
31
|
+
...
|
|
32
|
+
+ TokenManager,
|
|
33
|
+
} from '@backstage/backend-common';
|
|
34
|
+
|
|
35
|
+
export type PluginEnvironment = {
|
|
36
|
+
...
|
|
37
|
+
+ tokenManager: TokenManager;
|
|
38
|
+
};
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
Then, create a `ServerTokenManager`. This can either be a `noop` that requires no secret and validates all requests by default, or one that uses a secret from your `app-config.yaml` to generate and validate tokens.
|
|
42
|
+
|
|
43
|
+
```diff
|
|
44
|
+
// packages/backend/src/index.ts
|
|
45
|
+
|
|
46
|
+
...
|
|
47
|
+
import {
|
|
48
|
+
...
|
|
49
|
+
+ ServerTokenManager,
|
|
50
|
+
} from '@backstage/backend-common';
|
|
51
|
+
...
|
|
52
|
+
|
|
53
|
+
function makeCreateEnv(config: Config) {
|
|
54
|
+
...
|
|
55
|
+
// CHOOSE ONE
|
|
56
|
+
// TokenManager not requiring a secret
|
|
57
|
+
+ const tokenManager = ServerTokenManager.noop();
|
|
58
|
+
// OR TokenManager requiring a secret
|
|
59
|
+
+ const tokenManager = ServerTokenManager.fromConfig(config);
|
|
60
|
+
|
|
61
|
+
...
|
|
62
|
+
return (plugin: string): PluginEnvironment => {
|
|
63
|
+
...
|
|
64
|
+
- return { logger, cache, database, config, reader, discovery };
|
|
65
|
+
+ return { logger, cache, database, config, reader, discovery, tokenManager };
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
```
|
|
69
|
+
|
|
3
70
|
## 0.4.5
|
|
4
71
|
|
|
5
72
|
### Patch Changes
|
package/dist/index.cjs.js
CHANGED
|
@@ -55,25 +55,25 @@ ${chalk__default['default'].red(`${error}`)}
|
|
|
55
55
|
}
|
|
56
56
|
}
|
|
57
57
|
|
|
58
|
-
var version$A = "0.4.
|
|
58
|
+
var version$A = "0.4.6";
|
|
59
59
|
|
|
60
60
|
var version$z = "0.1.1";
|
|
61
61
|
|
|
62
|
-
var version$y = "0.9.
|
|
62
|
+
var version$y = "0.9.12";
|
|
63
63
|
|
|
64
64
|
var version$x = "0.5.2";
|
|
65
65
|
|
|
66
66
|
var version$w = "0.9.7";
|
|
67
67
|
|
|
68
|
-
var version$v = "0.
|
|
68
|
+
var version$v = "0.10.0";
|
|
69
69
|
|
|
70
70
|
var version$u = "0.1.11";
|
|
71
71
|
|
|
72
|
-
var version$t = "0.1.
|
|
72
|
+
var version$t = "0.1.24";
|
|
73
73
|
|
|
74
|
-
var version$s = "0.7.
|
|
74
|
+
var version$s = "0.7.6";
|
|
75
75
|
|
|
76
|
-
var version$r = "0.2.
|
|
76
|
+
var version$r = "0.2.2";
|
|
77
77
|
|
|
78
78
|
var version$q = "0.1.5";
|
|
79
79
|
|
|
@@ -81,23 +81,23 @@ var version$p = "0.1.14";
|
|
|
81
81
|
|
|
82
82
|
var version$o = "0.1.23";
|
|
83
83
|
|
|
84
|
-
var version$n = "0.2.
|
|
84
|
+
var version$n = "0.2.14";
|
|
85
85
|
|
|
86
|
-
var version$m = "0.6.
|
|
86
|
+
var version$m = "0.6.16";
|
|
87
87
|
|
|
88
88
|
var version$l = "0.3.19";
|
|
89
89
|
|
|
90
|
-
var version$k = "0.4.
|
|
90
|
+
var version$k = "0.4.10";
|
|
91
91
|
|
|
92
92
|
var version$j = "0.7.3";
|
|
93
93
|
|
|
94
94
|
var version$i = "0.6.4";
|
|
95
95
|
|
|
96
|
-
var version$h = "0.
|
|
96
|
+
var version$h = "0.19.0";
|
|
97
97
|
|
|
98
98
|
var version$g = "0.7.4";
|
|
99
99
|
|
|
100
|
-
var version$f = "0.2.
|
|
100
|
+
var version$f = "0.2.30";
|
|
101
101
|
|
|
102
102
|
var version$e = "0.3.21";
|
|
103
103
|
|
|
@@ -111,11 +111,11 @@ var version$a = "0.2.14";
|
|
|
111
111
|
|
|
112
112
|
var version$9 = "0.1.16";
|
|
113
113
|
|
|
114
|
-
var version$8 = "0.11.
|
|
114
|
+
var version$8 = "0.11.13";
|
|
115
115
|
|
|
116
|
-
var version$7 = "0.15.
|
|
116
|
+
var version$7 = "0.15.15";
|
|
117
117
|
|
|
118
|
-
var version$6 = "0.
|
|
118
|
+
var version$6 = "0.5.0";
|
|
119
119
|
|
|
120
120
|
var version$5 = "0.2.7";
|
|
121
121
|
|
|
@@ -123,11 +123,11 @@ var version$4 = "0.4.3";
|
|
|
123
123
|
|
|
124
124
|
var version$3 = "0.4.12";
|
|
125
125
|
|
|
126
|
-
var version$2 = "0.12.
|
|
126
|
+
var version$2 = "0.12.8";
|
|
127
127
|
|
|
128
|
-
var version$1 = "0.
|
|
128
|
+
var version$1 = "0.11.0";
|
|
129
129
|
|
|
130
|
-
var version = "0.3.
|
|
130
|
+
var version = "0.3.12";
|
|
131
131
|
|
|
132
132
|
const packageVersions = {
|
|
133
133
|
"@backstage/app-defaults": version$z,
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@backstage/create-app",
|
|
3
3
|
"description": "A CLI that helps you create your own Backstage app",
|
|
4
|
-
"version": "0.4.
|
|
4
|
+
"version": "0.4.6",
|
|
5
5
|
"private": false,
|
|
6
6
|
"publishConfig": {
|
|
7
7
|
"access": "public"
|
|
@@ -56,5 +56,5 @@
|
|
|
56
56
|
"dist",
|
|
57
57
|
"templates"
|
|
58
58
|
],
|
|
59
|
-
"gitHead": "
|
|
59
|
+
"gitHead": "a05e7081b805006e3f0b2960a08a7753357f532f"
|
|
60
60
|
}
|
|
@@ -6,6 +6,11 @@ organization:
|
|
|
6
6
|
name: My Company
|
|
7
7
|
|
|
8
8
|
backend:
|
|
9
|
+
# Used for enabling authentication, secret is shared by all backend plugins
|
|
10
|
+
# See backend-to-backend-auth.md in the docs for information on the format
|
|
11
|
+
# auth:
|
|
12
|
+
# keys:
|
|
13
|
+
# - secret: ${BACKEND_SECRET}
|
|
9
14
|
baseUrl: http://localhost:7007
|
|
10
15
|
listen:
|
|
11
16
|
port: 7007
|
|
@@ -25,7 +25,10 @@ import LogoFull from './LogoFull';
|
|
|
25
25
|
import LogoIcon from './LogoIcon';
|
|
26
26
|
import { NavLink } from 'react-router-dom';
|
|
27
27
|
import { Settings as SidebarSettings } from '@backstage/plugin-user-settings';
|
|
28
|
-
import {
|
|
28
|
+
import {
|
|
29
|
+
SidebarSearchModal,
|
|
30
|
+
SearchContextProvider,
|
|
31
|
+
} from '@backstage/plugin-search';
|
|
29
32
|
import {
|
|
30
33
|
Sidebar,
|
|
31
34
|
SidebarPage,
|
|
@@ -74,7 +77,9 @@ export const Root = ({ children }: PropsWithChildren<{}>) => (
|
|
|
74
77
|
<SidebarPage>
|
|
75
78
|
<Sidebar>
|
|
76
79
|
<SidebarLogo />
|
|
77
|
-
<
|
|
80
|
+
<SearchContextProvider>
|
|
81
|
+
<SidebarSearchModal />
|
|
82
|
+
</SearchContextProvider>
|
|
78
83
|
<SidebarDivider />
|
|
79
84
|
{/* Global nav, not org-specific */}
|
|
80
85
|
<SidebarItem icon={HomeIcon} to="catalog" text="Home" />
|
|
@@ -17,6 +17,7 @@ import {
|
|
|
17
17
|
DatabaseManager,
|
|
18
18
|
SingleHostDiscovery,
|
|
19
19
|
UrlReaders,
|
|
20
|
+
ServerTokenManager,
|
|
20
21
|
} from '@backstage/backend-common';
|
|
21
22
|
import { Config } from '@backstage/config';
|
|
22
23
|
import app from './plugins/app';
|
|
@@ -37,12 +38,13 @@ function makeCreateEnv(config: Config) {
|
|
|
37
38
|
|
|
38
39
|
const cacheManager = CacheManager.fromConfig(config);
|
|
39
40
|
const databaseManager = DatabaseManager.fromConfig(config);
|
|
41
|
+
const tokenManager = ServerTokenManager.noop();
|
|
40
42
|
|
|
41
43
|
return (plugin: string): PluginEnvironment => {
|
|
42
44
|
const logger = root.child({ type: 'plugin', plugin });
|
|
43
45
|
const database = databaseManager.forPlugin(plugin);
|
|
44
46
|
const cache = cacheManager.forPlugin(plugin);
|
|
45
|
-
return { logger, database, cache, config, reader, discovery };
|
|
47
|
+
return { logger, database, cache, config, reader, discovery, tokenManager };
|
|
46
48
|
};
|
|
47
49
|
}
|
|
48
50
|
|
|
@@ -12,6 +12,7 @@ export default async function createPlugin({
|
|
|
12
12
|
logger,
|
|
13
13
|
discovery,
|
|
14
14
|
config,
|
|
15
|
+
tokenManager,
|
|
15
16
|
}: PluginEnvironment) {
|
|
16
17
|
// Initialize a connection to a search engine.
|
|
17
18
|
const searchEngine = new LunrSearchEngine({ logger });
|
|
@@ -21,13 +22,20 @@ export default async function createPlugin({
|
|
|
21
22
|
// collator gathers entities from the software catalog.
|
|
22
23
|
indexBuilder.addCollator({
|
|
23
24
|
defaultRefreshIntervalSeconds: 600,
|
|
24
|
-
collator: DefaultCatalogCollator.fromConfig(config, {
|
|
25
|
+
collator: DefaultCatalogCollator.fromConfig(config, {
|
|
26
|
+
discovery,
|
|
27
|
+
tokenManager,
|
|
28
|
+
}),
|
|
25
29
|
});
|
|
26
30
|
|
|
27
31
|
// collator gathers entities from techdocs.
|
|
28
32
|
indexBuilder.addCollator({
|
|
29
33
|
defaultRefreshIntervalSeconds: 600,
|
|
30
|
-
collator: DefaultTechDocsCollator.fromConfig(config, {
|
|
34
|
+
collator: DefaultTechDocsCollator.fromConfig(config, {
|
|
35
|
+
discovery,
|
|
36
|
+
logger,
|
|
37
|
+
tokenManager,
|
|
38
|
+
}),
|
|
31
39
|
});
|
|
32
40
|
|
|
33
41
|
// The scheduler controls when documents are gathered from collators and sent
|
|
@@ -4,6 +4,7 @@ import {
|
|
|
4
4
|
PluginCacheManager,
|
|
5
5
|
PluginDatabaseManager,
|
|
6
6
|
PluginEndpointDiscovery,
|
|
7
|
+
TokenManager,
|
|
7
8
|
UrlReader,
|
|
8
9
|
} from '@backstage/backend-common';
|
|
9
10
|
|
|
@@ -14,4 +15,5 @@ export type PluginEnvironment = {
|
|
|
14
15
|
config: Config;
|
|
15
16
|
reader: UrlReader;
|
|
16
17
|
discovery: PluginEndpointDiscovery;
|
|
18
|
+
tokenManager: TokenManager;
|
|
17
19
|
};
|