# What Switchboard is

Switchboard is Willdan's control plane: it connects AWS accounts, installs
apps into environments, deploys builds through release channels, and runs
the release process. Apps are built in their own repositories with their
own CI; Switchboard owns everything after the artifact — where it runs,
which version, who approved it, and what the organization sees in the
Willdan apps portal.

Three ideas carry most of the model:

- **An instance is app × environment.** Installing a product creates an
  instance; deploying is always deploying one instance. The
  deploy-dispatcher state machine drives CloudFormation directly — there
  is no CI runner in the deploy path.
- **Channels move versions; releases ship them.** Every publish advances a
  channel head (`alpha/<branch>`, `beta`); `stable` advances only when a
  release is approved. Environments follow channels.
- **The stack is the source of truth.** Component versions, endpoints, and
  outputs are read back from the landed stack after every deploy — what
  landed, not what was asked.

## Who this portal is for

Developers building an app that runs on Switchboard (start with
[the manifest](/manifest) and [shared stacks](/shared-stacks)), and the
QA/implementation teams running releases (start with
[releases](/releases)).

## The APIs

Switchboard's **primary API is GraphQL** at AppSync, reached through this
gateway — every console read and mutation lives there. The
[API reference](/api) here documents the deliberately narrow **REST
surface**: the release process (what QA tooling, the operation-phase
plugin, and regression agent runners drive) and manifest validation for
CI — the callers that have no GraphQL client. Today it is stubbed,
returning example payloads, so tooling builds against honest shapes.
