Getting started¶
New to the protocol? How AAuth works explains the roles, and Flows shows each exchange. This page is for installing the module and choosing a package.
Drafts implemented¶
| Draft | Version | Constant |
|---|---|---|
| AAuth Protocol | draft-hardt-oauth-aauth-protocol-11 |
aauth.ProtocolDraft |
| HTTP Signature Keys | draft-hardt-httpbis-signature-key-09 |
aauth.SignatureKeyDraft |
| AAuth Bootstrap | draft-hardt-aauth-bootstrap-02 |
aauth.BootstrapDraft |
The drafts are works in progress, and each revision can change the wire format; the module's minor version moves with them until the protocol stabilizes. Upgrading from v0.1 (draft -09)? See the migration guide and the changelog. For an interactive tour of the protocol, see explorer.aauth.dev.
Install¶
Requires Go 1.26 or later. The full API reference is on pkg.go.dev.
Packages¶
| Package | Contents |
|---|---|
aauth |
The protocol vocabulary shared by every role: identifiers, keys, tokens (mint, issue, verify), HTTP message signatures, metadata, requirements, deferred responses, revocation, errors, and the agent-side PSClient and Transport. Resources use it directly. |
personserver |
Person Server as an http.Handler: person and auth token endpoints, pending requests, missions, permission, audit, interaction, revocation, and federation to access servers. |
accessserver |
Access Server as an http.Handler (AS token endpoint, revocation), plus Client (PS to AS over HTTP) and Server.Local (in-process PS-AS collapse). |
agentprovider |
Hosted agent provider: agent token issuance, two-key and single-key refresh, sub-agent tokens, and a Client with a TokenSource for agents. |
ratelimit |
In-memory token bucket implementing aauth.Limiter for single-instance deployments. |
interactioncode |
Interaction code generation and canonicalization (Crockford base32). |