V0.3.0-可能是最后一个不向后兼容的版本
Certimate 越来越受欢迎,需求也越来越多,这就要求我们根据需求完善、扩展 Certimate 的功能。在扩展Certimate的过程中,我们发现传统表单的表达能力实在有限,有些需求很难基于现有的表单来扩展。所以在v0.3 版本中,我们主要引入了工作流的概念。使用工作流:
- 我们可以把各种功能抽象成一个个节点,实现新功能时添加新的节点类型就可以了。
- 按需把用到的节点组装成一个工作流,来灵活实现证书管理的目标。
把各种功能抽象成一个个节点
在传统的表单中,如果我们要扩展一个新的功能,手段可能就是添加字段。如果要添加的字段过多,表单就会很冗长,导致用户无所适从。
这个时候我们还可以将冗长的表单拆分成多个步骤,如:第1步:填基础信息。第2步填:高级信息。不过,这依然没有从根本上解决问题,有了第2步后面就有可能有第3、4步甚至更多步。而且有可能部分用户只需要其中的部分步骤,现在也被迫填完所有步骤。
Certimate v0.3引入了节点的概念,1个节点代表着一类功能。比如目前实现的节点有开始节点、申请节点、部署节点、分支节点、通知节点。申请节点只需要填写申请证书相关的信息,部署节点也只需要填写部署相关的信息。
有了这个基础,未来我们可以添加更多的节点,比如代码节点,用户可以在上面配置一段代码,执行自定义的逻辑。
按需组织节点,灵活实现证书管理的目标
传统表单还有个问题,就是一旦设计好,对所有的用户都一视同仁。但这种一视同仁,对有些用户来说,提供的能力过多了,对另外一些用户来说,又过少了。而灵活组织节点,可以解决这些用户的问题。
功能过多了
从项目中的Issues中可以看到,有些用户只想使用Certimate申请证书,并不想部署证书。而又些用户只想使用Certimate的部署证书的能力部署自己的购买的证书。
当他们面对表单时,即要填写申请相关的信息,又要填写部署相关的信息,这对他们来说可能是不必要的。
在v0.3中,我们可能自定义工作流中的节点,添加需要的节点,删除不必要的节点,以达成自己的目标。
功能过少了
对于另一部分用户来说,他可能想要达到更多的目标,比如:一个流程可以申请任意多个域名的证书,同时每个证书可以部署到任意多个服务。这个 时候就可以使用现有的分支节点,分支节点可以理解为子工作流,理论上工作流可以无限嵌套,但是并不推荐这样做。
同时未来我们会实现更多的节点类型,用户可以基于自己的需求,组装自己的工作流。
总结
Certimate v0.3 中我们引入工作流的概念,帮助用户灵活的实现证书管理的目标,同时有利于后续Certimate 能力的扩展。
鸣谢
特别感谢 @Fudiwei 大佬对本项目的鼎力支持!
由于工作原因,我本人仅在 v0.3 初期完成了工作流的基本流程搭建。后续的诸多关键工作,包括将 UI 从 shadcn 替换为 antd、支持更多的 provider、代码优化等,几乎全部由 @Fudiwei 独力完成。 这是一项完全无收益的开源项目,但他仍然倾注了大量的时间与精力,非常令人敬佩。再次向 Fudiwei 表示由衷的感谢!