{"id":14973975,"url":"https://github.com/eces/select","last_synced_at":"2025-08-25T20:10:16.168Z","repository":{"id":39433414,"uuid":"431348535","full_name":"eces/select","owner":"eces","description":"🚀 Fast build tool for admin/backoffice by YAML declarative way.","archived":false,"fork":false,"pushed_at":"2025-08-13T13:40:17.000Z","size":2793,"stargazers_count":36,"open_issues_count":45,"forks_count":2,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-08-18T22:41:49.528Z","etag":null,"topics":["admin","api-client","internal-tools","low-code","mongodb","mssql","mysql","pgsql","redis","timescaledb","ui-components","yaml"],"latest_commit_sha":null,"homepage":"https://dev.selectfromuser.com","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/eces.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2021-11-24T04:40:06.000Z","updated_at":"2025-02-17T12:40:58.000Z","dependencies_parsed_at":"2024-02-24T05:21:47.572Z","dependency_job_id":"323bb50e-bd2d-4818-b280-836399496047","html_url":"https://github.com/eces/select","commit_stats":{"total_commits":133,"total_committers":1,"mean_commits":133.0,"dds":0.0,"last_synced_commit":"baab8b3385ad79662501ca8932d16d0343f285ec"},"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/eces/select","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eces%2Fselect","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eces%2Fselect/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eces%2Fselect/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eces%2Fselect/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/eces","download_url":"https://codeload.github.com/eces/select/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eces%2Fselect/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":272124753,"owners_count":24877720,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-25T02:00:12.092Z","response_time":1107,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["admin","api-client","internal-tools","low-code","mongodb","mssql","mysql","pgsql","redis","timescaledb","ui-components","yaml"],"created_at":"2024-09-24T13:49:46.059Z","updated_at":"2025-08-25T20:10:16.137Z","avatar_url":"https://github.com/eces.png","language":"JavaScript","readme":"\u003cdiv align=\"center\"\u003e\n\u003ch1\u003eSelect Admin\u003c/h1\u003e\n\u003cp style=\"margin-bottom: 1rem\"\u003eFast build tool for admin/backoffice by YAML declarative way.\u003c/p\u003e\n\n\u003cdiv style=\"display: flex; justify-content: center\"\u003e\n  \u003ca href=\"https://www.npmjs.com/package/selectfromuser\" target=\"_blank\" style=\"margin: 0.25rem\"\u003e\u003cimg src=\"https://img.shields.io/npm/v/selectfromuser\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://www.npmjs.com/package/selectfromuser\" target=\"_blank\" style=\"margin: 0.25rem\"\u003e\u003cimg src=\"https://img.shields.io/npm/dm/selectfromuser\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/eces/select\" target=\"_blank\" style=\"margin: 0.25rem\"\u003e\u003cimg src=\"https://img.shields.io/github/last-commit/eces/select\" /\u003e\u003c/a\u003e\n\u003c/div\u003e\n\u003cimg src=\"https://blog.selectfromuser.com/content/images/2022/03/Screen-Shot-2022-03-11-at-6.09.23-PM.png\" alt=\"\" loading=\"lazy\" width=\"720\" srcset=\"https://blog.selectfromuser.com/content/images/size/w600/2022/03/Screen-Shot-2022-03-11-at-6.09.23-PM.png 600w, https://blog.selectfromuser.com/content/images/size/w1000/2022/03/Screen-Shot-2022-03-11-at-6.09.23-PM.png 1000w, https://blog.selectfromuser.com/content/images/2022/03/Screen-Shot-2022-03-11-at-6.09.23-PM.png 1394w\" sizes=\"(min-width: 720px) 720px\"\u003e\n\u003cimg src=\"https://downloads.intercomcdn.com/i/o/836364524/c6cec02913bbbdc98afdd18b/tableOptions-cell.png\" alt=\"\" loading=\"lazy\" width=\"720\"\u003e\n\u003cimg src=\"https://downloads.intercomcdn.com/i/o/836369892/0d8f3bb69b3721339a3accb5/columns-copy.png\" alt=\"\" loading=\"lazy\" width=\"720\"\u003e\n\u003cimg src=\"https://blog.selectfromuser.com/content/images/size/w1600/2023/08/format_-calendar.png\" alt=\"\" loading=\"lazy\" width=\"720\"\u003e\n\u003cimg src=\"https://blog.selectfromuser.com/content/images/size/w1600/2023/08/array-image-1-.png\" alt=\"\" loading=\"lazy\" width=\"720\"\u003e\n\u003cimg src=\"https://blog.selectfromuser.com/content/images/size/w1600/2023/08/validateFn.png\" alt=\"\" loading=\"lazy\" width=\"720\"\u003e\n\u003c/div\u003e\n\n\u003cp\u003e운영 툴을 채우는 새로운 방법\u003c/p\u003e\n\u003cp\u003e어드민 페이지를 만들고 배포하고 관리하기에는 어렵고 SQL 쿼리와 API를 매번 만들면 시간이 계속 늘어납니다. 다른 방법은 없을까요?\u003c/p\u003e\n\u003cp\u003e최소 비용으로 빠른 기간내 팀 협업을 성공. 고객조회, 매출분석, 지표통계, 컨텐츠관리, 이력조회를 가입 후 3일 안에 해결하고 있습니다.\u003c/p\u003e\n\u003cp\u003e더 이상 DB, API 클라이언트에 의존하지 않아도 돼요.\u003c/p\u003e\n\u003cspan style=\"background-color: rgb(221, 244, 255); color: rgb(9, 105, 218); padding: 0.5rem; border-radius: 1rem;\"\u003e설치형(로컬 실행 가능한) 오픈소스 업데이트를 준비중입니다! 조금만 기다려주세요.\u003c/span\u003e\n\n\u003cbr /\u003e\n\n## Features\n\n- [x] [mysql](#) backend support. (production-ready)\n- [x] [RESTful HTTP API](#) backend support. (production-ready)\n- [x] [pgsql](#) backend support. (production-ready)\n- [x] [mssql](#) backend support. (production-ready)\n- [x] [redis](#) backend support.\n- [x] [Google Spreadsheet](#) backend support.\n- [x] [MongoDB](#) backend support. (production-ready)\n- [ ] [DynamoDB](#) backend support.\n- [ ] [Firebase](#) backend support.\n- [x] JavaScript request/response transformation support.\n- [x] User management.\n- [x] Permission and access control with roles.\n- [x] Customizable menus, groups and tabs.\n- [x] Mulitple pages with URL to share.\n- [x] Table UI\n- [x] Local sort, pagination\n- [x] Server-side pagination\n- [x] Query block type\n- [x] Modal(popup) block type\n- [x] Markdown block type\n- [x] Block-wide parameters\n- [x] Page-wide parameters\n- [x] Share and open saved search.\n- [ ] Publishing API Endpoint\n- [ ] SSH tunneling\n- [x] VPC Peering\n- [ ] OIDC support\n\n## Usage\n\n### CLI\n\n- `npm install -g selectfromuser`\n- `selectfromuser`\n\nOthers\n\n\u003e `selectfromuser login`\n\u003e `selectfromuser whoami`\n\u003e `selectfromuser logout`\n\u003e `selectfromuser link`\n\u003e `selectfromuser unlink`\n\u003e `selectfromuser init`\n\u003e `selectfromuser dev`\n\n### Docker container image\n\nhttps://hub.docker.com/r/selectfromuser/admin\nhttps://github.com/eces/select/blob/main/docker-compose.yml\n\n## Documentation\n\n#### ko-KR\n\n- [Documentation 개발자 문서](https://docs.selectfromuser.com/docs)\n- [Official Website 공식웹사이트](https://www.selectfromuser.com/)\n- [UI Components 컴포넌트](https://www.selectfromuser.com/components)\n- [Changelog 업데이트 내역](https://docs.selectfromuser.com/changelog)\n- [Blog 블로그](https://blog.selectfromuser.com)\n- [Discourse 포럼](https://join.slack.com/t/selectcommunity/shared_invite/zt-161fvp0bn-SjJykcvL9ply0CQzUXrL9A?ref=blog.selectfromuser.com)\n- [Slack Community 슬랙 커뮤니티](https://join.slack.com/t/selectcommunity/shared_invite/zt-161fvp0bn-SjJykcvL9ply0CQzUXrL9A?ref=blog.selectfromuser.com)\n\n### Sample Recipe\n\n#### `index.yml`\n\n```yml\ntitle: 셀렉트어드민\n\nlayout:\n  style:\n    backgroundColor: \"#19234B !important\"\n\nmenus:\n- group: 회원\n  name: 고객 관리\n  path: users\n  placement: menu-only\n  redirect: users/active\n  icon: mdi-account\n  \n  menus:\n  - name: 결제 관리\n    path: payments\n    placement: menu-only\n    icon: mdi-timeline-check\n\n- group: 회원\n  name: 최근가입자 목록\n  path: users/active\n  placement: tab-only\n\n- group: 회원\n  name: 휴면회원 목록\n  path: users/dormant\n  placement: tab-only\n\n- group: 회원\n  name: 마케팅 수신동의\n  path: users/promotion\n  placement: tab-only\n\n- group: 기타메뉴\n  name: 공식 문서 \n  path: https://docs.selectfromuser.com\n  target: _blank\n  icon: mdi-book-open-variant\n  iconEnd: 링크\n\n- group: 기타메뉴\n  name: 클라우드 이용\n  path: https://app.selectfromuser.com\n  target: _blank\n  icon: mdi-tab\n  iconEnd: 링크\n\n# resources:\n# - name: mysql.dev\n#   mode: local\n#   type: mysql\n#   host: aaaa.ap-northeast-2.rds.amazonaws.com\n#   port: 3306\n#   username: user_aaaa\n#   password: aaaa\n#   database: aaaa\n#   timezone: '+00:00'\n#   extra:\n#     charset: utf8mb4_general_ci\n\n# pages:\n# - path: healthcheck/db\n#   blocks:\n#   - type: query\n#     resource: mysql.dev\n#     sql: SELECT NOW()\n```\n\n\n#### `users/index.yml`\n\n```yml\npages:\n- path: users/active\n  blocks: \n  - type: markdown\n    content: \u003e\n      ## 7일 가입자 조회\n    \n- path: users/dormant\n  blocks:\n  - type: markdown\n    content: \u003e\n      ## 휴면회원 조회\n    \n- path: users/promotion\n  blocks:\n  - type: markdown\n    content: \u003e\n      ## 동의/미동의 조회\n```\n\n\n#### `users/payment.yml`\n\n```yml\npages:\n- path: payments\n  title: 결제 및 환불\n  blocks:\n  - type: markdown\n    content: |\n      \u003e 최근 7일 대상자 목록\n  \n  # - type: query\n  #   name: Data from Query\n  #   resource: mysql.dev\n  #   sql: |\n  #     SELECT * \n  #     FROM chat \n  #     ORDER BY id DESC\n  #     LIMIT 3\n  #   tableOptions:\n  #     cell: true\n\n  - type: http\n    axios:\n      method: GET\n      url: https://api.selectfromuser.com/sample-api/users\n    rowsPath: rows\n    columns:\n      name:\n        label: Name\n      age:\n        label: Engagement Point\n\n    showDownload: csv\n\n    viewModal:\n      useColumn: id\n      # mode: side\n      blocks:\n      - type: http\n        axios:\n          method: GET\n          url: https://api.selectfromuser.com/sample-api/users/{{user_id}}\n        rowsPath: rows\n        \n        params:\n        - key: user_id\n          valueFromRow: id\n\n        display: col-2\n        title: \"ID: {{id}}\"\n        showSubmitButton: false\n        \n\n        tabOptions:\n          autoload: 1\n          tabs:\n          - name: 최근거래내역\n            blocks: \n            - type: markdown\n              content: 거래내역 내용\n          - name: 프로모션참여\n            blocks: \n            - type: markdown\n              content: 프로모션 내용\n```\n\n## Tests\n\n##### `npm test -- --grep=\"auth\"`\n\n##### `npm test -- --grep=\"block\"`\n\n##### `npm test -- --grep=\"config\"`\n\n## Support\n\n해당 프로젝트는 2020년부터 2023년까지 Free/Pro/Team/Enterprise Plan 제공을 위해 Selectfromuser Inc. 개발팀 포함 커뮤니티가 계속 기능추가, 유지보수, 보안패치, 문서화를 하고 있습니다.\n\n직접 설치하여 비용없이 무료이용 가능합니다. 그외에 정책은 [라이센스](https://github.com/eces/select/blob/main/LICENSE)를 따릅니다. 기능제안, 기술지원은 해당 페이지로 문의바랍니다. https://www.selectfromuser.com\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feces%2Fselect","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Feces%2Fselect","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feces%2Fselect/lists"}