admin

package
v0.426.0 Latest Latest
Warning

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

Go to latest
Published: Jan 15, 2025 License: Apache-2.0 Imports: 29 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ShouldUseLocalClient

func ShouldUseLocalClient(ctx context.Context, adminClient ftlv1connect.AdminServiceClient, endpoint *url.URL) (bool, error)

ShouldUseLocalClient returns whether a local admin client should be used based on the admin service client and the endpoint.

If the service is not present AND endpoint is local, then a local client should be used so that the user does not need to spin up a cluster just to run the `ftl config/secret` commands.

If true is returned, use NewLocalClient() to create a local client after setting up config and secret managers for the context.

Types

type AdminService

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

func NewAdminService

NewAdminService creates a new AdminService. bindAllocator is optional and should be set if a local client is to be used that accesses schema from disk using language plugins.

func (*AdminService) ConfigGet

ConfigGet returns the configuration value for a given ref string.

func (*AdminService) ConfigList

ConfigList returns the list of configuration values, optionally filtered by module.

func (*AdminService) ConfigSet

ConfigSet sets the configuration at the given ref to the provided value.

func (*AdminService) ConfigUnset

ConfigUnset unsets the config value at the given ref.

func (*AdminService) MapConfigsForModule

MapConfigsForModule combines all configuration values visible to the module.

func (*AdminService) MapSecretsForModule

MapSecretsForModule combines all secrets visible to the module.

func (*AdminService) Ping

func (*AdminService) ResetSubscription added in v0.422.0

func (*AdminService) SecretGet

SecretGet returns the secret value for a given ref string.

func (*AdminService) SecretSet

SecretSet sets the secret at the given ref to the provided value.

func (*AdminService) SecretUnset

SecretUnset unsets the secret value at the given ref.

func (*AdminService) SecretsList

SecretsList returns the list of secrets, optionally filtered by module.

type Client

type Client interface {
	Ping(ctx context.Context, req *connect.Request[ftlv1.PingRequest]) (*connect.Response[ftlv1.PingResponse], error)

	// List configuration.
	ConfigList(ctx context.Context, req *connect.Request[ftlv1.ConfigListRequest]) (*connect.Response[ftlv1.ConfigListResponse], error)

	// Get a config value.
	ConfigGet(ctx context.Context, req *connect.Request[ftlv1.ConfigGetRequest]) (*connect.Response[ftlv1.ConfigGetResponse], error)

	// Set a config value.
	ConfigSet(ctx context.Context, req *connect.Request[ftlv1.ConfigSetRequest]) (*connect.Response[ftlv1.ConfigSetResponse], error)

	// Unset a config value.
	ConfigUnset(ctx context.Context, req *connect.Request[ftlv1.ConfigUnsetRequest]) (*connect.Response[ftlv1.ConfigUnsetResponse], error)

	// List secrets.
	SecretsList(ctx context.Context, req *connect.Request[ftlv1.SecretsListRequest]) (*connect.Response[ftlv1.SecretsListResponse], error)

	// Get a secret.
	SecretGet(ctx context.Context, req *connect.Request[ftlv1.SecretGetRequest]) (*connect.Response[ftlv1.SecretGetResponse], error)

	// Set a secret.
	SecretSet(ctx context.Context, req *connect.Request[ftlv1.SecretSetRequest]) (*connect.Response[ftlv1.SecretSetResponse], error)

	// Unset a secret.
	SecretUnset(ctx context.Context, req *connect.Request[ftlv1.SecretUnsetRequest]) (*connect.Response[ftlv1.SecretUnsetResponse], error)

	// MapConfigsForModule combines all configuration values visible to the module.
	// Local values take precedence.
	MapConfigsForModule(ctx context.Context, req *connect.Request[ftlv1.MapConfigsForModuleRequest]) (*connect.Response[ftlv1.MapConfigsForModuleResponse], error)

	// MapSecretsForModule combines all secrets visible to the module.
	// Local values take precedence.
	MapSecretsForModule(ctx context.Context, req *connect.Request[ftlv1.MapSecretsForModuleRequest]) (*connect.Response[ftlv1.MapSecretsForModuleResponse], error)

	// Reset a subscription.
	ResetSubscription(ctx context.Context, req *connect.Request[ftlv1.ResetSubscriptionRequest]) (*connect.Response[ftlv1.ResetSubscriptionResponse], error)
}

Client standardizes an common interface between the AdminService as accessed via gRPC and a purely-local variant that doesn't require a running controller to access.

func NewLocalClient

func NewLocalClient(cm *manager.Manager[cf.Configuration], sm *manager.Manager[cf.Secrets]) Client

NewLocalClient creates a admin client that reads and writes from the provided config and secret managers

type Config

type Config struct {
	Bind *url.URL `help:"Socket to bind to." default:"http://127.0.0.1:8896" env:"FTL_BIND"`
}

type SchemaRetriever

type SchemaRetriever interface {
	// BindAllocator is required if the schema is retrieved from disk using language plugins
	GetActiveSchema(ctx context.Context) (*schema.Schema, error)
}

func NewSchemaRetreiver

func NewSchemaRetreiver(source schemaeventsource.EventSource) SchemaRetriever

Jump to

Keyboard shortcuts

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