TechDocs 백엔드 확장
TechDocs 백엔드 확장 (TechDocs Backend Extensions)
TechDocs 백엔드 플러그인은 다음과 같은 확장 지점(extension points)을 제공해요.
출처: 문서
본문
TechDocs 백엔드 플러그인은 다음과 같은 확장 지점을 제공해요.
-
techdocsPreparerExtensionPoint -
커스텀 docs PreparerBase 확장을 등록해요
-
특정 엔터티 유형을 위해 커스텀 유형의 문서를 만들고 싶을 때 이상적이에요
-
techdocsBuildsExtensionPoint -
빌드 단계의 Winston 로그 전송(transport)을 재정의할 수 있어요(기본적으로 콘솔에 로그하지 않아요)
-
DocsBuildStrategy를 재정의할 수 있어요
-
techdocsPublisherExtensionPoint -
커스텀 docs 게시자(publisher)를 등록해요
-
techdocsGeneratorExtensionPoint -
커스텀 TechdocsGenerator를 등록해요
확장 지점은 @backstage/plugin-techdocs-backend에서 export돼요.
예시 (Examples)
TechDocs 빌드 단계 상세 내용을 콘솔에 로그하기
기본적으로 TechDocs 빌드 단계는 UI에는 로그하지만 콘솔에는 로그하지 않아요. 하지만 techdocsBuildsExtensionPoint를 사용해 TechDocs 빌드 로그용 커스텀 Winston 전송을 설정할 수 있어요.
다음은 콘솔에 로그하는 예시예요.
packages/backend/src/extensions/techDocsExtension.ts
import { techdocsBuildsExtensionPoint } from '@backstage/plugin-techdocs-backend';import { createBackendModule } from '@backstage/backend-plugin-api';import { transports } from 'winston';export const techDocsExtension = createBackendModule({ pluginId: 'techdocs', moduleId: 'techdocs-build-log-transport-extension', register(env) { env.registerInit({ deps: { build: techdocsBuildsExtensionPoint, }, async init({ build }) { // You can obviously use any custom transport here... build.setBuildLogTransport(new transports.Console()); }, }); },});
그리고 물론 이 확장을 백엔드에 등록해요.
packages/backend/src/index.ts
import {techDocsExtension} from "./extensions/techDocsExtension";...backend.add(techDocsExtension);