Anson

Results 65 issues of Anson

支持S3规范的文件存储 - S3配置 - 文件管理 ![Fireboom 文件管理](https://github.com/fireboomio/fireboom/assets/20960032/fd479e18-cc56-4dfa-bfb5-cf798dfeb1f3) ![Fireboom S3配置](https://github.com/fireboomio/fireboom/assets/20960032/33fd0572-f03d-4512-8b43-19836b11174d)

web开发需要前端可视化界面以及后端接口。 当前fb已经可以实现API接口的快速生成,并支持自定义。后端接口开发的工作基本满足。 前端可视化界面从使用场景又可分为两大类:完全定制化的前端 和中后台前端 参考:https://code.fun/ 对于完全定制化的前端,由于定制化程度高,暂时不考虑解决。而中后台前端重复性高,定制化程度低,所以可以通过抽象来快速生成。 **第一阶段:** 经过调研发现,REFINE简直是飞布的绝佳搭配伙伴,目前它的社区中已经有众多case,其中hasura,nohost,supase都是飞布对标的竞品。 ![Image](https://github.com/fireboomio/case-refine-admin/assets/20960032/744de7fd-802d-4e60-996e-93c4c264fca6) 第一阶段,考虑基于它实现一套带有权限管理的CRUD后台。 **功能概览:** (参考:https://snowy.xiaonuo.vip/sys/menu) ‒ 用户管理: ‒ 超级管理员:内置超级管理员,可以进入后台新建其他管理员 ‒ 用户角色:可以修改其所拥有的角色 ‒ 用户组:用户所属分组(需要在授权钩子中,根据用户组所属的角色,给用户新增角色) 疑问:自建数据库还是用OIDC呢?前者是否可以用gql实现登录,注册功能呢?(可能要搭配钩子) ‒ 角色管理:复用飞布的角色接口 ‒ 授权资源:某角色所能访问的菜单 ![Image](https://github.com/fireboomio/case-refine-admin/assets/20960032/db55fafe-4a06-4385-8283-0d20dfe81746) ‒ 授权权限:角色对应的接口(同RBAC指令)-》需要修改gql(还有四种关系 );接口的名称作为按钮的权限粒度,控制按钮是否禁用或隐藏 ![Image](https://github.com/fireboomio/case-refine-admin/assets/20960032/379db589-188e-4b92-b2c0-ad0af4a3ef3d)...

为了支持NODEJS的语法提醒,优化了钩子的编辑器。 ![Image](https://github.com/fireboomio/fireboom/assets/20960032/9d554e43-cfb7-4d42-b347-7140eb7cf0a9)

对于中后台场景,逐个新建API太繁琐,新增了批量新建功能。 - 仅支持数据库类型的数据源 - 根据表和字段新建增删改查接口 ![Image](https://github.com/fireboomio/fireboom/assets/20960032/13efd5be-ad8d-4c29-918c-de8a4697e0b7)

**为了降低用户学习GraphQL的成本,封装了友好的GraphQL编辑界面** ![Image](https://github.com/fireboomio/fireboom/assets/20960032/13ac79c2-812d-465e-905d-49281789bc15) - 超图面板 - GrapQL编辑区 - 参数输入区 这三块,哪个拿出来都是难啃的骨头~

为了直观的看出来Fireboom API的运行流程,根据operation展示编译成功后的流程图。 ![Image](https://github.com/fireboomio/fireboom/assets/20960032/3d3c5bf9-2ce2-4ee4-8a04-32f68cfbb0e5)

和 模型预览#9 一样,也是为了让开发者在Fireboom中模型设计和API开发的全生命周期。 模型设计本质上是一个简化版的navicate。 - 可视化模型设计(beta):封装了prisma语法,方便操作(但目前还达不到生产要求) ![Image](https://github.com/fireboomio/fireboom/assets/20960032/9dc80bfb-257d-400a-9458-39568f90d3a3) - prisma 源码视图:直接编写prisma语法,支持语法提醒和错误高亮(用到了摩纳哥编辑器和LSP技术) ![Image](https://github.com/fireboomio/fireboom/assets/20960032/d34780ed-5044-4a46-8826-604cb81a0d55)

与API相关的功能 - API详情:类似postman的API文档页 ![Image](https://github.com/fireboomio/fireboom/assets/20960032/466e7c56-e17b-40e6-84de-4fe1a8ba12f2) - API钩子:一个在线的IDE ![Image](https://github.com/fireboomio/fireboom/assets/20960032/f3addd58-e114-4da7-9bf1-dd56013682b7) - API列表:一个文件树

API的开发肯定离不开数据建模,受到[Prisma Studio](https://www.prisma.io/studio)的启发,决定基于prisma实现数据建模功能。 ![Image](https://github.com/fireboomio/fireboom/assets/20960032/aa44b4c3-49f4-4f1f-99e9-2b67513248b7) 有两块难点: - 前端:模仿[Prisma Studio](https://www.prisma.io/studio)实现数据预览能力(graphql的处理依然是难点) - 后端:开始封装prisma引擎,实现graphql端点,详情见 #[prisma-client-go](https://github.com/fireboomio/prisma-client-go)

基于新版的视觉稿#7 ,重构了前端。 难点是前端对graphql的解析,这块做了好久好久~