Commit Graph

106 Commits

Author SHA1 Message Date
Himanshu Mishra b16b096f58 TechDocs: Add etag to techdocs_metadata.json 2021-02-15 19:38:07 +01:00
Himanshu Mishra b73b0fe979 techdocs: don't swallow errors other than NotModifiedError 2021-02-10 12:21:14 +01:00
Himanshu Mishra 08142b2568 TechDocs: Add changesets for deprecation and proper caching 2021-02-10 11:02:40 +01:00
Himanshu Mishra f8a4a30fb0 TechDocs: Update tests for proper url preparer caching 2021-02-10 11:02:40 +01:00
Himanshu Mishra 50fcdc48b4 TechDocs: Warn when using legacy git preparer and dir preparer in backstage.io/techdocs-ref
Context: https://github.com/backstage/backstage/issues/4409
2021-02-10 11:02:40 +01:00
Himanshu Mishra 057af3cac0 TechDocs: Implement etag based caching for git preparer
Signed-off-by: Himanshu Mishra <himanshu@orkohunter.net>
2021-02-10 11:02:40 +01:00
Himanshu Mishra 97a9a7365f TechDocs: Implement etag based caching for url preparer
Signed-off-by: Himanshu Mishra <himanshu@orkohunter.net>
2021-02-10 11:02:38 +01:00
Himanshu Mishra 66944ec7bf TechDocs: Preparers will take and return an etag for cache invalidation 2021-02-10 11:01:18 +01:00
Fredrik Adelöw 5a51635197 backend-common: implement UrlReader.search that does glob matching 2021-02-09 12:16:12 +01:00
Himanshu Mishra 38469b66bf techdocs: fix tests by reusing the instantiated discovery 2021-02-02 13:51:05 +01:00
Parth Shandilya e44925723e TechDocs: Make requestUrl and storageUrl optional configs by using discovery APIs
closes #3715

Co-authored-by: Himanshu Mishra <himanshu@orkohunter.net>
2021-02-02 13:51:04 +01:00
Himanshu Mishra 8eb862c58e Merge pull request #4017 from viavarejo/feature/techdocs-azure-storage 2021-01-31 16:03:24 +01:00
vitorgrenzel 59b8d5a0d9 feat(techdocs-common): add Azure Blob Storage 2021-01-28 16:16:22 -03:00
vitorgrenzel c777df180a feat(techdocs-common): add Azure Storage 2021-01-28 16:16:21 -03:00
Himanshu Mishra 03a2d95c71 TechDocs: Update tests with mock url reader 2021-01-28 15:32:09 +01:00
Matei David a5e27d5c1d Introduce techdocs metadata in techdocs-common
* Add TechdocsMetadata type in backend plugin endpoint
 * Introduce TechDocsMetadata type in frontend
 * Add changeset
 * Remove old thennable metadata resp
 * Address PR feedback
  - Remove explicit type annotation on TechDocsMetadata
  - Reintroduce res.send instead of throwing an error
  - Change logger info to logger error
 * Add TechDocsMetadata type in frontend plugin
 * Commit yarn.lock
 * Introduce JSON5 and remove parsing in local pub
Signed-off-by: Matei David <matei.david.35@gmail.com>
2021-01-16 18:33:53 +00:00
Himanshu Mishra cb7af51e73 techdocs: cache docs site when built using urlReader for 30 minutes
This caching makes it usable experience, so that docs are not built on every load.
In future readTree will support a method to fetch the timestamp of the latest HEAD. And
it should be used to invalidate the cache.
2021-01-13 21:09:44 +01:00
Himanshu Mishra 2165901c00 TechDocs: Generator now requires input and output directory and does not create them
The creation of temporary directories and their clean up should be handled on its own. techdocs-cli already has a fixed input output dir requirement. It makes that generator accepts these values as requirements.
2021-01-11 22:33:10 +01:00
Remi b9e6d305e2 fix(techdocs): typos + add tests + requested changes 2020-12-30 10:25:57 +01:00
Remi c4fcd8b180 feat(techdocs-backend): add awsS3 2020-12-30 10:22:12 +01:00
Himanshu Mishra c91e4d6b04 techdocs: Use @backstage/integration for scm tokens and request options 2020-12-28 21:08:54 +01:00
Himanshu Mishra 2ac77aeec2 techdocs-backend: Remove individual preparers and generators from app backend, to use factory methods
When a new Backstage app is setup, the techdocs backend file contains all the preparers (dir, github, gitlab, etc.) and same for generators. While this providers added customizibility, it comes with a cost of complexity in setting up the app backend. New preparers' updates would need users to update their app's techdocs backend file.

Scaffolder backend has already moved to this proposed pattern.
2020-12-17 11:33:56 +01:00
Patrik Oldsberg 1da7d2c657 plugins,packages: replace usages of ConfigReader.from 2020-12-15 19:04:50 +01:00
Himanshu Mishra 24bcdd0829 techdocs: Use googleGcs for publisher type instead of google_gcs 2020-12-09 18:58:12 +01:00
Himanshu Mishra 9bd130a73a techdocs: Use 'local' and 'external' for alternatives for techdocs.builder config
Co-authored-by: freben <freben@gmail.com>
2020-12-09 12:31:40 +01:00
Himanshu Mishra 372160ede5 Update README of all three techdocs packages/plugins 2020-12-05 18:07:50 +01:00
Himanshu Mishra ff3dd9c02b create-app: Add new techdocs default configs 2020-12-05 11:13:27 +01:00
Himanshu Mishra a212e43142 techdocs: Add JSON Schema config
Show better error if techdocs.builder is set to 'ci' and if no docs are found.
Return 404 from googleStorage client when a file is not found.
2020-12-05 10:48:54 +01:00
Himanshu Mishra c91fd25a53 techdocs-backend: Fix logic to determine if docs have been published 2020-12-04 22:37:14 +01:00
Himanshu Mishra 07e7c201e8 techdocs-backend: Wait for some time before published files show up in storage 2020-12-04 22:01:45 +01:00
Himanshu Mishra 084670b37a Google Cloud Storage working with TechDocs (publish and fetch)
Plus
1. Introduce ncessary configs to connect with storage
2. Introduce config to prefer CI build of docs, or techdocs-backend to build and publish them.
3. Write guide how to use Google Cloud Storage with TechDocs
4. Add a TechDocs Configuration reference page in docucmentation
2020-12-03 22:40:15 +01:00
Himanshu Mishra e09cff1682 Abstract Publisher APIs from the router
1. Move fetchMetadata and serve static files to local publisher
2. Create factory class to create publishers based on app cofig
2020-12-02 13:05:44 +01:00
Himanshu Mishra 64737f447a App/Backend should import techdocs plugin only, not common package
If a backstage App wants to enable techdocs plugin, it should only have to care about installing @backstage/plugin-techdocs and @backstage/plugin-techdocs-backend.
@backstage/plugin-techdocs-backend should re-export necessary APIs from techdocs-common
2020-12-01 20:48:58 +01:00
Himanshu Mishra 7481601883 techdocs-backend: Add non-zero tests for the CI to pass 2020-12-01 20:48:58 +01:00
Himanshu Mishra ff348df9fe techdocs-common: Initialize package and move common code from techdocs-backend 2020-12-01 20:48:58 +01:00
Himanshu Mishra 9ebc897351 TechDocs: Refactor Publisher to pave way for external publishers 2020-12-01 20:48:58 +01:00
Himanshu Mishra 21f86aa478 Merge pull request #3337 from adrianke77/master 2020-12-01 09:48:02 +01:00
Chongyang Adrian, Ke ae95c7ff3e techdocs-backend: update Gitlab clone auth 2020-12-01 10:18:33 +08:00
Himanshu Mishra dbca620ff9 Use fs-extra and async file read method 2020-11-26 20:41:40 +01:00
Himanshu Mishra 4b53294a6c TechDocs: Update mkdocs.yml with repo_url when possible before building docs 2020-11-26 10:55:38 +01:00
Himanshu Mishra 266e93b478 TechDocs: Refactor metadata retrieval
1. Don't use mkdocs in name of APIs or variables. It is an implementation detail and liable to change in future.
2. techDocsApi.getMetadata('mkdocs') and techDocsAPI.getMetadata('entity') should be two separate functions just because their responses differ in structure. They should also be type checked.
3. Use either 'techdocs' or 'TechDocs' consistently. 'techDocs' seems like an unnecessary third way to write TechDocs, which can be avoided.
4. Remove unused /plugins/techdocs-backend/src/service/metadata.ts file
2020-11-25 19:39:48 +01:00
Fredrik Adelöw fae3fafcfa silence some new ts squigglies in the editor (#3435) 2020-11-25 09:57:16 +01:00
Himanshu Mishra 8fd5e64351 TechDocs: Tell users when index.md is missing (better error message) (#3429)
* TechDocs: Logger already prints the name of plugin

* TechDocs: Display a custom error message if provided

* TechDocs: throw custom error message if index.md is not present

* Language improvements. Thanks @freben

Co-authored-by: Fredrik Adelöw <freben@gmail.com>

Co-authored-by: Fredrik Adelöw <freben@gmail.com>
2020-11-25 09:52:19 +01:00
Himanshu Mishra f8877545c5 TechDocs: Reject promise if call to getBaseUrl fails 2020-11-18 20:35:22 +01:00
Himanshu Mishra 66daa47c6a 1. Remove DiscoveryApi (frontend) and use PluginEndpointDiscovery(SingleHostDiscovery) (backend)
2. Mock class for testing
2020-11-18 20:29:07 +01:00
Himanshu Mishra 3b314807c6 TechDocs: Use discovery instead of config to read base url 2020-11-17 21:03:56 +01:00
Himanshu Mishra c01bf361a4 Modify tests to include new config param in LocalPublish 2020-11-17 20:19:30 +01:00
Himanshu Mishra 65edcdee22 TechDocs: Remove hardcoded backend URL from techdocs-backend 2020-11-17 20:03:44 +01:00
Patrik Oldsberg bd1cef1847 backend-common: review comments for readTree + switch archive return type to a stream 2020-11-13 00:43:20 +01:00
Patrik Oldsberg b672492e21 backend-common: make .readTree required 2020-11-12 13:59:10 +01:00