본문으로 건너뛰기

Pipeline Studio 커스터마이징 시나리오

Pipeline Studio GUI 빌더(P3a 빌더 · P3b 배포/실행 · P3c 관리)의 실제 사용 시나리오를 단계별로 정리합니다. 각 시나리오는 실 워크스페이스에서 브라우저로 검증되었으며, 단계별 스크린샷 파일명을 함께 표기합니다.

검증 환경: gend.genon.ai · 데모 워크스페이스(ttagu99 / 한국가스공사). 시드 데이터는 변경하지 않으며, 시나리오가 생성한 산출물만 정리합니다(삭제 거절 시나리오는 무변경 데모).

기능 레퍼런스는 Pipeline Studio GUI 빌더를 참고하세요.


진입

좌측 사이드바 파이프라인 스튜디오 → 목록 페이지. 상단 탭은 파이프라인 / 커넥터 / 스텝 라이브러리 세 가지입니다.


시나리오 1 — 커넥터 등록 (http_api 외부 서비스)

http_api 노드가 호출할 외부 서비스를 커넥터로 등록합니다.

  1. 목록 페이지에서 커넥터 탭을 선택합니다. 등록된 커넥터가 없으면 "등록된 커넥터가 없습니다." 안내가 표시됩니다.
  2. 우측 + 커넥터 버튼을 눌러 다이얼로그를 엽니다.
  3. 다음을 입력합니다.
    • 이름(필수), base_url(필수) — 예: https://api.example.com
    • auth_vault_ref(선택) — 인증 시크릿의 Vault 참조
    • egress_allow(선택, 쉼표 구분) — 허용 egress 호스트. 목록 행에 egress N 으로 개수 표시
    • default_headers / request_template / response_mapping(선택, JSON) — 잘못된 JSON 은 거절
  4. 생성 → "커넥터 생성됨" 토스트 후 목록에 행이 추가됩니다.

스크린샷: s1-01-connectors-tab, s1-02-new-dialog, s1-03-filled, s1-04-created

이 화면은 목록 + 생성 만 제공합니다. 커넥터 편집·삭제는 백엔드 엔드포인트가 아직 없어 후속 단계입니다.


시나리오 2 — 스텝 라이브러리 등록 + 승인 상태

재사용 가능한 스텝을 등록하고 승인 상태 배지를 확인합니다.

  1. 스텝 라이브러리 탭 → + 스텝.
  2. 이름(필수), 타입(필수, 예 python), config(선택, JSON 객체), 설명(선택)을 입력합니다.
  3. 생성 → "스텝 생성됨" 토스트 후 행이 추가됩니다.
  4. 각 행에 승인 상태 배지 가 표시됩니다.
    • 승인됨(초록): 즉시 사용 가능
    • 대기중(주황): shell / python 타입은 임의 코드 실행 위험이 있어 등록 시 자동으로 대기 상태가 됩니다.

스크린샷: s2-01-steps-tab, s2-02-filled, s2-03-created-with-badge


시나리오 3 — 메타소스 바인딩 → 편집 → 영속 확인 (핵심)

파이프라인에 메타데이터 소스를 바인딩하고, 편집한 값이 새로고침 후에도 유지되는지 확인합니다.

  1. 파이프라인 탭 → + 새 파이프라인 → 이름 입력 후 생성. 빌더로 이동합니다.
  2. 빌더 우측 패널의 메타소스 탭(설정 / 버전 / 실행 / 메타소스 중 네 번째)을 엽니다.
    • 미바인딩 상태에서는 입력 폼이 표시됩니다(미바인딩은 오류가 아니라 정상 상태 — API 는 200null 반환).
  3. table_ref(필수, catalog.schema.table), join_key(필수), field_map(선택, JSON), retention_column(선택)을 입력하고 저장.
    • "메타소스를 저장했습니다" 토스트 후 조회(view) 모드로 전환됩니다.
  4. 편집 버튼으로 폼을 다시 열어 table_ref / join_key 를 변경하고 저장.
  5. 페이지를 새로고침하고 메타소스 탭을 다시 엽니다. 변경된 값이 그대로 표시되어야 합니다(중복 행·이전 값 없음).

스크린샷: s3-01-new-pipeline-dialog, s3-02-metasource-unbound-form, s3-03-bind-v1-filled, s3-04-view-v1, s3-05-edit-v2-filled, s3-06-view-v2, s3-07-after-reload-v2

편집(재바인딩)은 새 행을 만드는 대신 기존 행을 갱신(upsert) 합니다. 새로고침 후 최신 값만 보이는 것이 정상입니다.


시나리오 4 — 파이프라인 이름변경

  1. 목록의 파이프라인 행 끝 ⋯ 작업 메뉴이름변경.
  2. 다이얼로그에 새 이름을 입력하고 저장(PATCH /api/v1/ps/pipelines/{id}).
    • 워크스페이스 안에서 이름이 중복되면 409 로 거절되고 에러 토스트가 표시됩니다.
  3. 목록의 이름이 즉시 갱신됩니다.

스크린샷: s4-01-row-menu-open, s4-02-rename-dialog, s4-03-renamed


시나리오 5 — 삭제 (실행 이력 없음 → 하드 삭제)

  1. 대상 파이프라인 행의 ⋯ 메뉴삭제 → 확인 다이얼로그 승인.
  2. 실행 이력이 없으면 하드 삭제됩니다(204). 드래프트·리비전·메타소스는 함께 정리됩니다.
  3. 목록에서 사라집니다.

스크린샷: s5-01-menu, s5-02-after-delete


시나리오 6 — 입력 검증 (공백 trim 거절)

생성·편집 폼은 공백만 입력한 필수 값을 거절합니다.

  1. 커넥터 탭 → + 커넥터 → 이름에 공백만 입력합니다.
  2. 생성 버튼이 비활성 상태로 유지됩니다(trim 기준).
  3. 필드에서 Enter 로 제출을 시도하면 "이름과 Base URL은 필수입니다" 에러 토스트가 표시되고 요청은 전송되지 않습니다.

같은 검증이 스텝·메타소스·이름변경·새 파이프라인 폼에도 적용됩니다.

스크린샷: s6-01-whitespace-submit-disabled, s6-02-validation-toast


시나리오 7 — 삭제 거절 (실행 이력 있음 → 409 → 비활성화 제안)

실행 이력이 있는 파이프라인은 삭제할 수 없습니다(실행 원장 무결성 보존, D7).

  1. 실행 이력이 있는 파이프라인의 ⋯ 메뉴삭제 → 확인.
  2. 삭제가 거절되어 409 가 반환되고, UI 는 "실행 이력이 있어 삭제할 수 없습니다. 대신 비활성화하시겠습니까?" 로 안내합니다.
  3. 비활성화를 선택하면 파이프라인이 비활성(enabled=false)으로 전환됩니다(PATCH enabled=false). 비활성화는 삭제와 분리된 경로라 409 가 데이터를 변경하지 않습니다.

스크린샷: s7-01-menu, s7-02-409-result, s7-03-target-intact

이 시나리오는 비파괴 데모입니다. 409 는 아무것도 삭제하지 않으며, 비활성화 제안을 취소하면 대상은 그대로 유지됩니다.


검증 메모

  • 위 시나리오는 읽기 전용이 아닌 실제 상호작용(생성·편집·이름변경·삭제·검증)을 브라우저로 수행해 검증했습니다.
  • 단계별 스크린샷은 위 파일명으로 캡처됩니다.
  • 시나리오가 생성한 파이프라인은 정리(삭제)하며, 커넥터·스텝은 삭제 API 가 없어 데모 워크스페이스에 남습니다.