knownproviders

package
v1.28.0 Latest Latest
Warning

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

Go to latest
Published: Sep 12, 2026 License: Apache-2.0 Imports: 2 Imported by: 0

Documentation

Overview

Package knownproviders names the backends this project ships as separate modules.

A registry can only report that a name is not registered. That is true and nearly useless when the name is one WE publish: the operator wrote `ldap` because the documentation told them to, and the answer they need is not "unknown" but "you have not imported it yet, here is the line".

The table changes nothing about registration. A name here is registered exactly when its module is imported, like any other — this only makes the error say what to do about it. Keeping it as data means the core carries the NAME of a satellite module and none of its code.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AuthBackendNames

func AuthBackendNames() []string

AuthBackendNames returns every first-party authentication backend name.

func DBDriverNames

func DBDriverNames() []string

DBDriverNames returns the driver names this project publishes, sorted so that an error message lists them the same way every time.

func StorageProviderNames

func StorageProviderNames() []string

StorageProviderNames returns every first-party storage provider name.

func SuiteModuleNames

func SuiteModuleNames() []string

SuiteModuleNames returns the names --with accepts, sorted, for an error message that lists them the same way every time.

func TelemetryExporterNames

func TelemetryExporterNames() []string

TelemetryExporterNames returns the exporter names this project publishes, sorted.

Types

type Provider

type Provider struct {
	// Kind is how the subsystem is named in an error sentence, e.g.
	// "authentication backend".
	Kind string
	// Name is the registered name it takes once imported.
	Name string
	// Module is the `go get` target.
	Module string
	// RequiresConfig reports whether the backend is unusable without a
	// configuration subtree of its own — a directory client cannot invent
	// the address of the directory.
	RequiresConfig bool
	// Remote reports whether the backend depends on a system outside the
	// application, which is what makes a chain without a local fallback a
	// single point of failure.
	Remote bool
}

Provider describes a backend published as its own module.

func AuthBackend

func AuthBackend(name string) (Provider, bool)

AuthBackend returns the description of a first-party authentication backend published as a separate module.

func DBDriver

func DBDriver(name string) (Provider, bool)

DBDriver looks a database/sql driver name up in the table above.

func SecretsResolver

func SecretsResolver(scheme string) (Provider, bool)

SecretsResolver returns the description of a first-party secrets resolver published as a separate module, keyed by its reference scheme.

func StorageProvider

func StorageProvider(name string) (Provider, bool)

StorageProvider returns the description of a first-party storage backend published as a separate module.

func TelemetryExporter

func TelemetryExporter(name string) (Provider, bool)

TelemetryExporter looks an exporter name up in the table above.

func (Provider) InstallHint

func (p Provider) InstallHint() string

InstallHint is the two-line recipe that turns "unknown backend" into something an operator can act on without leaving the terminal.

type SuiteModule

type SuiteModule struct {
	// Name is what the person types after --with.
	Name string
	// Kind is the one-line role the module plays in an application.
	Kind string
	// Module is the `go get` target.
	Module string
	// Adds says what mounting or wiring the module gives the project.
	Adds string
	// DriverModule, when non-empty, is the pattern of the module's own
	// per-engine driver module (the ORM registers its error classifier
	// through it); the scaffold substitutes the engine directory.
	DriverModule string
}

SuiteModule is a sibling product of the Quantum suite that `nucleus new --with` can resolve for a project: the admin panel, the ORM and the two bridges between them. Like Provider, the table carries the NAME and the `go get` target of a module and none of its code: the framework never requires a sibling (the suite's dependency direction is orbit → nucleus, quark → nothing), so the scaffold fetches them from the module proxy at their published tags, exactly as `nucleus add` fetches a driver.

func SuiteModuleByName

func SuiteModuleByName(name string) (SuiteModule, bool)

SuiteModuleByName looks a sibling up by the name --with accepts.

func SuiteModules

func SuiteModules() []SuiteModule

SuiteModules returns the catalogue in resolution order.

Jump to

Keyboard shortcuts

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