Documentation
¶
Overview ¶
Package httpkit composes explicit standard-library HTTP routes without a global router or hidden component registration.
Stability: alpha. Consumers should pin an exact pre-v1 Modary version.
Index ¶
Constants ¶
This section is empty.
Variables ¶
var ( // ErrContributionPanic reports a recovered contribution builder panic. ErrContributionPanic = errors.New("HTTP contribution builder panicked") // ErrPlanMismatch reports assembly against an application started from a // different static definition. ErrPlanMismatch = errors.New("HTTP plan does not match application contract") )
Functions ¶
Types ¶
type AdminDescriptor ¶
type AdminDescriptor struct {
ID string `json:"id"`
Label string `json:"label"`
Path string `json:"path"`
Icon string `json:"icon"`
Order int `json:"order"`
Permissions []string `json:"permissions,omitempty"`
RequiredPermissions []string `json:"requiredPermissions,omitempty"`
}
AdminDescriptor is the backend-owned navigation and permission metadata for one optional Admin surface. Permissions is the complete set of grants the surface may inspect, while RequiredPermissions is the subset needed to show the surface at all. Both are presentation hints only; every backend route must still authorize each request.
type Contribution ¶
type Contribution struct {
ID string
Requires []module.Capability
Routes []RouteSpec
Admin *AdminDescriptor
Build Builder
}
Contribution is one statically inspectable HTTP/Admin component selection. Routes and Requires are validated and copied before Build may run.
type Descriptor ¶
type Descriptor struct {
ID string
Requires []module.Capability
Routes []RouteSpec
Admin *AdminDescriptor
}
Descriptor is the callback-free snapshot returned by Plan.Contributions.
type Plan ¶
type Plan struct {
// contains filtered or unexported fields
}
Plan is an immutable, preflighted HTTP/Admin composition bound to one appkit.Contract.
func NewPlan ¶
func NewPlan(definition appkit.Definition, options appkit.Options, contributions ...Contribution) (*Plan, error)
NewPlan validates the complete application and contribution set without invoking Module or contribution callbacks.
func (*Plan) Admin ¶
func (plan *Plan) Admin() []AdminDescriptor
Admin returns permission-bearing Admin descriptors in stable presentation order.
func (*Plan) Contributions ¶
func (plan *Plan) Contributions() []Descriptor
Contributions returns the complete callback-free contribution selection.