Swan Authentication
Swan uses OAuth 2.0 (RFC 6749) with Bearer token authentication (RFC 6750). Tokens are supplied in an HTTP Authorization header as `Authorization: Bearer {access token}`. There are two token types: project access tokens (client_credentials grant, project-level access, valid one hour) and user access tokens (authorization_code grant, act on behalf of an individual user, valid one hour, refreshable). A project token can also impersonate a user to perform sensitive mutations. User tokens (and impersonating project tokens) cannot call `transactions` queries.
Swan secures its APIs with oauth2 and http across 2 declared security schemes, as derived from its OpenAPI definitions. OAuth 2.0 is offered via the clientCredentials, authorizationCode, and refreshToken flow(s).