一键导入
dataflow
Kailash DataFlow (Ruby/Magnus) — MANDATORY for DB/CRUD/bulk/migrations. Raw SQL/ORMs BLOCKED.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Kailash DataFlow (Ruby/Magnus) — MANDATORY for DB/CRUD/bulk/migrations. Raw SQL/ORMs BLOCKED.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Claude Code architecture — artifact design, context, agentic patterns. For CC audit/build.
Kailash Ruby SDK — gem setup, workflows, nodes, runtime, Magnus FFI bindings.
Kailash Nexus (Ruby) — MANDATORY for API+CLI+MCP. Direct Rack/Sinatra BLOCKED.
Kailash Kaizen (Ruby) — MANDATORY for AI agents/RAG/signatures. Raw LLM clients BLOCKED.
Kailash MCP (Ruby) — server, client, tools, resources, auth, transports. For AI agent integration.
Kailash deployment + Git — PyPI publish, CI/CD, wheels, version bumps, multi-package.
| name | dataflow |
| description | Kailash DataFlow (Ruby/Magnus) — MANDATORY for DB/CRUD/bulk/migrations. Raw SQL/ORMs BLOCKED. |
DataFlow is a zero-config database framework built on Kailash Core SDK that automatically generates workflow nodes from database models. The Ruby gem wraps the Rust DataFlow engine via native extensions.
gem install kailash-dataflow
Or in Gemfile:
gem "kailash-dataflow"
require "kailash/dataflow"
db = Kailash::DataFlow.new do |config|
config.database_url = ENV["DATABASE_URL"]
config.auto_migrate = true
end
# Define model via DSL
db.model "User" do |m|
m.string :name
m.string :email
m.boolean :active, default: true
end
db.initialize!
# Express API -- direct CRUD, no workflow overhead
user = db.express.create("User", name: "Alice", email: "alice@example.com")
found = db.express.read("User", user["id"])
users = db.express.list("User", filter: { active: true })
count = db.express.count("User")
db.express.update("User", user["id"], name: "Bob")
db.express.delete("User", user["id"])
Use WorkflowBuilder only when you need multiple nodes with data flow between them.
require "kailash"
require "kailash/dataflow"
registry = Kailash::Registry.new
builder = Kailash::WorkflowBuilder.new
# Multi-node workflow with connections
builder.add_node("User_Create", "create_user", {
"data" => { "name" => "John", "email" => "john@example.com" }
})
# Execute with block form (recommended for resource cleanup)
workflow = builder.build(registry)
Kailash::Runtime.open(registry) do |rt|
result = rt.execute(workflow, {})
user_id = result.results["create_user"]["result"]
end
workflow.close
Each model definition generates:
{Model}_Create - Create single record{Model}_Read - Read by ID{Model}_Update - Update record{Model}_Delete - Delete record{Model}_List - List with filters{Model}_Upsert - Insert or update (atomic){Model}_Count - Efficient COUNT(*) queries{Model}_BulkCreate - Bulk insert{Model}_BulkUpdate - Bulk update{Model}_BulkDelete - Bulk delete{Model}_BulkUpsert - Bulk upsertdb.model "Product" do |m|
m.string :name, null: false
m.string :sku, unique: true
m.decimal :price, precision: 10, scale: 2
m.integer :quantity, default: 0
m.boolean :active, default: true
m.timestamp :created_at
m.timestamp :updated_at
end
Supported field types: string, integer, boolean, decimal, float, text, timestamp, date, json.
result.results["node_id"]["result"]db.express.create("User", name: "Alice")| Database | Type | Nodes/Model | Driver |
|---|---|---|---|
| PostgreSQL | SQL | 11 | sqlx (via FFI) |
| MySQL | SQL | 11 | sqlx (via FFI) |
| SQLite | SQL | 11 | sqlx (via FFI) |
The Ruby gem delegates all database operations to the Rust sqlx engine via native extensions. No Ruby database drivers are required.
require "kailash/dataflow"
require "kailash/nexus"
db = Kailash::DataFlow.new do |config|
config.database_url = ENV["DATABASE_URL"]
end
db.model "User" do |m|
m.string :name
m.string :email
end
# Auto-generates API + CLI + MCP
nexus = Kailash::Nexus.new(db.workflows)
nexus.run(port: 8000)
require "kailash"
require "kailash/dataflow"
db = Kailash::DataFlow.new do |config|
config.database_url = ENV["DATABASE_URL"]
end
# Use db-generated nodes in custom workflows
registry = Kailash::Registry.new
builder = Kailash::WorkflowBuilder.new
builder.add_node("User_Create", "user1", { "data" => { "name" => "Alice" } })
# config.ru
require "kailash/dataflow"
db = Kailash::DataFlow.new do |config|
config.database_url = ENV["DATABASE_URL"]
end
db.initialize!
# DataFlow is available to all Rack applications
use Kailash::DataFlow::Middleware, dataflow: db
run MyApp
Use DataFlow when you need to:
For DataFlow-specific questions, invoke:
dataflow-specialist - DataFlow implementation and patternstesting-specialist - DataFlow testing strategies skill - Choose between Core SDK and DataFlow