Documentation
¶
Overview ¶
Package flowhttp serves a managed script version's flow graph (#1906): the diagram the script page's Flow tab draws, derived from the version's source by internal/platform/scriptflow.
It is REST only. The graph is for the people who own, review and depend on a script; an agent reads the code, so no MCP tool response carries it.
It is mounted by the composition root beside scripthttp, and reads a version through scripthttp's own lookup, so a version is found, and not found, the way every other script route finds it. The read rule is the source's: on the portal everyone signed in (#1866), on the admin surface the admin authentication middleware.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AuditQuerier ¶
type AuditQuerier interface {
Query(ctx context.Context, filter audit.QueryFilter) ([]audit.Event, error)
}
AuditQuerier reads audit events; it is the read half of the audit store.
type Deps ¶
type Deps struct {
// Load resolves the script and version named by the path, or writes the
// refusal and reports false (scripthttp.Handler.LoadScriptVersion).
Load func(w http.ResponseWriter, r *http.Request) (*script.Script, *script.Version, bool)
// SignedIn reports whether a portal request carries a user. The portal
// route answers 401 without one.
SignedIn func(r *http.Request) bool
// Version reads another version of the same script, for ?compare=
// (#1908) and for the version a run executed (#1907). Nil when the store
// is absent; the comparison is then 404.
Version func(ctx context.Context, scriptID string, version int) (*script.Version, error)
// Run reads the run in the path for a signed-in caller entitled to it, or
// writes the refusal (scripthttp.Handler.ReadableRun). Nil leaves the run
// route unmounted.
Run func(w http.ResponseWriter, r *http.Request) (*script.Run, bool)
// Audit reads a run's audited calls. Nil draws a run with no calls.
Audit AuditQuerier
// Tiles reads a script's tile (#1909). Nil leaves the tile route
// unmounted.
Tiles TileReader
}
Deps carries the version lookup and, for the portal, who is signed in.
type Handler ¶
type Handler struct {
// contains filtered or unexported fields
}
Handler serves the graph routes.
func ForAdmin ¶
func ForAdmin(scripts *scripthttp.Handler, deps scripthttp.Deps) *Handler
ForAdmin builds the admin routes over the script routes' version lookup.
func ForPortal ¶
func ForPortal(scripts *scripthttp.Handler, deps scripthttp.Deps, calls AuditQuerier, tiles TileReader) *Handler
ForPortal builds the portal routes over the script routes' own lookups, so a version and a run are found, and not found, the way every other script route finds them: the graph under the source's read rule (#1866), a run under the run's (the script's owner, an administrator, or whoever requested it). calls is where a run's calls are read from; nil draws a run with none. tiles serves a script's tile; nil leaves that route unmounted.