autokitteh

module
v0.5.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 9, 2024 License: Apache-2.0

README

Go Reference Go Report Card

autokitteh

autokitteh is an open-source platform for developing and managing automated, reliable, durable, long-running workflows with simple tools and familiar languages.

It is a developer-first alternative to no-code/low-code platforms (such as Zapier, make.com, etc.) and a durable execution platform (a complement to Temporal). It offers tools and a simplified abstraction for crafting reliable, long-running workflows without sacrificing the power and flexibility of direct code manipulation.

autokitteh promotes a developer-first approach, catering to both inexperienced beginners and busy experts, with a wide variety of skill sets and use cases:

  • CI/CD pipelines and DevOps processes
  • Infrastructure and backend systems orchestration
  • IT, ops, and cybersecurity SOAR runbooks
  • Cross-system syncs and integrations
  • Sales, marketing, and back-office automations

autokitteh hides away the toil and provides advanced engineering features out-of-the-box:

  • Secure, seamless, bidirectional API integration
  • User-friendly management, monitoring, and debugging
  • Standalone and distributed system reliability
  • Automated recovery without state loss
  • Built-in durability for long-running workflows
  • Readiness for world-class scalability needs
  • Versatile deployment strategies

Here's a detailed look at how autokitteh works.

User Instructions

Getting started:

This open-source project can be used mostly for self-hosted and on-prem installations. Our managed cloud iPaaS offering is currently in beta - for details, contact us at meow@autokitteh.com.

Build From Source

The following requires Go version 1.22 or greater.

$ git clone https://github.com/autokitteh/autokitteh.git
$ cd autokitteh
$ make ak
$ cp ./bin/ak /usr/local/bin
$ ak version

Build Requirements (Full Builds Only)

  • buf
  • docker
  • go >= 1.22
  • golangci-lint (auto-downloaded during builds if missing)
  • shellcheck (auto-pulled via docker during builds if missing)
  • gofumpt
  • gotestsum (used by Makefile intead of "go test" if detected)
  • jq (for advanced output formatting)
  • atlasgo (for new DB migrations)

Contact Us

Directories

Path Synopsis
backend
svc
cmd
ak
AK is the autokitteh command-line interface and local server.
AK is the autokitteh command-line interface and local server.
docgen
DocGen is an internal tool that exports metadata about the autokitteh CLI tool's commands, and the server's integration APIs, as Docusaurus markdown files for autokitteh's documentation website.
DocGen is an internal tool that exports metadata about the autokitteh CLI tool's commands, and the server's integration APIs, as Docusaurus markdown files for autokitteh's documentation website.
integrations
aws
http
Adapted from https://github.com/qri-io/starlib/blob/master/http/http.go
Adapted from https://github.com/qri-io/starlib/blob/master/http/http.go
internal/extrazap
Package extrazap provides helper functions for initializing Zap loggers, as well as associating and extracting them with/from context objects.
Package extrazap provides helper functions for initializing Zap loggers, as well as associating and extracting them with/from context objects.
slack/api/apps
Package apps is a lightweight wrapper over the "apps" methods in Slack's Web API: https://api.slack.com/methods?filter=apps.
Package apps is a lightweight wrapper over the "apps" methods in Slack's Web API: https://api.slack.com/methods?filter=apps.
slack/api/auth
Package auth is a lightweight wrapper over the "auth" methods in Slack's Web API: https://api.slack.com/methods?filter=auth.
Package auth is a lightweight wrapper over the "auth" methods in Slack's Web API: https://api.slack.com/methods?filter=auth.
slack/api/bookmarks
Package bookmarks is a lightweight wrapper over the "bookmarks" methods in Slack's Web API: https://api.slack.com/methods?filter=bookmarks.
Package bookmarks is a lightweight wrapper over the "bookmarks" methods in Slack's Web API: https://api.slack.com/methods?filter=bookmarks.
slack/api/bots
Package bots is a lightweight wrapper over the "bots" methods in Slack's Web API: https://api.slack.com/methods?filter=bots.
Package bots is a lightweight wrapper over the "bots" methods in Slack's Web API: https://api.slack.com/methods?filter=bots.
slack/api/chat
Package chat is a lightweight wrapper over the "chat" methods in Slack's Web API: https://api.slack.com/methods?filter=chat.
Package chat is a lightweight wrapper over the "chat" methods in Slack's Web API: https://api.slack.com/methods?filter=chat.
slack/api/conversations
Package conversations is a lightweight wrapper over the "conversations" methods in Slack's Web API: https://api.slack.com/methods?filter=conversations.
Package conversations is a lightweight wrapper over the "conversations" methods in Slack's Web API: https://api.slack.com/methods?filter=conversations.
slack/api/reactions
Package reactions is a lightweight wrapper over the "reactions" methods in Slack's Web API: https://api.slack.com/methods?filter=reactions.
Package reactions is a lightweight wrapper over the "reactions" methods in Slack's Web API: https://api.slack.com/methods?filter=reactions.
slack/api/users
Package users is a lightweight wrapper over the "users" methods in Slack's Web API: https://api.slack.com/methods?filter=users.
Package users is a lightweight wrapper over the "users" methods in Slack's Web API: https://api.slack.com/methods?filter=users.
slack/events
Package events implements handlers for Slack's Events API: see https://api.slack.com/apis/connections/events-api and https://api.slack.com/events?ref=apis&filter=Events.
Package events implements handlers for Slack's Events API: see https://api.slack.com/apis/connections/events-api and https://api.slack.com/events?ref=apis&filter=Events.
internal
backend/akmodules/time
This closely follows https://github.com/google/starlark-go/tree/master/lib/time.
This closely follows https://github.com/google/starlark-go/tree/master/lib/time.
backend/gormkitteh
TODO: Make public?
TODO: Make public?
backend/sessions/sessioncalls
Adapted from https://github.com/dynajoe/temporal-terraform-demo/blob/main/heartbeat/heartbeat.go.
Adapted from https://github.com/dynajoe/temporal-terraform-demo/blob/main/heartbeat/heartbeat.go.
kittehs
Taken from https://github.com/egtann/strip-wildcard-prefix/blob/main/strip_wildcard.go.
Taken from https://github.com/egtann/strip-wildcard-prefix/blob/main/strip_wildcard.go.
manifest
Description of the manifest schema.
Description of the manifest schema.
resolver
Package resolver contains functions that resolve names and ID strings of autokitteh entities to their concrete SDK types.
Package resolver contains functions that resolve names and ID strings of autokitteh entities to their concrete SDK types.
xdg
Package XDG manages autokitteh's configuration and data directories, which are used to store optional files such as ".env", "config.yaml" (see the CLI command "ak config"), "fake_secrets_manager.json" (if you opt-out of using a real secrets manager), SaaS client credentials, etc.
Package XDG manages autokitteh's configuration and data directories, which are used to store optional files such as ".env", "config.yaml" (see the CLI command "ak config"), "fake_secrets_manager.json" (if you opt-out of using a real secrets manager), SaaS client credentials, etc.
runtimes
sdk
sdktypes
Package sdktypes contains all the data types used by the autokitteh SDK.
Package sdktypes contains all the data types used by the autokitteh SDK.
tests
web

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL