Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/eces/select

๐Ÿš€ Fast build tool for admin/backoffice by YAML declarative way.
https://github.com/eces/select

admin api-client internal-tools low-code mongodb mssql mysql pgsql redis timescaledb ui-components yaml

Last synced: 26 days ago
JSON representation

๐Ÿš€ Fast build tool for admin/backoffice by YAML declarative way.

Awesome Lists containing this project

README

        


Select Admin


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 selectfromuser`
- `selectfromuser`

Others

> `selectfromuser login`
> `selectfromuser whoami`
> `selectfromuser logout`
> `selectfromuser link`
> `selectfromuser unlink`
> `selectfromuser init`
> `selectfromuser 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 ๊ฐœ๋ฐœ์ž ๋ฌธ์„œ](https://docs.selectfromuser.com/docs)
- [Official Website ๊ณต์‹์›น์‚ฌ์ดํŠธ](https://www.selectfromuser.com/)
- [UI Components ์ปดํฌ๋„ŒํŠธ](https://www.selectfromuser.com/components)
- [Changelog ์—…๋ฐ์ดํŠธ ๋‚ด์—ญ](https://docs.selectfromuser.com/changelog)
- [Blog ๋ธ”๋กœ๊ทธ](https://blog.selectfromuser.com)
- [Discourse ํฌ๋Ÿผ](https://join.slack.com/t/selectcommunity/shared_invite/zt-161fvp0bn-SjJykcvL9ply0CQzUXrL9A?ref=blog.selectfromuser.com)
- [Slack Community ์Šฌ๋ž™ ์ปค๋ฎค๋‹ˆํ‹ฐ](https://join.slack.com/t/selectcommunity/shared_invite/zt-161fvp0bn-SjJykcvL9ply0CQzUXrL9A?ref=blog.selectfromuser.com)

### Sample Recipe

#### `index.yml`

```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`

```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`

```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://github.com/eces/select/blob/main/LICENSE)๋ฅผ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค. ๊ธฐ๋Šฅ์ œ์•ˆ, ๊ธฐ์ˆ ์ง€์›์€ ํ•ด๋‹น ํŽ˜์ด์ง€๋กœ ๋ฌธ์˜๋ฐ”๋ž๋‹ˆ๋‹ค. https://www.selectfromuser.com