Pipeline Studio 커스터마이징 시나리오
Pipeline Studio GUI 빌더(P3a 빌더 · P3b 배포/실행 · P3c 관리)의 실제 사용 시나리오를 단계별로 정리합니다. 각 시나리오는 실 워크스페이스에서 브라우저로 검증되었으며, 단계별 스크린샷 파일명을 함께 표기합니다.
검증 환경:
gend.genon.ai· 데모 워크스페이스(ttagu99 / 한국가스공사). 시드 데이터는 변경하지 않으며, 시나리오가 생성한 산출물만 정리합니다(삭제 거절 시나리오는 무변경 데모).
기능 레퍼런스는 Pipeline Studio GUI 빌더를 참고하세요.
진입
좌측 사이드바 파이프라인 스튜디오 → 목록 페이지. 상단 탭은 파이프라인 / 커넥터 / 스텝 라이브러리 세 가지입니다.
시나리오 1 — 커넥터 등록 (http_api 외부 서비스)
http_api 노드가 호출할 외부 서비스를 커넥터로 등록합니다.
- 목록 페이지에서 커넥터 탭을 선택합니다. 등록된 커넥터가 없으면 "등록된 커넥터가 없습니다." 안내가 표시됩니다.
- 우측 + 커넥터 버튼을 눌러 다이얼로그를 엽니다.
- 다음을 입력합니다.
이름(필수),base_url(필수) — 예:https://api.example.comauth_vault_ref(선택) — 인증 시크릿의 Vault 참조egress_allow(선택, 쉼표 구분) — 허용 egress 호스트. 목록 행에egress N으로 개수 표시default_headers/request_template/response_mapping(선택, JSON) — 잘못된 JSON 은 거절
- 생성 → "커넥터 생성됨" 토스트 후 목록에 행이 추가됩니다.
스크린샷: s1-01-connectors-tab, s1-02-new-dialog, s1-03-filled, s1-04-created
이 화면은 목록 + 생성 만 제공합니다. 커넥터 편집·삭제는 백엔드 엔드포인트가 아직 없어 후속 단계입니다.
시나리오 2 — 스텝 라이브러리 등록 + 승인 상태
재사용 가능한 스텝을 등록하고 승인 상태 배지를 확인합니다.
- 스텝 라이브러리 탭 → + 스텝.
이름(필수),타입(필수, 예python),config(선택, JSON 객체),설명(선택)을 입력합니다.- 생성 → "스텝 생성됨" 토스트 후 행이 추가됩니다.
- 각 행에 승인 상태 배지 가 표시됩니다.
승인됨(초록): 즉시 사용 가능대기중(주황):shell/python타입은 임의 코드 실행 위험이 있어 등록 시 자동으로 대기 상태가 됩니다.
스크린샷: s2-01-steps-tab, s2-02-filled, s2-03-created-with-badge
시나리오 3 — 메타소스 바인딩 → 편집 → 영속 확인 (핵심)
파이프라인에 메타데이터 소스를 바인딩하고, 편집한 값이 새로고침 후에도 유지되는지 확인합니다.
- 파이프라인 탭 → + 새 파이프라인 → 이름 입력 후 생성. 빌더로 이동합니다.
- 빌더 우측 패널의 메타소스 탭(설정 / 버전 / 실행 / 메타소스 중 네 번째)을 엽니다.
- 미바인딩 상태에서는 입력 폼이 표시됩니다(미바인딩은 오류가 아니라 정상 상태 — API 는
200과null반환).
- 미바인딩 상태에서는 입력 폼이 표시됩니다(미바인딩은 오류가 아니라 정상 상태 — API 는
table_ref(필수,catalog.schema.table),join_key(필수),field_map(선택, JSON),retention_column(선택)을 입력하고 저장.- "메타소스를 저장했습니다" 토스트 후 조회(view) 모드로 전환됩니다.
- 편집 버튼으로 폼을 다시 열어
table_ref/join_key를 변경하고 저장. - 페이지를 새로고침하고 메타소스 탭을 다시 엽니다. 변경된 값이 그대로 표시되어야 합니다(중복 행·이전 값 없음).
스크린샷: 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 — 파이프라인 이름변경
- 목록의 파이프라인 행 끝 ⋯ 작업 메뉴 → 이름변경.
- 다이얼로그에 새 이름을 입력하고 저장(
PATCH /api/v1/ps/pipelines/{id}).- 워크스페이스 안에서 이름이 중복되면
409로 거절되고 에러 토스트가 표시됩니다.
- 워크스페이스 안에서 이름이 중복되면
- 목록의 이름이 즉시 갱신됩니다.
스크린샷: s4-01-row-menu-open, s4-02-rename-dialog, s4-03-renamed
시나리오 5 — 삭제 (실행 이력 없음 → 하드 삭제)
- 대상 파이프라인 행의 ⋯ 메뉴 → 삭제 → 확인 다이얼로그 승인.
- 실행 이력이 없으면 하드 삭제됩니다(
204). 드래프트·리비전·메타소스는 함께 정리됩니다. - 목록에서 사라집니다.
스크린샷: s5-01-menu, s5-02-after-delete
시나리오 6 — 입력 검증 (공백 trim 거절)
생성·편집 폼은 공백만 입력한 필수 값을 거절합니다.
- 커넥터 탭 → + 커넥터 → 이름에 공백만 입력합니다.
- 생성 버튼이 비활성 상태로 유지됩니다(trim 기준).
- 필드에서 Enter 로 제출을 시도하면 "이름과 Base URL은 필수입니다" 에러 토스트가 표시되고 요청은 전송되지 않습니다.
같은 검증이 스텝·메타소스·이름변경·새 파이프라인 폼에도 적용됩니다.
스크린샷: s6-01-whitespace-submit-disabled, s6-02-validation-toast
시나리오 7 — 삭제 거절 (실행 이력 있음 → 409 → 비활성화 제안)
실행 이력이 있는 파이프라인은 삭제할 수 없습니다(실행 원장 무결성 보존, D7).
- 실행 이력이 있는 파이프라인의 ⋯ 메뉴 → 삭제 → 확인.
- 삭제가 거절되어
409가 반환되고, UI 는 "실행 이력이 있어 삭제할 수 없습니다. 대신 비활성화하시겠습니까?" 로 안내합니다. - 비활성화를 선택하면 파이프라인이 비활성(
enabled=false)으로 전환됩니다(PATCH enabled=false). 비활성화는 삭제와 분리된 경로라409가 데이터를 변경하지 않습니다.
스크린샷: s7-01-menu, s7-02-409-result, s7-03-target-intact
이 시나리오는 비파괴 데모입니다.
409는 아무것도 삭제하지 않으며, 비활성화 제안을 취소하면 대상은 그대로 유지됩니다.
검증 메모
- 위 시나리오는 읽기 전용이 아닌 실제 상호작용(생성·편집·이름변경·삭제·검증)을 브라우저로 수행해 검증했습니다.
- 단계별 스크린샷은 위 파일명으로 캡처됩니다.
- 시나리오가 생성한 파이프라인은 정리(삭제)하며, 커넥터·스텝은 삭제 API 가 없어 데모 워크스페이스에 남습니다.