Prerelease policy and OAuth scope

Prerelease policy

The SDK is in alpha (0.x.y-alpha.n). Prerelease packages:

  • May introduce breaking public API changes without a major version bump
  • Are suitable for integration trials and feedback, not production stability guarantees

See VERSIONING.md for stage progression (alpha → beta → stable 1.0.0) and exit criteria.

OAuth scope boundary

In scope (SDK utilities):

  • Constructing the OAuth authorisation URL
  • Exchanging an authorisation code for tokens
  • Refreshing access tokens with a refresh token

Out of scope:

  • Browser or UI orchestration of the authorisation flow
  • Hosting callback endpoints
  • Persisting tokens or managing user sessions
  • App-level OAuth state machines

Your application integrates the protocol helpers into its own auth stack. The sample app demonstrates one possible Blazor Server integration for development - it is not part of the NuGet package.

FreeAgentOAuthClient and FreeAgentClient both default to FreeAgentEnvironment.Production. When targeting the FreeAgent sandbox, pass FreeAgentEnvironment.Sandbox to both constructors so the authorisation URL and API base address stay aligned. See Getting started.

Sample app session storage (development only)

The Blazor sample persists OAuth tokens and in-flight CSRF state in short-lived, HttpOnly browser cookies so local sessions survive page reloads and app restarts. Cookie payloads are not encrypted and are suitable only for local single-user development. Do not reuse this pattern in production applications; store tokens server-side with appropriate encryption and session management instead.

Goals alignment

This boundary supports GOALS.md G6: protocol-level OAuth helpers without UI or flow management abstractions.


Copyright © Mark Heydon. Distributed under the MIT licence.

This site uses Just the Docs, a documentation theme for Jekyll.