Giter Site home page Giter Site logo

bloc's Introduction

bloc

通过组合函数构建、运行你的工作流程。

DD

目录


背景

  • 首先:我们认为一个函数的功能是能够通过参数来控制与改变的,如果开发者在开发每个功能函数时,将能够控制此函数功能的部分全部提炼为参数暴露出来、且配上易懂的解释。那么bloc认为此函数的含义及功能表现就可以脱离开发者了。
  • 假设现在有满足上面情况的一个函数池,那么用户在函数池里面可以自己通过阅读函数及其参数的描述明白每个函数能提供的“原子功能”。在此基础上、用户通过挑选出其所需的函数组合成工作流、并通过自定义设置里面每个函数的参数来控制对应函数的功能/表现。从而实现了在开发者不参与的情况下、实现自己的特定目标任务。
  • 而bloc要做的事情就是承接开发者开发的函数形成函数池,而后面向用户提供这些函数、支持用户基于这些函数来编排/运行自己的工作流任务,以及查看运行中/完成工作流的日志/进度/输入输出等信息

总的来说:bloc希望做到能使开发者只需集中精力开发好每个功能函数,剩下的全部交给bloc。使用者1自行通过bloc来操控函数块的串联方式、编写各个函数块的参数输入、设置与编排任务的运行来满足使用者的特定需求。

工作方式

  1. 部署 bloc 环境
  2. 开发者基于对应语言(GoPython)的SDK开发bloc函数
  3. 当开发者部署/运行了其开发的函数后,用户就能够在bloc的web端使用这些函数了

线上体验

  1. 用户名/密码均为bloc
  2. 由于部署在香港(不用备案)、如果比较慢,请你懂的后再访问
  3. 虽然可以,但请不要修改「官方示例」相关的例子,你可以运行它来看效果、如果要尝试可以自己进行新建
  4. 请访问这里

本地运行

如果你想快速在本地跑个Demo,请移步这里

更多资料

如果你想要更多地了解本项目,请移步这里

如果你想查看文档,请移步这里

license

MIT

Footnotes

  1. 使用者包含了开发者自己、运营人员、管理者...

bloc's People

Contributors

aqeja avatar pillipanda avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar

Forkers

shaoxyz

bloc's Issues

feat:获取http server/consumer的日志 并展示

开发顺序-等目前flow/function的所有接口全部前后端调通后
重要性 - 极高

主要
现在上传部分是已经完成了,由于http server和consumer都是多机器运行的,所以是上传到分布式存储minio的。

但是“下载”和前端显示模块完全还没有做!导致对于最常见的应用:想看最近的http server的error级别的事件;某个flow运行失败了,要看运行日志排查问题就没法满足。

所以这个模块是必须做的、也很有必要做的比较好!

次要
对于运行中的function,要不要做实时日志显示?

次要
对于依赖组件down机的情况,要不要特别处理?比如依赖的mongoDB挂了??

要不要给一个hook给开发者做报警???不用的话就开发者自己查日志来自己报警

权限问题梳理

各项资源存在哪些权限

user

user 权限相关字段有 super,为真表示拥有全局的全部权限 + 能够进入 admin 界面

function

function 权限相关字段有 avaliable,为真表示用户能够在前端看到此 function、能够被用户拖动放入 flow

flow

flow 权限相关字段有 readwriteexecutesuper 。具体含义如下:

  • read:可读此 flow(当前用户获取到的 flow 列表有此项、能够查看此 flow 具体及其运行历史)
  • write :可以更改此 flow(可以改此 flow 下的 function 构成/关系,以及每个 function 的参数输入)
  • execute :可以在前端触发运行此 flow & 可以修改此 flow 的执行控制参数(crontab、trigger_key...)
  • super :super 的权限由 2 部分构成
    • 能够分配其他用户对此 flow 的 read/write/execute/super 权限
    • 能够删除此 flow

开发者部署了服务后,如何给新用户用

  1. 全局的 super 用户通过 admin 界面创建一个新用户的账号
  2. 将此账号/名字发给对应用户
  3. 对应用户即可开始使用

新用户的权限如何管理

上面的第 1 步 admin 界面,用户在创建新用户的时候,需要为其分配拥有哪些 function 以及哪些 flow 的权限。

Q:存在的一个问题:如果开发者为其开放了某个 flow 的权限,但是其 flow 里面包含的某个 function,开发者没有为其开放权限。这种该怎么办?
A:进行联动检测这种情况并提醒开发者,然后不允许提交配置

老用户的权限如何管理

还是和新用户相似的界面、可以显示&管理老用户对于 function 和 flow 的权限

前后端接口中不明确/不合适的字段,先收集、最后再来说改的问题

我们看到接口中如果觉得词不达意、词达错意的字段都先收集到下面吧:

  • 权限的super字段应该改成一个能表示是操作别的用户对此权限的词、super不好、容易误解。 - 已完成拆分为具体含义的字段
  • flow的pub_while_running应该修改,目前的意思是正在运行的情况下能不能发布任务,但是实际考虑到排队,即使发布了,也可能很久后才运行,所以这个字段意义不大,应该处理的是获取到一个运行的时候,如果发现有此flow本来就正在运行,是否还运行。应改为对应意思的字段 - 已修改为allow_parrallel_run
  • flow的trigger_key应该修改为trigger_keys,应对有多组的情况

约定俗成的东西最好改为通过接口绑定?

优先级 - 低
重要性 - 低

目前类似flow下的start node的flow function id是我们口头约定的值

感觉这样是不是不太好?

是否改为提供一个类似/api/v1/config类的接口,返回一些前后端“口头约定的值”比较好?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.