.. _workflow:
.. role:: raw-html(raw)
:format: html
Workflow
=========================
- Workflow란 특정 순서에 따라 발생하는 반복적인 프로세스와 작업을 관리하는 시스템입니다.
- 관리콘솔에서 지원하는 Workflow의 기능에 대해 안내합니다.
권장버전
----------
.. csv-table::
:header: 제품명(구성요소),버전,비고
:class: longtable
:widths: 30 30 40
Genian ZTNA(정책서버),V6.0 이상,해당없음
지원되는 기능
--------------------
Genian ZTNA Workflow에서는 다음과 같은 기능을 지원합니다:
- :ref:`workflow-httprequest`
- :ref:`workflow-ifelse`
- :ref:`workflow-crypto`
- :ref:`workflow-loop`
- :ref:`workflow-date`
- :ref:`workflow-base64`
- :ref:`workflow-sendmail`
설정 공통 내용
--------------------
* 템플릿 변수 (${ })
- ${ }와 같이 매크로처럼 입력란에 표시되는 값은 서버에서 값이 실행될 때 해당 값이 치환되어 실행됩니다.
* this 키워드
- Response Body Template 에서 ${this} 와 같이 설정하면 Response로 넘어오는 결과 데이터를 필터하지 않고 그대로 Response로 출력한다는 의미입니다.
- Response 데이터가 {"result" : "true", "message" : "success"} 일 때 Response Body Template을 {"res" : "${this.result}"} 와 같이 설정한다면 Response는 필터링되어 { "res" : "true" } 가 출력될 것입니다.
* request 키워드
- ${request.userId} 처럼 해당 Workflow를 호출(POST)할 때 파라미터를 전달할 경우 해당 파라미터를 request 변수를 통해 사용할 수 있습니다.
* 복사 아이콘
- Response Body에는 Response값을 Response Body Template에서 정의한 대로 필터링하여 표시하게 됩니다.
- Response Body Template을 정의하지 않으면 실행결과가 그대로 출력됩니다.
- Response Body에 표시되는 데이터에는 다음 프로세스에서 사용할 수 있도록 복사 아이콘이 각각 표시됩니다.
- 다음 Action을 정의하고 해당 프로세스에서 필요한 값을 이전 프로세스의 Response Body에서 복사해서 사용하면 됩니다.
- 붙여넣기 하면 ${dgdgadgasdgadg.ni_ipstr} 형태로 복사됩니다. ${이전프로세스ID.결과 컬럼값} 입니다.
* RAW DATA 아이콘
- Response Body에는 프로세스가 실행되면 RAW DATA가 아이콘이 출력됩니다.
- Response Body에는 Response Body Template 에 의해 가공된 데이터가 표시되기 때문에 RAW DATA가 필요한 경우 해당 아이콘을 클릭하면 Response 원본 데이터가 클립보드에 복사가 됩니다.
설정 방법
--------------------
1. **Workflow** 페이지로 이동합니다.
2. **작업 선택** 에서 "생성" 버튼을 클릭하여 생성 페이지로 이동합니다.
3. **플로우명** 을 입력합니다. ( **필수 입력 항목** )
4. 왼쪽 영역의 **>>** 토글 아이콘을 클릭하여 **연동 정보** 를 설정합니다. (각 프로세스에서 공통적으로 사용할 값)
- 설정한 값은 입력 필드 오른쪽의 **복사 아이콘** 을 클릭하여 복사한 후 사용할 수 있습니다.
5. 가운데 영역의 **+** 추가 아이콘을 클릭하여 프로세스 항목을 추가합니다.
- 프로세스 항목 선택 패널이 나타나며, 원하는 항목을 선택할 수 있습니다.
- 수정 화면이 표시되며, 추가된 프로세스의 세부사항을 수정할 수 있습니다.
- 하단의 Test 테스트 버튼을 클릭하여 설정이 정상 동작하는지 확인할 수 있습니다.
- 이전 단계의 결과는 왼쪽에, 현재 단계의 결과는 오른쪽에 표시됩니다.
- 좌우에 위치한 화살표로 이전, 이후 단계의 수정화면으로 이동할 수 있습니다.
- 수정이 끝난 후, 오른쪽 상단의 **X** 닫기 버튼을 클릭하면 수정 화면이 닫힙니다.
- 프로세스별로 각기 다른 요청 처리를 위해 설정값을 지정할 수 있습니다.
6. **추가적인 프로세스가 필요하다면**, 다시 **+** 추가 아이콘을 클릭하여 항목을 추가할 수 있습니다.
7. **화살표로 프로세스 간의 실행 순서 지정할 수 있습니다.**
- 각 프로세스 항목의 좌우에는 **화살표 연결점(포인트)** 이 있습니다.
- 한 프로세스의 출력 연결점에서 다음 프로세스의 입력 연결점으로 **드래그하여 연결** 하면 실행 순서를 지정할 수 있습니다.
- 이렇게 연결된 흐름에 따라, Workflow가 순차적으로 실행됩니다.
- 필요에 따라 기존 연결을 제거하거나 새롭게 수정할 수도 있습니다.
연동정보 설정
--------------------
- 연동정보 설정은 각 프로세스에서 공통적으로 사용할 값을 설정할 수 있습니다.
- 연동정보 설정은 프로세스 설정 화면에서 설정할 수 있습니다. UI의 왼쪽 영역에 위치합니다.
- 설정한 값은 입력 필드 오른쪽의 **복사 아이콘** 을 클릭하여 복사한 후 사용할 수 있습니다.
- 설정하는 값은 Plaintext와 Secret 두 가지 타입으로 설정할 수 있습니다.
- Secret 타입은 입력 후 수정이 불가능하며, 삭제 후 추가해서 사용해야 합니다.
프로세스 항목 종류
--------------------
실행 방법
--------------------
- Workflow 목록화면에 생성된 **URL 정보를 POST 방식으로 호출** 하여 실행할 수 있습니다.
.. code-block:: bash
// 정책서버 CLI에서 실행시 예제, 포트번호는 구성에 따라 다를 수 있음.
// 외부에서는 localhost가 아닌 정책서버 URL과 URL 뒤에 ?apiKey=API키 를 추가해야 함.
curl -X POST "http://localhost:8080//mc2/rest/nac/extsvc/생성된Workflow번호/execute" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"param1":"abc", "param2":123}'
관련 문서
--------------------
.. toctree::
:maxdepth: 1
:hidden:
workflow-crypto
workflow-date
workflow-httprequest
workflow-sendmail
workflow-ifelse
workflow-base64
workflow-loop