select
select copied to clipboard
๐ Fast build tool for admin/backoffice by YAML declarative way.
์ด์ ํด์ ์ฑ์ฐ๋ ์๋ก์ด ๋ฐฉ๋ฒ
์ด๋๋ฏผ ํ์ด์ง๋ฅผ ๋ง๋ค๊ณ ๋ฐฐํฌํ๊ณ ๊ด๋ฆฌํ๊ธฐ์๋ ์ด๋ ต๊ณ SQL ์ฟผ๋ฆฌ์ API๋ฅผ ๋งค๋ฒ ๋ง๋ค๋ฉด ์๊ฐ์ด ๊ณ์ ๋์ด๋ฉ๋๋ค. ๋ค๋ฅธ ๋ฐฉ๋ฒ์ ์์๊น์?
์ต์ ๋น์ฉ์ผ๋ก ๋น ๋ฅธ ๊ธฐ๊ฐ๋ด ํ ํ์ ์ ์ฑ๊ณต. ๊ณ ๊ฐ์กฐํ, ๋งค์ถ๋ถ์, ์งํํต๊ณ, ์ปจํ ์ธ ๊ด๋ฆฌ, ์ด๋ ฅ์กฐํ๋ฅผ ๊ฐ์ ํ 3์ผ ์์ ํด๊ฒฐํ๊ณ ์์ต๋๋ค.
๋ ์ด์ DB, API ํด๋ผ์ด์ธํธ์ ์์กดํ์ง ์์๋ ๋ผ์.
์ค์นํ(๋ก์ปฌ ์คํ ๊ฐ๋ฅํ) ์คํ์์ค ์ ๋ฐ์ดํธ๋ฅผ ์ค๋น์ค์ ๋๋ค! ์กฐ๊ธ๋ง ๊ธฐ๋ค๋ ค์ฃผ์ธ์.Features
- [x] mysql backend support. (production-ready)
- [x] RESTful HTTP API backend support. (production-ready)
- [x] pgsql backend support. (production-ready)
- [x] mssql backend support. (production-ready)
- [x] redis backend support.
- [x] Google Spreadsheet backend support.
- [x] MongoDB backend support. (production-ready)
- [ ] DynamoDB backend support.
- [ ] Firebase backend support.
- [x] JavaScript request/response transformation support.
- [x] User management.
- [x] Permission and access control with roles.
- [x] Customizable menus, groups and tabs.
- [x] Mulitple pages with URL to share.
- [x] Table UI
- [x] Local sort, pagination
- [x] Server-side pagination
- [x] Query block type
- [x] Modal(popup) block type
- [x] Markdown block type
- [x] Block-wide parameters
- [x] Page-wide parameters
- [x] Share and open saved search.
- [ ] Publishing API Endpoint
- [ ] SSH tunneling
- [x] VPC Peering
- [ ] OIDC support
Usage
CLI
npm install -g selectfromuserselectfromuser
Others
selectfromuser loginselectfromuser whoamiselectfromuser logoutselectfromuser linkselectfromuser unlinkselectfromuser initselectfromuser dev
Docker container image
https://hub.docker.com/r/selectfromuser/admin https://github.com/eces/select/blob/main/docker-compose.yml
Documentation
ko-KR
- Documentation ๊ฐ๋ฐ์ ๋ฌธ์
- Official Website ๊ณต์์น์ฌ์ดํธ
- UI Components ์ปดํฌ๋ํธ
- Changelog ์ ๋ฐ์ดํธ ๋ด์ญ
- Blog ๋ธ๋ก๊ทธ
- Discourse ํฌ๋ผ
- Slack Community ์ฌ๋ ์ปค๋ฎค๋ํฐ
Sample Recipe
index.yml
title: ์
๋ ํธ์ด๋๋ฏผ
layout:
style:
backgroundColor: "#19234B !important"
menus:
- group: ํ์
name: ๊ณ ๊ฐ ๊ด๋ฆฌ
path: users
placement: menu-only
redirect: users/active
icon: mdi-account
menus:
- name: ๊ฒฐ์ ๊ด๋ฆฌ
path: payments
placement: menu-only
icon: mdi-timeline-check
- group: ํ์
name: ์ต๊ทผ๊ฐ์
์ ๋ชฉ๋ก
path: users/active
placement: tab-only
- group: ํ์
name: ํด๋ฉดํ์ ๋ชฉ๋ก
path: users/dormant
placement: tab-only
- group: ํ์
name: ๋ง์ผํ
์์ ๋์
path: users/promotion
placement: tab-only
- group: ๊ธฐํ๋ฉ๋ด
name: ๊ณต์ ๋ฌธ์
path: https://docs.selectfromuser.com
target: _blank
icon: mdi-book-open-variant
iconEnd: ๋งํฌ
- group: ๊ธฐํ๋ฉ๋ด
name: ํด๋ผ์ฐ๋ ์ด์ฉ
path: https://app.selectfromuser.com
target: _blank
icon: mdi-tab
iconEnd: ๋งํฌ
# resources:
# - name: mysql.dev
# mode: local
# type: mysql
# host: aaaa.ap-northeast-2.rds.amazonaws.com
# port: 3306
# username: user_aaaa
# password: aaaa
# database: aaaa
# timezone: '+00:00'
# extra:
# charset: utf8mb4_general_ci
# pages:
# - path: healthcheck/db
# blocks:
# - type: query
# resource: mysql.dev
# sql: SELECT NOW()
users/index.yml
pages:
- path: users/active
blocks:
- type: markdown
content: >
## 7์ผ ๊ฐ์
์ ์กฐํ
- path: users/dormant
blocks:
- type: markdown
content: >
## ํด๋ฉดํ์ ์กฐํ
- path: users/promotion
blocks:
- type: markdown
content: >
## ๋์/๋ฏธ๋์ ์กฐํ
users/payment.yml
pages:
- path: payments
title: ๊ฒฐ์ ๋ฐ ํ๋ถ
blocks:
- type: markdown
content: |
> ์ต๊ทผ 7์ผ ๋์์ ๋ชฉ๋ก
# - type: query
# name: Data from Query
# resource: mysql.dev
# sql: |
# SELECT *
# FROM chat
# ORDER BY id DESC
# LIMIT 3
# tableOptions:
# cell: true
- type: http
axios:
method: GET
url: https://api.selectfromuser.com/sample-api/users
rowsPath: rows
columns:
name:
label: Name
age:
label: Engagement Point
showDownload: csv
viewModal:
useColumn: id
# mode: side
blocks:
- type: http
axios:
method: GET
url: https://api.selectfromuser.com/sample-api/users/{{user_id}}
rowsPath: rows
params:
- key: user_id
valueFromRow: id
display: col-2
title: "ID: {{id}}"
showSubmitButton: false
tabOptions:
autoload: 1
tabs:
- name: ์ต๊ทผ๊ฑฐ๋๋ด์ญ
blocks:
- type: markdown
content: ๊ฑฐ๋๋ด์ญ ๋ด์ฉ
- name: ํ๋ก๋ชจ์
์ฐธ์ฌ
blocks:
- type: markdown
content: ํ๋ก๋ชจ์
๋ด์ฉ
Tests
npm test -- --grep="auth"
npm test -- --grep="block"
npm test -- --grep="config"
Support
ํด๋น ํ๋ก์ ํธ๋ 2020๋ ๋ถํฐ 2023๋ ๊น์ง Free/Pro/Team/Enterprise Plan ์ ๊ณต์ ์ํด Selectfromuser Inc. ๊ฐ๋ฐํ ํฌํจ ์ปค๋ฎค๋ํฐ๊ฐ ๊ณ์ ๊ธฐ๋ฅ์ถ๊ฐ, ์ ์ง๋ณด์, ๋ณด์ํจ์น, ๋ฌธ์ํ๋ฅผ ํ๊ณ ์์ต๋๋ค.
์ง์ ์ค์นํ์ฌ ๋น์ฉ์์ด ๋ฌด๋ฃ์ด์ฉ ๊ฐ๋ฅํฉ๋๋ค. ๊ทธ์ธ์ ์ ์ฑ ์ ๋ผ์ด์ผ์ค๋ฅผ ๋ฐ๋ฆ ๋๋ค. ๊ธฐ๋ฅ์ ์, ๊ธฐ์ ์ง์์ ํด๋น ํ์ด์ง๋ก ๋ฌธ์๋ฐ๋๋๋ค. https://www.selectfromuser.com