application

package
v1.16.0 Latest Latest
Warning

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

Go to latest
Published: Jul 11, 2026 License: MIT Imports: 49 Imported by: 0

Documentation

Index

Constants

View Source
const (
	MiddlewareGroupHttp = "http"

	MiddlewarePriorityStatic = -1000
	MiddlewareNameStatic     = "static"

	MiddlewarePriorityDefault = 0
)
View Source
const ServiceProcessRole = "service.application.process_role"

ServiceProcessRole resolves to the process role string (config.RoleWeb, config.RoleWorker or config.RoleAll) so services can gate background work without reaching back to the application instance.

Variables

This section is empty.

Functions

func ProcessRoleMustFromContainer added in v1.16.0

func ProcessRoleMustFromContainer(serviceContainer containercontract.Container) string

func ProcessRoleMustFromResolver added in v1.16.0

func ProcessRoleMustFromResolver(resolver containercontract.Resolver) string

Types

type Application

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

func NewApplication

func NewApplication(
	embeddedEnvFiles fs.FS,
	embeddedPublicFiles fs.FS,
) *Application

func (*Application) Boot

func (instance *Application) Boot() kernelcontract.Kernel

func (*Application) Close

func (instance *Application) Close()

func (*Application) ProcessRole added in v1.16.0

func (instance *Application) ProcessRole() string

ProcessRole is the resolved process role (config.RoleWeb, config.RoleWorker or config.RoleAll): an explicit --role flag wins over the MELODY_PROCESS_ROLE parameter, which defaults to all. Melody gates nothing on it — wiring code queries it to decide whether to register background runners (outbox relays, consumers) on this process; services resolve the same value through ServiceProcessRole.

func (*Application) RegisterCliCommand

func (instance *Application) RegisterCliCommand(command clicontract.Command)

func (*Application) RegisterConfiguration added in v1.8.0

func (instance *Application) RegisterConfiguration(name string, configuration any)

func (*Application) RegisterHttpMiddlewareFactories

func (instance *Application) RegisterHttpMiddlewareFactories(
	factories ...MiddlewareFactory,
)

func (*Application) RegisterHttpMiddlewares

func (instance *Application) RegisterHttpMiddlewares(middlewares ...httpcontract.Middleware)

func (*Application) RegisterHttpRoute

func (instance *Application) RegisterHttpRoute(
	method string,
	pattern string,
	handler httpcontract.Handler,
)

func (*Application) RegisterModule

func (instance *Application) RegisterModule(moduleInstance applicationcontract.Module)

func (*Application) RegisterModuleProvider added in v1.14.0

func (instance *Application) RegisterModuleProvider(provider applicationcontract.ModuleProvider)

func (*Application) RegisterParameter

func (instance *Application) RegisterParameter(
	name string,
	value any,
)

func (*Application) RegisterService

func (instance *Application) RegisterService(
	serviceName string,
	provider any,
	options ...containercontract.RegisterOption,
)

func (*Application) Run

func (instance *Application) Run(ctx context.Context)

type HttpMiddleware

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

func NewHttpMiddleware

func NewHttpMiddleware(
	staticOptions *static.Options,
	configuration configcontract.Configuration,
) *HttpMiddleware

func (*HttpMiddleware) LastBuildReport

func (instance *HttpMiddleware) LastBuildReport() *middlewarepipeline.MiddlewareBuildReport

func (*HttpMiddleware) Use

func (instance *HttpMiddleware) Use(middlewares ...httpcontract.Middleware)

func (*HttpMiddleware) UseFactories

func (instance *HttpMiddleware) UseFactories(factories ...MiddlewareFactory)

func (*HttpMiddleware) UseFactoriesWithPriority

func (instance *HttpMiddleware) UseFactoriesWithPriority(priority int, factories ...MiddlewareFactory)

func (*HttpMiddleware) UseWithPriority

func (instance *HttpMiddleware) UseWithPriority(priority int, middlewares ...httpcontract.Middleware)

type HttpShutdownConfiguration added in v1.14.0

type HttpShutdownConfiguration interface {
	GetShutdownTimeout() time.Duration
}

type HttpTimeoutConfiguration added in v1.12.0

type HttpTimeoutConfiguration interface {
	GetReadTimeout() time.Duration

	GetReadHeaderTimeout() time.Duration

	GetWriteTimeout() time.Duration

	GetIdleTimeout() time.Duration

	GetMaxHeaderBytes() int
}

type MiddlewareFactory

type MiddlewareFactory func(kernelInstance kernelcontract.Kernel) httpcontract.Middleware

type RouteRegistrar

type RouteRegistrar func(kernelInstance kernelcontract.Kernel)

type RuntimeFlags

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

func NewRuntimeFlags

func NewRuntimeFlags(mode string) *RuntimeFlags

func NewRuntimeFlagsWithRole added in v1.16.0

func NewRuntimeFlagsWithRole(mode string, role string) *RuntimeFlags

func ParseRuntimeFlags

func ParseRuntimeFlags(defaultMode string) *RuntimeFlags

func ParseRuntimeFlagsWithRole added in v1.16.0

func ParseRuntimeFlagsWithRole(defaultMode string, defaultRole string) *RuntimeFlags

ParseRuntimeFlagsWithRole resolves the runtime mode and process role from os.Args. The mode: an explicit --mode/-mode wins, any other non-runtime argument implies cli, otherwise the configured default applies. The role: an explicit --role/-role wins over the configured default — the flag exists because melody reads configuration only from .env artifacts, never from the process environment, so a docker-compose deployment differentiates containers built from one image with `command: ["/app", "--role=worker"]`. Both flags are runtime-only: they never imply cli mode and are stripped before the cli framework parses the arguments.

func (*RuntimeFlags) Mode

func (instance *RuntimeFlags) Mode() string

func (*RuntimeFlags) Role added in v1.16.0

func (instance *RuntimeFlags) Role() string

type SecurityModule

type SecurityModule interface {
	applicationcontract.Module
	RegisterSecurity(builder *securityconfig.Builder)
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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