@backstage/backend-dynamic-feature-service 0.0.0-nightly-20240116021644

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 ADDED
@@ -0,0 +1,452 @@
1
+ # @backstage/backend-dynamic-feature-service
2
+
3
+ ## 0.0.0-nightly-20240116021644
4
+
5
+ ### Minor Changes
6
+
7
+ - eb81f42: New `backend-dynamic-feature-service` package, for the discovery of dynamic frontend and backend plugins (and modules) and the loading of the backend ones inside the backend application.
8
+
9
+ ### Patch Changes
10
+
11
+ - Updated dependencies
12
+ - @backstage/backend-common@0.0.0-nightly-20240116021644
13
+ - @backstage/cli-node@0.0.0-nightly-20240116021644
14
+ - @backstage/backend-plugin-api@0.0.0-nightly-20240116021644
15
+ - @backstage/plugin-events-backend@0.0.0-nightly-20240116021644
16
+ - @backstage/plugin-permission-common@0.0.0-nightly-20240116021644
17
+ - @backstage/plugin-permission-node@0.0.0-nightly-20240116021644
18
+ - @backstage/backend-tasks@0.0.0-nightly-20240116021644
19
+ - @backstage/plugin-auth-node@0.0.0-nightly-20240116021644
20
+ - @backstage/plugin-catalog-backend@0.0.0-nightly-20240116021644
21
+ - @backstage/plugin-scaffolder-node@0.0.0-nightly-20240116021644
22
+ - @backstage/plugin-search-backend-node@0.0.0-nightly-20240116021644
23
+ - @backstage/cli-common@0.1.13
24
+ - @backstage/config@1.1.1
25
+ - @backstage/errors@1.2.3
26
+ - @backstage/types@1.1.1
27
+ - @backstage/plugin-events-node@0.0.0-nightly-20240116021644
28
+ - @backstage/plugin-search-common@0.0.0-nightly-20240116021644
29
+
30
+ ## 0.0.5-next.2
31
+
32
+ ### Patch Changes
33
+
34
+ - Updated dependencies
35
+ - @backstage/backend-plugin-api@0.6.9-next.2
36
+ - @backstage/backend-common@0.20.1-next.2
37
+ - @backstage/plugin-auth-node@0.4.3-next.2
38
+ - @backstage/plugin-catalog-backend@1.16.1-next.2
39
+ - @backstage/plugin-events-backend@0.2.18-next.2
40
+ - @backstage/plugin-events-node@0.2.18-next.2
41
+ - @backstage/plugin-permission-node@0.7.20-next.2
42
+ - @backstage/plugin-scaffolder-node@0.2.10-next.2
43
+ - @backstage/plugin-search-backend-node@1.2.13-next.2
44
+ - @backstage/backend-tasks@0.5.14-next.2
45
+ - @backstage/cli-node@0.2.2-next.0
46
+
47
+ ## 0.0.5-next.1
48
+
49
+ ### Patch Changes
50
+
51
+ - Updated dependencies
52
+ - @backstage/cli-node@0.2.2-next.0
53
+ - @backstage/backend-common@0.20.1-next.1
54
+ - @backstage/config@1.1.1
55
+ - @backstage/backend-tasks@0.5.14-next.1
56
+ - @backstage/plugin-auth-node@0.4.3-next.1
57
+ - @backstage/plugin-catalog-backend@1.16.1-next.1
58
+ - @backstage/plugin-events-backend@0.2.18-next.1
59
+ - @backstage/plugin-permission-node@0.7.20-next.1
60
+ - @backstage/plugin-scaffolder-node@0.2.10-next.1
61
+ - @backstage/plugin-search-backend-node@1.2.13-next.1
62
+ - @backstage/backend-plugin-api@0.6.9-next.1
63
+ - @backstage/cli-common@0.1.13
64
+ - @backstage/errors@1.2.3
65
+ - @backstage/types@1.1.1
66
+ - @backstage/plugin-events-node@0.2.18-next.1
67
+ - @backstage/plugin-permission-common@0.7.11
68
+ - @backstage/plugin-search-common@1.2.9
69
+
70
+ ## 0.0.5-next.0
71
+
72
+ ### Patch Changes
73
+
74
+ - Updated dependencies
75
+ - @backstage/backend-common@0.20.1-next.0
76
+ - @backstage/backend-plugin-api@0.6.9-next.0
77
+ - @backstage/backend-tasks@0.5.14-next.0
78
+ - @backstage/cli-common@0.1.13
79
+ - @backstage/cli-node@0.2.1
80
+ - @backstage/config@1.1.1
81
+ - @backstage/errors@1.2.3
82
+ - @backstage/types@1.1.1
83
+ - @backstage/plugin-auth-node@0.4.3-next.0
84
+ - @backstage/plugin-catalog-backend@1.16.1-next.0
85
+ - @backstage/plugin-events-backend@0.2.18-next.0
86
+ - @backstage/plugin-events-node@0.2.18-next.0
87
+ - @backstage/plugin-permission-common@0.7.11
88
+ - @backstage/plugin-permission-node@0.7.20-next.0
89
+ - @backstage/plugin-scaffolder-node@0.2.10-next.0
90
+ - @backstage/plugin-search-backend-node@1.2.13-next.0
91
+ - @backstage/plugin-search-common@1.2.9
92
+
93
+ ## 0.0.4
94
+
95
+ ### Patch Changes
96
+
97
+ - Updated dependencies
98
+ - @backstage/backend-common@0.20.0
99
+ - @backstage/plugin-catalog-backend@1.16.0
100
+ - @backstage/plugin-scaffolder-node@0.2.9
101
+ - @backstage/backend-tasks@0.5.13
102
+ - @backstage/plugin-auth-node@0.4.2
103
+ - @backstage/plugin-permission-common@0.7.11
104
+ - @backstage/plugin-permission-node@0.7.19
105
+ - @backstage/cli-node@0.2.1
106
+ - @backstage/plugin-events-backend@0.2.17
107
+ - @backstage/plugin-search-backend-node@1.2.12
108
+ - @backstage/backend-plugin-api@0.6.8
109
+ - @backstage/cli-common@0.1.13
110
+ - @backstage/config@1.1.1
111
+ - @backstage/errors@1.2.3
112
+ - @backstage/types@1.1.1
113
+ - @backstage/plugin-events-node@0.2.17
114
+ - @backstage/plugin-search-common@1.2.9
115
+
116
+ ## 0.0.4-next.3
117
+
118
+ ### Patch Changes
119
+
120
+ - Updated dependencies
121
+ - @backstage/plugin-scaffolder-node@0.2.9-next.3
122
+ - @backstage/backend-common@0.20.0-next.3
123
+ - @backstage/backend-plugin-api@0.6.8-next.3
124
+ - @backstage/backend-tasks@0.5.13-next.3
125
+ - @backstage/cli-common@0.1.13
126
+ - @backstage/cli-node@0.2.0
127
+ - @backstage/config@1.1.1
128
+ - @backstage/errors@1.2.3
129
+ - @backstage/types@1.1.1
130
+ - @backstage/plugin-auth-node@0.4.2-next.3
131
+ - @backstage/plugin-catalog-backend@1.16.0-next.3
132
+ - @backstage/plugin-events-backend@0.2.17-next.3
133
+ - @backstage/plugin-events-node@0.2.17-next.3
134
+ - @backstage/plugin-permission-common@0.7.10
135
+ - @backstage/plugin-permission-node@0.7.19-next.3
136
+ - @backstage/plugin-search-backend-node@1.2.12-next.3
137
+ - @backstage/plugin-search-common@1.2.8
138
+
139
+ ## 0.0.4-next.2
140
+
141
+ ### Patch Changes
142
+
143
+ - Updated dependencies
144
+ - @backstage/plugin-catalog-backend@1.16.0-next.2
145
+ - @backstage/backend-common@0.20.0-next.2
146
+ - @backstage/plugin-auth-node@0.4.2-next.2
147
+ - @backstage/plugin-events-backend@0.2.17-next.2
148
+ - @backstage/backend-plugin-api@0.6.8-next.2
149
+ - @backstage/backend-tasks@0.5.13-next.2
150
+ - @backstage/cli-common@0.1.13
151
+ - @backstage/cli-node@0.2.0
152
+ - @backstage/config@1.1.1
153
+ - @backstage/errors@1.2.3
154
+ - @backstage/types@1.1.1
155
+ - @backstage/plugin-events-node@0.2.17-next.2
156
+ - @backstage/plugin-permission-common@0.7.10
157
+ - @backstage/plugin-permission-node@0.7.19-next.2
158
+ - @backstage/plugin-scaffolder-node@0.2.9-next.2
159
+ - @backstage/plugin-search-backend-node@1.2.12-next.2
160
+ - @backstage/plugin-search-common@1.2.8
161
+
162
+ ## 0.0.4-next.1
163
+
164
+ ### Patch Changes
165
+
166
+ - Updated dependencies
167
+ - @backstage/plugin-catalog-backend@1.15.1-next.1
168
+ - @backstage/backend-common@0.20.0-next.1
169
+ - @backstage/backend-plugin-api@0.6.8-next.1
170
+ - @backstage/backend-tasks@0.5.13-next.1
171
+ - @backstage/cli-common@0.1.13
172
+ - @backstage/cli-node@0.2.0
173
+ - @backstage/config@1.1.1
174
+ - @backstage/errors@1.2.3
175
+ - @backstage/types@1.1.1
176
+ - @backstage/plugin-auth-node@0.4.2-next.1
177
+ - @backstage/plugin-events-backend@0.2.17-next.1
178
+ - @backstage/plugin-events-node@0.2.17-next.1
179
+ - @backstage/plugin-permission-common@0.7.10
180
+ - @backstage/plugin-permission-node@0.7.19-next.1
181
+ - @backstage/plugin-scaffolder-node@0.2.9-next.1
182
+ - @backstage/plugin-search-backend-node@1.2.12-next.1
183
+ - @backstage/plugin-search-common@1.2.8
184
+
185
+ ## 0.0.4-next.0
186
+
187
+ ### Patch Changes
188
+
189
+ - Updated dependencies
190
+ - @backstage/backend-common@0.20.0-next.0
191
+ - @backstage/backend-tasks@0.5.13-next.0
192
+ - @backstage/plugin-auth-node@0.4.2-next.0
193
+ - @backstage/plugin-catalog-backend@1.15.1-next.0
194
+ - @backstage/plugin-events-backend@0.2.17-next.0
195
+ - @backstage/plugin-permission-node@0.7.19-next.0
196
+ - @backstage/plugin-scaffolder-node@0.2.9-next.0
197
+ - @backstage/plugin-search-backend-node@1.2.12-next.0
198
+ - @backstage/backend-plugin-api@0.6.8-next.0
199
+ - @backstage/cli-common@0.1.13
200
+ - @backstage/cli-node@0.2.0
201
+ - @backstage/config@1.1.1
202
+ - @backstage/errors@1.2.3
203
+ - @backstage/types@1.1.1
204
+ - @backstage/plugin-events-node@0.2.17-next.0
205
+ - @backstage/plugin-permission-common@0.7.10
206
+ - @backstage/plugin-search-common@1.2.8
207
+
208
+ ## 0.0.3
209
+
210
+ ### Patch Changes
211
+
212
+ - Updated dependencies
213
+ - @backstage/plugin-catalog-backend@1.15.0
214
+ - @backstage/cli-node@0.2.0
215
+ - @backstage/plugin-search-backend-node@1.2.11
216
+ - @backstage/backend-common@0.19.9
217
+ - @backstage/backend-plugin-api@0.6.7
218
+ - @backstage/backend-tasks@0.5.12
219
+ - @backstage/plugin-permission-common@0.7.10
220
+ - @backstage/plugin-scaffolder-node@0.2.8
221
+ - @backstage/cli-common@0.1.13
222
+ - @backstage/config@1.1.1
223
+ - @backstage/errors@1.2.3
224
+ - @backstage/types@1.1.1
225
+ - @backstage/plugin-auth-node@0.4.1
226
+ - @backstage/plugin-events-backend@0.2.16
227
+ - @backstage/plugin-events-node@0.2.16
228
+ - @backstage/plugin-permission-node@0.7.18
229
+ - @backstage/plugin-search-common@1.2.8
230
+
231
+ ## 0.0.3-next.2
232
+
233
+ ### Patch Changes
234
+
235
+ - Updated dependencies
236
+ - @backstage/backend-plugin-api@0.6.7-next.2
237
+ - @backstage/backend-common@0.19.9-next.2
238
+ - @backstage/plugin-catalog-backend@1.15.0-next.2
239
+ - @backstage/backend-tasks@0.5.12-next.2
240
+ - @backstage/plugin-auth-node@0.4.1-next.2
241
+ - @backstage/plugin-events-backend@0.2.16-next.2
242
+ - @backstage/plugin-events-node@0.2.16-next.2
243
+ - @backstage/plugin-permission-node@0.7.18-next.2
244
+ - @backstage/plugin-scaffolder-node@0.2.8-next.2
245
+ - @backstage/plugin-search-backend-node@1.2.11-next.2
246
+
247
+ ## 0.0.3-next.1
248
+
249
+ ### Patch Changes
250
+
251
+ - Updated dependencies
252
+ - @backstage/plugin-catalog-backend@1.15.0-next.1
253
+ - @backstage/backend-common@0.19.9-next.1
254
+ - @backstage/plugin-scaffolder-node@0.2.8-next.1
255
+ - @backstage/backend-tasks@0.5.12-next.1
256
+ - @backstage/plugin-auth-node@0.4.1-next.1
257
+ - @backstage/plugin-events-backend@0.2.16-next.1
258
+ - @backstage/plugin-permission-node@0.7.18-next.1
259
+ - @backstage/plugin-search-backend-node@1.2.11-next.1
260
+ - @backstage/backend-plugin-api@0.6.7-next.1
261
+ - @backstage/cli-common@0.1.13
262
+ - @backstage/cli-node@0.2.0-next.0
263
+ - @backstage/config@1.1.1
264
+ - @backstage/errors@1.2.3
265
+ - @backstage/types@1.1.1
266
+ - @backstage/plugin-events-node@0.2.16-next.1
267
+ - @backstage/plugin-permission-common@0.7.9
268
+ - @backstage/plugin-search-common@1.2.7
269
+
270
+ ## 0.0.3-next.0
271
+
272
+ ### Patch Changes
273
+
274
+ - Updated dependencies
275
+ - @backstage/cli-node@0.2.0-next.0
276
+ - @backstage/plugin-search-backend-node@1.2.11-next.0
277
+ - @backstage/plugin-catalog-backend@1.15.0-next.0
278
+ - @backstage/plugin-scaffolder-node@0.2.8-next.0
279
+ - @backstage/backend-common@0.19.9-next.0
280
+ - @backstage/backend-plugin-api@0.6.7-next.0
281
+ - @backstage/backend-tasks@0.5.12-next.0
282
+ - @backstage/cli-common@0.1.13
283
+ - @backstage/config@1.1.1
284
+ - @backstage/errors@1.2.3
285
+ - @backstage/types@1.1.1
286
+ - @backstage/plugin-auth-node@0.4.1-next.0
287
+ - @backstage/plugin-events-backend@0.2.16-next.0
288
+ - @backstage/plugin-events-node@0.2.16-next.0
289
+ - @backstage/plugin-permission-common@0.7.9
290
+ - @backstage/plugin-permission-node@0.7.18-next.0
291
+ - @backstage/plugin-search-common@1.2.7
292
+
293
+ ## 0.0.2
294
+
295
+ ### Patch Changes
296
+
297
+ - Updated dependencies
298
+ - @backstage/backend-tasks@0.5.11
299
+ - @backstage/backend-common@0.19.8
300
+ - @backstage/plugin-catalog-backend@1.14.0
301
+ - @backstage/plugin-auth-node@0.4.0
302
+ - @backstage/errors@1.2.3
303
+ - @backstage/cli-common@0.1.13
304
+ - @backstage/backend-plugin-api@0.6.6
305
+ - @backstage/plugin-search-backend-node@1.2.10
306
+ - @backstage/plugin-events-backend@0.2.15
307
+ - @backstage/plugin-permission-node@0.7.17
308
+ - @backstage/plugin-scaffolder-node@0.2.6
309
+ - @backstage/cli-node@0.1.5
310
+ - @backstage/config@1.1.1
311
+ - @backstage/types@1.1.1
312
+ - @backstage/plugin-events-node@0.2.15
313
+ - @backstage/plugin-permission-common@0.7.9
314
+ - @backstage/plugin-search-common@1.2.7
315
+
316
+ ## 0.0.2-next.2
317
+
318
+ ### Patch Changes
319
+
320
+ - Updated dependencies
321
+ - @backstage/backend-common@0.19.8-next.2
322
+ - @backstage/plugin-auth-node@0.4.0-next.2
323
+ - @backstage/plugin-catalog-backend@1.14.0-next.2
324
+ - @backstage/errors@1.2.3-next.0
325
+ - @backstage/backend-tasks@0.5.11-next.2
326
+ - @backstage/plugin-events-backend@0.2.15-next.2
327
+ - @backstage/plugin-permission-node@0.7.17-next.2
328
+ - @backstage/plugin-scaffolder-node@0.2.6-next.2
329
+ - @backstage/plugin-search-backend-node@1.2.10-next.2
330
+ - @backstage/backend-plugin-api@0.6.6-next.2
331
+ - @backstage/cli-common@0.1.13-next.0
332
+ - @backstage/cli-node@0.1.5-next.1
333
+ - @backstage/config@1.1.1-next.0
334
+ - @backstage/types@1.1.1
335
+ - @backstage/plugin-events-node@0.2.15-next.2
336
+ - @backstage/plugin-permission-common@0.7.9-next.0
337
+ - @backstage/plugin-search-common@1.2.7-next.0
338
+
339
+ ## 0.0.2-next.1
340
+
341
+ ### Patch Changes
342
+
343
+ - Updated dependencies
344
+ - @backstage/backend-tasks@0.5.10-next.1
345
+ - @backstage/plugin-catalog-backend@1.14.0-next.1
346
+ - @backstage/backend-common@0.19.7-next.1
347
+ - @backstage/backend-plugin-api@0.6.5-next.1
348
+ - @backstage/plugin-search-backend-node@1.2.9-next.1
349
+ - @backstage/plugin-auth-node@0.3.2-next.1
350
+ - @backstage/plugin-events-backend@0.2.14-next.1
351
+ - @backstage/plugin-permission-node@0.7.16-next.1
352
+ - @backstage/plugin-scaffolder-node@0.2.5-next.1
353
+ - @backstage/config@1.1.0
354
+ - @backstage/cli-common@0.1.13-next.0
355
+ - @backstage/cli-node@0.1.5-next.0
356
+ - @backstage/errors@1.2.2
357
+ - @backstage/types@1.1.1
358
+ - @backstage/plugin-events-node@0.2.14-next.1
359
+ - @backstage/plugin-permission-common@0.7.8
360
+ - @backstage/plugin-search-common@1.2.6
361
+
362
+ ## 0.0.2-next.0
363
+
364
+ ### Patch Changes
365
+
366
+ - Updated dependencies
367
+ - @backstage/plugin-catalog-backend@1.14.0-next.0
368
+ - @backstage/plugin-auth-node@0.3.2-next.0
369
+ - @backstage/cli-common@0.1.13-next.0
370
+ - @backstage/backend-common@0.19.7-next.0
371
+ - @backstage/plugin-scaffolder-node@0.2.5-next.0
372
+ - @backstage/config@1.1.0
373
+ - @backstage/backend-plugin-api@0.6.5-next.0
374
+ - @backstage/backend-tasks@0.5.10-next.0
375
+ - @backstage/cli-node@0.1.5-next.0
376
+ - @backstage/errors@1.2.2
377
+ - @backstage/types@1.1.1
378
+ - @backstage/plugin-events-backend@0.2.14-next.0
379
+ - @backstage/plugin-events-node@0.2.14-next.0
380
+ - @backstage/plugin-permission-common@0.7.8
381
+ - @backstage/plugin-permission-node@0.7.16-next.0
382
+ - @backstage/plugin-search-backend-node@1.2.9-next.0
383
+ - @backstage/plugin-search-common@1.2.6
384
+
385
+ ## 0.0.1
386
+
387
+ ### Patch Changes
388
+
389
+ - Updated dependencies
390
+ - @backstage/plugin-catalog-backend@1.13.0
391
+ - @backstage/plugin-events-backend@0.2.12
392
+ - @backstage/backend-tasks@0.5.8
393
+ - @backstage/backend-common@0.19.5
394
+ - @backstage/plugin-auth-node@0.3.0
395
+ - @backstage/config@1.1.0
396
+ - @backstage/errors@1.2.2
397
+ - @backstage/plugin-permission-common@0.7.8
398
+ - @backstage/plugin-search-common@1.2.6
399
+ - @backstage/types@1.1.1
400
+ - @backstage/plugin-permission-node@0.7.14
401
+ - @backstage/backend-plugin-api@0.6.3
402
+ - @backstage/cli-common@0.1.12
403
+ - @backstage/cli-node@0.1.4
404
+ - @backstage/plugin-events-node@0.2.12
405
+ - @backstage/plugin-scaffolder-node@0.2.3
406
+ - @backstage/plugin-search-backend-node@1.2.7
407
+
408
+ ## 0.0.1-next.1
409
+
410
+ ### Patch Changes
411
+
412
+ - Updated dependencies
413
+ - @backstage/plugin-catalog-backend@1.13.0-next.3
414
+ - @backstage/plugin-events-backend@0.2.12-next.3
415
+ - @backstage/config@1.1.0-next.2
416
+ - @backstage/errors@1.2.2-next.0
417
+ - @backstage/plugin-permission-common@0.7.8-next.2
418
+ - @backstage/plugin-search-common@1.2.6-next.2
419
+ - @backstage/types@1.1.1-next.0
420
+ - @backstage/plugin-permission-node@0.7.14-next.3
421
+ - @backstage/backend-plugin-api@0.6.3-next.3
422
+ - @backstage/backend-common@0.19.5-next.3
423
+ - @backstage/backend-tasks@0.5.8-next.3
424
+ - @backstage/cli-common@0.1.12
425
+ - @backstage/cli-node@0.1.4-next.0
426
+ - @backstage/plugin-auth-node@0.3.0-next.3
427
+ - @backstage/plugin-events-node@0.2.12-next.3
428
+ - @backstage/plugin-scaffolder-node@0.2.3-next.3
429
+ - @backstage/plugin-search-backend-node@1.2.7-next.3
430
+
431
+ ## 0.0.1-next.0
432
+
433
+ ### Patch Changes
434
+
435
+ - Updated dependencies
436
+ - @backstage/plugin-catalog-backend@1.13.0-next.2
437
+ - @backstage/config@1.1.0-next.1
438
+ - @backstage/backend-tasks@0.5.8-next.2
439
+ - @backstage/backend-common@0.19.5-next.2
440
+ - @backstage/plugin-auth-node@0.3.0-next.2
441
+ - @backstage/plugin-events-backend@0.2.12-next.2
442
+ - @backstage/plugin-permission-node@0.7.14-next.2
443
+ - @backstage/backend-plugin-api@0.6.3-next.2
444
+ - @backstage/plugin-permission-common@0.7.8-next.1
445
+ - @backstage/plugin-scaffolder-node@0.2.3-next.2
446
+ - @backstage/plugin-search-backend-node@1.2.7-next.2
447
+ - @backstage/cli-common@0.1.12
448
+ - @backstage/cli-node@0.1.3
449
+ - @backstage/errors@1.2.1
450
+ - @backstage/types@1.1.0
451
+ - @backstage/plugin-events-node@0.2.12-next.2
452
+ - @backstage/plugin-search-common@1.2.6-next.1
package/README.md ADDED
@@ -0,0 +1,48 @@
1
+ # @backstage/backend-dynamic-feature-service
2
+
3
+ This package adds experimental support for **dynamic backend features (plugins and modules)**, according to the content of the proposal in [RFC 18390](https://github.com/backstage/backstage/issues/18390)
4
+
5
+ ## Testing the backend dynamic plugins feature
6
+
7
+ In order to test the dynamic backend plugins feature provided by this package, example applications, as well as example dynamic plugins have been provided in provided in the [showcase repository](https://github.com/janus-idp/dynamic-backend-plugins-showcase), and instructions are provided in the [related Readme](https://github.com/janus-idp/dynamic-backend-plugins-showcase#readme).
8
+
9
+ ## How it works
10
+
11
+ The dynamic plugin manager is a service that scans a configured root directory (`dynamicPlugins.rootDirectory` in the app config) for dynamic plugin packages, and loads them dynamically.
12
+
13
+ In the `backend-next` application, it can be enabled by adding the `backend-dynamic-feature-service` as a dependency in the `package.json` and the following lines in the `src/index.ts` file:
14
+
15
+ ```ts
16
+ const backend = createBackend();
17
+ +
18
+ + backend.add(dynamicPluginsFeatureDiscoveryServiceFactory()) // overridden version of the FeatureDiscoveryService which provides features loaded by dynamic plugins
19
+ + backend.add(dynamicPluginsServiceFactory())
20
+ +
21
+ ```
22
+
23
+ ### About the expected dynamic plugin structure
24
+
25
+ Due to some limitations of the current backstage codebase, the plugins need to be completed and repackaged to by used as dynamic plugins:
26
+
27
+ 1. they must provide a named entry point (`dynamicPluginInstaller`) of a specific type (`BackendDynamicPluginInstaller`), as can be found in the `src/dynamic` sub-folder of each dynamic plugin example provided in the [showcase repository](https://github.com/janus-idp/dynamic-backend-plugins-showcase).
28
+ 2. they would have a modified `package.json` file in which dependencies are updated to share `@backstage` dependencies with the main application.
29
+ 3. they may embed some dependency whose code is then merged with the plugin code.
30
+
31
+ Points 2 and 3 can be done by the `export-dynamic-plugin` CLI command used to perform the repackaging
32
+
33
+ ### About the `export-dynamic-plugin` command
34
+
35
+ The `export-dynamic-plugin` CLI command, used the dynamic plugin examples provided in the [showcase repository](https://github.com/janus-idp/dynamic-backend-plugins-showcase), is part of the `@janus-idp/cli` package, and can be used to help packaging the dynamic plugins according to the constraints mentioned above, in order to allow straightforward testing of the dynamic plugins feature.
36
+
37
+ However the `backend-dynamic-feature-service` experimental package does **not** depend on the use of this additional CLI command, and in future steps of this backend dynamic plugin work, the use of such a dedicated command might not even be necessary.
38
+
39
+ ### About the support of the legacy backend system
40
+
41
+ The backend dynamic plugins feature clearly targets the new backend system.
42
+ However some level of compatibility is provided with current backstage codebase, which still uses the legacy backend system, in order to allow testing and exploring dynamic backend plugin support on the widest range of contexts and installations.
43
+ However, this is temporary and will be removed once the next backend is ready to be used and has completely replaced the old one.
44
+ This is why the API related to the old backend is already marked as deprecated.
45
+
46
+ ### Future work
47
+
48
+ The current implementation of the dynamic plugin manager is a first step towards the final implementation of the dynamic features loading, which will be completed / simplified in future steps, as the status of the backstage codebase allows it.