Documentation
¶
Overview ¶
Package cloud is the unified Hanzo Cloud binary per HIP-0106.
One Go binary mounts every Hanzo-native subsystem (iam, base, kms, commerce, ai, gateway, o11y, vfs, mq, dns, amqp, mcp, ...) via the canonical Mount(app *zip.App, deps cloud.Deps) error contract. Brand, enabled subsystems, and tenant scope are deployment configuration; the binary is the same artifact across every white-label deployment.
Per HIP-0106 — github.com/hanzoai/HIPs/blob/main/HIPs/hip-0106-unified-hanzo-cloud-binary.md.
Index ¶
- Constants
- Variables
- func AuditTrail(rec *audit.Recorder) zip.Handler
- func BillingGate(m *metering.Client, price func(c *zip.Ctx) int64) zip.Handler
- func ClientIP(c *zip.Ctx) string
- func DefaultPrice(c *zip.Ctx) int64
- func DenyResource(c *zip.Ctx, err error) error
- func IssuerForBrand(id string) string
- func MountAll(app any, cfg *Config, deps Deps) error
- func Register(name string, order int, mount MountFunc)
- func ResourceFeeCents(envPrefix, kind string) int64
- func SanitizeIdentity(v *identityValidator, adminOrg string) zip.Handler
- func Serve(enable []string) error
- type AIClient
- type BaseClient
- type BrandInfo
- type ChatRequest
- type ChatResponse
- type Claims
- type CommerceClient
- type Config
- type Counter
- type DBHandle
- type Deps
- type IAMClient
- type IntentRequest
- type IntentResponse
- type IntentStatus
- type KMSClient
- type LicenseEntitlement
- type MQClient
- type MountFunc
- type MountSpec
- type O11yClient
- type Org
- type PaymentsClient
- type ResourceMeter
- type Span
- type TenantConfig
- type Timing
- type User
- type VFSClient
- type VaultChargeRequest
- type VaultChargeResponse
- type VaultClient
Constants ¶
const DefaultBrand = "hanzo"
DefaultBrand is the fallback brand when CLOUD_BRAND is unknown.
const DefaultResourceFeeCents int64 = 100
DefaultResourceFeeCents is the fallback flat provision/create fee (in cents) when no operator override is set — $1.00, so "every service costs money" holds out of the box. It is a configurable POLICY default, not a fabricated market price: ops sets the real number per deployment/kind via ResourceFeeCents's env knobs. Set a kind to 0 to make it free (and therefore un-gated, mirroring the edge gate's price==0 pass-through).
Variables ¶
var Registry []MountSpec
Registry is the in-process subsystem registry. Subsystems register via init() functions in their respective packages OR cmd/cloud/main.go can explicitly enumerate them. Either pattern works.
Functions ¶
func AuditTrail ¶ added in v1.786.1
AuditTrail returns the audit middleware bound to rec. A nil rec makes it a no-op passthrough so callers always Use() it unconditionally.
func BillingGate ¶ added in v1.786.1
BillingGate returns a zip middleware that gates every request on the caller's commerce balance and records usage for priced paths.
Order of operations:
- price(c) == 0 AND not gated → pass straight through (free path).
- Authorize(ctx, identity) BEFORE c.Next(): nil → allow. ErrInsufficientBalance → 402 insufficient_balance, c.Next() NOT called. other error → 503 balance_unavailable, c.Next() NOT called (fail-closed; the client returns nil here when built FailOpen, so this branch never fires in fail-open mode).
- c.Next() runs the handler chain.
- After a successful chain, if price(c) > 0, fire `go m.Record(...)` so the debit never blocks or corrupts the response the user already received.
When m is nil or not configured (no commerce URL) the gate is a no-op: it returns c.Next() directly so an unconfigured deployment is never blocked. price must not be nil; pass DefaultPrice.
func ClientIP ¶ added in v1.786.1
ClientIP extracts the originating client IP from X-Forwarded-For (the gateway sets it); the left-most entry is the real client. Shared by the edge gate and the resource meter so usage records carry a consistent client_ip.
func DefaultPrice ¶ added in v1.786.1
DefaultPrice is cloud's per-request price (in cents) for the edge gate.
It returns 0 — meaning "do not gate, do not charge" — for:
- health/liveness probes (every /v1/<svc>/health and bare /health),
- /v1/ai/* : the ai subsystem self-meters its own LLM token costs to commerce; charging again here would DOUBLE-BILL,
- other subsystems that already self-meter their units (commerce billing itself, o11y telemetry, mcp tool dispatch),
and a non-zero flat price only on the generic agent/compute edge that has no finer-grained meter of its own. Tune per path as cloud grows its own metered surfaces; keep self-metering subsystems at 0 to preserve single-charge accounting.
func DenyResource ¶ added in v1.786.1
DenyResource renders the Gate denial outcomes as the SAME JSON the edge gate returns (denyBilling), so every Hanzo surface emits one error contract: 402 insufficient_balance / 503 balance_unavailable.
func IssuerForBrand ¶ added in v1.786.1
IssuerForBrand returns the canonical OIDC issuer for a brand id.
func MountAll ¶
MountAll iterates the registry in order and calls Mount() on each enabled subsystem.
func ResourceFeeCents ¶ added in v1.786.1
ResourceFeeCents resolves the flat create fee (in cents) for kind from operator config, most specific first:
<envPrefix>_<KIND> e.g. CLOUD_PROVISION_FEE_CENTS_SQL=500 <envPrefix> e.g. CLOUD_PROVISION_FEE_CENTS=100 (all kinds) DefaultResourceFeeCents ($1.00)
A clearly-named, configurable policy knob — never a fabricated price. A value of 0 makes the kind free (and un-gated). Negative/invalid values are ignored (fall through), so a typo can never make a paid resource free by accident.
func SanitizeIdentity ¶ added in v1.786.1
SanitizeIdentity returns the identity-trust-boundary middleware.
Per request:
- ALWAYS delete every header in authorityHeaders (a client copy never survives — this alone kills X-User-IsAdmin forgery).
- Validate a Bearer / Basic / session-cookie JWT, if present: global admin (claims.isAdmin && owner == adminOrg) → X-User-IsAdmin=true; X-Org-Id = the requested org when present (admin org-switch), else owner. any other principal (incl. org admins, normal users) → X-Org-Id pinned to owner; NO admin. A client org cannot widen scope.
- No / invalid / opaque-API-key credential: → NO admin (forgery dead), and the client's X-Org-Id is restored for the Phase-1 data path (residual below).
PHASE-1 RESIDUAL (documented; not a regression vs. today): with no validatable bearer, the client X-Org-Id is passed through for DATA scoping. cloud's data plane has no session of its own yet ("Auth stays gateway-owned in Phase 1") and the console browser data path depends on this header. So a direct-to-pod caller can still SELECT a tenant for DATA reads. Closing that needs the data path to carry a bearer universally OR the NetworkPolicy locked to gateway-only (which would break console2's legitimate direct in-cluster BFF) — Phase-2. The ADMIN boundary (this fix's P0) is closed on every path regardless, because X-User-IsAdmin is NEVER restored from client input.
FAIL MODE. If the validator can't verify a token (JWKS unreachable on a cold cache, issuer/audience misconfigured), the request resolves anonymous: admin fails SECURE (legit admins get 403 until config is corrected — a bounded availability cost), while org scoping is unaffected (the gateway-minted X-Org-Id is restored on the no-principal path). Never fails OPEN to admin.
func Serve ¶
Serve boots the canonical compose root and mounts the selected subsystems.
This is the ONE place the cloud-server body lives. cmd/cloud (the full fused surface) and every `hanzo <svc>` subcommand share it; no boot logic is duplicated per entrypoint.
enable==nil ⇒ honor cfg.Enable from flags/env (cloud mode; empty = all). enable!=nil ⇒ force exactly that set (single-service mode), overriding --enable so `hanzo kms` is unambiguous.
Serve registers the HIP-0106 liveness contract (GET /v1/<name>/health for every enabled subsystem) before MountAll, runs the canonical middleware pipeline (Recover → RequestID → Logger), and shuts down gracefully on SIGINT/SIGTERM.
Types ¶
type BaseClient ¶
type BaseClient = types.BaseClient
type BrandInfo ¶ added in v1.786.1
type BrandInfo struct {
// ID is the canonical brand key.
ID string
// IAMIssuer is the OIDC issuer (JWKS source) for this brand — the value the
// JWT `iss` claim must equal and whose /v1/iam/.well-known/jwks signs tokens.
IAMIssuer string
// Domain is the brand's primary marketing/site domain (for response scoping).
Domain string
}
BrandInfo is the PUBLIC per-brand identity used for token validation + URL scoping. No secrets.
type ChatRequest ¶
type ChatRequest = types.ChatRequest
type ChatResponse ¶
type ChatResponse = types.ChatResponse
type CommerceClient ¶
type CommerceClient = types.CommerceClient
type Config ¶
type Config struct {
// Enable lists subsystems to mount this run. Empty = all enabled.
// Example: --enable=iam,base,kms,commerce,ai,gateway,o11y
Enable []string
// Brand is the white-label brand identifier.
Brand string
// Env is the deployment environment (mainnet|testnet|devnet) per the 3-env
// split. Billing fires in EVERY env — test/dev meter against their own
// sandbox commerce/Square, never free — so Env is an attribution label, not
// a gate. Empty when the operator has not set CLOUD_ENV.
Env string
// Domain is the deployment's primary public domain.
Domain string
// IAMIssuer is the JWKS issuer for JWT validation (usually iam.hanzo.ai).
IAMIssuer string
// AdminOrg is the IAM org slug whose members are GLOBAL admins (IAM's
// IsGlobalAdmin: owner == AdminOrg). The in-binary identity sanitizer grants
// admin authority — the c.IsAdmin() that gates /v1/admin/* writes, the
// /v1/pricing/sync trigger, and the literal "admin" tenant bucket — ONLY to a
// validated principal from this org, never to a raw header. Env IAM_ADMIN_ORG
// (default "admin"), matching the gateway's admin-guard.
AdminOrg string
// JWKSURL is the JSON Web Key Set endpoint the identity sanitizer fetches IAM
// signing keys from. Defaults to {IAMIssuer}/v1/iam/.well-known/jwks
// (HIP-0111); override with CLOUD_JWKS_URL.
JWKSURL string
// JWTAudiences is the audience allowlist the sanitizer accepts (OR semantics).
// Defaults to the known Hanzo IAM client_ids; override with CLOUD_JWT_AUDIENCES
// (comma-separated) or GATEWAY_ALLOWED_AUDIENCES.
JWTAudiences []string
// KMSMasterKeyRef is the base64-encoded 32-byte KMS master key (KEK) the
// embedded luxfi/kms store seals every secret's DEK under. The operator
// injects it from a K8s Secret as CLOUD_KMS_MASTER_KEY_REF; cloud reads it
// ONLY from env (never from the store it hosts — the bootstrap chicken-and-egg)
// and never logs it. Empty ⇒ the KMS subsystem runs fail-closed (health-only).
KMSMasterKeyRef string
// KMSMPCAddr / KMSMPCVaultID configure the MPC threshold-signing backend for
// KMS Sign. Both empty (the default) ⇒ Sign fails closed with a clear error;
// signing is never fabricated. Set via CLOUD_KMS_MPC_ADDR / CLOUD_KMS_MPC_VAULT_ID.
KMSMPCAddr string
KMSMPCVaultID string
// DataDir is the on-disk data root.
DataDir string
// ListenAddr is the public HTTP listener (default :8080).
ListenAddr string
// ZAPListenAddr is the ZAP-RPC listener (default :9653).
ZAPListenAddr string
// ZAPWebOrigins is the WebSocket Origin allowlist for the browser-facing
// /zap ZAP plane (the SPA hosts that may open a ZAP-over-WS connection).
// Empty == same-origin only. Set via CLOUD_ZAP_WEB_ORIGINS (comma-sep).
ZAPWebOrigins []string
// HealthListenAddr is the health/metrics listener (default :9090).
HealthListenAddr string
// AdminListenAddr is the admin endpoint (default :8081, gated by IAM admin).
AdminListenAddr string
// Endpoints for out-of-process subsystems (payments, vault). Empty
// means the subsystem is disabled OR the deployment expects a default
// service-discovery resolution.
PaymentsZAPAddr string
VaultZAPAddr string
// Billing gate (commerce metering) — the request-edge balance gate.
//
// CommerceHTTPURL is the commerce service base over HTTP (the metering
// client speaks net/http, not ZAP). Empty disables the gate entirely.
//
// CommerceServiceToken is the admin-scoped commerce S2S token. It is a
// SECRET sourced from a KMS-backed secret the operator injects as
// COMMERCE_SERVICE_TOKEN — never hard-coded or read from disk here.
//
// BillingFailOpen flips the gate to allow-on-error. Default is
// fail-closed (deny when balance can't be determined), matching the
// gateway. Set only where availability outranks billing.
CommerceHTTPURL string
CommerceServiceToken string
BillingFailOpen bool
// ZAP RPC endpoints for subsystems that are NOT enabled in this
// process but are still needed by an enabled subsystem. Empty
// means "no remote endpoint" — the client falls back to the
// disabled stub which fails closed with a clear error.
//
// Convention: <subsystem>.<env>.<deployment>.svc:9653 — the same
// inter-subsystem listener port the unified binary exposes. The
// transport is hanzoai/zap, never JSON.
IAMZAPAddr string
KMSZAPAddr string
BaseZAPAddr string
CommerceZAPAddr string
AIZAPAddr string
O11yZAPAddr string
VFSZAPAddr string
MQZAPAddr string
}
Config is the cloud binary's startup configuration. Drives which subsystems mount, what brand surface to serve, and where data lives.
func LoadConfig ¶
func LoadConfig() *Config
LoadConfig reads flags + env into a Config. Flags override env.
type Deps ¶
type Deps struct {
// Logger is the canonical Hanzo logger (luxfi/log). Subsystems derive
// scoped child loggers from this.
Logger luxlog.Logger
// Brand is the white-label brand identifier for this deployment.
// Values: "hanzo", "lux", "zoo", "osage", "pars", or any customer brand.
Brand string
// Env is the deployment environment (mainnet|testnet|devnet). Subsystems
// that meter usage stamp it for per-env attribution; it never gates or
// bypasses billing (every env bills against its own commerce ledger).
Env string
// Domain is the deployment's primary domain (e.g. "api.hanzo.ai",
// "api.osage.cloud"). Subsystems use this to scope URLs in responses.
Domain string
// IAMIssuer is the canonical OIDC issuer (JWKS source) for this brand,
// resolved from Brand via the white-label registry unless pinned by the
// operator. Subsystems validate JWT `iss` + signatures against
// {IAMIssuer}/v1/iam/.well-known/jwks (HIP-0111). One issuer per deployment.
IAMIssuer string
// DataDir is the per-deployment data root. Per-tenant SQLite files
// land at {DataDir}/orgs/{orgSlug}/{service}.db per HIP-0302.
DataDir string
// Subsystem clients — populated by BuildDeps based on enabled subsystems.
// Each is an interface with both in-process and ZAP-RPC implementations.
IAM IAMClient
KMS KMSClient
Base BaseClient
Commerce CommerceClient
AI AIClient
O11y O11yClient
VFS VFSClient
MQ MQClient
// Payments + Vault stay out-of-process (PCI scope isolation per
// HIP-0106). These clients always resolve to ZAP-RPC implementations,
// never in-process.
Payments PaymentsClient
Vault VaultClient
// Metering is the canonical commerce billing client used by the
// request-edge BillingGate. It speaks net/http to commerce's billing API
// (separate from the ZAP Commerce client above, which is for typed
// inter-subsystem calls). Nil or not-Enabled() makes the gate a no-op.
Metering *metering.Client
// Audit is the tamper-evident, append-only audit trail Recorder (FedRAMP AU-*
// / SOC 2 CC-*). Serve constructs it once, wires the AuditTrail middleware to
// it, and hands it here so the /v1/admin/audit query + /v1/admin/audit/verify
// endpoints read the SAME store the middleware writes. Nil makes the audit
// middleware a no-op and the query endpoint fall back to the IAM proxy (an
// unconfigured deployment is never blocked). See audit/ and audit_middleware.go.
Audit *audit.Recorder
}
Deps is the shared dependency surface passed to every subsystem's Mount(app, deps) function. Subsystems consume only what they need.
In-process: each Client below resolves to a direct Go method-call implementation. Out-of-process (legacy split deploys): the same Client resolves to a ZAP-RPC implementation. Subsystem code does not branch on which mode; the interface is the contract.
func BuildDeps ¶
BuildDeps constructs the Deps used by every subsystem's Mount(app, deps).
Wiring rules per HIP-0106 inter-subsystem contract:
If the subsystem is enabled in this process, the Client field is left nil here. The subsystem's own Mount() will install a typed in-process Client into Deps via the SetClient helpers exposed by this package. (Subsystem Mounts run after BuildDeps; they have full access to construct their concrete implementation, and the resulting object goes back into Deps for everyone else to call.)
If the subsystem is disabled but cfg has a non-empty ZAP RPC endpoint for it, the Client field gets a ZAP-RPC stub targeting that endpoint. Subsystem code calls deps.X.Foo(...) without knowing the call goes over the wire.
If the subsystem is disabled AND there is no endpoint, the Client field gets a "disabled" stub that fails closed with a clear error. Mount-time consumers detect this with clients.IsDisabled(err) and log a friendly "dep X needed by Y not configured" message.
JSON does not appear in any of these paths. Inter-subsystem calls are ZAP-typed Go values either via direct method dispatch (mode 1) or via ZAP RPC over the wire (mode 2). JSON happens only at the gateway/ingress edge, through the hanzoai/zip jsonenc helper.
Payments and Vault are special: they are NEVER in-process per HIP-0106 solo-vault CDE. Their clients always resolve via clients.PaymentsRPCAt / clients.VaultRPCAt; the disabled stub fires when no endpoint is configured.
type IntentRequest ¶
type IntentRequest = types.IntentRequest
type IntentResponse ¶
type IntentResponse = types.IntentResponse
type IntentStatus ¶
type IntentStatus = types.IntentStatus
type LicenseEntitlement ¶
type LicenseEntitlement = types.LicenseEntitlement
type MountFunc ¶
type MountFunc func(app any, deps Deps) error // app is *zip.App; using any here to avoid an import cycle in pkg/cloud
MountFunc is the canonical signature every subsystem exposes per HIP-0106. Each Hanzo Go service ships a top-level `Mount` symbol matching this signature; cmd/cloud/main.go imports the package and calls it.
type MountSpec ¶
MountSpec describes one subsystem registered for mounting. The Order is used when ordering matters for inter-subsystem deps (e.g. iam before authz before commerce).
type O11yClient ¶
type O11yClient = types.O11yClient
type PaymentsClient ¶
type PaymentsClient = types.PaymentsClient
type ResourceMeter ¶ added in v1.786.1
type ResourceMeter struct {
// contains filtered or unexported fields
}
ResourceMeter gates and meters per-org spend for non-LLM resource creation, reusing Deps.Metering (the single commerce billing client). Build it with NewResourceMeter. A nil meter, or one whose commerce URL is unset, makes Gate allow and Meter a no-op — so an unconfigured deployment is never blocked, exactly like BillingGate.
func NewResourceMeter ¶ added in v1.786.1
func NewResourceMeter(deps Deps, provider string) *ResourceMeter
NewResourceMeter builds a ResourceMeter from the shared deps. provider labels the recorded usage so spend is attributable to the surface that metered it.
func (*ResourceMeter) Enabled ¶ added in v1.786.1
func (rm *ResourceMeter) Enabled() bool
Enabled reports whether billing will actually enforce (a commerce URL is configured). When false, Gate allows and Meter is a no-op.
func (*ResourceMeter) Gate ¶ added in v1.786.1
Gate is the pre-create balance gate. It returns:
nil -> allow (balance positive, OR not priced,
OR billing not configured).
metering.ErrInsufficientBalance -> deny, out of funds (render 402).
other error -> balance unknown; fail-closed denies
(render 503). Fail-open returns nil.
costCents<=0 means the kind is free → no gate (mirrors BillingGate's price==0 short-circuit). org MUST be the caller's resolved slug; it is sent as the commerce user AND X-IAM-Org-Id so the CALLER's ledger is checked, overriding the client default org — the anti-cross-tenant property. The balance check honors ctx (a client disconnect/timeout cancels it).
func (*ResourceMeter) Meter ¶ added in v1.786.1
func (rm *ResourceMeter) Meter(org, kind string, amountCents int64, requestID, clientIP string)
Meter records a successful charge to the caller's org ledger. It is the ONE metering entry point for BOTH the one-time create fee AND any recurring footprint charge (storage GB-month, GPU-hour): the caller supplies the amount, so a future recurring meter reuses this same method with a usage-derived amount. No-op when billing is not configured or amountCents<=0.
The debit is fire-and-forget on a background context: the resource already exists, so the charge must never block or corrupt the response the caller received, and a request-context cancellation must not cancel the debit (mirror of BillingGate). A debit failure is logged for reconciliation, not swallowed.
type TenantConfig ¶
type TenantConfig = types.TenantConfig
type VaultChargeRequest ¶
type VaultChargeRequest = types.VaultChargeRequest
type VaultChargeResponse ¶
type VaultChargeResponse = types.VaultChargeResponse
type VaultClient ¶
type VaultClient = types.VaultClient
Source Files
¶
Directories
¶
| Path | Synopsis |
|---|---|
|
Package audit is the unified cloud binary's compliance-grade audit trail — tamper-evident, append-only, and complete over the security-relevant request surface (FedRAMP AU-* / SOC 2 CC-* controls).
|
Package audit is the unified cloud binary's compliance-grade audit trail — tamper-evident, append-only, and complete over the security-relevant request surface (FedRAMP AU-* / SOC 2 CC-* controls). |
|
Package cli is the Hanzo cloud-control CLI — the gcloud/doctl-class client half of the `hanzo` binary.
|
Package cli is the Hanzo cloud-control CLI — the gcloud/doctl-class client half of the `hanzo` binary. |
|
Package clients holds the canonical ZAP-typed inter-subsystem clients used by cloud.Deps.
|
Package clients holds the canonical ZAP-typed inter-subsystem clients used by cloud.Deps. |
|
admin
Package admin mounts the god-mode admin surface (/v1/admin/*) the Hanzo Admin Console (admin.hanzo.ai, apps/operator) calls, per the api.ts contract.
|
Package admin mounts the god-mode admin surface (/v1/admin/*) the Hanzo Admin Console (admin.hanzo.ai, apps/operator) calls, per the api.ts contract. |
|
agents
Package agents mounts the Hanzo Cloud /v1/agents surface: per-org autonomous agent definitions and their runs.
|
Package agents mounts the Hanzo Cloud /v1/agents surface: per-org autonomous agent definitions and their runs. |
|
bot
Package botsvc mounts /v1/bot/* — a reverse proxy to the in-cluster bot-gateway (the OpenAI-compatible agent gateway that owns channels, skills, and the agent API).
|
Package botsvc mounts /v1/bot/* — a reverse proxy to the in-cluster bot-gateway (the OpenAI-compatible agent gateway that owns channels, skills, and the agent API). |
|
eval
Package evalsvc mounts the Hanzo Cloud /v1/evals/* surface: a thin facade that composes two systems that ALREADY work — the console eval engine (the Langfuse v3 fork at console.hanzo.svc, whose public REST API owns Datasets, DatasetItems, Evaluators, DatasetRuns and Scores) and the in-process model gateway (the AI subsystem's OpenAI-compatible /v1/chat/completions) — into one OpenAI-style evals API.
|
Package evalsvc mounts the Hanzo Cloud /v1/evals/* surface: a thin facade that composes two systems that ALREADY work — the console eval engine (the Langfuse v3 fork at console.hanzo.svc, whose public REST API owns Datasets, DatasetItems, Evaluators, DatasetRuns and Scores) and the in-process model gateway (the AI subsystem's OpenAI-compatible /v1/chat/completions) — into one OpenAI-style evals API. |
|
exec
Package execsvc exposes the Code Interpreter ("Run Code") surface on the unified cloud-api /v1 plane, per HIP-0106.
|
Package execsvc exposes the Code Interpreter ("Run Code") surface on the unified cloud-api /v1 plane, per HIP-0106. |
|
functions
Package functions mounts the Hanzo Cloud /v1/functions surface: a per-org serverless function registry.
|
Package functions mounts the Hanzo Cloud /v1/functions surface: a per-org serverless function registry. |
|
gojahost
Package gojahost runs a Hanzo Node service's goja bundle (a self-contained, ESM-free JS file exposing globalThis.handle(req)) inside the unified cloud binary, per HIP-0106.
|
Package gojahost runs a Hanzo Node service's goja bundle (a self-contained, ESM-free JS file exposing globalThis.handle(req)) inside the unified cloud binary, per HIP-0106. |
|
kms
Package kms is the Fiber-facing subsystem that exposes the embedded luxfi/kms secrets-manager as /v1/kms/* on the unified Hanzo Cloud binary (HIP-0106).
|
Package kms is the Fiber-facing subsystem that exposes the embedded luxfi/kms secrets-manager as /v1/kms/* on the unified Hanzo Cloud binary (HIP-0106). |
|
kmsembed
Package kms embeds luxfi/kms in-process inside the unified Hanzo Cloud binary per HIP-0106 ("all Go embeds in cloud"), replacing the legacy Infisical fork.
|
Package kms embeds luxfi/kms in-process inside the unified Hanzo Cloud binary per HIP-0106 ("all Go embeds in cloud"), replacing the legacy Infisical fork. |
|
ml
Package mlsvc mounts the Hanzo Cloud /v1/ml/* and /v1/train/* surfaces: a thin, tenant-scoped bridge that turns three Kubeflow-family CustomResources into a small REST API.
|
Package mlsvc mounts the Hanzo Cloud /v1/ml/* and /v1/train/* surfaces: a thin, tenant-scoped bridge that turns three Kubeflow-family CustomResources into a small REST API. |
|
o11y
Package o11y initializes the o11y subsystem's runtime handler in the unified cloud binary.
|
Package o11y initializes the o11y subsystem's runtime handler in the unified cloud binary. |
|
paassvc
Package paassvc mounts the native, in-process Hanzo PaaS control plane at /v1/paas/*: the "one and only one way to deploy" made native to the cloud binary.
|
Package paassvc mounts the native, in-process Hanzo PaaS control plane at /v1/paas/*: the "one and only one way to deploy" made native to the cloud binary. |
|
plan
Package plansvc mounts the @hanzo/plans catalog into the unified cloud binary under /v1/plans/*, per HIP-0106.
|
Package plansvc mounts the @hanzo/plans catalog into the unified cloud binary under /v1/plans/*, per HIP-0106. |
|
plugin
Package pluginsvc is the runtime plugin loader for the unified cloud binary.
|
Package pluginsvc is the runtime plugin loader for the unified cloud binary. |
|
pricing
Admin surface for the catalog enablement overlay (global-admin only).
|
Admin surface for the catalog enablement overlay (global-admin only). |
|
product
Package productsvc exposes the read-only Search and Vector product surfaces the Hanzo console panels call at api.cloud.hanzo.ai, per HIP-0106.
|
Package productsvc exposes the read-only Search and Vector product surfaces the Hanzo console panels call at api.cloud.hanzo.ai, per HIP-0106. |
|
projectsvc
Package projectsvc is the Hanzo Cloud projects control plane: the ONE org-scoped store of buildable/deployable sites, shared by every surface that shows a user's projects.
|
Package projectsvc is the Hanzo Cloud projects control plane: the ONE org-scoped store of buildable/deployable sites, shared by every surface that shows a user's projects. |
|
prompts
Package prompts mounts the Hanzo Cloud /v1/prompts surface: a per-org, versioned prompt library.
|
Package prompts mounts the Hanzo Cloud /v1/prompts surface: a per-org, versioned prompt library. |
|
provisioning
Package provisioningsvc is the Hanzo Cloud provisioning control plane.
|
Package provisioningsvc is the Hanzo Cloud provisioning control plane. |
|
s3
Package s3 is the Fiber-facing subsystem that exposes an org-scoped S3 object-storage file manager as /v1/s3/* on the unified Hanzo Cloud binary (HIP-0106).
|
Package s3 is the Fiber-facing subsystem that exposes an org-scoped S3 object-storage file manager as /v1/s3/* on the unified Hanzo Cloud binary (HIP-0106). |
|
s3admin
Package s3admin is the ONE shared S3 access path for the unified cloud binary.
|
Package s3admin is the ONE shared S3 access path for the unified cloud binary. |
|
websearch
Package websearch exposes Hanzo-native Web Search + Scrape on the unified cloud-api /v1 plane, so hanzo.chat's web_search agent tool runs entirely on Hanzo infrastructure with NO external SaaS provider, per HIP-0106.
|
Package websearch exposes Hanzo-native Web Search + Scrape on the unified cloud-api /v1 plane, so hanzo.chat's web_search agent tool runs entirely on Hanzo infrastructure with NO external SaaS provider, per HIP-0106. |
|
cmd
|
|
|
cloud
command
cloud is the unified Hanzo Cloud binary per HIP-0106.
|
cloud is the unified Hanzo Cloud binary per HIP-0106. |
|
hanzo
command
Command hanzo is the unified Hanzo Go binary, dispatched by subcommand.
|
Command hanzo is the unified Hanzo Go binary, dispatched by subcommand. |
|
migrate-pg-to-sqlite
command
Command migrate-pg-to-sqlite copies a legacy `hanzo_cloud` PostgreSQL database into per-(org, user) SQLite files served by the Hanzo cloud orchestrator (HIP-0106).
|
Command migrate-pg-to-sqlite copies a legacy `hanzo_cloud` PostgreSQL database into per-(org, user) SQLite files served by the Hanzo cloud orchestrator (HIP-0106). |
|
internal
|
|
|
org
Package org places each organization's data on exactly one replica of the unified cloud binary, and replicates it, WITHOUT any coordinator.
|
Package org places each organization's data on exactly one replica of the unified cloud binary, and replicates it, WITHOUT any coordinator. |
|
storagelock
Package storagelock refuses to boot the canonical Hanzo cloud orchestrator against Postgres.
|
Package storagelock refuses to boot the canonical Hanzo cloud orchestrator against Postgres. |
|
Package migration ports a legacy `hanzo_cloud` PostgreSQL database into per-(org, user) SQLite files served by the Hanzo cloud orchestrator (HIP-0106).
|
Package migration ports a legacy `hanzo_cloud` PostgreSQL database into per-(org, user) SQLite files served by the Hanzo cloud orchestrator (HIP-0106). |
|
Package subsystems is the single source of truth for which Hanzo cloud subsystems are linked into a binary.
|
Package subsystems is the single source of truth for which Hanzo cloud subsystems are linked into a binary. |
|
Package types holds the placeholder transport types AND the inter-subsystem client interfaces shared between cloud (the orchestrator) and cloud/clients (the in-process and RPC client implementations).
|
Package types holds the placeholder transport types AND the inter-subsystem client interfaces shared between cloud (the orchestrator) and cloud/clients (the in-process and RPC client implementations). |
|
Package zapface serves the browser-facing ZAP RPC plane over WebSocket.
|
Package zapface serves the browser-facing ZAP RPC plane over WebSocket. |