discovery

package
v0.2.2-beta07 Latest Latest
Warning

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

Go to latest
Published: Sep 22, 2025 License: MIT Imports: 16 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AnalyzedFullHierarchy

type AnalyzedFullHierarchy interface {
	AnalyzedPartialHierarchy
	GetMethod() anysdk.StandardOperationStore
}

type AnalyzedPartialHierarchy

type AnalyzedPartialHierarchy interface {
	GetProvider() anysdk.Provider
	GetService() anysdk.ProviderService
	GetResource() anysdk.Resource
	GetMethods() anysdk.Methods
	GetRegistryAPI() anysdk.RegistryAPI
}

type AnalyzerCfg

type AnalyzerCfg interface {
	GetProtocolType() string
	GetDocRoot() string
	GetRegistryRootDir() string
	GetProviderStr() string
	GetRootURL() string
	IsProviderServicesMustExpand() bool
	IsVerbose() bool
	SetIsVerbose(bool)
	SetIsProviderServicesMustExpand(bool)
}

func NewAnalyzerCfg

func NewAnalyzerCfg(
	protocolType string,
	registryRootDir string,
	docRoot string,
) AnalyzerCfg

type BasicDiscoveryAdapter

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

func (*BasicDiscoveryAdapter) GetProvider

func (adp *BasicDiscoveryAdapter) GetProvider(providerKey string) (anysdk.Provider, error)

func (*BasicDiscoveryAdapter) GetResourcesMap

func (adp *BasicDiscoveryAdapter) GetResourcesMap(
	prov anysdk.Provider,
	serviceKey string,
) (map[string]anysdk.Resource, error)

func (*BasicDiscoveryAdapter) GetServiceHandle

func (adp *BasicDiscoveryAdapter) GetServiceHandle(
	prov anysdk.Provider,
	serviceKey string,
) (anysdk.ProviderService, error)

func (*BasicDiscoveryAdapter) GetServiceHandlesMap

func (adp *BasicDiscoveryAdapter) GetServiceHandlesMap(
	prov anysdk.Provider,
) (map[string]anysdk.ProviderService, error)

func (*BasicDiscoveryAdapter) GetServiceShard

func (adp *BasicDiscoveryAdapter) GetServiceShard(
	prov anysdk.Provider,
	serviceKey,
	resourceKey string,
) (anysdk.Service, error)

func (*BasicDiscoveryAdapter) PersistStaticExternalSQLDataSource

func (adp *BasicDiscoveryAdapter) PersistStaticExternalSQLDataSource(prov anysdk.Provider) error

type IDiscoveryAdapter

type IDiscoveryAdapter interface {
	GetResourcesMap(prov anysdk.Provider, serviceKey string) (map[string]anysdk.Resource, error)
	GetServiceShard(prov anysdk.Provider, serviceKey, resourceKey string) (anysdk.Service, error)
	GetServiceHandlesMap(prov anysdk.Provider) (map[string]anysdk.ProviderService, error)
	GetServiceHandle(prov anysdk.Provider, serviceKey string) (anysdk.ProviderService, error)
	GetProvider(providerKey string) (anysdk.Provider, error)
	PersistStaticExternalSQLDataSource(prov anysdk.Provider) error
	// contains filtered or unexported methods
}

func NewBasicDiscoveryAdapter

func NewBasicDiscoveryAdapter(
	alias string,
	apiDiscoveryDocURL string,
	discoveryStore IDiscoveryStore,
	runtimeCtx *dto.RuntimeCtx,
	registry anysdk.RegistryAPI,
	persistenceSystem persistence.PersistenceSystem,
) IDiscoveryAdapter

type IDiscoveryStore

type IDiscoveryStore interface {
	ProcessProviderDiscoveryDoc(string, string) (anysdk.Provider, error)

	PersistServiceShard(anysdk.Provider, anysdk.ProviderService, string) (anysdk.Service, error)
	// contains filtered or unexported methods
}

func NewTTLDiscoveryStore

func NewTTLDiscoveryStore(
	persistenceSystem persistence.PersistenceSystem,
	registry anysdk.RegistryAPI,
	runtimeCtx dto.RuntimeCtx,
) IDiscoveryStore

type Interrogator

type Interrogator interface {
	GetProviderServices() ([]string, error)
}

func NewInterrogator

func NewInterrogator(providerRootDoc, registryRootDir string) Interrogator

type MethodAggregateStaticAnalyzer

type MethodAggregateStaticAnalyzer interface {
	StaticAnalyzer
	GetFullHierarchy() (AnalyzedFullHierarchy, bool)
}

type ProviderServiceResourceAnalyzer

type ProviderServiceResourceAnalyzer interface {
	StaticAnalyzer
	GetResources() map[string]anysdk.Resource
	GetServiceFragments() map[string]anysdk.Service
}

func NewProviderServiceResourceAnalyzer

func NewProviderServiceResourceAnalyzer(
	cfg AnalyzerCfg,
	discoveryAdapter IDiscoveryAdapter,
	discoveryStore IDiscoveryStore,
	provider anysdk.Provider,
	providerService anysdk.ProviderService,
	resourceKey string,
	registryAPI anysdk.RegistryAPI,
) ProviderServiceResourceAnalyzer

type ResourceAggregateStaticAnalyzer

type ResourceAggregateStaticAnalyzer interface {
	StaticAnalyzer
	GetPartialHierarchy() (AnalyzedPartialHierarchy, bool)
	FindMethodByVerbAndParameters(sqlVerb string, params map[string]any) (anysdk.StandardOperationStore, map[string]any, bool)
}

type StaticAnalyzer

type StaticAnalyzer interface {
	Analyze() error
	GetErrors() []error
	GetWarnings() []string
	GetAffirmatives() []string
	GetRegistryAPI() (anysdk.RegistryAPI, bool)
}

func NewServiceLevelStaticAnalyzer

func NewServiceLevelStaticAnalyzer(
	cfg AnalyzerCfg,
	discoveryAdapter IDiscoveryAdapter,
	discoveryStore IDiscoveryStore,
	provider anysdk.Provider,
	providerService anysdk.ProviderService,
	providerServiceKey string,
	registryAPI anysdk.RegistryAPI,
) StaticAnalyzer

func NewStaticAnalyzer

func NewStaticAnalyzer(
	analysisCfg AnalyzerCfg,
	persistenceSystem persistence.PersistenceSystem,
	registryAPI anysdk.RegistryAPI,
	rtCtx dto.RuntimeCtx,
) (StaticAnalyzer, error)

type StaticAnalyzerFactory

type StaticAnalyzerFactory interface {
	CreateStaticAnalyzer(
		providerURL string,
	) (StaticAnalyzer, error)
	CreateProviderServiceLevelStaticAnalyzer(
		providerURL string,
		serviceName string,
	) (ProviderServiceResourceAnalyzer, error)
	CreateServiceLevelStaticAnalyzer(
		providerURL string,
		serviceName string,
	) (StaticAnalyzer, error)
	CreateMethodAggregateStaticAnalyzer(
		providerURL string,
		providerName string,
		serviceName string,
		resourceName string,
		methodSelectorName string,
		isFuzzy bool,
	) (MethodAggregateStaticAnalyzer, error)
	CreateResourceAggregateStaticAnalyzer(
		providerURL string,
		providerName string,
		serviceName string,
		resourceName string,
	) (ResourceAggregateStaticAnalyzer, error)
}

type StaticAnalyzerFactoryFactory

type StaticAnalyzerFactoryFactory interface {
	CreateNaiveSQLiteStaticAnalyzerFactory(
		registryAPI anysdk.RegistryAPI,
		rtCtx dto.RuntimeCtx,
	) (StaticAnalyzerFactory, error)
	CreateStaticAnalyzerFactoryFromPersistenceSystem(
		registryAPI anysdk.RegistryAPI,
		rtCtx dto.RuntimeCtx,
		persistenceSystem persistence.PersistenceSystem,
	) (StaticAnalyzerFactory, error)
}

func NewStandardStaticAnalyzerFactoryFactory

func NewStandardStaticAnalyzerFactoryFactory() StaticAnalyzerFactoryFactory

type TTLDiscoveryStore

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

func (*TTLDiscoveryStore) PersistServiceShard

func (store *TTLDiscoveryStore) PersistServiceShard(
	pr anysdk.Provider,
	serviceHandle anysdk.ProviderService,
	resourceKey string,
) (anysdk.Service, error)

TODO: this is the obvious place to add namespace analysis and persistence.

Therefore, need to ensure it happens only after all dependents and prior to any namespace usage.

func (*TTLDiscoveryStore) ProcessProviderDiscoveryDoc

func (store *TTLDiscoveryStore) ProcessProviderDiscoveryDoc(url string, alias string) (anysdk.Provider, error)

Jump to

Keyboard shortcuts

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