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 ¶
AuthBackend returns the description of a first-party authentication backend published as a separate module.
func SecretsResolver ¶
SecretsResolver returns the description of a first-party secrets resolver published as a separate module, keyed by its reference scheme.
func StorageProvider ¶
StorageProvider returns the description of a first-party storage backend published as a separate module.
func TelemetryExporter ¶
TelemetryExporter looks an exporter name up in the table above.
func (Provider) InstallHint ¶
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.