Next-generation IoT open source platform.

Overview

tKeel

Next-generation IoT open source platform
High performance, High security and easy to use

Go Report Card GitHub release (latest SemVer) GitHub GoDoc

img.png

tKeel is a strong and reusable IoT platform that helps you build solutions quickly.

The architecture is based on a microservices model, providing a pluggable architecture and a data plane that is stable and quick responsive.

Solving the difficult problems of building an application with high performance, from device to application, modular access, etc.

中文

🏃🏻‍♀️ Let's Start

  • Quick installation of the tKeel platform via the CLI tool
  • Example will help you quickly understand how to use our tKeel IoT Open Platform.

The official website documentation will have details, from installation to usage details.

🪜 Architecture

Perhaps you are interested in the tKeel IoT platform, let me give you a brief introduction.

img.png

Architecture

  • Resource

Something related to data storage, which can be any database you use.

  • Core

Like the name suggests, this is the data core of the entire platform, providing some form of data organisation as well as processing methods.

  • Provides different forms in which data can be organised such as time series, attribute, relationships, etc., making data into easily understood objects that can be easily constructed and developed.

  • Data interaction is resolved by means of snapshots and subscriptions (Event data).

  • Service

Provides the pluggable capability that applications need, plus some core functionality (message routing, tenant management, rights control).

  • Interface

Easy tools and friendly interfaces to Application through encapsulation.

  • Application

Applications of different volumes; can be everything your existing platform has to offer.

  • Existing platforms can simply use the data they need by calling the API provided by Interface.

✅ Reasons to Trust Us

🥛 Keep it Simple

The tKeel platform summarises the generic problems encountered in IoT development over the years, as well as some tough challenges; finally there is this open platform that can solve the pain points in IoT development.

tKeel is good at dealing with data flow and abstraction in distributed systems, shielding the underlying complexity and providing simpler, more developer-oriented abstractions outwards to help users *quickly build IoT solutions.

⛓️ Lightweight, but Powerful

The tKeel IoT Open Platform is based on microservices architecture, is not vendor-bound and offers an efficient development approach that is scalable, reliable and high performance.

With the power of Dapr, a simpler abstraction is provided to the user in the form of sidecar, interacting via HTTP and gRPC.

The tKeel platform allows your code to ignore the hosted environment, allowing device docked applications/plugins highly portable and not restricted by programming language, allowing developers to develop to their heart's content using their preferred technology stack.

🔌 Pluginisation

The Plugin implementation is based on the OpenAPI convention, making deployment simple and lightweight through a cloud-native approach.

The plugin mechanism makes it easy to reuse plugins that you or others have made public.

We provide an Official Plugin Repository where developers can pick and choose plugins for their own scenarios. Of course, if you can make your plugins publicly available, developers with similar needs would appreciate it.

With Plugin Guide you will find that implementing plugins is a very simple task.

📊 Focus on Data

The tKeel IoT Open Platform defines data entities through a data centre (tKeel-io/Core ) and simulates and abstracts real-world objects (things).

You can define relational mappings for more, faster and easier data refinement through the platform's powerful capabilities.

With the design of data entities, we can adapt this abstract design to messages, measurement points, objects and relationships, and the platform provides multi-level and multi-latitude data services.

Configuring relational mapping eliminates the need to remember complex Message Topics and Message Formats as we provide a high performance data processing solution.

🛣️ Roadmap

We have planned a roadmap to do more support for the project.

💬 Shall We Talk

If you have any suggestions or ideas, you are welcome to file an Issue at any time, we'll look forward to sharing them together to make the world a better place.

Thank you very much for your feedback and suggestions!

Community Documents will give you an idea of how you can start contributing to tKeel.

🙌 Contributing

The Development Guide explains how to configure your development environment.

We have this [Code of Conduct] that we expect project participants to follow. Please read it in full so that you know what will and will not be tolerated.

🌟 Find Us

You may have many questions, and we will ensure that they are answered as soon as possible!

Social Platforms Links
email [email protected]
Weibo @tkeel

🏘️ Repos

repo Descriptions
tKeel As what you see, the code for the platform and an overview of the platform are included
CLI The tKeel CLI is the main tool for various tKeel-related tasks
Helm Helm charts corresponding to tKeel
Core tKeel's data centre
Issues
  • [PROPOSAL]: About The Project Layout

    [PROPOSAL]: About The Project Layout

    What Is Your Expect

    I want to change the layout like this:

    tkeel
    ├── charts
    │   ├── auth
    │   │   └── templates
    │   ├── core
    │   │   ├── charts
    │   │   └── templates
    │   ├── keel
    │   │   └── templates
    │   ├── plugins
    │   │   └── templates
    │   ├── tkeel-middleware
    │   │   ├── charts
    │   │   └── templates
    │   └── tkeel-plugin-component
    │       └── templates
    ├── cmd
    │   ├── auth
    │   ├── keel
    │   └── plugin
    ├── config
    │   ├── common
    │   │   └── component
    │   ├── keel
    │   │   └── components
    │   └── plugin
    │       └── components
    ├── demo
    │   └── deploy
    │       ├── chart
    │       │   └── demo-echo
    │       │       ├── charts
    │       │       │   └── tkeel-plugin-component
    │       │       │       └── templates
    │       │       └── templates
    │       └── k8s
    │           └── crd
    ├── docker
    │   ├── auth
    │   ├── keel
    │   └── plugins
    ├── docs
    │   ├── api
    │   │   └── auth
    │   ├── decision_records
    │   │   ├── cli
    │   │   ├── engineering
    │   │   ├── openapi
    │   │   ├── plugin-auth
    │   │   ├── plugin-keel
    │   │   └── plugin-plugins
    │   ├── development
    │   ├── images
    │   │   └── img
    │   │       └── auth
    │   └── release_notes
    ├── envutil
    ├── k8s
    │   ├── auth
    │   ├── keel
    │   └── plugins
    ├── keel
    │   ├── env
    │   └── testdata
    ├── logger
    ├── openapi
    ├── readutil
    ├── service
    │   ├── auth
    │   │   ├── api
    │   │   │   └── params
    │   │   ├── client
    │   │   └── model
    │   ├── keel
    │   └── plugin
    ├── token
    └── version
    

    The benefits of this change to our project are :

    - import tkeel/plugin 
    - plugin.Plugin{}
    + import tkeel
    + tkeel.Plugin{}
    // Other Example
    - import tkeel/pkg/plugin/plugins
    + import tkeel/service/plugin
    

    Clearer semantics

    About the pkg

    Removed pkg and changed some package names to make them more readable. this is not a standard Go project layout In this issue Cox gives some suggestions, in the spirit of organising the code better and keeping close to the Zen of Go.

    Some about pkg issue : https://github.com/golang-standards/project-layout/issues/10 People discuss the good and bad of using pkg.

    We are now able to make this change at no great cost.

    Original project structure

    tkeel
    ├── charts
    │   ├── auth
    │   │   └── templates
    │   ├── core
    │   │   ├── charts
    │   │   └── templates
    │   ├── keel
    │   │   └── templates
    │   ├── plugins
    │   │   └── templates
    │   ├── tkeel-middleware
    │   │   ├── charts
    │   │   └── templates
    │   └── tkeel-plugin-component
    │       └── templates
    ├── cmd
    │   ├── auth
    │   ├── keel
    │   └── plugins
    ├── config
    │   ├── common
    │   │   └── component
    │   ├── keel
    │   │   └── components
    │   └── plugins
    │       └── components
    ├── demo
    │   └── deploy
    │       ├── chart
    │       │   └── demo-echo
    │       │       ├── charts
    │       │       │   └── tkeel-plugin-component
    │       │       │       └── templates
    │       │       └── templates
    │       └── k8s
    │           └── crd
    ├── docker
    │   ├── auth
    │   ├── keel
    │   └── plugins
    ├── docs
    │   ├── api
    │   │   └── auth
    │   ├── decision_records
    │   │   ├── cli
    │   │   ├── engineering
    │   │   ├── openapi
    │   │   ├── plugin-auth
    │   │   ├── plugin-keel
    │   │   └── plugin-plugins
    │   ├── development
    │   ├── images
    │   │   └── img
    │   │       └── auth
    │   └── release_notes
    ├── k8s
    │   ├── auth
    │   ├── keel
    │   └── plugins
    ├── keel
    │   └── testdata
    ├── pkg
    │   ├── config
    │   │   ├── env
    │   │   └── testdata
    │   ├── keel
    │   ├── logger
    │   ├── openapi
    │   ├── plugin
    │   │   ├── auth
    │   │   │   ├── api
    │   │   │   │   └── params
    │   │   │   ├── client
    │   │   │   └── model
    │   │   ├── keel
    │   │   └── plugins
    │   ├── token
    │   ├── utils
    │   └── version
    └── tests
    

    About Some Ambiguities

    plugin/plugins in this project, plugins is more like a managed service. So I changed it to service/plugin. There are two keel in the project that also contain controversies, so I suggested that the name of one keel be made more concrete, like I named it sidecar.

    Code of Conduct

    • [X] I agree to follow this project's Code of Conduct

    Contact Details

    No response

    proprosal 
    opened by uptutu 5
  • [feat] Overview of the feature design of the Repository

    [feat] Overview of the feature design of the Repository

    Repository

    仓库(repository)是 tKeel 中管理插件的一个重要组件,主要用于拉取指定云端仓库(helm 仓库)的所有插件列表,并提供相应插件的 chart 管理(列表,安装,卸载)接口。

    安装一个插件的流程

    plugin-install-v0-2-0.png

    实现细节

    基于 helm 进行封装,对用户暴露更友好体验的用户安装。

    用户可以配置一个私有 helm 仓库用作可安装插件管理的发现地址,集成一个官方仓库。也就是说可查询到的所有插件:

    $ helm repo search
    

    API

    > 注释:因为重新架构和 helm 依赖安全问题,取消了自定义远程仓库的设计。 > 如果需要,开发者可以通过 **配置文件** 实现。

    添加仓库地址

    添加私有仓库至 tKeel 平台,为 Helm 配置可用的私有仓库,安装自己已有的插件。

    自定义的添加的仓库地址仅能配置一个,该配置可用在启动 tKeel 平台时配置。

    PUT /repos

    Parameters

      |   |   |   -- | -- | -- | -- Name | Type | In | Description addr | string | body | Required.
    The address of the chart repository that the user wants the platform to pull.

    实现逻辑:

    通过 API 拿到用户想要添加的仓库地址,采用 k8s 的 ConfigMap 覆盖掉原有处叫做「custom_repo_addr」的地址信息。

    插件列表

    获取当前所有可安装至平台的插件。

    GET /plugins

    实现逻辑:

    通过封装 helm 的查询接口,并将 helm 查询到的所有可用的 chart 信息返回。

    $ helm repo update
    $ helm search repo
    

    Parameters

    | | | | | | -- | -- | -- | --| | Name | Type | In | Description | | type | string | query | Required.
    Either 'installable', 'installed', can be used. |

    指定仓库的插件列表

    获取当前所有可安装至平台的插件。

    GET /repos/{repo}/plugins

    实现逻辑:

    通过封装 helm 的查询接口,并将 helm 查询到的所有可用的 chart 信息返回。

    $ helm repo update {repo}
    $ helm search {repo}
    

    安装插件

    通过指定名称安装对应的插件至平台。

    POST /plugins

    Parameters

      |   |   |   -- | -- | -- | -- Name | Type | In | Description repo | string | body | Required.
    Point to the specific repository where the plugin is locatedThat chart | string | body | Required.
    Name of the plugin to be installed name | string | body | Required.
    Name specified after successful installation

    实现逻辑

    拿到指定的仓库名和插件名使用 helm 进行安装。

    $ helm install {instance_name} {repo}/{name}
    

    卸载插件

    通过指定实例名(instance_name)删除对应的实例安装。

    DELETE /plugins/{name}

    Parameters

      |   |   |   -- | -- | -- | -- Name | Type | In | Description name | string | query | Required.
    The name is what instance you want to delete.

    documentation enhancement 
    opened by uptutu 3
  • [proprosal] About the PKG layout

    [proprosal] About the PKG layout

    I want to change the layout like this:

    xxx
    ├── charts
    ├── cmd
    │   └── xxx
    ├── docker
    ├── docs
    │   ├── decision_records
    │   ├── development
    │   └── release_notes
    ├── pkg
    │   ├── apis(proto自动生成)
    │   ├── server
    │   │   ├── grpc(转换,很薄的一层去调用具体的逻辑service) //  func() (ctx context.Context, in pb.XXX)(out,error)) error
    │   │   └── http(转换,很薄的一层去调用具体的逻辑service) //  func() (ctx context.Context, reqIn) error
    |   ├── service(错误判断之类的,处理相同的输入输出的)
    │   │   └── xxx(调用Models里面的oprator完成具体的逻辑)
    │   ├── models
    │   │   ├── aaa
    │   │   └── bbb
    │   │       ├── xxx.go (用到的数据结构 和oprator interface)
    │   │       └── xxx.go (对这个interface的实现)
    │   ├── errcode
    │   ├── logger
    │   ├── utils
    │   ├── proto
    │   └── version
    ├── tests
    ├── proto
    └── tools
    
    

    View and modify the design document.

    proprosal 
    opened by OdysseusC 3
  • fix repo interface

    fix repo interface

    1. 列出安装包接口
    • 增加搜素功能。
    • 增加安装包简略信息的描述。
    • 增加已安装的安装包数量。
    1. 新增所有仓库安装的安装包接口
    2. 安装包详情接口
    • 增加更新时间。
    • 增加安装包描述。
    1. 查询插件已启用租户接口
    • 增加分页和搜索功能。
    1. 获取所有仓库接口
    • 每个仓库信息中增加安装包总数字段。

    close #72 close #74 close #79

    approved lgtm ok-to-test size/XXL 
    opened by OdysseusC 2
  • [FEAT_REQUEST]: Optimize the plugin registration process

    [FEAT_REQUEST]: Optimize the plugin registration process

    What Is Your Expect

    背景

    现有的插件注册流程和设计有出入,注册操作未能隐式完成,设计注册和安装操作分离的原因就是为了确保插件在正常运行的情况下 rudder 再去调用 /v1/identify 接口,来确保插件的信息能够成功加载进 tKeel 平台中。

    现有设计使前端并不支持此步骤,考虑 rudder 自动完成此流程。

    解决方案

    plugin-register-unregister-drawio.png

    修改插件状态仅为 installed 和 register。

    当插件安装后,拉起一个 goroutine 不定时的监听插件的 /v1/status 接口,当接口返回 Running 时,访问插件的 /v1/identify 接口,获取对应信息完成注册流程。

    插件卸载时,判断所有租户均停用插件,再删除路由表信息和对应的插件信息。

    Code of Conduct

    • [X] I agree to follow this project's Code of Conduct

    Contact Details

    No response

    opened by OdysseusC 2
  • [feat] tKeel authorization design

    [feat] tKeel authorization design

    What Is Your Expect

    现在的 tKeel 中无法保证租户和用户信息在插件间调用时正确传递。

    当前为携带了租户和用户信息的外部请求到 keel 后通过了鉴权,然后以透传的方式将 token 透传给后续上游服务中。仅仅只能让信息传递到一个插件中,如果需要在后续调用链中有效传递,在现在的规范中没有定义相关的做法。

    根据上述问题,做出了以下设计来解决它。

    Design

    在 Keel 处将外部访问进行鉴权处理,并写入头 x-tKeel-auth 中,x-tKeel-auth 中存储 ~JSON Object~ KV 键值对 并以 Base64 加密: ~{"src":"plugin_id","tenant":"tenant_id","user":"user_id","role":"role"}~~src=plugin_id&~tenant=tenant_id&user=user_id&role=role。后续访问中必须带上此头。

    ~src 中预留 ID:_tKeel,表示请求由系统发起,从 Keel 或 Rudder 发出,用于 Rudder 访问 OpenAPI 时使用。~

    • tenant 中预留 ID:_tKeel_system,表示请求直接由系统发起。
    • user 中预留 ID:_tKeel_admin,请求直接由系统发起。
    • role 中预留字段:admin,表示角色为租户下的管理员。

    auth-design-drawio.png

    插件获取当前访问的租户和用户信息时仅需解析 x-tKeel-auth 头信息即可,且需要对上述各字段的预留 ID 进行处理。

    通过 Keel 访问管理平台也会解析对应的 token 并写入 x-tKeel-auth 中,填入信息均为上述预留 ID 即 ~{"src":"_tKeel","tenant":"_tKeel_system","user":"_tKeel_admin"}~~src=_tKeel&~tenant=_tKeel_system&user=_tKeel_admin&role=admin

    在内部访问时,Keel 检查 HTTP 请求必须携带有效的 x-tKeel-auth 以此来强制要求插件间调用的合法性。

    Code of Conduct

    • [x] I agree to follow this project's Code of Conduct

    Contact Details

    No response

    enhancement 
    opened by OdysseusC 2
  • feat repo API support

    feat repo API support

    #43

    Repo Support

    make install plugin in platform easier.

    • New API
      • GET /installable/plugins
      • GET /installed/plugins
      • DELETE /installed/plugins/:plugin
      • GET /repos
      • PUT /repos
      • DELETE /repos/own
      • POST /repos/:repo/plugins/:plugin
    enhancement 
    opened by uptutu 2
  • [suggest] cmd remove init func mode

    [suggest] cmd remove init func mode

    While there is not a lot of code under /cmd now, I would like to change the way I use init() to load subcommands under /cmd to a controlled declarative call.

    opened by uptutu 2
  • [BUG]: plugin always in the WAIT_RUNNING state

    [BUG]: plugin always in the WAIT_RUNNING state

    What happened?

    安装插件后插件无法正确注册,一直是WAIT_RUNNING 状态

    Version

    latest (main)

    What OS are you seeing the problem on?

    linux amd64

    Relevant log output

    No response

    Other

    None

    Contact Details

    [email protected]

    Code of Conduct

    • [ ] I agree to follow this project
    bug 
    opened by wuxs 0
  • [BUG]: can not uninstall plugin

    [BUG]: can not uninstall plugin

    What happened?

    A bug happened! 使用 tkeel plugin list 可以查询到应用 fluxswitch,但是 helm list 中查询不到,使用tkeel plugin uninstall fluxswitch 也无法卸载

    Version

    latest (main)

    What OS are you seeing the problem on?

    Windows11 x86

    Relevant log output

    No response

    Other

    None

    Contact Details

    No response

    Code of Conduct

    • [ ] I agree to follow this project
    bug 
    opened by wuxs 0
  • [FEAT_REQUEST]: metrics exporter supported.

    [FEAT_REQUEST]: metrics exporter supported.

    What Is Your Expect

    prometheus exporter supported. include metrics: tkapi_request[conter histogram],user_num[gauge],role_num[gauge].

    Code of Conduct

    • [X] I agree to follow this project's Code of Conduct

    Contact Details

    [email protected]

    opened by chanoe 0
  • [FEAT_REQUEST]: 优化devops流程

    [FEAT_REQUEST]: 优化devops流程

    What Is Your Expect

    1. 修复 升级 rudder / keel 找不到找不到 config 文件的问题
    2. 支持 harbor 私有仓库
    3. 从凭证读取参数,控制Jenkins流程:私有仓库 / 项目参数化;是否自动更新插件。
    4. 并行 steps
    5. 适配新版本 CLI

    Code of Conduct

    • [X] I agree to follow this project's Code of Conduct

    Contact Details

    No response

    opened by lunz1207 0
  • [FEAT_REQUEST]: support

    [FEAT_REQUEST]: support "@latest" to installs the latest version of the plugin

    What Is Your Expect

    support "@latest" to installs the latest version of the plugin

    Code of Conduct

    • [X] I agree to follow this project's Code of Conduct

    Contact Details

    [email protected]

    opened by wuxs 0
Releases(v1.0.0)
  • v0.4.1(Mar 7, 2022)

    What's Changed

    • feat: update chart by @OdysseusC in https://github.com/tkeel-io/tkeel/pull/141
    • fix bug by @OdysseusC in https://github.com/tkeel-io/tkeel/pull/142
    • fix: plugin clone by @OdysseusC in https://github.com/tkeel-io/tkeel/pull/143

    Full Changelog: https://github.com/tkeel-io/tkeel/compare/v0.4.0...0.4.1

    What's Changed

    • feat: update chart by @OdysseusC in https://github.com/tkeel-io/tkeel/pull/141
    • fix bug by @OdysseusC in https://github.com/tkeel-io/tkeel/pull/142
    • fix: plugin clone by @OdysseusC in https://github.com/tkeel-io/tkeel/pull/143

    Full Changelog: https://github.com/tkeel-io/tkeel/compare/v0.4.0...v0.4.1

    Source code(tar.gz)
    Source code(zip)
  • v0.4.0(Mar 5, 2022)

    What's Changed

    • feat: add docker image build and push work flow by @OdysseusC in https://github.com/tkeel-io/tkeel/pull/65
    • Feat: auto inject dapr annotations by @OdysseusC in https://github.com/tkeel-io/tkeel/pull/67
    • feat:security0.3.0 by @chanoe in https://github.com/tkeel-io/tkeel/pull/66
    • Feat:Integrate security by @OdysseusC in https://github.com/tkeel-io/tkeel/pull/68
    • fix work flow by @OdysseusC in https://github.com/tkeel-io/tkeel/pull/69
    • fix: authenticate with keel by @chanoe in https://github.com/tkeel-io/tkeel/pull/73
    • fix work flow by @OdysseusC in https://github.com/tkeel-io/tkeel/pull/75
    • Feat/security 0.3.0 by @chanoe in https://github.com/tkeel-io/tkeel/pull/76
    • fix secret by @OdysseusC in https://github.com/tkeel-io/tkeel/pull/77
    • fix bug by @OdysseusC in https://github.com/tkeel-io/tkeel/pull/78
    • fix:security mod version by @chanoe in https://github.com/tkeel-io/tkeel/pull/80
    • feat: add chart value and fix bugs by @OdysseusC in https://github.com/tkeel-io/tkeel/pull/81
    • fix:security api by @chanoe in https://github.com/tkeel-io/tkeel/pull/83
    • fix(api):user&tenant api field by @chanoe in https://github.com/tkeel-io/tkeel/pull/85
    • feat: integrated security by @OdysseusC in https://github.com/tkeel-io/tkeel/pull/84
    • fix bug by @OdysseusC in https://github.com/tkeel-io/tkeel/pull/86
    • fix bugs by @OdysseusC in https://github.com/tkeel-io/tkeel/pull/88
    • fix(api):security api by @chanoe in https://github.com/tkeel-io/tkeel/pull/89
    • feat: authentication and entry menu by @OdysseusC in https://github.com/tkeel-io/tkeel/pull/87
    • fix encoding bug by @OdysseusC in https://github.com/tkeel-io/tkeel/pull/90
    • optimize repo by @OdysseusC in https://github.com/tkeel-io/tkeel/pull/91
    • fix bugs by @OdysseusC in https://github.com/tkeel-io/tkeel/pull/92
    • fix repo interface by @OdysseusC in https://github.com/tkeel-io/tkeel/pull/93
    • modify proto field name by @OdysseusC in https://github.com/tkeel-io/tkeel/pull/94
    • Fix/security by @chanoe in https://github.com/tkeel-io/tkeel/pull/95
    • fix bug by @OdysseusC in https://github.com/tkeel-io/tkeel/pull/96
    • fix(api):user create AddGroupingPolicies by @chanoe in https://github.com/tkeel-io/tkeel/pull/97
    • Fix/security by @chanoe in https://github.com/tkeel-io/tkeel/pull/98
    • fix:add search user by keywords by @chanoe in https://github.com/tkeel-io/tkeel/pull/99
    • fix:user search by keywords by @chanoe in https://github.com/tkeel-io/tkeel/pull/100
    • fix bugs by @OdysseusC in https://github.com/tkeel-io/tkeel/pull/101
    • feat/oidc provider by @chanoe in https://github.com/tkeel-io/tkeel/pull/102
    • modify API by @OdysseusC in https://github.com/tkeel-io/tkeel/pull/103
    • fix:provider oidc by @chanoe in https://github.com/tkeel-io/tkeel/pull/104
    • Fix/bug by @OdysseusC in https://github.com/tkeel-io/tkeel/pull/105
    • feat: adjust the middleware configuration format by @wuxs in https://github.com/tkeel-io/tkeel/pull/106
    • Fix(api):tenant by @chanoe in https://github.com/tkeel-io/tkeel/pull/107
    • Fix/security by @chanoe in https://github.com/tkeel-io/tkeel/pull/108
    • Fix/security by @chanoe in https://github.com/tkeel-io/tkeel/pull/110
    • Fix/security by @chanoe in https://github.com/tkeel-io/tkeel/pull/111
    • Feat/permission by @OdysseusC in https://github.com/tkeel-io/tkeel/pull/109
    • Feat(api):TokenRevoke by @chanoe in https://github.com/tkeel-io/tkeel/pull/112
    • Fix/security by @chanoe in https://github.com/tkeel-io/tkeel/pull/113
    • Fix/bug by @OdysseusC in https://github.com/tkeel-io/tkeel/pull/114
    • feat(api):update password by @chanoe in https://github.com/tkeel-io/tkeel/pull/115
    • fix api bugs by @OdysseusC in https://github.com/tkeel-io/tkeel/pull/116
    • update chart by @OdysseusC in https://github.com/tkeel-io/tkeel/pull/117
    • fix(api):tenant by @chanoe in https://github.com/tkeel-io/tkeel/pull/118
    • Add GetRole API by @OdysseusC in https://github.com/tkeel-io/tkeel/pull/119
    • Fix/api tenant by @chanoe in https://github.com/tkeel-io/tkeel/pull/120
    • fix bugs by @OdysseusC in https://github.com/tkeel-io/tkeel/pull/121
    • fix error and chart by @OdysseusC in https://github.com/tkeel-io/tkeel/pull/122
    • fix oauth2 pwd by @OdysseusC in https://github.com/tkeel-io/tkeel/pull/123
    • Fix/api reset pwd => rspwd by @chanoe in https://github.com/tkeel-io/tkeel/pull/124
    • fix entry by @OdysseusC in https://github.com/tkeel-io/tkeel/pull/125
    • fix bug by @OdysseusC in https://github.com/tkeel-io/tkeel/pull/126
    • fix bug by @OdysseusC in https://github.com/tkeel-io/tkeel/pull/127
    • fix repo init panic by @OdysseusC in https://github.com/tkeel-io/tkeel/pull/128
    • feat: custom tkeel repo by @wuxs in https://github.com/tkeel-io/tkeel/pull/129
    • Fix/api tenant by @chanoe in https://github.com/tkeel-io/tkeel/pull/131
    • fix bug by @OdysseusC in https://github.com/tkeel-io/tkeel/pull/130
    • feat: Allow fields to be modified to be empty by @OdysseusC in https://github.com/tkeel-io/tkeel/pull/133
    • fix: sort entry by @OdysseusC in https://github.com/tkeel-io/tkeel/pull/134
    • Fix/api tenant by @chanoe in https://github.com/tkeel-io/tkeel/pull/132
    • feat configmap by @OdysseusC in https://github.com/tkeel-io/tkeel/pull/135
    • Fix/api tenant by @chanoe in https://github.com/tkeel-io/tkeel/pull/136
    • Fix/identify enable by @OdysseusC in https://github.com/tkeel-io/tkeel/pull/137
    • fix rbac by @OdysseusC in https://github.com/tkeel-io/tkeel/pull/138
    • fix rbac by @OdysseusC in https://github.com/tkeel-io/tkeel/pull/139
    • fix: config add port by @OdysseusC in https://github.com/tkeel-io/tkeel/pull/140

    New Contributors

    • @wuxs made their first contribution in https://github.com/tkeel-io/tkeel/pull/106

    Full Changelog: https://github.com/tkeel-io/tkeel/compare/v0.3.0...v0.4.0

    Source code(tar.gz)
    Source code(zip)
    keel_darwin_amd64.tar.gz(11.99 MB)
    keel_linux_amd64.tar.gz(11.43 MB)
    keel_linux_arm.tar.gz(10.55 MB)
    keel_linux_arm64.tar.gz(10.35 MB)
    keel_windows_amd64.zip(11.27 MB)
    rudder_darwin_amd64.tar.gz(17.04 MB)
    rudder_linux_amd64.tar.gz(16.26 MB)
    rudder_linux_arm.tar.gz(14.90 MB)
    rudder_linux_arm64.tar.gz(14.71 MB)
    rudder_windows_amd64.zip(16.01 MB)
  • v0.3.0(Jan 8, 2022)

    v0.3.0 new features:

    1. Repository
    2. Tenant bind/unbind plugin
    3. Access control
    4. System admin

    What's Changed

    • fix: v0.2.0 bugs and add swagger. by @OdysseusC in https://github.com/tkeel-io/tkeel/pull/56
    • fix: rudder api. by @OdysseusC in https://github.com/tkeel-io/tkeel/pull/57
    • feat(api):entity token with md5... by @chanoe in https://github.com/tkeel-io/tkeel/pull/60
    • feat: add repository. by @OdysseusC in https://github.com/tkeel-io/tkeel/pull/59
    • fix: action and helm repo inject something by @uptutu in https://github.com/tkeel-io/tkeel/pull/63
    • feat: tenant logic by @OdysseusC in https://github.com/tkeel-io/tkeel/pull/62
    • fix v0.3.0 bugs by @OdysseusC in https://github.com/tkeel-io/tkeel/pull/64

    Full Changelog: https://github.com/tkeel-io/tkeel/compare/v0.2.0...v0.3.0

    Source code(tar.gz)
    Source code(zip)
    keel_darwin_amd64.tar.gz(13.06 MB)
    keel_linux_amd64.tar.gz(12.44 MB)
    keel_linux_arm.tar.gz(11.46 MB)
    keel_linux_arm64.tar.gz(11.24 MB)
    keel_windows_amd64.zip(12.27 MB)
    rudder_darwin_amd64.tar.gz(15.89 MB)
    rudder_linux_amd64.tar.gz(15.15 MB)
    rudder_linux_arm.tar.gz(13.88 MB)
    rudder_linux_arm64.tar.gz(13.70 MB)
    rudder_windows_amd64.zip(14.92 MB)
  • v0.2.0(Dec 3, 2021)

    What's Changed

    Refactored v0.1.0. done #44.

    • v0.2.0 decisions by @OdysseusC in https://github.com/tkeel-io/tkeel/pull/35
    • Feat/chart by @liuzhen21 in https://github.com/tkeel-io/tkeel/pull/36
    • Feat/chart by @liuzhen21 in https://github.com/tkeel-io/tkeel/pull/38
    • README Translation by @uptutu in https://github.com/tkeel-io/tkeel/pull/41
    • fix: github action by @uptutu in https://github.com/tkeel-io/tkeel/pull/42
    • feat: add plugin-lifecycle proposed by @imneov in https://github.com/tkeel-io/tkeel/pull/45
    • v0.2.0 rudder done. by @OdysseusC in https://github.com/tkeel-io/tkeel/pull/46
    • refactory: keel v0.2.0 done. by @OdysseusC in https://github.com/tkeel-io/tkeel/pull/50
    • Update README.md by @astaxie in https://github.com/tkeel-io/tkeel/pull/52
    • feat(api):Compatible with tkeel api by @tkeeler777 in https://github.com/tkeel-io/tkeel/pull/51
    • feat: add security api and core api, modify chart by @OdysseusC in https://github.com/tkeel-io/tkeel/pull/54
    • feat: update system image by @imneov in https://github.com/tkeel-io/tkeel/pull/55

    New Contributors

    • @astaxie made their first contribution in https://github.com/tkeel-io/tkeel/pull/52

    Full Changelog: https://github.com/tkeel-io/tkeel/compare/v0.1.0...v0.2.0

    Source code(tar.gz)
    Source code(zip)
    keel_darwin_amd64.tar.gz(6.09 MB)
    keel_linux_amd64.tar.gz(5.84 MB)
    keel_linux_arm.tar.gz(5.33 MB)
    keel_linux_arm64.tar.gz(5.33 MB)
    keel_windows_amd64.zip(5.74 MB)
    rudder_darwin_amd64.tar.gz(6.58 MB)
    rudder_linux_amd64.tar.gz(6.31 MB)
    rudder_linux_arm.tar.gz(5.78 MB)
    rudder_linux_arm64.tar.gz(5.76 MB)
    rudder_windows_amd64.zip(6.20 MB)
IoT Manager: use IoT platforms with Mender

Mender: Azure IoT Manager: use Azure IoT with Mender General Mender is an open source over-the-air (OTA) software updater for embedded Linux devices.

Mender 0 Jan 10, 2022
Industrial IoT Messaging and Device Management Platform

Mainflux Mainflux is modern, scalable, secure, open-source, and patent-free IoT cloud platform written in Go. It accepts user and thing (sensor, actua

Mainflux 1.8k Aug 4, 2022
A opinionated multi-tenant hyperscale Internet of Things platform to connect IoT devices fast and securely with minimal TCO

infinimesh IoT Platform infinimesh is a opinionated multi-tenant hyperscale Internet of Things platform to connect IoT devices fast and securely with

Mik 1 Feb 14, 2022
IoT platform with things/user management and visualization, in Go with Docker using microservices

BARIOT IoT platform to Manage Users and their Things and visualize their data. Microservices services architecture build with Go and docker (compose).

Maxime CLEMENT 5 Jun 22, 2022
Suite of libraries for IoT devices (written in Go), experimental for x/exp/io

Go libraries/drivers for IoT devices This repo contains a suite of libraries for IoT devices/sensors/actuators. The suite is meant to be as dependency

Go IoT 254 Jun 2, 2022
Make IoT a lot more fun with data.

Eywa What is Eywa? "Eywa is the guiding force and deity of Pandora and the Na'vi. All living things on Pandora connect to Eywa." -- Avatar Wiki Projec

Alex 55 Jul 19, 2022
Golang framework for robotics, drones, and the Internet of Things (IoT)

Gobot (https://gobot.io/) is a framework using the Go programming language (https://golang.org/) for robotics, physical computing, and the Internet of

The Hybrid Group 7.9k Aug 9, 2022
A Go client for Google IoT Core

IoT A simple framework for implementing a Google IoT device. This package makes use of the context package to handle request cancelation, timeouts, an

Andrew Young 59 Jul 11, 2022
Gobot - Golang framework for robotics, drones, and the Internet of Things (IoT)

Gobot (https://gobot.io/) is a framework using the Go programming language (https://golang.org/) for robotics, physical computing, and the Internet of Things.

The Hybrid Group 7.9k Aug 7, 2022
An embeddable lightweight Go/Golang MQTT broker(server) for IoT.

Snple MQTT 简体中文 Note: The API of this library is still unstable and has not been sufficiently tested, please do not use it in production environments.

null 8 Jun 1, 2022
🐼 IoT worm written in pure golang.

GoriaNet Most powerfull cross compiler (27arch). Kill process by port and check for duplicate instance. Killing process by port. Cross compiler. Infor

Ѵιcнч 66 Aug 7, 2022
Whichip: discover (IoT) device's IP in local network

whichip: discover (IoT) device's IP in local network Install On (IoT) Device wget -O install.sh

Jingchao Hu 1 Dec 8, 2021
Exploring and comparing different IOT messaging protocols / transports.

IOT Messaging Protocols Blynk https://blynk.io/ A fully integrated suite of IoT software Device provisioning Sensor data visualization Remote control

Alexander Ustyugov 0 Jan 2, 2022
Project Flogo is an open source ecosystem of opinionated event-driven capabilities to simplify building efficient & modern serverless functions, microservices & edge apps.

Project Flogo is an Open Source ecosystem for event-driven apps Ecosystem | Core | Flows | Streams | Flogo Rules | Go Developers | When to use Flogo |

TIBCO Software Inc. 2.1k Aug 11, 2022
Lg-ess-mqtt - MQTT Firmware Extension for 1st generation LG ESS BESS

lg-ess-mqtt This projects is a firmware extension for the 1st generation LG ESS

Steffen Vogel 0 Jan 10, 2022
The open source public cloud platform. An AWS alternative for the next generation of developers.

M3O M3O is an open source public cloud platform. We are building an AWS alternative for the next generation of developers. Overview AWS was a first ge

Micro Services 2.2k Aug 13, 2022
An Open-Source Platform for Quantified Self & IoT

Heedy Note: Heedy is currently in alpha. You can try it out by downloading it from the releases page, but there is no guarantee that future versions w

Heedy 343 Aug 12, 2022
IoT Manager: use IoT platforms with Mender

Mender: Azure IoT Manager: use Azure IoT with Mender General Mender is an open source over-the-air (OTA) software updater for embedded Linux devices.

Mender 0 Jan 10, 2022
💡 A Distributed and High-Performance Monitoring System. The next generation of Open-Falcon

夜莺简介 夜莺是一套分布式高可用的运维监控系统,最大的特点是混合云支持,既可以支持传统物理机虚拟机的场景,也可以支持K8S容器的场景。同时,夜莺也不只是监控,还有一部分CMDB的能力、自动化运维的能力,很多公司都基于夜莺开发自己公司的运维平台。开源的这部分功能模块也是商业版本的一部分,所以可靠性有保

DiDi 5k Aug 11, 2022
Next generation distributed, event-driven, parallel config management!

mgmt: next generation config management! About: Mgmt is a real-time automation tool. It is familiar to existing configuration management software, but

James 3k Aug 6, 2022
A next-generation testing tool. Orion provides a powerful DSL to write and automate your acceptance tests

Orion is born to change the way we implement our acceptance tests. It takes advantage of HCL from Hashicorp t o provide a simple DSL to write the acceptance tests.

Wesovi Labs 43 Jul 16, 2022
:paw_prints: Creeper - The Next Generation Crawler Framework (Go)

About Creeper is a next-generation crawler which fetches web page by creeper script. As a cross-platform embedded crawler, you can use it for your new

Plutonist 769 Jul 6, 2022
🐶 Next generation building tool for nothing

Oscar ?? Next generation building tool for nothing Motivation Imitation is the sincerest form of flattery. Oscar is yet another nonsense activity gene

dongdong 68 Dec 9, 2021
Tarmac is a unique framework designed for the next generation of distributed systems

Framework for building distributed services with Web Assembly

Benjamin Cane 206 Aug 5, 2022
This is the next generation Go based Airbyte CLI.

Airbyte CLI This is the next generation Go based Airbyte CLI. Contents Setup Configuration as YAML Usage get search check logs export create Setup Clo

Harshith Mullapudi 23 Jul 15, 2022
Elkeid is a Cloud-Native Host-Based Intrusion Detection solution project to provide next-generation Threat Detection and Behavior Audition with modern architecture.

Elkeid is a Cloud-Native Host-Based Intrusion Detection solution project to provide next-generation Threat Detection and Behavior Audition with modern architecture.

Bytedance Inc. 1.3k Aug 14, 2022
lmap (LinuxHub's Nmap) is the nmap next generation pro plus max

lmap lmap (LinuxHub's Nmap) is the nmap next generation pro plus max, made by 浪神 (from THE GREAT LinuxHub). LICENSE Copyright (C) <2021> <LinuxHub-Gr

LinuxHub 4 Mar 29, 2022
hostkey generation for your next golang ssh server

hostkeys A host key manager for your golang ssh daemons hostkeys will manage private keys for an ssh.ServerConfig. It creates missing private keys if

Kristian Mide 15 Jul 3, 2022
HttpRunner+ is the next generation of HttpRunner, written in golang

hrp (HttpRunner+) hrp is a golang implementation of HttpRunner. Ideally, hrp will be fully compatible with HttpRunner, including testcase format and u

HttpRunner 80 Aug 7, 2022