Help us shape the future of Go! Take the 2026 Go Developer Survey

session_controller

package
v0.57.6 Latest Latest
Warning

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

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

Documentation

Index

Constants

View Source
const ConfigID = ControllerID

ConfigID is the config identifier.

View Source
const ControllerID = "session"

ControllerID is the controller id.

Variables

View Source
var Version = controller.MustParseVersion("0.0.1")

Version is the component version

Functions

func NewFactory

func NewFactory(b bus.Bus) controller.Factory

NewFactory constructs the component factory.

Types

type Config

type Config struct {

	// SessionControllerId is the id for the session controller.
	// Resolves LookupSessionController directives.
	// Can be empty.
	SessionControllerId string `protobuf:"bytes,1,opt,name=session_controller_id,json=sessionControllerId,proto3" json:"sessionControllerId,omitempty"`
	// VolumeId is the volume id to store data.
	// If empty, defaults to the plugin host volume.
	VolumeId string `protobuf:"bytes,2,opt,name=volume_id,json=volumeId,proto3" json:"volumeId,omitempty"`
	// ObjectStoreId is the object store id to store the session list.
	// If empty, defaults to sessions/list.
	ObjectStoreId string `protobuf:"bytes,3,opt,name=object_store_id,json=objectStoreId,proto3" json:"objectStoreId,omitempty"`
	// contains filtered or unexported fields
}

Config configures the session storage controller.

func (*Config) CloneMessageVT

func (m *Config) CloneMessageVT() protobuf_go_lite.CloneMessage

func (*Config) CloneVT

func (m *Config) CloneVT() *Config

func (*Config) EqualMessageVT

func (this *Config) EqualMessageVT(thatMsg any) bool

func (*Config) EqualVT

func (this *Config) EqualVT(that *Config) bool

func (*Config) EqualsConfig

func (c *Config) EqualsConfig(other config.Config) bool

EqualsConfig checks if the config is equal to another.

func (*Config) GetConfigID

func (c *Config) GetConfigID() string

GetConfigID returns the unique string for this configuration type.

func (*Config) GetObjectStoreId

func (x *Config) GetObjectStoreId() string

func (*Config) GetSessionControllerId

func (x *Config) GetSessionControllerId() string

func (*Config) GetVolumeId

func (x *Config) GetVolumeId() string

func (*Config) MarshalJSON

func (x *Config) MarshalJSON() ([]byte, error)

MarshalJSON marshals the Config to JSON.

func (*Config) MarshalProtoJSON

func (x *Config) MarshalProtoJSON(s *json.MarshalState)

MarshalProtoJSON marshals the Config message to JSON.

func (*Config) MarshalProtoText

func (x *Config) MarshalProtoText() string

func (*Config) MarshalToSizedBufferVT

func (m *Config) MarshalToSizedBufferVT(dAtA []byte) (int, error)

func (*Config) MarshalToVT

func (m *Config) MarshalToVT(dAtA []byte) (int, error)

func (*Config) MarshalVT

func (m *Config) MarshalVT() (dAtA []byte, err error)

func (*Config) ProtoMessage

func (*Config) ProtoMessage()

func (*Config) Reset

func (x *Config) Reset()

func (*Config) SizeVT

func (m *Config) SizeVT() (n int)

func (*Config) String

func (x *Config) String() string

func (*Config) UnmarshalJSON

func (x *Config) UnmarshalJSON(b []byte) error

UnmarshalJSON unmarshals the Config from JSON.

func (*Config) UnmarshalProtoJSON

func (x *Config) UnmarshalProtoJSON(s *json.UnmarshalState)

UnmarshalProtoJSON unmarshals the Config message from JSON.

func (*Config) UnmarshalVT

func (m *Config) UnmarshalVT(dAtA []byte) error

func (*Config) Validate

func (c *Config) Validate() error

Validate validates the configuration.

type Controller

type Controller struct {
	*bus.BusController[*Config]
	// contains filtered or unexported fields
}

Controller is the session controller.

func (*Controller) Close added in v0.51.7

func (c *Controller) Close() error

Close releases controller-owned resources.

func (*Controller) DeleteSession

func (c *Controller) DeleteSession(ctx context.Context, ref *session.SessionRef) error

DeleteSession removes the matching session ref from the list. Returns nil if not found.

func (*Controller) GetSessionBroadcast

func (c *Controller) GetSessionBroadcast() *broadcast.Broadcast

GetSessionBroadcast returns the broadcast that fires when sessions change.

func (*Controller) GetSessionByIdx

func (c *Controller) GetSessionByIdx(ctx context.Context, idx uint32) (*session.SessionListEntry, error)

GetSessionByIdx looks up the given session index. Returns nil, nil if not found.

func (*Controller) GetSessionMetadata

func (c *Controller) GetSessionMetadata(ctx context.Context, idx uint32) (*session.SessionMetadata, error)

GetSessionMetadata returns the metadata for a session by index. Returns nil, nil if not found.

func (*Controller) HandleDirective

func (c *Controller) HandleDirective(ctx context.Context, di directive.Instance) ([]directive.Resolver, error)

HandleDirective asks if the handler can resolve the directive. If it can, it returns a resolver. If not, returns nil. Any unexpected errors are returned for logging. It is safe to add a reference to the directive during this call.

func (*Controller) ListSessions

func (c *Controller) ListSessions(ctx context.Context) ([]*session.SessionListEntry, error)

ListSessions lists the sessions in storage.

func (*Controller) RegisterSession

func (c *Controller) RegisterSession(ctx context.Context, ref *session.SessionRef, metadata *session.SessionMetadata) (*session.SessionListEntry, error)

RegisterSession registers a session ref in storage or returns the existing matching entry. If metadata is non-nil, it is written to the session controller ObjectStore.

func (*Controller) TransitionSession

func (c *Controller) TransitionSession(ctx context.Context, source, destination *session.SessionRef) error

TransitionSession replaces an attachment at its existing index after the destination has durably accepted its credential. Source credentials remain in their provider volume for recovery. Replaying the same transition is safe.

func (*Controller) UpdateSessionMetadata

func (c *Controller) UpdateSessionMetadata(ctx context.Context, ref *session.SessionRef, metadata *session.SessionMetadata) error

UpdateSessionMetadata updates the metadata for a session by ref. Does nothing if no session entry matches the ref.

Jump to

Keyboard shortcuts

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