@backstage/plugin-techdocs-node 0.0.0-nightly-20220305022735

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,1076 @@
1
+ # @backstage/plugin-techdocs-node
2
+
3
+ ## 0.0.0-nightly-20220305022735
4
+
5
+ ### Patch Changes
6
+
7
+ - 3e54f6c436: Use `@backstage/plugin-search-common` package instead of `@backstage/search-common`.
8
+ - cea6f10b97: Renamed `@backstage/techdocs-common` to `@backstage/plugin-techdocs-node`.
9
+ - Updated dependencies
10
+ - @backstage/catalog-model@0.0.0-nightly-20220305022735
11
+ - @backstage/backend-common@0.0.0-nightly-20220305022735
12
+ - @backstage/plugin-search-common@0.0.0-nightly-20220305022735
13
+
14
+ ## 0.11.11
15
+
16
+ ### Patch Changes
17
+
18
+ - 955be6bc7d: adds passing projectID to the Storage client
19
+ - ff0a16fb1a: Modify techdocs builder to automatically append techdocs-core plugin to mkdocs.yaml file if it is missing. Adds an optional configuration item if this plugin needs to be omitted.
20
+ - Updated dependencies
21
+ - @backstage/catalog-model@0.12.0
22
+ - @backstage/backend-common@0.12.0
23
+ - @backstage/integration@0.8.0
24
+ - @backstage/search-common@0.3.0
25
+
26
+ ## 0.11.10
27
+
28
+ ### Patch Changes
29
+
30
+ - 209fd128e6: Updated usage of `github:` location types in docs to use `url:` instead.
31
+ - 13ef228d03: Clean up the API interface for TechDocs common library.
32
+ - Updated dependencies
33
+ - @backstage/backend-common@0.11.0
34
+ - @backstage/catalog-model@0.11.0
35
+ - @backstage/integration@0.7.5
36
+
37
+ ## 0.11.9
38
+
39
+ ### Patch Changes
40
+
41
+ - Fix for the previous release with missing type declarations.
42
+ - Updated dependencies
43
+ - @backstage/backend-common@0.10.9
44
+ - @backstage/catalog-model@0.10.1
45
+ - @backstage/config@0.1.15
46
+ - @backstage/errors@0.2.2
47
+ - @backstage/integration@0.7.4
48
+ - @backstage/search-common@0.2.4
49
+
50
+ ## 0.11.8
51
+
52
+ ### Patch Changes
53
+
54
+ - c77c5c7eb6: Added `backstage.role` to `package.json`
55
+ - 216725b434: Updated to use new names for `parseLocationRef` and `stringifyLocationRef`
56
+ - 7aeb491394: Replace use of deprecated `ENTITY_DEFAULT_NAMESPACE` constant with `DEFAULT_NAMESPACE`.
57
+ - Updated dependencies
58
+ - @backstage/backend-common@0.10.8
59
+ - @backstage/errors@0.2.1
60
+ - @backstage/integration@0.7.3
61
+ - @backstage/catalog-model@0.10.0
62
+ - @backstage/config@0.1.14
63
+ - @backstage/search-common@0.2.3
64
+
65
+ ## 0.11.7
66
+
67
+ ### Patch Changes
68
+
69
+ - Updated dependencies
70
+ - @backstage/backend-common@0.10.7
71
+
72
+ ## 0.11.7-next.0
73
+
74
+ ### Patch Changes
75
+
76
+ - Updated dependencies
77
+ - @backstage/backend-common@0.10.7-next.0
78
+
79
+ ## 0.11.6
80
+
81
+ ### Patch Changes
82
+
83
+ - Updated dependencies
84
+ - @backstage/backend-common@0.10.6
85
+
86
+ ## 0.11.6-next.0
87
+
88
+ ### Patch Changes
89
+
90
+ - Updated dependencies
91
+ - @backstage/backend-common@0.10.6-next.0
92
+
93
+ ## 0.11.5
94
+
95
+ ### Patch Changes
96
+
97
+ - ff93fbeeec: Fix interpolated string for "Failed to generate docs from ..."
98
+ - Updated dependencies
99
+ - @backstage/search-common@0.2.2
100
+ - @backstage/backend-common@0.10.5
101
+
102
+ ## 0.11.4
103
+
104
+ ### Patch Changes
105
+
106
+ - 47277c0d8c: Updated the default version of the `@spotify/techdocs` container used when `techdocs.generator.runIn` is `docker` to `v0.3.6`, which includes an update to `mkdocs-monorepo-plugin` that allows glob-based wildcard includes.
107
+ - Updated dependencies
108
+ - @backstage/integration@0.7.2
109
+ - @backstage/backend-common@0.10.4
110
+ - @backstage/config@0.1.13
111
+ - @backstage/catalog-model@0.9.10
112
+
113
+ ## 0.11.4-next.0
114
+
115
+ ### Patch Changes
116
+
117
+ - 47277c0d8c: Updated the default version of the `@spotify/techdocs` container used when `techdocs.generator.runIn` is `docker` to `v0.3.6`, which includes an update to `mkdocs-monorepo-plugin` that allows glob-based wildcard includes.
118
+ - Updated dependencies
119
+ - @backstage/backend-common@0.10.4-next.0
120
+ - @backstage/config@0.1.13-next.0
121
+ - @backstage/catalog-model@0.9.10-next.0
122
+ - @backstage/integration@0.7.2-next.0
123
+
124
+ ## 0.11.3
125
+
126
+ ### Patch Changes
127
+
128
+ - 5333451def: Cleaned up API exports
129
+ - Updated dependencies
130
+ - @backstage/config@0.1.12
131
+ - @backstage/integration@0.7.1
132
+ - @backstage/backend-common@0.10.3
133
+ - @backstage/errors@0.2.0
134
+ - @backstage/catalog-model@0.9.9
135
+
136
+ ## 0.11.2
137
+
138
+ ### Patch Changes
139
+
140
+ - c2c8768771: Bump `@azure/identity` from `^1.5.0` to `^2.0.1`.
141
+ - Updated dependencies
142
+ - @backstage/backend-common@0.10.1
143
+ - @backstage/integration@0.7.0
144
+
145
+ ## 0.11.1
146
+
147
+ ### Patch Changes
148
+
149
+ - Updated dependencies
150
+ - @backstage/backend-common@0.10.0
151
+
152
+ ## 0.11.0
153
+
154
+ ### Minor Changes
155
+
156
+ - 1bada775a9: Added the ability for the TechDocs Backend to (optionally) leverage a cache
157
+ store to improve performance when reading files from a cloud storage provider.
158
+
159
+ ### Patch Changes
160
+
161
+ - dcd1a0c3f4: Minor improvement to the API reports, by not unpacking arguments directly
162
+ - Updated dependencies
163
+ - @backstage/backend-common@0.9.13
164
+
165
+ ## 0.10.8
166
+
167
+ ### Patch Changes
168
+
169
+ - bab752e2b3: Change default port of backend from 7000 to 7007.
170
+
171
+ This is due to the AirPlay Receiver process occupying port 7000 and preventing local Backstage instances on MacOS to start.
172
+
173
+ You can change the port back to 7000 or any other value by providing an `app-config.yaml` with the following values:
174
+
175
+ ```
176
+ backend:
177
+ listen: 0.0.0.0:7123
178
+ baseUrl: http://localhost:7123
179
+ ```
180
+
181
+ More information can be found here: https://backstage.io/docs/conf/writing
182
+
183
+ - Updated dependencies
184
+ - @backstage/errors@0.1.5
185
+ - @backstage/backend-common@0.9.11
186
+
187
+ ## 0.10.7
188
+
189
+ ### Patch Changes
190
+
191
+ - 0b60a051c9: Added OpenStack Swift case migration support.
192
+ - 9e64a7ac1e: Allow amazon web services s3 buckets to pass an server side encryption configuration so they can publish to encrypted buckets
193
+ - Updated dependencies
194
+ - @backstage/catalog-model@0.9.7
195
+ - @backstage/backend-common@0.9.10
196
+
197
+ ## 0.10.6
198
+
199
+ ### Patch Changes
200
+
201
+ - a2d4389587: 1. Techdocs publisher constructors now use parameter objects when being
202
+ instantiated
203
+
204
+ 2. Internal refactor of `LocalPublish` publisher to use `fromConfig` for
205
+ creation to be aligned with other publishers; this does not impact
206
+ `LocalPublish` usage.
207
+
208
+ ```diff
209
+ - const publisher = new LocalPublish(config, logger, discovery);
210
+ + const publisher = LocalPublish.fromConfig(config, logger, discovery);
211
+ ```
212
+
213
+ - 6129c89a47: Default TechDocs container used at docs generation-time is now [v0.3.5](https://github.com/backstage/techdocs-container/releases/tag/v0.3.5).
214
+ - f3c7eec64b: Updated to properly join URL segments under any OS for both AWS S3 and GCP
215
+ - Updated dependencies
216
+ - @backstage/backend-common@0.9.9
217
+
218
+ ## 0.10.5
219
+
220
+ ### Patch Changes
221
+
222
+ - d207f6ee9e: Support optional bucketRootPath configuration parameter in S3 and GCS publishers
223
+ - Updated dependencies
224
+ - @backstage/config@0.1.11
225
+ - @backstage/errors@0.1.4
226
+ - @backstage/integration@0.6.9
227
+ - @backstage/backend-common@0.9.8
228
+ - @backstage/catalog-model@0.9.6
229
+ - @backstage/search-common@0.2.1
230
+
231
+ ## 0.10.4
232
+
233
+ ### Patch Changes
234
+
235
+ - 87f5b9db13: Use docs/README.md or README.md as fallback if docs/index.md is missing
236
+ - 36e67d2f24: Internal updates to apply more strict checks to throw errors.
237
+ - Updated dependencies
238
+ - @backstage/backend-common@0.9.7
239
+ - @backstage/errors@0.1.3
240
+ - @backstage/catalog-model@0.9.5
241
+
242
+ ## 0.10.3
243
+
244
+ ### Patch Changes
245
+
246
+ - 156421c59a: Sets the default techdocs docker image to the [latest released version - v0.3.3](https://github.com/backstage/techdocs-container/releases/tag/v0.3.3).
247
+ - Updated dependencies
248
+ - @backstage/catalog-model@0.9.4
249
+ - @backstage/backend-common@0.9.6
250
+ - @backstage/integration@0.6.7
251
+
252
+ ## 0.10.2
253
+
254
+ ### Patch Changes
255
+
256
+ - 1c75e8bf98: Add more context to techdocs log lines when files are not found along with
257
+ ensuring that the routers return 404 with a descriptive message.
258
+ - e92f0f728b: Locks the version of the default docker image used to generate TechDocs. As of
259
+ this changelog entry, it is v0.3.2!
260
+ - Updated dependencies
261
+ - @backstage/backend-common@0.9.5
262
+ - @backstage/integration@0.6.6
263
+
264
+ ## 0.10.1
265
+
266
+ ### Patch Changes
267
+
268
+ - 96fef17a18: Upgrade git-parse-url to v11.6.0
269
+ - Updated dependencies
270
+ - @backstage/backend-common@0.9.3
271
+ - @backstage/integration@0.6.4
272
+
273
+ ## 0.10.0
274
+
275
+ ### Minor Changes
276
+
277
+ - 8b0f6f860: Set the correct `edit_uri` or `repo_url` for documentation pages that are hosted on GitHub and GitLab.
278
+
279
+ The constructor of the `TechDocsGenerator` changed.
280
+ Prefer the use of `TechdocsGenerator.fromConfig(…)` instead:
281
+
282
+ ```diff
283
+ - const techdocsGenerator = new TechdocsGenerator({
284
+ + const techdocsGenerator = TechdocsGenerator.fromConfig(config, {
285
+ logger,
286
+ containerRunner,
287
+ - config,
288
+ });
289
+ ```
290
+
291
+ ### Patch Changes
292
+
293
+ - 30ed662a3: Adding in-context search to TechDocs Reader component. Using existing search-backend to query for indexed search results scoped into a specific entity's techdocs. Needs TechDocsCollator enabled on the backend to work.
294
+
295
+ Adding extra information to indexed tech docs documents for search.
296
+
297
+ - 3624616e7: "Local" (out-of-the-box) publisher explicitly follows lower-case entity triplet
298
+ logic.
299
+ - 67ba7e088: Only write the updated `mkdocs.yml` file if the content was updated.
300
+
301
+ This keeps local files unchanged if the `dir` annotation is used in combination with the `file` location.
302
+
303
+ - 8eab6be6a: Force using `posix` path for cloud storage
304
+ - Updated dependencies
305
+ - @backstage/integration@0.6.3
306
+ - @backstage/search-common@0.2.0
307
+ - @backstage/catalog-model@0.9.1
308
+ - @backstage/backend-common@0.9.1
309
+
310
+ ## 0.9.0
311
+
312
+ ### Minor Changes
313
+
314
+ - 58452cdb7: OpenStack Swift Client changed with Trendyol's OpenStack Swift SDK.
315
+
316
+ ## Migration from old OpenStack Swift Configuration
317
+
318
+ Let's assume we have the old OpenStack Swift configuration here.
319
+
320
+ ```yaml
321
+ techdocs:
322
+ publisher:
323
+ type: 'openStackSwift'
324
+ openStackSwift:
325
+ containerName: 'name-of-techdocs-storage-bucket'
326
+ credentials:
327
+ username: ${OPENSTACK_SWIFT_STORAGE_USERNAME}
328
+ password: ${OPENSTACK_SWIFT_STORAGE_PASSWORD}
329
+ authUrl: ${OPENSTACK_SWIFT_STORAGE_AUTH_URL}
330
+ keystoneAuthVersion: ${OPENSTACK_SWIFT_STORAGE_AUTH_VERSION}
331
+ domainId: ${OPENSTACK_SWIFT_STORAGE_DOMAIN_ID}
332
+ domainName: ${OPENSTACK_SWIFT_STORAGE_DOMAIN_NAME}
333
+ region: ${OPENSTACK_SWIFT_STORAGE_REGION}
334
+ ```
335
+
336
+ ##### Step 1: Change the credential keys
337
+
338
+ Since the new SDK uses _Application Credentials_ to authenticate OpenStack, we
339
+ need to change the keys `credentials.username` to `credentials.id`,
340
+ `credentials.password` to `credentials.secret` and use Application Credential ID
341
+ and secret here. For more detail about credentials look
342
+ [here](https://docs.openstack.org/api-ref/identity/v3/?expanded=password-authentication-with-unscoped-authorization-detail,authenticating-with-an-application-credential-detail#authenticating-with-an-application-credential).
343
+
344
+ ##### Step 2: Remove the unused keys
345
+
346
+ Since the new SDK doesn't use the old way authentication, we don't need the keys
347
+ `openStackSwift.keystoneAuthVersion`, `openStackSwift.domainId`,
348
+ `openStackSwift.domainName` and `openStackSwift.region`. So you can remove them.
349
+
350
+ ##### Step 3: Add Swift URL
351
+
352
+ The new SDK needs the OpenStack Swift connection URL for connecting the Swift.
353
+ So you need to add a new key called `openStackSwift.swiftUrl` and give the
354
+ OpenStack Swift url here. Example url should look like that:
355
+ `https://example.com:6780/swift/v1`
356
+
357
+ ##### That's it!
358
+
359
+ Your new configuration should look like that!
360
+
361
+ ```yaml
362
+ techdocs:
363
+ publisher:
364
+ type: 'openStackSwift'
365
+ openStackSwift:
366
+ containerName: 'name-of-techdocs-storage-bucket'
367
+ credentials:
368
+ id: ${OPENSTACK_SWIFT_STORAGE_APPLICATION_CREDENTIALS_ID}
369
+ secret: ${OPENSTACK_SWIFT_STORAGE_APPLICATION_CREDENTIALS_SECRET}
370
+ authUrl: ${OPENSTACK_SWIFT_STORAGE_AUTH_URL}
371
+ swiftUrl: ${OPENSTACK_SWIFT_STORAGE_SWIFT_URL}
372
+ ```
373
+
374
+ - c772d9a84: TechDocs sites can now be accessed using paths containing entity triplets of
375
+ any case (e.g. `/docs/namespace/KIND/name` or `/docs/namespace/kind/name`).
376
+
377
+ If you do not use an external storage provider for serving TechDocs, this is a
378
+ transparent change and no action is required from you.
379
+
380
+ If you _do_ use an external storage provider for serving TechDocs (one of\* GCS,
381
+ AWS S3, or Azure Blob Storage), you must run a migration command against your
382
+ storage provider before updating.
383
+
384
+ [A migration guide is available here](https://backstage.io/docs/features/techdocs/how-to-guides#how-to-migrate-from-techdocs-alpha-to-beta).
385
+
386
+ - (\*) We're seeking help from the community to bring OpenStack Swift support
387
+ [to feature parity](https://github.com/backstage/backstage/issues/6763) with the above.
388
+
389
+ ### Patch Changes
390
+
391
+ - Updated dependencies
392
+ - @backstage/backend-common@0.9.0
393
+ - @backstage/integration@0.6.2
394
+ - @backstage/config@0.1.8
395
+
396
+ ## 0.8.1
397
+
398
+ ### Patch Changes
399
+
400
+ - bc405be6e: Stale TechDocs content (files that had previously been published but which have
401
+ since been removed) is now removed from storage at publish-time. This is now
402
+ supported by the following publishers:
403
+
404
+ - Google GCS
405
+ - AWS S3
406
+ - Azure Blob Storage
407
+
408
+ You may need to apply a greater level of permissions (e.g. the ability to
409
+ delete objects in your storage provider) to any credentials/accounts used by
410
+ the TechDocs CLI or TechDocs backend in order for this change to take effect.
411
+
412
+ For more details, see [#6132][issue-ref].
413
+
414
+ [issue-ref]: https://github.com/backstage/backstage/issues/6132
415
+
416
+ - Updated dependencies
417
+ - @backstage/integration@0.6.0
418
+ - @backstage/backend-common@0.8.9
419
+
420
+ ## 0.8.0
421
+
422
+ ### Minor Changes
423
+
424
+ - 48ea3d25b: TechDocs has dropped all support for the long-ago deprecated git-based common
425
+ prepares as well as all corresponding values in `backstage.io/techdocs-ref`
426
+ annotations.
427
+
428
+ Entities whose `backstage.io/techdocs-ref` annotation values still begin with
429
+ `github:`, `gitlab:`, `bitbucket:`, or `azure/api:` will no longer be generated
430
+ by TechDocs. Be sure to update these values so that they align with their
431
+ expected format and your usage of TechDocs.
432
+
433
+ For details, see [this explainer on TechDocs ref annotation values][how].
434
+
435
+ [how]: https://backstage.io/docs/features/techdocs/how-to-guides#how-to-understand-techdocs-ref-annotation-values
436
+
437
+ ### Patch Changes
438
+
439
+ - Updated dependencies
440
+ - @backstage/backend-common@0.8.8
441
+ - @backstage/config@0.1.6
442
+ - @backstage/integration@0.5.9
443
+
444
+ ## 0.7.1
445
+
446
+ ### Patch Changes
447
+
448
+ - 59a5fa319: Migrated files are now printed when `techdocs-cli migrate` is run with the
449
+ `--verbose` flag set.
450
+ - 54356336e: TechDocs generator stage now supports `mkdocs.yaml` file, in addition to `.yml`
451
+ depending on whichever is present at the time of generation. (Assumes the
452
+ latest `spotify/techdocs` container, running mkdocs `v1.2.2` or greater).
453
+
454
+ ## 0.7.0
455
+
456
+ ### Minor Changes
457
+
458
+ - d32d01e5b: Improve the annotation `backstage.io/techdocs-ref: dir:<relative-target>` that links to a path that is relative to the source of the annotated entity.
459
+ This annotation works with the basic and the recommended flow, however, it will be most useful with the basic approach.
460
+
461
+ This change remove the deprecation of the `dir` reference and provides first-class support for it.
462
+ In addition, this change removes the support of the deprecated `github`, `gitlab`, and `azure/api` locations from the `dir` reference preparer.
463
+
464
+ #### Example Usage
465
+
466
+ The annotation is convenient if the documentation is stored in the same location, i.e. the same git repository, as the `catalog-info.yaml`.
467
+ While it is still supported to add full URLs such as `backstage.io/techdocs-ref: url:https://...` for custom setups, documentation is mostly stored in the same repository as the entity definition.
468
+ By automatically resolving the target relative to the registration location of the entity, the configuration overhead for this default setup is minimized.
469
+ Since it leverages the `@backstage/integrations` package for the URL resolution, this is compatible with every supported source.
470
+
471
+ Consider the following examples:
472
+
473
+ 1. "I have a repository with a single `catalog-info.yaml` and a TechDocs page in the root folder!"
474
+
475
+ ```
476
+ https://github.com/backstage/example/tree/main/
477
+ |- catalog-info.yaml
478
+ | > apiVersion: backstage.io/v1alpha1
479
+ | > kind: Component
480
+ | > metadata:
481
+ | > name: example
482
+ | > annotations:
483
+ | > backstage.io/techdocs-ref: dir:. # -> same folder
484
+ | > spec: {}
485
+ |- docs/
486
+ |- mkdocs.yml
487
+ ```
488
+
489
+ 2. "I have a repository with a single `catalog-info.yaml` and my TechDocs page in located in a folder!"
490
+
491
+ ```
492
+ https://bitbucket.org/my-owner/my-project/src/master/
493
+ |- catalog-info.yaml
494
+ | > apiVersion: backstage.io/v1alpha1
495
+ | > kind: Component
496
+ | > metadata:
497
+ | > name: example
498
+ | > annotations:
499
+ | > backstage.io/techdocs-ref: dir:./some-folder # -> subfolder
500
+ | > spec: {}
501
+ |- some-folder/
502
+ |- docs/
503
+ |- mkdocs.yml
504
+ ```
505
+
506
+ 3. "I have a mono repository that hosts multiple components!"
507
+
508
+ ```
509
+ https://dev.azure.com/organization/project/_git/repository
510
+ |- my-1st-module/
511
+ |- catalog-info.yaml
512
+ | > apiVersion: backstage.io/v1alpha1
513
+ | > kind: Component
514
+ | > metadata:
515
+ | > name: my-1st-module
516
+ | > annotations:
517
+ | > backstage.io/techdocs-ref: dir:. # -> same folder
518
+ | > spec: {}
519
+ |- docs/
520
+ |- mkdocs.yml
521
+ |- my-2nd-module/
522
+ |- catalog-info.yaml
523
+ | > apiVersion: backstage.io/v1alpha1
524
+ | > kind: Component
525
+ | > metadata:
526
+ | > name: my-2nd-module
527
+ | > annotations:
528
+ | > backstage.io/techdocs-ref: dir:. # -> same folder
529
+ | > spec: {}
530
+ |- docs/
531
+ |- mkdocs.yml
532
+ |- catalog-info.yaml
533
+ | > apiVersion: backstage.io/v1alpha1
534
+ | > kind: Location
535
+ | > metadata:
536
+ | > name: example
537
+ | > spec:
538
+ | > targets:
539
+ | > - ./*/catalog-info.yaml
540
+ ```
541
+
542
+ ### Patch Changes
543
+
544
+ - 6e5aed1c9: Fix validation of mkdocs.yml docs_dir
545
+ - 250984333: Add link to https://backstage.io/docs/features/techdocs/configuration in the log warning message about updating techdocs.generate key.
546
+ - Updated dependencies
547
+ - @backstage/backend-common@0.8.7
548
+
549
+ ## 0.6.8
550
+
551
+ ### Patch Changes
552
+
553
+ - d5eaab91d: Adds custom docker image support to the techdocs generator. This change adds a new `techdocs.generator` configuration key and deprecates the existing `techdocs.generators.techdocs` key.
554
+
555
+ ```yaml
556
+ techdocs:
557
+ # recommended, going forward:
558
+ generator:
559
+ runIn: 'docker' # or 'local'
560
+ # New optional settings
561
+ dockerImage: my-org/techdocs # use a custom docker image
562
+ pullImage: false # disable automatic pulling of image (e.g. if custom docker login is required)
563
+ # legacy (deprecated):
564
+ generators:
565
+ techdocs: 'docker' # or 'local'
566
+ ```
567
+
568
+ - c18e8eb91: Provide optional `logger: Logger` and `logStream: Writable` arguments to the `GeneratorBase#run(...)` command.
569
+ They receive all log messages that are emitted during the generator run.
570
+ - ae84b20cf: Revert the upgrade to `fs-extra@10.0.0` as that seemed to have broken all installs inexplicably.
571
+ - Updated dependencies
572
+ - @backstage/backend-common@0.8.6
573
+
574
+ ## 0.6.7
575
+
576
+ ### Patch Changes
577
+
578
+ - 683308ecf: Fix openStack swift publisher encoding issue. Remove utf8 forced encoding on binary files
579
+ - 6841e0113: fix minor version of git-url-parse as 11.5.x introduced a bug for Bitbucket Server
580
+ - Updated dependencies
581
+ - @backstage/integration@0.5.8
582
+ - @backstage/catalog-model@0.9.0
583
+ - @backstage/backend-common@0.8.5
584
+
585
+ ## 0.6.6
586
+
587
+ ### Patch Changes
588
+
589
+ - ab5cc376f: Use new utilities from `@backstage/backend-common` for safely resolving child paths
590
+ - b47fc34bc: Update "service catalog" references to "software catalog"
591
+ - Updated dependencies
592
+ - @backstage/backend-common@0.8.4
593
+ - @backstage/integration@0.5.7
594
+
595
+ ## 0.6.5
596
+
597
+ ### Patch Changes
598
+
599
+ - c17c0fcf9: Adding additional checks on tech docs to prevent folder traversal via mkdocs.yml docs_dir value.
600
+ - Updated dependencies
601
+ - @backstage/catalog-model@0.8.4
602
+
603
+ ## 0.6.4
604
+
605
+ ### Patch Changes
606
+
607
+ - aad98c544: Fixes multiple XSS and sanitization bypass vulnerabilities in TechDocs.
608
+ - 090594755: Support parsing `mkdocs.yml` files that are using custom yaml tags like
609
+ `!!python/name:materialx.emoji.twemoji`.
610
+ - Updated dependencies [ebe802bc4]
611
+ - Updated dependencies [49d7ec169]
612
+ - @backstage/catalog-model@0.8.1
613
+ - @backstage/integration@0.5.5
614
+
615
+ ## 0.6.3
616
+
617
+ ### Patch Changes
618
+
619
+ - 8cefadca0: Adding validation to mkdocs.yml parsing to prevent directory tree traversing
620
+ - Updated dependencies [0fd4ea443]
621
+ - Updated dependencies [add62a455]
622
+ - Updated dependencies [704875e26]
623
+ - @backstage/integration@0.5.4
624
+ - @backstage/catalog-model@0.8.0
625
+
626
+ ## 0.6.2
627
+
628
+ ### Patch Changes
629
+
630
+ - 65e6c4541: Remove circular dependencies
631
+ - Updated dependencies [f7f7783a3]
632
+ - Updated dependencies [c7dad9218]
633
+ - Updated dependencies [65e6c4541]
634
+ - Updated dependencies [68fdbf014]
635
+ - Updated dependencies [5001de908]
636
+ - @backstage/catalog-model@0.7.10
637
+ - @backstage/backend-common@0.8.1
638
+ - @backstage/integration@0.5.3
639
+
640
+ ## 0.6.1
641
+
642
+ ### Patch Changes
643
+
644
+ - e04f1ccfb: Fixed a bug that prevented loading static assets from GCS, S3, Azure, and OpenStackSwift whose keys contain spaces or other special characters.
645
+ - Updated dependencies [22fd8ce2a]
646
+ - Updated dependencies [10c008a3a]
647
+ - Updated dependencies [f9fb4a205]
648
+ - Updated dependencies [16be1d093]
649
+ - @backstage/backend-common@0.8.0
650
+ - @backstage/catalog-model@0.7.9
651
+
652
+ ## 0.6.0
653
+
654
+ ### Minor Changes
655
+
656
+ - e0bfd3d44: Migrate the package to use the `ContainerRunner` interface instead of `runDockerContainer(…)`.
657
+ It also no longer provides the `ContainerRunner` as an input to the `GeneratorBase#run(…)` function, but expects it as a constructor parameter instead.
658
+
659
+ If you use the `TechdocsGenerator` you need to update the usage:
660
+
661
+ ```diff
662
+ + const containerRunner = new DockerContainerRunner({ dockerClient });
663
+
664
+ - const generator = new TechdocsGenerator(logger, config);
665
+ + const techdocsGenerator = new TechdocsGenerator({
666
+ + logger,
667
+ + containerRunner,
668
+ + config,
669
+ + });
670
+
671
+ await this.generator.run({
672
+ inputDir: preparedDir,
673
+ outputDir,
674
+ - dockerClient: this.dockerClient,
675
+ parsedLocationAnnotation,
676
+ etag: newEtag,
677
+ });
678
+ ```
679
+
680
+ ### Patch Changes
681
+
682
+ - e9e56b01a: Adding optional config to enable S3-like API for tech-docs using s3ForcePathStyle option.
683
+ This allows providers like LocalStack, Minio and Wasabi (+possibly others) to be used to host tech docs.
684
+ - Updated dependencies [e0bfd3d44]
685
+ - Updated dependencies [38ca05168]
686
+ - Updated dependencies [d8b81fd28]
687
+ - @backstage/backend-common@0.7.0
688
+ - @backstage/integration@0.5.2
689
+ - @backstage/catalog-model@0.7.8
690
+ - @backstage/config@0.1.5
691
+
692
+ ## 0.5.1
693
+
694
+ ### Patch Changes
695
+
696
+ - f4af06ebe: Gracefully handle HTTP request failures in download method of AzureBlobStorage publisher.
697
+
698
+ ## 0.5.0
699
+
700
+ ### Minor Changes
701
+
702
+ - bc9d62f4f: Move the sanity checks of the publisher configurations to a dedicated `PublisherBase#getReadiness()` method instead of throwing an error when doing `Publisher.fromConfig(...)`.
703
+ You should include the check when your backend to get early feedback about a potential misconfiguration:
704
+
705
+ ```diff
706
+ // packages/backend/src/plugins/techdocs.ts
707
+
708
+ export default async function createPlugin({
709
+ logger,
710
+ config,
711
+ discovery,
712
+ reader,
713
+ }: PluginEnvironment): Promise<Router> {
714
+ // ...
715
+
716
+ const publisher = await Publisher.fromConfig(config, {
717
+ logger,
718
+ discovery,
719
+ })
720
+
721
+ + // checks if the publisher is working and logs the result
722
+ + await publisher.getReadiness();
723
+
724
+ // Docker client (conditionally) used by the generators, based on techdocs.generators config.
725
+ const dockerClient = new Docker();
726
+
727
+ // ...
728
+ }
729
+ ```
730
+
731
+ If you want to crash your application on invalid configurations, you can throw an `Error` to preserve the old behavior.
732
+ Please be aware that this is not the recommended for the use in a Backstage backend but might be helpful in CLI tools such as the `techdocs-cli`.
733
+
734
+ ```ts
735
+ const publisher = await Publisher.fromConfig(config, {
736
+ logger,
737
+ discovery,
738
+ });
739
+
740
+ const ready = await publisher.getReadiness();
741
+ if (!ready.isAvailable) {
742
+ throw new Error('Invalid TechDocs publisher configuration');
743
+ }
744
+ ```
745
+
746
+ ### Patch Changes
747
+
748
+ - Updated dependencies [bb5055aee]
749
+ - Updated dependencies [5d0740563]
750
+ - @backstage/catalog-model@0.7.7
751
+
752
+ ## 0.4.5
753
+
754
+ ### Patch Changes
755
+
756
+ - 8686eb38c: Use errors from `@backstage/errors`
757
+ - 424742dc1: Applies only if you use TechDocs local builder instead of building on CI/CD i.e. if `techdocs.builder` in your `app-config.yaml` is set to `'local'`
758
+
759
+ Improvements
760
+
761
+ 1. Do not check for updates in the repository if a check has been made in the last 60 seconds. This is to prevent the annoying check for update on every page switch or load.
762
+ 2. No need to maintain an in-memory etag storage, and use the one stored in `techdocs_metadata.json` file alongside generated docs.
763
+
764
+ New feature
765
+
766
+ 1. You can now use a mix of basic and recommended setup i.e. `techdocs.builder` is `'local'` but using an external cloud storage instead of local storage. Previously, in this setup, the docs would never get updated.
767
+
768
+ - Updated dependencies [8686eb38c]
769
+ - Updated dependencies [0434853a5]
770
+ - Updated dependencies [8686eb38c]
771
+ - @backstage/backend-common@0.6.0
772
+ - @backstage/config@0.1.4
773
+
774
+ ## 0.4.4
775
+
776
+ ### Patch Changes
777
+
778
+ - d7245b733: Remove runDockerContainer, and start using the utility function provided by @backstage/backend-common
779
+ - 0b42fff22: Make use of parseLocationReference/stringifyLocationReference
780
+ - 2ef5bc7ea: Implement proper AWS Credentials precedence with assume-role and explicit credentials
781
+ - aa095e469: OpenStack Swift publisher added for tech-docs.
782
+ - bc46435f5: - Improve deprecation warning messaging in logs.
783
+ - Replace temp folder path from git provider domain(`source`) to full git host name (`resource`). (See: https://github.com/IonicaBizau/git-url-parse#giturlparseurl)
784
+ - a501128db: Refactor log messaging to improve clarity
785
+ - ca4a904f6: Add an optional configuration option for setting the url endpoint for AWS S3 publisher: `techdocs.publisher.awsS3.endpoint`
786
+ - Updated dependencies [277644e09]
787
+ - Updated dependencies [52f613030]
788
+ - Updated dependencies [d7245b733]
789
+ - Updated dependencies [0b42fff22]
790
+ - Updated dependencies [905cbfc96]
791
+ - Updated dependencies [761698831]
792
+ - Updated dependencies [d4e77ec5f]
793
+ - @backstage/integration@0.5.1
794
+ - @backstage/backend-common@0.5.6
795
+ - @backstage/catalog-model@0.7.4
796
+
797
+ ## 0.4.3
798
+
799
+ ### Patch Changes
800
+
801
+ - f43192207: remove usage of res.send() for res.json() and res.end() to ensure content types are more consistently application/json on backend responses and error cases
802
+ - 61299519f: Remove read-store-upload loop when uploading S3 objects for TechDocs
803
+ - Updated dependencies [12d8f27a6]
804
+ - Updated dependencies [497859088]
805
+ - Updated dependencies [8adb48df4]
806
+ - @backstage/catalog-model@0.7.3
807
+ - @backstage/backend-common@0.5.5
808
+
809
+ ## 0.4.2
810
+
811
+ ### Patch Changes
812
+
813
+ - 2499f6cde: Add support for assuming role in AWS integrations
814
+ - 1e4ddd71d: Fix AWS, GCS and Azure publisher to work on Windows.
815
+ - Updated dependencies [bad21a085]
816
+ - Updated dependencies [a1f5e6545]
817
+ - @backstage/catalog-model@0.7.2
818
+ - @backstage/config@0.1.3
819
+
820
+ ## 0.4.1
821
+
822
+ ### Patch Changes
823
+
824
+ - fb28da212: Switched to using `'x-access-token'` for authenticating Git over HTTPS towards GitHub.
825
+ - 26e143e60: After TechDocs generate step, insert build timestamp to techdocs_metadata.json
826
+ - c6655413d: Improved error reporting in AzureBlobStorage to surface errors when fetching metadata and uploading files fails.
827
+ - 44414239f: Pass user and group ID when invoking docker container. When TechDocs invokes Docker, docker could be run as a `root` user which results in generation of files by applications run by non-root user (e.g. TechDocs) will not have access to modify. This PR passes in current user and group ID to docker so that the file permissions of the generated files and folders are correct.
828
+ - b0a41c707: Add etag of the prepared file tree to techdocs_metadata.json in the storage
829
+ - Updated dependencies [16fb1d03a]
830
+ - Updated dependencies [491f3a0ec]
831
+ - Updated dependencies [491f3a0ec]
832
+ - Updated dependencies [434b4e81a]
833
+ - Updated dependencies [fb28da212]
834
+ - @backstage/backend-common@0.5.4
835
+ - @backstage/integration@0.5.0
836
+
837
+ ## 0.4.0
838
+
839
+ ### Minor Changes
840
+
841
+ - 08142b256: URL Preparer will now use proper etag based caching introduced in https://github.com/backstage/backstage/pull/4120. Previously, builds used to be cached for 30 minutes.
842
+
843
+ ### Patch Changes
844
+
845
+ - 77ad0003a: Revert AWS SDK version to v2
846
+ - 08142b256: TechDocs will throw warning in backend logs when legacy git preparer or dir preparer is used to preparer docs. Migrate to URL Preparer by updating `backstage.io/techdocs-ref` annotation to be prefixed with `url:`.
847
+ Detailed docs are here https://backstage.io/docs/features/techdocs/how-to-guides#how-to-use-url-reader-in-techdocs-prepare-step
848
+ See benefits and reason for doing so https://github.com/backstage/backstage/issues/4409
849
+ - Updated dependencies [ffffea8e6]
850
+ - Updated dependencies [82b2c11b6]
851
+ - Updated dependencies [965e200c6]
852
+ - Updated dependencies [ffffea8e6]
853
+ - Updated dependencies [5a5163519]
854
+ - @backstage/backend-common@0.5.3
855
+ - @backstage/integration@0.4.0
856
+
857
+ ## 0.3.7
858
+
859
+ ### Patch Changes
860
+
861
+ - c777df180: 1. Added option to use Azure Blob Storage as a choice to store the static generated files for TechDocs.
862
+ - e44925723: `techdocs.requestUrl` and `techdocs.storageUrl` are now optional configs and the discovery API will be used to get the URL where techdocs plugin is hosted.
863
+ - f0320190d: dir preparer will use URL Reader in its implementation.
864
+ - Updated dependencies [c4abcdb60]
865
+ - Updated dependencies [2430ee7c2]
866
+ - Updated dependencies [6e612ce25]
867
+ - Updated dependencies [025e122c3]
868
+ - Updated dependencies [064c513e1]
869
+ - Updated dependencies [7881f2117]
870
+ - Updated dependencies [3149bfe63]
871
+ - Updated dependencies [2e62aea6f]
872
+ - Updated dependencies [11cb5ef94]
873
+ - @backstage/integration@0.3.2
874
+ - @backstage/backend-common@0.5.2
875
+ - @backstage/catalog-model@0.7.1
876
+
877
+ ## 0.3.6
878
+
879
+ ### Patch Changes
880
+
881
+ - 9dd057662: Upgrade [git-url-parse](https://www.npmjs.com/package/git-url-parse) to [v11.4.4](https://github.com/IonicaBizau/git-url-parse/pull/125) which fixes parsing an Azure DevOps branch ref.
882
+ - db2328c88: Add rate limiter for concurrent execution of file uploads in AWS and Google publishers
883
+ - Updated dependencies [26a3a6cf0]
884
+ - Updated dependencies [664dd08c9]
885
+ - Updated dependencies [6800da78d]
886
+ - Updated dependencies [9dd057662]
887
+ - @backstage/backend-common@0.5.1
888
+ - @backstage/integration@0.3.1
889
+
890
+ ## 0.3.5
891
+
892
+ ### Patch Changes
893
+
894
+ - 53c9c51f2: TechDocs backend now streams files through from Google Cloud Storage to the browser, improving memory usage.
895
+ - a5e27d5c1: Create type for TechDocsMetadata (#3716)
896
+
897
+ This change introduces a new type (TechDocsMetadata) in packages/techdocs-common. This type is then introduced in the endpoint response in techdocs-backend and in the api interface in techdocs (frontend).
898
+
899
+ - Updated dependencies [def2307f3]
900
+ - Updated dependencies [0b135e7e0]
901
+ - Updated dependencies [294a70cab]
902
+ - Updated dependencies [fa8ba330a]
903
+ - Updated dependencies [0ea032763]
904
+ - Updated dependencies [5345a1f98]
905
+ - Updated dependencies [ed6baab66]
906
+ - Updated dependencies [09a370426]
907
+ - Updated dependencies [a93f42213]
908
+ - @backstage/catalog-model@0.7.0
909
+ - @backstage/backend-common@0.5.0
910
+ - @backstage/integration@0.3.0
911
+
912
+ ## 0.3.4
913
+
914
+ ### Patch Changes
915
+
916
+ - a594a7257: @backstage/techdocs-common can now be imported in an environment without @backstage/plugin-techdocs-backend being installed.
917
+
918
+ ## 0.3.3
919
+
920
+ ### Patch Changes
921
+
922
+ - 68ad5af51: Improve techdocs-common Generator API for it to be used by techdocs-cli. TechDocs generator.run function now takes
923
+ an input AND an output directory. Most probably you use techdocs-common via plugin-techdocs-backend, and so there
924
+ is no breaking change for you.
925
+ But if you use techdocs-common separately, you need to create an output directory and pass into the generator.
926
+ - 371f67ecd: fix to-string breakage of binary files
927
+ - f1e74777a: Fix bug where binary files (`png`, etc.) could not load when using AWS or GCS publisher.
928
+ - dbe4450c3: Google Cloud authentication in TechDocs has been improved.
929
+
930
+ 1. `techdocs.publisher.googleGcs.credentials` is now optional. If it is missing, `GOOGLE_APPLICATION_CREDENTIALS`
931
+ environment variable (and some other methods) will be used to authenticate.
932
+ Read more here https://cloud.google.com/docs/authentication/production
933
+
934
+ 2. `techdocs.publisher.googleGcs.projectId` is no longer used. You can remove it from your `app-config.yaml`.
935
+
936
+ - 5826d0973: AWS SDK version bump for TechDocs.
937
+ - b3b9445df: AWS S3 authentication in TechDocs has been improved.
938
+
939
+ 1. `techdocs.publisher.awsS3.bucketName` is now the only required config. `techdocs.publisher.awsS3.credentials` and `techdocs.publisher.awsS3.region` are optional.
940
+
941
+ 2. If `techdocs.publisher.awsS3.credentials` and `techdocs.publisher.awsS3.region` are missing, the AWS environment variables `AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY` and `AWS_REGION` will be used. There are more better ways of setting up AWS authentication. Read the guide at https://backstage.io/docs/features/techdocs/using-cloud-storage
942
+
943
+ - Updated dependencies [466354aaa]
944
+ - Updated dependencies [f3b064e1c]
945
+ - Updated dependencies [abbee6fff]
946
+ - Updated dependencies [147fadcb9]
947
+ - @backstage/integration@0.2.0
948
+ - @backstage/catalog-model@0.6.1
949
+ - @backstage/backend-common@0.4.3
950
+
951
+ ## 0.3.2
952
+
953
+ ### Patch Changes
954
+
955
+ - 7ec525481: 1. Added option to use AWS S3 as a choice to store the static generated files for TechDocs.
956
+ - f8ba88ded: Fix for `integration.github.apiBaseUrl` configuration not properly overriding apiBaseUrl used by techdocs
957
+ - 00042e73c: Moving the Git actions to isomorphic-git instead of the node binding version of nodegit
958
+ - Updated dependencies [5ecd50f8a]
959
+ - Updated dependencies [00042e73c]
960
+ - Updated dependencies [0829ff126]
961
+ - Updated dependencies [036a84373]
962
+ - @backstage/backend-common@0.4.2
963
+ - @backstage/integration@0.1.5
964
+
965
+ ## 0.3.1
966
+
967
+ ### Patch Changes
968
+
969
+ - 8804e8981: Using @backstage/integration package for GitHub/GitLab/Azure tokens and request options.
970
+
971
+ Most probably you do not have to make any changes in the app because of this change.
972
+ However, if you are using the `DirectoryPreparer` or `CommonGitPreparer` exported by
973
+ `@backstage/techdocs-common` package, you now need to add pass in a `config` (from `@backstage/config`)
974
+ instance as argument.
975
+
976
+ ```
977
+ <!-- Before -->
978
+ const directoryPreparer = new DirectoryPreparer(logger);
979
+ const commonGitPreparer = new CommonGitPreparer(logger);
980
+ <!-- Now -->
981
+ const directoryPreparer = new DirectoryPreparer(config, logger);
982
+ const commonGitPreparer = new CommonGitPreparer(config, logger);
983
+ ```
984
+
985
+ ## 0.3.0
986
+
987
+ ### Minor Changes
988
+
989
+ - a8573e53b: techdocs-backend: Simplified file, removing individual preparers and generators.
990
+ techdocs-backend: UrlReader is now available to use in preparers.
991
+
992
+ In your Backstage app, `packages/backend/plugins/techdocs.ts` file has now been simplified,
993
+ to remove registering individual preparers and generators.
994
+
995
+ Please update the file when upgrading the version of `@backstage/plugin-techdocs-backend` package.
996
+
997
+ ```typescript
998
+ const preparers = await Preparers.fromConfig(config, {
999
+ logger,
1000
+ reader,
1001
+ });
1002
+
1003
+ const generators = await Generators.fromConfig(config, {
1004
+ logger,
1005
+ });
1006
+
1007
+ const publisher = await Publisher.fromConfig(config, {
1008
+ logger,
1009
+ discovery,
1010
+ });
1011
+ ```
1012
+
1013
+ You should be able to remove unnecessary imports, and just do
1014
+
1015
+ ```typescript
1016
+ import {
1017
+ createRouter,
1018
+ Preparers,
1019
+ Generators,
1020
+ Publisher,
1021
+ } from '@backstage/plugin-techdocs-backend';
1022
+ ```
1023
+
1024
+ ## 0.2.0
1025
+
1026
+ ### Minor Changes
1027
+
1028
+ - dae4f3983: _Breaking changes_
1029
+
1030
+ 1. Added option to use Google Cloud Storage as a choice to store the static generated files for TechDocs.
1031
+ It can be configured using `techdocs.publisher.type` option in `app-config.yaml`.
1032
+ Step-by-step guide to configure GCS is available here https://backstage.io/docs/features/techdocs/using-cloud-storage
1033
+ Set `techdocs.publisher.type` to `'local'` if you want to continue using local filesystem to store TechDocs files.
1034
+
1035
+ 2. `techdocs.builder` is now required and can be set to `'local'` or `'external'`. (Set it to `'local'` for now, since CI/CD build
1036
+ workflow for TechDocs will be available soon (in few weeks)).
1037
+ If builder is set to 'local' and you open a TechDocs page, `techdocs-backend` will try to generate the docs, publish to storage and
1038
+ show the generated docs afterwords.
1039
+ If builder is set to `'external'`, `techdocs-backend` will only fetch the docs and will NOT try to generate and publish. In this case of `'external'`,
1040
+ we assume that docs are being built in the CI/CD pipeline of the repository.
1041
+ TechDocs will not assume a default value for `techdocs.builder`. It is better to explicitly define it in the `app-config.yaml`.
1042
+
1043
+ 3. When configuring TechDocs in your backend, there is a difference in how a new publisher is created.
1044
+
1045
+ ```
1046
+ --- const publisher = new LocalPublish(logger, discovery);
1047
+ +++ const publisher = Publisher.fromConfig(config, logger, discovery);
1048
+ ```
1049
+
1050
+ Based on the config `techdocs.publisher.type`, the publisher could be either Local publisher or Google Cloud Storage publisher.
1051
+
1052
+ 4. `techdocs.storageUrl` is now a required config. Should be `http://localhost:7007/api/techdocs/static/docs` in most setups.
1053
+
1054
+ 5. Parts of `@backstage/plugin-techdocs-backend` have been moved to a new package `@backstage/techdocs-common` to generate docs. Also to publish docs
1055
+ to-and-fro between TechDocs and a storage (either local or external). However, a Backstage app does NOT need to import the `techdocs-common` package -
1056
+ app should only import `@backstage/plugin-techdocs` and `@backstage/plugin-techdocs-backend`.
1057
+
1058
+ _Patch changes_
1059
+
1060
+ 1. See all of TechDocs config options and its documentation https://backstage.io/docs/features/techdocs/configuration
1061
+
1062
+ 2. Logic about serving static files and metadata retrieval have been abstracted away from the router in `techdocs-backend` to the instance of publisher.
1063
+
1064
+ 3. Removed Material UI Spinner from TechDocs header. Spinners cause unnecessary UX distraction.
1065
+ Case 1 (when docs are built and are to be served): Spinners appear for a split second before the name of site shows up. This unnecessarily distracts eyes because spinners increase the size of the Header. A dot (.) would do fine. Definitely more can be done.
1066
+ Case 2 (when docs are being generated): There is already a linear progress bar (which is recommended in Storybook).
1067
+
1068
+ ### Patch Changes
1069
+
1070
+ - Updated dependencies [c911061b7]
1071
+ - Updated dependencies [1d1c2860f]
1072
+ - Updated dependencies [0e6298f7e]
1073
+ - Updated dependencies [4eafdec4a]
1074
+ - Updated dependencies [ac3560b42]
1075
+ - @backstage/catalog-model@0.6.0
1076
+ - @backstage/backend-common@0.4.1