env

package
v0.19.17 Latest Latest
Warning

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

Go to latest
Published: Mar 5, 2021 License: Apache-2.0 Imports: 51 Imported by: 1

Documentation

Index

Constants

View Source
const EdgeContextKey = ContextKey("edgeContext")

Variables

This section is empty.

Functions

func AddRequestContextToHttpContext added in v0.14.35

func AddRequestContextToHttpContext(r *http.Request, rc *response.RequestContext)

func AddRouter

func AddRouter(rf ApiRouter)

func GetRequestContextFromHttpContext added in v0.14.35

func GetRequestContextFromHttpContext(r *http.Request) (*response.RequestContext, error)

func NewEdgeTerminatorValidator added in v0.16.23

func NewEdgeTerminatorValidator(ae *AppEnv) xtv.Validator

func ServeError added in v0.14.35

func ServeError(rw http.ResponseWriter, r *http.Request, inErr error)

Wrapper for the OpenAPI REST server to allow the the Edge API Error message responses to be used

Types

type AddRouterFunc

type AddRouterFunc func(ae *AppEnv)

func GetRouters

func GetRouters() []AddRouterFunc

type ApiRouter

type ApiRouter interface {
	Register(ae *AppEnv)
}

type AppEnv

type AppEnv struct {
	BoltStores             *persistence.Stores
	Handlers               *model.Handlers
	Config                 *edgeConfig.Config
	EnrollmentJwtGenerator jwt.EnrollmentGenerator
	Versions               *config.Versions
	AuthHeaderName         string
	AuthCookieName         string
	ApiServerCsrSigner     cert.Signer
	ApiClientCsrSigner     cert.Signer
	ControlClientCsrSigner cert.Signer
	FingerprintGenerator   cert.FingerprintGenerator
	AuthRegistry           model.AuthRegistry
	EnrollRegistry         model.EnrollmentRegistry
	Broker                 *Broker
	HostController         HostController
	Api                    *operations.ZitiEdgeAPI
	IdentityRefreshMap     cmap.ConcurrentMap
	StartupTime            time.Time
}

func NewAppEnv

func NewAppEnv(c *edgeConfig.Config) *AppEnv

func (*AppEnv) CreateRequestContext added in v0.14.35

func (ae *AppEnv) CreateRequestContext(rw http.ResponseWriter, r *http.Request) *response.RequestContext

func (*AppEnv) FillRequestContext added in v0.14.35

func (ae *AppEnv) FillRequestContext(rc *response.RequestContext) error

func (*AppEnv) GetApiClientCsrSigner

func (ae *AppEnv) GetApiClientCsrSigner() cert.Signer

func (*AppEnv) GetApiServerCsrSigner

func (ae *AppEnv) GetApiServerCsrSigner() cert.Signer

func (*AppEnv) GetAuthRegistry

func (ae *AppEnv) GetAuthRegistry() model.AuthRegistry

func (*AppEnv) GetConfig

func (ae *AppEnv) GetConfig() *edgeConfig.Config

func (*AppEnv) GetControlClientCsrSigner

func (ae *AppEnv) GetControlClientCsrSigner() cert.Signer

func (*AppEnv) GetDbProvider

func (ae *AppEnv) GetDbProvider() persistence.DbProvider

func (*AppEnv) GetEnrollRegistry

func (ae *AppEnv) GetEnrollRegistry() model.EnrollmentRegistry

func (*AppEnv) GetEnrollmentJwtGenerator

func (ae *AppEnv) GetEnrollmentJwtGenerator() jwt.EnrollmentGenerator

func (*AppEnv) GetFingerprintGenerator added in v0.17.30

func (ae *AppEnv) GetFingerprintGenerator() cert.FingerprintGenerator

func (*AppEnv) GetHandlers

func (ae *AppEnv) GetHandlers() *model.Handlers

func (*AppEnv) GetHostController

func (ae *AppEnv) GetHostController() model.HostController

func (*AppEnv) GetMetricsRegistry added in v0.16.0

func (ae *AppEnv) GetMetricsRegistry() metrics.Registry

func (*AppEnv) GetSessionTokenFromRequest added in v0.14.35

func (ae *AppEnv) GetSessionTokenFromRequest(r *http.Request) string

func (*AppEnv) GetStores

func (ae *AppEnv) GetStores() *persistence.Stores

func (*AppEnv) HandleServiceEvent added in v0.17.36

func (ae *AppEnv) HandleServiceEvent(event *persistence.ServiceEvent)

func (*AppEnv) InitPersistence

func (ae *AppEnv) InitPersistence() error

func (*AppEnv) IsAllowed added in v0.14.35

func (ae *AppEnv) IsAllowed(responderFunc func(ae *AppEnv, rc *response.RequestContext), request *http.Request, entityId string, entitySubId string, permissions ...permissions.Resolver) openApiMiddleware.Responder

func (*AppEnv) IsEdgeRouterOnline

func (ae *AppEnv) IsEdgeRouterOnline(id string) bool

type AppHandler

type AppHandler func(ae *AppEnv, rc *response.RequestContext)

type AppMiddleware

type AppMiddleware func(*AppEnv, http.Handler) http.Handler

type BasicEntitySchema

type BasicEntitySchema struct {
	Post  *gojsonschema.Schema
	Patch *gojsonschema.Schema
	Put   *gojsonschema.Schema
}

type Broker

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

The Broker delegates Ziti Edge events to a RouterSyncStrategy. Handling the details of which events to watch and dealing with casting arguments to their proper concrete types.

func NewBroker

func NewBroker(ae *AppEnv, synchronizer RouterSyncStrategy) *Broker

func (*Broker) GetOnlineEdgeRouter

func (broker *Broker) GetOnlineEdgeRouter(id string) (*model.EdgeRouter, RouterSyncStatus)

func (*Broker) IsEdgeRouterOnline added in v0.17.72

func (broker *Broker) IsEdgeRouterOnline(id string) bool

func (*Broker) RouterConnected

func (broker *Broker) RouterConnected(router *network.Router)

func (*Broker) RouterDisconnected

func (broker *Broker) RouterDisconnected(r *network.Router)

func (*Broker) Stop added in v0.17.72

func (broker *Broker) Stop()

type ContextKey added in v0.14.35

type ContextKey string

use own type to avoid collisions

type DefaultEventLogger

type DefaultEventLogger struct {
	Ae *AppEnv
}

func (*DefaultEventLogger) Log

func (el *DefaultEventLogger) Log(actorType, actorId, eventType, entityType, entityId, formatString string, formatData []string, data map[interface{}]interface{})

type EdgeTerminatorValidator added in v0.16.23

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

func (*EdgeTerminatorValidator) Validate added in v0.16.23

func (v *EdgeTerminatorValidator) Validate(tx *bbolt.Tx, terminator xtv.Terminator, create bool) error

type HostController

type HostController interface {
	RegisterXctrl(x xctrl.Xctrl) error
	RegisterXmgmt(x xmgmt.Xmgmt) error
	GetNetwork() *network.Network
	GetCloseNotifyChannel() <-chan struct{}
}

type IdentityEntitySchema

type IdentityEntitySchema struct {
	Post           *gojsonschema.Schema
	Patch          *gojsonschema.Schema
	Put            *gojsonschema.Schema
	ServiceConfigs *gojsonschema.Schema
}

type PemProducer added in v0.15.13

type PemProducer struct{}

func (PemProducer) Produce added in v0.15.13

func (p PemProducer) Produce(writer io.Writer, i interface{}) error

type RouterConnectionHandler added in v0.17.72

type RouterConnectionHandler interface {
	RouterConnected(edgeRouter *model.EdgeRouter, router *network.Router)
	RouterDisconnected(router *network.Router)
}

RouterConnectionHandler is responsible for handling router connect/disconnect for synchronizing state. This is intended for API Session but additional state is possible. Implementations may bind additional handlers to the channel.

type RouterSyncStatus added in v0.17.72

type RouterSyncStatus string

Aliased type for router sync status

const (
	RouterSyncNew        RouterSyncStatus = "SYNC_NEW"         //connection accepted but no strategy actions have been taken
	RouterSyncQueued     RouterSyncStatus = "SYNC_QUEUED"      //connection handed to strategy, but not processed
	RouterSyncHello      RouterSyncStatus = "SYNC_HELLO"       //connection is beginning hello cycle
	RouterSyncHelloWait  RouterSyncStatus = "SYNC_HELLO_WAIT"  //hello received from router, but there are too many synchronizing routers
	RouterSyncResyncWait RouterSyncStatus = "SYNC_RESYNC_WAIT" //router requested a resync, in queue
	RouterSynInProgress  RouterSyncStatus = "SYNC_IN_PROGRESS" //hello finished, starting to send state
	RouterSyncDone       RouterSyncStatus = "SYNC_DONE"        //initial state sent

	//Error states
	RouterSyncUnknown      RouterSyncStatus = "SYNC_UNKNOWN"       //the router is currently unknown
	RouterSyncDisconnected RouterSyncStatus = "SYNC_DISCONNECTED"  //strategy was disconnected before finishing
	RouterSyncHelloTimeout RouterSyncStatus = "SYNC_HELLO_TIMEOUT" //sync failed due to a hello timeout.
	RouterSyncError        RouterSyncStatus = "SYNC_ERROR"         //sync failed due to an unexpected error

	//msg headers
	SyncStrategyTypeHeader  = 1013
	SyncStrategyStateHeader = 1014
)

type RouterSyncStrategy added in v0.17.72

type RouterSyncStrategy interface {
	Type() RouterSyncStrategyType
	Status(id string) RouterSyncStatus
	GetOnlineEdgeRouter(id string) (*model.EdgeRouter, RouterSyncStatus)
	Stop()
	RouterConnectionHandler
	RouterSynchronizerEventHandler
}

RouterSyncStrategy handles the life cycle of an Edge Router connecting to the controller, synchronizing any upfront state and then maintaining state after that.

type RouterSyncStrategyType added in v0.17.72

type RouterSyncStrategyType string

Aliased type for router strategies

type RouterSynchronizerEventHandler added in v0.17.72

type RouterSynchronizerEventHandler interface {
	ApiSessionAdded(apiSession *persistence.ApiSession)
	ApiSessionUpdated(apiSession *persistence.ApiSession, apiSessionCert *persistence.ApiSessionCertificate)
	ApiSessionDeleted(apiSession *persistence.ApiSession)

	SessionDeleted(session *persistence.Session)
}

RouterSynchronizerEventHandler is responsible for keeping Edge Routers up to date on API Sessions

type Schemes

type Schemes struct {
	Association             *BasicEntitySchema
	Authenticator           *BasicEntitySchema
	AuthenticatorSelf       *BasicEntitySchema
	Ca                      *BasicEntitySchema
	Config                  *BasicEntitySchema
	ConfigType              *BasicEntitySchema
	Enroller                *BasicEntitySchema
	EnrollEr                *BasicEntitySchema
	EnrollUpdb              *BasicEntitySchema
	EdgeRouter              *BasicEntitySchema
	EdgeRouterPolicy        *BasicEntitySchema
	TransitRouter           *BasicEntitySchema
	Identity                *IdentityEntitySchema
	Service                 *BasicEntitySchema
	ServiceEdgeRouterPolicy *BasicEntitySchema
	ServicePolicy           *BasicEntitySchema
	Session                 *BasicEntitySchema
	Terminator              *BasicEntitySchema
}

func (Schemes) GetEnrollErPost

func (s Schemes) GetEnrollErPost() *gojsonschema.Schema

func (Schemes) GetEnrollUpdbPost

func (s Schemes) GetEnrollUpdbPost() *gojsonschema.Schema

type YamlProducer added in v0.15.16

type YamlProducer struct{}

func (YamlProducer) Produce added in v0.15.16

func (p YamlProducer) Produce(writer io.Writer, i interface{}) error

Jump to

Keyboard shortcuts

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