auto

package
v1.801.437 Latest Latest
Warning

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

Go to latest
Published: Aug 4, 2026 License: Apache-2.0 Imports: 14 Imported by: 0

Documentation

Overview

Package auto is Hanzo Auto: build a flow from triggers and actions, publish it, and watch every run.

It is durable workflow automation — flows built from trigger/action pieces, executed as durable runs on the hanzo tasks plane.

PRODUCT-REPO MODEL. The product lives in github.com/hanzoai/auto (native Go: hanzoai/base for storage+HTTP, hanzoai/tasks for durable execution, an embedded React canvas). This subsystem does NOT reimplement any of it: every op is a TYPED PASSTHROUGH to the auto service over its HTTP seam — the same posture apps/flow takes for its Python product. cloud adds exactly three things: IAM auth, the tenant boundary, and the unified surface (OpenAPI/MCP/CLI/SDK projection).

THE HONEST SLICE. hanzoai/openapi once authored 50 paths for this product (Activepieces-shaped, "same surface as Hanzo Flow") and deleted them as UNSERVED — nothing answered them anywhere. What is mounted here is what the product's v2 server GENUINELY answers today, each op proven against a live auto backend running the real engine: flows CRUD, publish, asynchronous runs that reach completed/failed with real output, the piece catalog, and a reachability lens. Everything else gets NO route, and typed_wire_test.go pins that refusal ledger so reviving a family is a deliberate edit.

TENANT ISOLATION. The org is the VALIDATED principal's org, and it is never an In field: principal.OrgFrom reads what cloud.Bridge parked from principal.Org. The product's own auth contract is gateway-minted identity: its routes scope every row by the X-Org-Id header and answer 401 without one. cloud IS that gateway: send stamps the validated org onto every upstream call, so the product's per-org scoping (its projects table, one row per org) does the isolation and a foreign id answers 404 without leaking existence. The auto Service must stay cluster-private — it trusts the header, so this subsystem is its only legitimate door.

FAIL-CLOSED. No validated principal → 403 before any upstream byte. An upstream 401 means the org header did not survive the seam — a deployment fault reported 503, never a caller-side auth bug. An unreachable upstream is 503; its 5xx are 502.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Mount

func Mount(app cloud.Router, deps cloud.Deps) error

Mount wires /v1/auto/* onto app. The subsystem holds no store and runs no goroutine: it resolves the caller's org per request and proxies to the auto service, which owns all workflow data.

Types

This section is empty.

Jump to

Keyboard shortcuts

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