magus v0.4.3 is out. See what's new
¶ View markdown source · ✎ Suggest an edit
1 min read

Provider I/O is Buzz

A CI or VCS provider (GitHub, GitLab, ...) is reached only by a Buzz op magus invokes (a provider spell, the queue's own provider script, a hack/ driver script, or a workflow action step), which names the act and reports host and elapsed on the line. Go opens no provider socket of its own; it calls the Buzz op through bindings and reads the record back, the shape review_spell.go and the queue's own Buzz host module already take. The console reaches nothing but its own daemon, which its CSP enforces at runtime.

The failure this prevents is environment sniffing's shape from the other side: a "quick fetch" landing in Go, or in a Buzz file nobody meant to carry one, stays invisible until the day the credential it silently depended on is missing or wrong, by which point it is load-bearing.

Enforced by

  • providerio in libs/conventions fails a net/http client or a provider SDK import outside a reasoned allowlist.
  • provider-io-is-buzz in hack/lint/run.buzz fails a real gh, curl or http call at a provider host from a Buzz file outside the ones named above.
  • The console's CSP allows only its own daemon.

Good

The provider call lives in a Buzz op that names the act, and Go reads the record it returns.

provider spell op -> host and elapsed on the line -> typed record back to Go

Bad

resp, err := http.Get("https://api.github.com/repos/" + repo + "/pulls")

A fetch in Go depends on a token nobody declared, reports nothing on the line, and fails far from the change that added it.

See also

designjudgmentprovidersbuzz
Last updated (2df714e8)
Glossary

Op

A single tool-native command a target composes (long form: operation); the middle of the work hierarchy (Spell to Op to Target). Op in full.

Spell

A language/runtime adapter (e.g. go, md) that maps generic targets onto a toolchain's real commands. Spell in full.

Module

A magus stdlib namespace a magusfile imports for host capabilities: filesystem, exec, vcs, and more. Module in full.

Buzz

The language magusfiles are written in (the .buzz engine). Buzz in full.

Daemon

The background process a person starts with magus server start. It serves MCP, the console, background jobs and the warm knowledge graph, and adopts nested magus calls into one pool. Daemon in full.

CI

An ordinary target you compose yourself with ctx.needs; magus does not hardcode its stages. It is the anchor magus affected ci keys off, and ci strips the rw charm. CI in full.

Run

One target executing under one magus invocation, such as magus run test web or magus affected ci. A run keeps its captured output behind an output reference. Every magus run is a run whether or not any job asked for it; see Job for how the two relate. Run in full.

Conventions

This page uses none of the site's convention markers. The full set is on the conventions page.