본문 바로가기
WIKI 기술 지식 베이스

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);

더 알아보기 (Learn more)