TechDocs: Make requestUrl and storageUrl optional configs by using discovery APIs

closes #3715

Co-authored-by: Himanshu Mishra <himanshu@orkohunter.net>
This commit is contained in:
Parth Shandilya
2021-01-19 23:46:48 +01:00
committed by Himanshu Mishra
parent 17b87a9305
commit e44925723e
18 changed files with 154 additions and 55 deletions
+1 -1
View File
@@ -24,7 +24,7 @@ export interface Config {
* attr: 'storageUrl' - accepts a string value
* e.g. storageUrl: http://localhost:7000/api/techdocs/static/docs
*/
storageUrl: string;
storageUrl?: string;
/**
* documentation building process depends on the builder attr
* attr: 'builder' - accepts a string value
@@ -26,7 +26,10 @@ import {
PublisherBase,
getLocationForEntity,
} from '@backstage/techdocs-common';
import { PluginEndpointDiscovery } from '@backstage/backend-common';
import {
PluginEndpointDiscovery,
SingleHostDiscovery,
} from '@backstage/backend-common';
import { Entity } from '@backstage/catalog-model';
import { getEntityNameFromUrlPath } from './helpers';
import { DocsBuilder } from '../DocsBuilder';
@@ -102,7 +105,10 @@ export async function createRouter({
router.get('/docs/:namespace/:kind/:name/*', async (req, res) => {
const { kind, namespace, name } = req.params;
const storageUrl = config.getString('techdocs.storageUrl');
const discoveryApi = SingleHostDiscovery.fromConfig(config);
const storageUrl =
config.getOptionalString('techdocs.storageUrl') ??
`${await discoveryApi.getBaseUrl('techdocs')}/static/docs`;
const catalogUrl = await discovery.getBaseUrl('catalog');
const triple = [kind, namespace, name].map(encodeURIComponent).join('/');