> For clean Markdown content of this page, append .md to this URL. For the complete documentation index, see https://buildwithfern.com/learn/llms.txt.

## 1.31.0

**`(feat):`** Add support for inferred auth. When an API definition includes an inferred auth
scheme, the generated Go SDK will automatically fetch tokens from the designated
token endpoint and inject `Authorization: Bearer <token>` headers on all
authenticated requests. Tokens are cached with automatic refresh based on
`expires_in` from the token response (defaults to 1 hour when omitted).

The generator produces `WithXxx()` client options for each credential parameter
defined on the token endpoint (e.g., `WithClientId`, `WithClientSecret`,
`WithXApiKey`), environment variable fallbacks when configured, and a
`core/token_provider.go` with thread-safe caching.

To use inferred auth, define an inferred auth scheme in your Fern API definition:

```yaml
auth:
  scheme: inferred
  token-endpoint:
    endpoint: auth.getToken
    response-properties:
      access-token: access_token
      expires-in: expires_in
```

Wire tests are also generated when `enableWireTests: true` is set in
custom config, validating automatic token fetch, caching, and custom
header passthrough.

## 1.29.3

**`(chore):`** Add concurrency configuration to generated CI workflow with cancel-in-progress: false
to prevent stacked runs from being cancelled when a newer run starts.

## 1.29.2

**`(fix):`** Fix datetime query parameter serialization to always include milliseconds.
The `valueString` function in `internal/query.go` now formats `time.Time`
values with `"2006-01-02T15:04:05.000Z07:00"` instead of `time.RFC3339`,
ensuring the Go SDK sends timestamps with millisecond precision (e.g.,
`2024-07-01T15:30:00.000Z`) that match the WireMock stub mappings.