diff --git a/.changeset/techdocs-olive-worms-yell.md b/.changeset/techdocs-olive-worms-yell.md
new file mode 100644
index 0000000000..66b205fc19
--- /dev/null
+++ b/.changeset/techdocs-olive-worms-yell.md
@@ -0,0 +1,5 @@
+---
+'@backstage/plugin-techdocs-backend': minor
+---
+
+Add optional `catalogClient` argument to `createRoute` parameters
diff --git a/plugins/techdocs-backend/api-report.md b/plugins/techdocs-backend/api-report.md
index 57e5e5170f..1f6aa1d66a 100644
--- a/plugins/techdocs-backend/api-report.md
+++ b/plugins/techdocs-backend/api-report.md
@@ -6,6 +6,7 @@
///
import { CatalogApi } from '@backstage/catalog-client';
+import { CatalogClient } from '@backstage/catalog-client';
import { Config } from '@backstage/config';
import { DocumentCollatorFactory } from '@backstage/plugin-search-common';
import { Entity } from '@backstage/catalog-model';
@@ -79,6 +80,7 @@ export type OutOfTheBoxDeploymentOptions = {
cache: PluginCacheManager;
docsBuildStrategy?: DocsBuildStrategy;
buildLogTransport?: winston.transport;
+ catalogClient?: CatalogClient;
};
// @public
@@ -90,6 +92,7 @@ export type RecommendedDeploymentOptions = {
cache: PluginCacheManager;
docsBuildStrategy?: DocsBuildStrategy;
buildLogTransport?: winston.transport;
+ catalogClient?: CatalogClient;
};
// @public
diff --git a/plugins/techdocs-backend/src/service/router.ts b/plugins/techdocs-backend/src/service/router.ts
index ca887efce2..855d8b02f4 100644
--- a/plugins/techdocs-backend/src/service/router.ts
+++ b/plugins/techdocs-backend/src/service/router.ts
@@ -58,6 +58,7 @@ export type OutOfTheBoxDeploymentOptions = {
cache: PluginCacheManager;
docsBuildStrategy?: DocsBuildStrategy;
buildLogTransport?: winston.transport;
+ catalogClient?: CatalogClient;
};
/**
@@ -74,6 +75,7 @@ export type RecommendedDeploymentOptions = {
cache: PluginCacheManager;
docsBuildStrategy?: DocsBuildStrategy;
buildLogTransport?: winston.transport;
+ catalogClient?: CatalogClient;
};
/**
@@ -107,7 +109,8 @@ export async function createRouter(
): Promise {
const router = Router();
const { publisher, config, logger, discovery } = options;
- const catalogClient = new CatalogClient({ discoveryApi: discovery });
+ const catalogClient =
+ options.catalogClient ?? new CatalogClient({ discoveryApi: discovery });
const docsBuildStrategy =
options.docsBuildStrategy ?? DefaultDocsBuildStrategy.fromConfig(config);
const buildLogTransport =