YAML reference
셀렉트에서 지원하는 YAML 기본 정보들을 한 곳에 모아, 쉽게 이해하고 참고할 수 있게 하였습니다.
YAML이란?
YAML은 '사람이 쉽게 읽을 수 있는' 데이터 직렬화 양식이며 설정 파일을 작성하고 관리할 때 많이 쓰입니다. 셀렉트로 어드민을 YAML로 만들 때 장점과 특징에 대해 궁금하시다면 "코드가 아닌 스펙으로 어드민을 만든다면"이라는 글을 읽어보세요.
title
어드민 사용자가 보는 페이지의 상단 왼쪽에 보여지는 제목입니다.
title: 어드민 제목
layout
layout.style
어드민 화면 최상단 영역의 스타일을 바꿀 수 있습니다. 우리 팀에게 맞는 배경색으로 바꿔보세요.
title 키와 동일한 위치에서 사용합니다.
layout:
style:
backgroundColor: "#3f63bf !important"
borderBottom: solid 1px rgba(0,0,0,0.05)
menus
어드민 사용자 페이지의 메뉴를 설정할 수 있습니다.
menus.path
메뉴에 접근하는 경로입니다. 링크를 공유했을 때 사용자가 이해하기 쉬운 네이밍을 한다면 좋습니다.
menus.name
메뉴에 표시되는 이름입니다.
menus:
- path: user
name: 사용자
menus.group
group이 없는 경우 모든 메뉴는 같은 그룹으로 인식됩니다. 메뉴들을 따로 묶고 싶으신 경우 group을 이용해주세요.
menus:
- path: user
name: 사용자
group: u
- path: user/active
name: 활성 유저
group: u
menus.placement
메뉴는 기본적으로 왼쪽 영역과 오른쪽 탭에 둘다 나타납니다. 왼쪽 또는 탭에만 메뉴를 보여주고 싶은 경우 placement를 이용해보세요.
placement: menu-only
placement: tab-only
placement: expand-only
menus:
- path: user
name: 사용자
group: u
- path: user/active
name: 활성 유저
group: u
placement: tab-only
menus.redirect
메뉴 클릭 시 redirect 시킬 path 또는 링크를 지정합니다.
menus:
- path: user
name: 사용자
group: u
redirect: user/all
placement: menu-only
- path: user/all
name: 전체 사용자
group: u
placement: tab-only
- path: user/active
name: 활성 유저
group: u
placement: tab-only
menus.roles
메뉴와 페이지 접근에 대한 권한을 설정합니다. 그룹별 또는 개별 이메일로 설정 가능합니다.
자세한 사항은 '메뉴 권한 설정' 가이드에서 확인하실 수 있어요.
menus:
- path: /approvals
name: 심사
roles:
list:
- 팀장
- 임원
view:
- 팀장
- 임원
- email::[email protected]
list (메뉴에 보이기) | view (페이지 접근) | 용도/결과 |
---|---|---|
O | O | 해당 메뉴와 페이지에 접근 권한 있음 (일반적) |
X | X | 해당 메뉴와 페이지에 권한 없음 (일반적) |
O | X | 권한은 없지만 메뉴의 존재 자체는 알 수 있음 |
X | O | URL만으로 비공개 페이지 공유 또는 테스트할 때 |
menus.type: divider
메뉴 사이에 시각적으로 영역을 구분짓고 싶을 때 사용할 수 있습니다.
menus:
- path: user
name: 사용자
group: u
- type: divider
- path: payment
name: 결제
group: p
menus.type: search
메뉴들 사이에 퀵서치Quick Search 용도로 검색창을 넣을 수 있습니다.
redirect
로 path를 지정하여 이동합니다.- 검색 시 입력값은 trim(공백제거) 처리합니다.
label
로 검색 버튼 이름을 바꿔보세요.
menus:
- type: search
label: 검색
placeholder: 고객이름
redirect: search-user?name={{value}}
- type: search
label: 찾기
placeholder: 010-0000-0000
redirect: search-user?phone={{value}}
- path: search-user
placement: top
검색창을 최상단 메뉴바 영역에도 보이게 하고, 간단한 스타일도 적용할 수 있습니다.
menus:
- type: search
label: 검색
placeholder: 010-0000-0000
redirect: search-user?phone={{value}}
placement: top
style:
width: 500px
datalistFromQuery
검색창 안에 보여줄 특정 데이터들을 datalistFromQuery로 가져올 수 있습니다.
- 가져온 데이터 필드들을
format
으로 치환해서 보여줍니다. html: true
를 사용하면 format 안에 html 양식을 사용할 수 있습니다.- 가져온 데이터의 테이블에 따라 redirect를 다르게 지정할 수 있습니다.
menus:
- type: search
placement: top
placeholder: 상품코드/재고코드/공급코드
style:
width: 300px
datalistFromQuery:
resource: mysql.qa
type: query
sqlType: select
sql: >
(
SELECT id, name, 'properties' AS category
FROM properties
WHERE id LIKE CONCAT('%', :value, '%')
OR (LENGTH(:value) > 2 AND name LIKE CONCAT('%', :value, '%'))
ORDER BY id DESC
LIMIT 10
)
UNION ALL
(
SELECT id, name AS name2, 'properties2' AS category
FROM properties2
WHERE id LIKE CONCAT('%', :value, '%')
OR (LENGTH(:value) > 2 AND name LIKE CONCAT('%', :value, '%'))
ORDER BY id DESC
LIMIT 10
)
format: >
ID: {{ id}} Name: {{name}}{{ name2 }} ({{category}})
# html: true
# format: >
# <span style="color: royalblue">ID: {{ id}}</span>
# {{name}}{{ name2 }}
# ({{category}})
redirect:
properties: search-user-id?p={{category}}&user_id={{id}}
properties2: >
search-user-id?p={{category}}&cc_id={{id}}#{{hero_image_url}}
pages
페이지들을 구성하기 위한 최상위 키
pages.path
개별 페이지를 메뉴와 연결할 수 있습니다.
pages.blocks
페이지 안을 블록으로 구성합니다.
menus:
- path: user
pages:
- path: user
blocks:
blocks
페이지 안은 블록들로 이루어져 있습니다. 1개 또는 여러개를 추가할 수 있으며, 블록의 종류는 query, http, markdown 이 있습니다.
blocks:
- type: query
- type: http
- type: markdown
blocks.type
blocks:
- type: query
name: 샘플 쿼리
resource: sample.db
sqlType: select # update, insert
- type: http
name: 샘플 http
axios: GET
- type: markdown
content: type anything
type: query
SQL 쿼리의 select, update, insert를 모두 사용할 수 있습니다.
sqlType: select
sqlType: update
sqlType: insert
- type: query
resource: sample.db
sqlType: select
sql: select * from user limit 10
type: http
REST API와 GraphQL API 모두 사용 가능합니다. axios 용법을 그대로 따릅니다. axios에 대한 자세한 설명은 여기서 확인해보세요.
method: GET
- type: http
axios:
method: GET
url: https://testapi.com/v1/33iac2d
rowsPath: rows
method: POST
- type: http
axios:
method: POST
url: https://testapi.com/v1/33iac2d
data:
'user_id': user-{{id}}
'v': "{{API_VERSION}}"
params:
- key: id
- key: API_VERSION
valueFromEnv: true
graphQL
- type: http
name: http 샘플
axios:
method: POST
url: https://testapi.com/v1/33iac2d
data:
query: >
{
getUser(id: "test") {
id
name
email
}
}
type: markdown
마크다운 용법에 맞춰서 내용을 작성할 수 있습니다. 페이지에 대한 설명이나 유의사항 등을 작성해보세요.
- type: markdown
content: >
write something
blocks.paginationOptions
주로 조회할 때 페이지네이션을 추가해서 필요한 정보만 빨리 볼 수 있게 도와줍니다.
perPage
페이지 당 보여지는 기본 row 개수를 지정합니다.
- type: query
...
paginationOptions:
enabled: true
perPage: 10
blocks.searchOptions
조회한 내역들을 검색할 수 있게 지원합니다. 프론트 레벨에서 검색하기 때문에 서버 부하를 줄일 수 있는 장점이 있습니다.
- type: query
...
searchOptions:
enabled: true
searchOptions.trigger
테이블 검색 시, 내용을 입력하고 엔터(enter)를 눌렀을 때만 조회하게 설정할 수 있습니다. 데이터를 안정적으로 조회할 수 있는 장점이 있습니다.
searchOptions:
enabled: true
trigger: enter
searchOptions.placeholder
테이블의 검색 필드 안에 placeholder 값을 입력할 수 있습니다. 사용자가 참고할 수 있는 정보를 기입할 수 있습니다.
searchOptions:
enabled: true
placeholder: '입력한 검색어로 찾습니다.'
blocks.tableOptions
fixed
: 테이블의 머리행(header)을 고정할 수 있습니다.height
값을 300px 또는 80vh 등으로 설정하는 것을 권장합니다.
condensed
: 테이블 행(row) 높이를 좁게 만들어 한페이지에서 더 많은 데이터를 볼 수 있습니다.bordered
: 테이블 컬럼 사이의 세로줄을 없앨 수 있습니다.striped
: 테이블 행들을 구분하기 쉽게 번갈아가며 색상을 바꿔줍니다.small
: 테이블 안의 글씨 크기를 작게 만듭니다.
- type: query
...
tableOptions:
fixed: true
height: 300px
# height: 80vh
condensed: true
bordered: false
striped: true
small: true
blocks.columnOptions
주로 데이터 조회 결과를 다르게 표현하고 싶을 때 이용합니다. columnOptions와 columns 사용 시 값의 데이터 타입이 text로 지정됩니다. 데이터 타입을 바꾸고 싶은 경우 type키를 이용해주세요.
- type: query
...
columnOptions:
- field: id
- field: name
label: 이름
- field: json
format: json
columnOptionsAppend
전체 필드를 보여주면서, 일부 필드만 columnOptions로 수정하고 싶을 때 사용하세요.
columnOptionsAppend: true
columnOptions:
- field: name
label: 이름
blocks.columns
columnOptions와 동일한 기능이고 양식이 다릅니다.
- type: query
...
columns:
id:
name:
label: 이름
rank:
label: 랭킹
type: number
created_at:
columns.format
개별 컬럼의 데이터 포맷(format)을 설정할 수 있습니다.
- type: query
...
columns:
id:
name:
created_at:
format: date
agree:
format: checkbox
trueValue: 1
falseValue: 0
format: json, json-inline
columns:
col1:
format: json # 여러줄로 표기
col2:
format: json-inline # 1줄로 표기
columns.updateOptions
한번에 여러 필드를 수정하지 않고, 낱개로 처리할 수 있습니다.
columns:
status:
updateOptions:
type: query
resource: mysql.qa
sql: UPDATE test_list SET status = :value WHERE id = :id
confirm: true
confirm: true
쿼리 또는 API 블록을 실행할 때, 한번 더 확인할 수 있게 합니다.
dropdown 적용
columns:
status:
dropdown:
- pending
- confirm
- closed
updateOptions:
type: query
resource: mysql.qa
sql: UPDATE test_list SET name = :value WHERE id = :id
confirm: true
format.checkbox 적용
columns:
is_used:
format: checkbox
trueValue: 1
falseValue: 0
updateOptions:
type: query
resource: mysql.qa
sql: UPDATE images SET is_used = :value WHERE id = :id
columns.valueAs
각 컬럼의 값들을 고정된 텍스트로 표시할 수 있습니다. 데이터를 '링크'나 '클릭' 같은 이름으로 감쌀 수 있습니다.
# columns 용법
columns:
customer_link: # column name
format: url
valueAs: 링크
# columnOptions 용법
columnOptions:
- field: customer_link
format: url
valueAs: 링크
valueAs 여러개 사용 방법
valueAs 아래에 값: 라벨
형태로 여러개를 설정할 수 있습니다. 실제 값이 바뀌는 것이 아닌, 표기가 바뀝니다. 표기된 데이터 필드에 마우스를 올리고 2~3초 기다리면 본래 값이 보여집니다.
- type: query
resource: testdb
sqlType: select
sql: >
SELECT *
FROM property
columns:
type:
valueAs:
HOTEL: 호텔
PENSION: 펜션
RESORT: 리조트
columns.formatFn
formatFn을 통해 JavaScript 코드를 이용할 수 있어요. (column 단위로 적용)
return
이 없어도 inline으로 인식합니다.lodash
함수를 사용할 수 있습니다.- formatFn과 valueAs를 함께 쓰면 formatFn이 먼저 적용되어요.
- type: query
resource: testdb
sqlType: select
sql: >
SELECT *
FROM property
columns:
type:
formatFn: |
'$' + value
type2:
formatFn: |
_.capitalize(value || '')
type3:
formatFn: |
if (value == 'HOTEL') { return '호텔'}
if (value == 'PENSION') { return '펜션'}
if (value == 'RESORT') { return '리조트'}
type4:
formatFn: |
return {
HOTEL: '호텔',
PENSION: '펜션',
RESORT: '리조트'
}[value] || value
columns.hidden
특정 컬럼을 숨길 수 있습니다.
columns:
hidden_info:
hidden: true
columns.color
특정 컬럼에서 데이터 값에 따라 색깔을 부여할 수 있습니다. 결제상태나 이슈 등을 구분하기 쉽게 설정해보세요.
안내 사항
color:
아래에필드값
:색상
방식으로 추가할 수 있습니다.- 필드값은 대소문자를 구분합니다.
- 지원하는 색상들은 아래와 같습니다.
green
,yellow
,blue
,red
,gray
,pink
,orange
,purple
,brown
,light-gray
columns:
status:
label: 상태
color:
paid: green
canceled: red
blocks.tabOptions
블록 안에 세부 탭을 여러개 추가할 수 있습니다.
blocks:
- type: query
...
tabOptions:
autoload: 1
tabs:
- name: 주문
blocks:
- name: 결제
blocks:
blocks.params
블록 안에서 parameter를 쓸 수 있습니다. 데이터를 조회하거나 생성, 수정할 때 input 역할을 하게 됩니다.
- type: query
...
params:
- key: id
label: 아이디(ID)
params의 key 값은 영어 알파벳을 지원합니다.
key 의 값에 한글 등 알파벳이 아닌 문자를 입력하면 정상적으로 작동하지 않게 됩니다. 꼭 key: id 와 같이 영어 알파벳을 이용해주세요.
params.value 계열
parameter에 특정 값을 미리 입력하거나, 다른 곳에서 가져와서 입력하고 싶을 때 아래와 같은 키를 사용하세요.
key(키) | 설명 |
---|---|
valueFromRow | viewModal 안에서 사용 |
valueFromSelectedRows | selectOptions가 있는 actions 안에서 사용 |
defaultValue | 기본값을 설정하고 싶을 때 이용 |
defaultValueFromRow | viewModal 안에서 사용 |
valueFromEnv | API를 호출할 때 안전한 환경변수에서 이용 |
valueFromUserProperty | 사용자 속성에서 값을 가져와서 이용 |
params.defaultValueFromQuery
쿼리로 데이터 가져와서 기본값으로 넣는 방법입니다. 페이지 조회 시 1회 실행되며, sql 쿼리 결과의 첫번째 값 또는 AS value 값을 가져옵니다.
params:
- key: created_at
defaultValueFromQuery:
type: query
resource: acme
sql: select date_format(now(), '%Y-%m-%d')
params.valueFromUserProperty
설정 > 계정의 사용자 이름(name)과 이메일(email) 시스템 데이터를 변수로 이용할 수 있습니다.
params:
- key: user_name
valueFromUserProperty: "{{name}}"
- key: email
valueFromUserProperty: "{{email}}"
params.required
특정 파라미터를 필수값으로 설정하는 방법
params:
- key: email
required: true
params.format
input 안에 값을 입력할 때 format을 지정합니다.
format: number
format: date
format: time
format: datetime-local
format: text
format: editor
format: color
format.date (datetime, year, month, week)
날짜 데이터의 종류별로 입력 포맷을 선택할 수 있습니다.
params:
- key: from
label: 시작일
format: date
# format: datetime
# format: year
# format: month
# format: week
placeholder: 주문생성일 기준
shortcuts
format.date 과 함께 사용하는 손쉬운 입력 방법(shortcuts)을 설정해보세요.
params:
- key: from
label: 시작일
format: date
placeholder: 주문생성일 기준
shortcuts:
- label: 어제
offset: -1
period: day
- label: 지난주
offset: -1
period: week
- label: 지난달
offset: -1
period: month
- label: 월초
startOf: month
- label: 월말
endOf: month
format.color
색상(color)을 선택하고 Hex Code로 입력할 수 있습니다.
pages:
- path: color
blocks:
- type: query
name: 색상 추가
resource: mysql.qa
sqlType: insert
sql: INSERT INTO color (hex) VALUES (:hex)
params:
- key: hex
format: color
reloadAfterSubmit: true
params.radio
라디오버튼으로 값을 선택하여 입력합니다.
params:
- key: status
radio:
- draft
- published
값 value와 표시 label을 분리해서 이용할 수도 있습니다.
params:
- key: status
radio:
- value: draft
label: 초안
- value: published
label: 배포 완료
radioButtonGroup
라디오 버튼을 시각적으로 더 큰 버튼 묶음으로 만들어줍니다.
radioButtonGroup: true
radio:
- all
- lead
- customer
params.checkbox
체크박스로 값을 선택하여 입력합니다.
params:
- key: active
checkbox:
true: active
false: inactive
params.dropdown
드롭다운으로 값을 선택할 수 있습니다.
params:
- key: status
dropdown:
- draft
- published
드롭다운 선택 시, 실제 반영되는 값과 UI에 보여지는 내용을 다르게 할 수도 있습니다.
params:
- key: status
dropdown:
- draft: 초안
- published: 배포완료
dropdownMultiple 여러개 선택
params:
- key: name
- key: status
dropdown:
- pinned: 고정
- event: 이벤트
- ad: 광고
dropdownMultiple: true
dropdownSize: 3 # 보여지는 선택 내역 개수
params.datalist
값 선택 시, 보여지는 내용과 실제 저장되는 데이터를 구분해서 처리할 수 있습니다.
params:
- key: code
datalist:
- value: A000
label: 분류1
- value: A002
label: 분류2
value
: 데이터에 저장되는 값
label
: 선택 시 보여지는 내용
params.datalist.datalistFromQuery
params:
- key: code
datalist: true
datalistFromQuery:
type: query
resource: mysql.qa
sqlType: select
sql: >
select id as 'value', code_name as 'label' from codes
params.disabled
입력 필드를 비활성화 시킵니다. 마우스 커서도 올릴 수 없게 됩니다.
params:
- key: status
disabled: true
defaultValue: draft
params.readonly
일반 텍스트 필드를 '읽기 전용' 상태로 설정할 수 있습니다. 마우스 커서로 내용을 복사할 수 있습니다. dropdown 이나 radio 등 선택이나 옵션 계열의 필드는 적용되지 않습니다.
params:
- key: code_number
readonly: true
params.hidden
입력 필드를 숨길 수 있습니다.
params:
- key: hidden_field
hidden: true
params.placeholder
입력 필드 안에 placeholder 를 입력해 필드에 대한 가이드를 줄 수 있습니다.
params:
- key: type1
label: 업종
placeholder: 키워드 입력
params.raw
파라미터에 원본 SQL 값을 넣고 싶을 때는 raw를 사용해주세요. (e.g. NULL
, NOW()
)
pages:
- path: select/users2
blocks:
- type: query
resource: mysql.qa
sqlType: select
sql: >
SELECT *
FROM test_list
WHERE name IS :name
LIMIT 100
params:
- key: name
label: 이름
raw:
Y: NOT NULL
N: NULL
radio:
- value: Y
label: 있음
- value: N
label: 없음
defaultValue: Y
params 와 {{query}}
{{query}}와 params를 활용해서 sql 쿼리 WHERE절에 일부를 옵션으로 넣을 수 있습니다.
pages:
- path: properties
blocks:
- type: query
resource: mysql.qa
sqlType: select
sql: >
SELECT *
FROM properties
WHERE name LIKE CONCAT('%', :name, '%')
AND {{query}}
LIMIT 1000
params:
- key: name
label: 숙소명
- key: types
label: 숙소타입
radio:
- value: ''
label: 전체
- value: HOTEL
label: 호텔
- value: NON HOTEL
label: 호텔 외
query:
'': >
1=1
'HOTEL': >
`type` = 'HOTEL'
'NON HOTEL': >
`type` IN ('GUESTHOUSE', 'BNB') OR `type` IS NULL
blocks.submitButton
params와 주로 쓰입니다. 값을 입력하고 제출할 때 버튼의 이름이나 색상을 바꿀 수 있어요.
submitButton:
label: 검색
type: primary
submitButton.type
버튼 색상은 아래와 같이 바꿀 수 있습니다.
type: default
# type: primary
# type: primary-light
# type: danger
# type: danger-light
# type: warning
# type: warning-light
# type: success
# type: success-light
blocks.resetButton
params 필드에 입력한 값들을 일괄적으로 빈값으로 바꾸고 싶을 때 이용합니다.
params.key.defaultValue
에 상관없이 항상 빈값으로 처리하고 싶은 경우 clear: true
를 추가합니다.
# resetButton: true
resetButton:
label: 초기화
type: light
# clear: true
blocks.viewModal
- type: query
...
viewModal:
blocks:
- type: query
viewModal.displayParentRow
viewModal:
displayParentRow: true
viewModal.dismissible
모달이 띄워졌을 때 esc로 꺼지지 않게 하고 싶을 때 dismissble을 이용해주세요.
viewModal:
dismissible: false
viewModal.blocks.display
기본적으로 데이터를 조회하면 테이블(표) 형태로 나타납니다. 이를 특정한 형태로 바꾸고 싶을 때 display를 사용합니다.
display: form
조회한 데이터를 form 양식으로 보여줍니다.
viewModal:
blocks:
- type: query
sqlType: select
...
display: form
display: col-2
조회한 데이터를 피봇 테이블로 2등분합니다.
viewModal:
blocks:
- type: query
sqlType: select
...
display: col-2
viewModal.useColumn
특정 컬럼을 모달 조회 링크로 지정할 수 있습니다.
viewModal:
useColumn: id
blocks:
viewModal.params.valueFromRow
조회한 row 데이터를 모달 안에서 사용할 수 있습니다.
sql: select id, name, email, created_at from user limit 10
viewModal:
blocks:
- type: query
...
sql: select * from order where user_id = :user_id
params:
- key: user_id
valueFromRow: id
blocks.actions
selectOptions
selectOptions는 테이블의 row를 선택할 때 쓰입니다. actions와 함께 사용할 때 유용합니다.
selectOnCheckboxOnly: true
테이블의 row를 선택할 때, 체크박스 영역을 눌러야만 선택할 수 있게 설정하게 됩니다.
blocks:
- type: query
selectOptions:
enabled: true
selectOnCheckboxOnly: true
actions
버튼을 통해 특정 액션을 실행할 때 쓰입니다.
blocks:
- type: query
selectOptions:
enabled: true
actions:
- label: 버튼
type: query
actions.type
type: query
actions:
- type: query
label: 전시
resource: acme
sqlType: update
sql: update product set status = 'published' where id = :id
params:
- key: id
type: http
actions:
- type: http
label: 결제취소
axios:
method: POST
url: https://testapi.com/v1/33iac2d/payment/cancel
data:
'payment_id': {{id}}
'v': "{{API_VERSION}}"
'status': 'cancel'
params:
- key: id
- key: API_VERSION
valueFromEnv: true
actions.label
액션 버튼이 어떤 역할을 하는지 구분하기 위해 label을 입력하시는걸 권장합니다.
actions:
- label: 전시
placement: right top
actions.placement
placement: right top
placement: right bottom
placement: left top
placement: left bottom
actions.single
actions 안에서 체크박스 없이, 실행 버튼만을 만들고 싶을 때 single 키를 이용하세요.
actions:
- label: 전체 초기화
placement: right top
single: true
actions.params.valueFromSelectedRows
선택한 row의 값을 가져와서, 파라미터에 이용할 수 있습니다.
selectOptions:
enabled: true
actions:
- label: 버튼
type: query
...
params:
- key: id
valueFromSelectedRows: true
valueFromSelectedRowsAs: id
actions.confirmText
actions:
- label: 삭제
confirmText: 정말 삭제하시겠습니까? 삭제 후 복구가 어려울 수 있습니다.
actions.params.promptText
prompt를 띄워서 parameter에 값을 입력할 수 있습니다.
params:
- key: memo
valueFromPrompt: true
promptText: 메모를 입력해주세요.
actions.modal
액션 버튼을 눌러 모달을 띄울 수 있습니다.
actions:
- label: 티켓 추가
placement: top right
modal: true
type: query
...
actions.forEach
액션 실행 시, 선택된 row의 값들을 하나씩 연속으로 실행합니다.
actions:
- label: 티켓 추가
placement: top left
modal: true
type: query
resource: acme
sqlType: insert
sql: >
insert into tickets (created_at, written_by, title, description, status, type, type_id)
values ( current_timestamp, :written_by, :title, :description, :status, 'order', :type_id)
forEach: true
params:
- key: written_by
- key: title
help: >
필드에 대한 도움말
- key: description
- key: status
- key: type_id
valueFromSelectedRows: true
valueFromSelectedRowsAs: id
Updated about 3 hours ago