client

package
v3.1.0-rc.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 16, 2026 License: GPL-3.0 Imports: 7 Imported by: 0

README

OpenAPI Client Boundary

This package is the supported production boundary around selected generated OpenAPI clients. The generated packages remain the source for request and response DTOs, while this package keeps authentication and supported operation selection explicit.

Supported Surface

Management API:

  • NewManagementClient
  • ManagementClient.GetOpenAPIYAML
  • ManagementClient.GetOpenAPIJSON
  • ManagementClient.ListBruteForceEntries
  • ManagementClient.ListFilteredBruteForceEntries
  • ManagementClient.FlushBruteForceRule
  • ManagementClient.EnqueueBruteForceRuleFlush
  • ManagementClient.FlushUserCache
  • ManagementClient.EnqueueUserCacheFlush
  • ManagementClient.GetAsyncJobStatus
  • ManagementClient.ListOIDCSessions
  • ManagementClient.DeleteOIDCSessions
  • ManagementClient.DeleteOIDCSession
  • BearerToken
  • BasicCredentials

IdP public discovery API:

  • NewIDPDiscoveryClient
  • IDPDiscoveryClient.GetPublicOpenAPIJSON
  • IDPDiscoveryClient.GetPublicOpenAPIYAML
  • IDPDiscoveryClient.GetOIDCDiscovery
  • IDPDiscoveryClient.GetOIDCJWKS
  • IDPDiscoveryClient.GetSAMLMetadata

The management client boundary requires backchannel authentication. Use BearerToken for Authorization: Bearer ... or BasicCredentials for Authorization: Basic .... The request and response values stay generated types from server/openapi/generated/management.

Document-style downloads such as OpenAPI YAML and SAML metadata intentionally return raw *http.Response values from the generated client. JSON management and discovery workflows return generated response wrappers.

Intentional Exclusions

The following surfaces remain outside this supported generated-client boundary:

  • CBOR authentication
  • Header authentication
  • NGINX auth_http authentication
  • OIDC token exchange
  • Browser login and MFA flows
  • SAML SSO/SLO protocol flows
  • WebAuthn

Those flows require protocol-realistic clients and tests. They must not be replaced by generated clients unless the contract tooling can model the protocol behavior without weakening coverage.

Regeneration And Validation

Generated code is committed and regenerated only through the central server workflow:

make generate-openapi-bindings

Check drift with:

make generate-openapi-bindings-check

Run focused client checks with:

GOEXPERIMENT=runtimesecret GOCACHE=/tmp/nauthilus-go-cache go test ./server/openapi/client ./server/openapi/generated/management ./server/openapi/generated/idp

The full server gate is:

GOEXPERIMENT=runtimesecret GOCACHE=/tmp/nauthilus-go-cache make guardrails

Documentation

Overview

Package client exposes the supported production boundary around selected generated OpenAPI clients.

Index

Constants

This section is empty.

Variables

View Source
var ErrInvalidBackchannelAuth = errors.New("invalid backchannel auth")

ErrInvalidBackchannelAuth reports an incomplete generated management client authentication configuration.

View Source
var ErrNilClient = errors.New("nil generated client")

ErrNilClient reports a nil generated client dependency.

Functions

This section is empty.

Types

type BackchannelAuth

type BackchannelAuth struct {
	// contains filtered or unexported fields
}

BackchannelAuth contains the supported authentication material for generated management clients.

func BasicCredentials

func BasicCredentials(username string, password string) BackchannelAuth

BasicCredentials configures Authorization: Basic authentication for generated management clients.

func BearerToken

func BearerToken(token string) BackchannelAuth

BearerToken configures Authorization: Bearer authentication for generated management clients.

type IDPDiscoveryClient

type IDPDiscoveryClient struct {
	// contains filtered or unexported fields
}

IDPDiscoveryClient wraps the supported public discovery subset of the generated IDP OpenAPI client.

func NewIDPDiscoveryClient

func NewIDPDiscoveryClient(server string, options ...generatedidp.ClientOption) (*IDPDiscoveryClient, error)

NewIDPDiscoveryClient creates the supported generated IDP discovery client.

func NewIDPDiscoveryClientFromGenerated

func NewIDPDiscoveryClientFromGenerated(generated generatedIDPClient) (*IDPDiscoveryClient, error)

NewIDPDiscoveryClientFromGenerated wraps an existing generated IDP client for dependency injection.

func (*IDPDiscoveryClient) GetOIDCDiscovery

func (client *IDPDiscoveryClient) GetOIDCDiscovery(
	ctx context.Context,
	requestEditors ...generatedidp.RequestEditorFn,
) (*generatedidp.GetOIDCDiscoveryResponse, error)

GetOIDCDiscovery downloads OIDC discovery metadata through the generated client contract.

func (*IDPDiscoveryClient) GetOIDCJWKS

func (client *IDPDiscoveryClient) GetOIDCJWKS(
	ctx context.Context,
	requestEditors ...generatedidp.RequestEditorFn,
) (*generatedidp.GetOIDCJWKSResponse, error)

GetOIDCJWKS downloads the OIDC JWKS through the generated client contract.

func (*IDPDiscoveryClient) GetPublicOpenAPIJSON

func (client *IDPDiscoveryClient) GetPublicOpenAPIJSON(
	ctx context.Context,
	requestEditors ...generatedidp.RequestEditorFn,
) (*generatedidp.GetPublicIdPOpenAPIJSONResponse, error)

GetPublicOpenAPIJSON downloads the public IDP OpenAPI JSON document through the generated client contract.

func (*IDPDiscoveryClient) GetPublicOpenAPIYAML

func (client *IDPDiscoveryClient) GetPublicOpenAPIYAML(
	ctx context.Context,
	requestEditors ...generatedidp.RequestEditorFn,
) (*http.Response, error)

GetPublicOpenAPIYAML downloads the public IDP OpenAPI YAML document as a raw generated client response.

func (*IDPDiscoveryClient) GetSAMLMetadata

func (client *IDPDiscoveryClient) GetSAMLMetadata(
	ctx context.Context,
	requestEditors ...generatedidp.RequestEditorFn,
) (*http.Response, error)

GetSAMLMetadata downloads SAML metadata as a raw generated client response.

type ManagementClient

type ManagementClient struct {
	// contains filtered or unexported fields
}

ManagementClient wraps the supported subset of the generated management OpenAPI client.

func NewManagementClient

func NewManagementClient(
	server string,
	auth BackchannelAuth,
	options ...management.ClientOption,
) (*ManagementClient, error)

NewManagementClient creates the supported generated management client with mandatory backchannel authentication.

func NewManagementClientFromGenerated

func NewManagementClientFromGenerated(generated generatedManagementClient) (*ManagementClient, error)

NewManagementClientFromGenerated wraps an existing generated management client for dependency injection.

func (*ManagementClient) DeleteOIDCSession

func (client *ManagementClient) DeleteOIDCSession(
	ctx context.Context,
	userID string,
	token string,
	requestEditors ...management.RequestEditorFn,
) (*management.DeleteOIDCSessionResponse, error)

DeleteOIDCSession deletes one OIDC session through the generated management contract.

func (*ManagementClient) DeleteOIDCSessions

func (client *ManagementClient) DeleteOIDCSessions(
	ctx context.Context,
	userID string,
	requestEditors ...management.RequestEditorFn,
) (*management.DeleteOIDCSessionsResponse, error)

DeleteOIDCSessions deletes all OIDC sessions for one user through the generated management contract.

func (*ManagementClient) EnqueueBruteForceRuleFlush

EnqueueBruteForceRuleFlush enqueues a brute-force rule flush using generated request and response types.

func (*ManagementClient) EnqueueUserCacheFlush

EnqueueUserCacheFlush enqueues the supported cache flush operation using the generated request and response types from the management OpenAPI contract.

func (*ManagementClient) FlushBruteForceRule

FlushBruteForceRule flushes one brute-force rule using generated request and response types.

func (*ManagementClient) FlushUserCache

FlushUserCache flushes the user cache synchronously using generated request and response types.

func (*ManagementClient) GetAsyncJobStatus

func (client *ManagementClient) GetAsyncJobStatus(
	ctx context.Context,
	jobID string,
	requestEditors ...management.RequestEditorFn,
) (*management.GetAsyncJobStatusResponse, error)

GetAsyncJobStatus reads an asynchronous backchannel job status using the generated response types from the management OpenAPI contract.

func (*ManagementClient) GetOpenAPIJSON

func (client *ManagementClient) GetOpenAPIJSON(
	ctx context.Context,
	requestEditors ...management.RequestEditorFn,
) (*management.GetOpenAPIJSONResponse, error)

GetOpenAPIJSON downloads the management OpenAPI JSON document through the generated client contract.

func (*ManagementClient) GetOpenAPIYAML

func (client *ManagementClient) GetOpenAPIYAML(
	ctx context.Context,
	requestEditors ...management.RequestEditorFn,
) (*http.Response, error)

GetOpenAPIYAML downloads the management OpenAPI YAML document as a raw generated client response.

func (*ManagementClient) ListBruteForceEntries

func (client *ManagementClient) ListBruteForceEntries(
	ctx context.Context,
	requestEditors ...management.RequestEditorFn,
) (*management.ListBruteForceEntriesResponse, error)

ListBruteForceEntries lists brute-force entries using generated response types from the management OpenAPI contract.

func (*ManagementClient) ListBruteForceEntriesWithParams

func (client *ManagementClient) ListBruteForceEntriesWithParams(
	ctx context.Context,
	params *management.ListBruteForceEntriesParams,
	requestEditors ...management.RequestEditorFn,
) (*management.ListBruteForceEntriesResponse, error)

ListBruteForceEntriesWithParams lists brute-force entries with optional paging parameters using generated response types from the management OpenAPI contract.

func (*ManagementClient) ListFilteredBruteForceEntries

ListFilteredBruteForceEntries lists filtered brute-force entries using generated request and response types.

func (*ManagementClient) ListFilteredBruteForceEntriesWithParams

ListFilteredBruteForceEntriesWithParams lists filtered brute-force entries with optional paging parameters using generated request and response types.

func (*ManagementClient) ListOIDCSessions

func (client *ManagementClient) ListOIDCSessions(
	ctx context.Context,
	userID string,
	requestEditors ...management.RequestEditorFn,
) (*management.ListOIDCSessionsResponse, error)

ListOIDCSessions lists OIDC sessions for one user through the generated management contract.

type SupportedIDPDiscoveryClient

SupportedIDPDiscoveryClient is the production-supported generated IDP discovery client boundary.

type SupportedManagementClient

type SupportedManagementClient interface {
	GetOpenAPIYAML(
		context.Context,
		...management.RequestEditorFn,
	) (*http.Response, error)
	GetOpenAPIJSON(
		context.Context,
		...management.RequestEditorFn,
	) (*management.GetOpenAPIJSONResponse, error)
	ListBruteForceEntries(
		context.Context,
		...management.RequestEditorFn,
	) (*management.ListBruteForceEntriesResponse, error)
	ListBruteForceEntriesWithParams(
		context.Context,
		*management.ListBruteForceEntriesParams,
		...management.RequestEditorFn,
	) (*management.ListBruteForceEntriesResponse, error)
	ListFilteredBruteForceEntries(
		context.Context,
		management.ListFilteredBruteForceEntriesJSONRequestBody,
		...management.RequestEditorFn,
	) (*management.ListFilteredBruteForceEntriesResponse, error)
	ListFilteredBruteForceEntriesWithParams(
		context.Context,
		*management.ListFilteredBruteForceEntriesParams,
		management.ListFilteredBruteForceEntriesJSONRequestBody,
		...management.RequestEditorFn,
	) (*management.ListFilteredBruteForceEntriesResponse, error)
	FlushBruteForceRule(
		context.Context,
		management.FlushBruteForceRuleJSONRequestBody,
		...management.RequestEditorFn,
	) (*management.FlushBruteForceRuleResponse, error)
	EnqueueBruteForceRuleFlush(
		context.Context,
		management.EnqueueBruteForceRuleFlushJSONRequestBody,
		...management.RequestEditorFn,
	) (*management.EnqueueBruteForceRuleFlushResponse, error)
	FlushUserCache(
		context.Context,
		management.FlushUserCacheJSONRequestBody,
		...management.RequestEditorFn,
	) (*management.FlushUserCacheResponse, error)
	EnqueueUserCacheFlush(
		context.Context,
		management.EnqueueUserCacheFlushJSONRequestBody,
		...management.RequestEditorFn,
	) (*management.EnqueueUserCacheFlushResponse, error)
	GetAsyncJobStatus(
		context.Context,
		string,
		...management.RequestEditorFn,
	) (*management.GetAsyncJobStatusResponse, error)
	ListOIDCSessions(
		context.Context,
		string,
		...management.RequestEditorFn,
	) (*management.ListOIDCSessionsResponse, error)
	DeleteOIDCSessions(
		context.Context,
		string,
		...management.RequestEditorFn,
	) (*management.DeleteOIDCSessionsResponse, error)
	DeleteOIDCSession(
		context.Context,
		string,
		string,
		...management.RequestEditorFn,
	) (*management.DeleteOIDCSessionResponse, error)
}

SupportedManagementClient is the production-supported generated management client boundary.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL