Documentation ¶
Index ¶
- Constants
- Variables
- func Serve(ctx context.Context, serveAddr string, db idb.IndexerDb, ...)
- func Verify(dm *DisabledMap, nameOfHandlerFunc string, ctx echo.Context, ...) error
- type DisabledMap
- type DisabledMapConfig
- type DisabledParameterErrorReporter
- type DisplayDisabledMap
- type EndpointConfig
- type ErrDisabledMapConfig
- type ErrVerifyFailedParameter
- type ExtraOptions
- type ServerImplementation
- func (si *ServerImplementation) LookupAccountAppLocalStates(ctx echo.Context, accountID string, ...) error
- func (si *ServerImplementation) LookupAccountAssets(ctx echo.Context, accountID string, params generated.LookupAccountAssetsParams) error
- func (si *ServerImplementation) LookupAccountByID(ctx echo.Context, accountID string, params generated.LookupAccountByIDParams) error
- func (si *ServerImplementation) LookupAccountCreatedApplications(ctx echo.Context, accountID string, ...) error
- func (si *ServerImplementation) LookupAccountCreatedAssets(ctx echo.Context, accountID string, ...) error
- func (si *ServerImplementation) LookupAccountTransactions(ctx echo.Context, accountID string, ...) error
- func (si *ServerImplementation) LookupApplicationBoxByIDAndName(ctx echo.Context, applicationID uint64, ...) error
- func (si *ServerImplementation) LookupApplicationByID(ctx echo.Context, applicationID uint64, ...) error
- func (si *ServerImplementation) LookupApplicationLogsByID(ctx echo.Context, applicationID uint64, ...) error
- func (si *ServerImplementation) LookupAssetBalances(ctx echo.Context, assetID uint64, params generated.LookupAssetBalancesParams) error
- func (si *ServerImplementation) LookupAssetByID(ctx echo.Context, assetID uint64, params generated.LookupAssetByIDParams) error
- func (si *ServerImplementation) LookupAssetTransactions(ctx echo.Context, assetID uint64, ...) error
- func (si *ServerImplementation) LookupBlock(ctx echo.Context, roundNumber uint64, params generated.LookupBlockParams) error
- func (si *ServerImplementation) LookupTransaction(ctx echo.Context, txid string) error
- func (si *ServerImplementation) MakeHealthCheck(ctx echo.Context) error
- func (si *ServerImplementation) SearchForAccounts(ctx echo.Context, params generated.SearchForAccountsParams) error
- func (si *ServerImplementation) SearchForApplicationBoxes(ctx echo.Context, applicationID uint64, ...) error
- func (si *ServerImplementation) SearchForApplications(ctx echo.Context, params generated.SearchForApplicationsParams) error
- func (si *ServerImplementation) SearchForAssets(ctx echo.Context, params generated.SearchForAssetsParams) error
- func (si *ServerImplementation) SearchForTransactions(ctx echo.Context, params generated.SearchForTransactionsParams) error
Constants ¶
const ( ErrNoBoxesFound = "no application boxes found" ErrWrongAppidFound = "the wrong application-id was found, please contact us, this shouldn't happen" ErrWrongBoxFound = "a box with an unexpected name was found, please contact us, this shouldn't happen" ErrNoAccountsFound = "no accounts found for address" ErrMultipleBoxes = "multiple application boxes found for this app id and box name, please contact us, this shouldn't happen" ErrFailedLookingUpBoxes = "failed while looking up application boxes" ErrResultLimitReached = "Result limit exceeded" ErrBoxNotFound = "box not found" )
constant error messages.
Variables ¶
var ErrVerifyFailedEndpoint error = fmt.Errorf("endpoint is disabled")
ErrVerifyFailedEndpoint an error that signifies that the entire endpoint is disabled
Functions ¶
func Serve ¶
func Serve(ctx context.Context, serveAddr string, db idb.IndexerDb, dataError func() error, log *log.Logger, options ExtraOptions)
Serve starts an http server for the indexer API. This call blocks.
func Verify ¶
func Verify(dm *DisabledMap, nameOfHandlerFunc string, ctx echo.Context, log DisabledParameterErrorReporter) error
Verify returns nil if the function can continue (i.e. the parameters are valid and disabled parameters are not supplied), otherwise VerifyFailedEndpoint if the endpoint failed and VerifyFailedParameter if a disabled parameter was provided.
Types ¶
type DisabledMap ¶
type DisabledMap struct { // Key -> Function Name/Operation ID Data map[string]*EndpointConfig }
DisabledMap a type that holds a map of disabled types The key for a disabled map is the handler function name
func MakeDisabledMap ¶
func MakeDisabledMap() *DisabledMap
MakeDisabledMap creates a new empty disabled map
func MakeDisabledMapFromOA3 ¶
func MakeDisabledMapFromOA3(swag *openapi3.T, config *DisabledMapConfig) (*DisabledMap, error)
MakeDisabledMapFromOA3 Creates a new disabled map from an openapi3 definition
type DisabledMapConfig ¶
type DisabledMapConfig struct { // Key -> Path of REST endpoint (i.e. /v2/accounts/{account-id}/transactions) // Value -> Operation "get, post, etc" -> Sub-value: List of parameters disabled for that endpoint Data map[string]map[string][]string }
DisabledMapConfig is a type that holds the configuration for setting up a DisabledMap
func GetDefaultDisabledMapConfigForPostgres ¶
func GetDefaultDisabledMapConfigForPostgres() *DisabledMapConfig
GetDefaultDisabledMapConfigForPostgres will generate a configuration that will block certain parameters. Should be used only for the postgres implementation
func MakeDisabledMapConfig ¶
func MakeDisabledMapConfig() *DisabledMapConfig
MakeDisabledMapConfig creates a new disabled map configuration with everything enabled
func MakeDisabledMapConfigFromFile ¶
func MakeDisabledMapConfigFromFile(swag *openapi3.T, filePath string) (*DisabledMapConfig, error)
MakeDisabledMapConfigFromFile loads a file containing a disabled map configuration.
type DisabledParameterErrorReporter ¶
type DisabledParameterErrorReporter interface {
Errorf(format string, args ...interface{})
}
DisabledParameterErrorReporter defines an error reporting interface for the Verify functions
type DisplayDisabledMap ¶
type DisplayDisabledMap struct { // A complicated map but necessary to output the correct YAML. // This is supposed to represent a data structure with a similar YAML // representation: // /v2/accounts/{account-id}: // required: // - account-id : enabled // /v2/accounts: // optional: // - auth-addr : enabled // - next: disabled Data map[string]map[string][]map[string]string }
DisplayDisabledMap is a struct that contains the necessary information to output the current config to the screen
func MakeDisplayDisabledMapFromConfig ¶
func MakeDisplayDisabledMapFromConfig(swag *openapi3.T, mapConfig *DisabledMapConfig, limited bool) *DisplayDisabledMap
MakeDisplayDisabledMapFromConfig will make a DisplayDisabledMap that takes into account the DisabledMapConfig. If limited is set to true, then only disabled parameters will be added to the DisplayDisabledMap
func (*DisplayDisabledMap) String ¶
func (ddm *DisplayDisabledMap) String() (string, error)
type EndpointConfig ¶
EndpointConfig is a data structure that contains whether the endpoint is disabled (with a boolean) as well as a set that contains disabled optional parameters. The disabled optional parameter set is keyed by the name of the variable
type ErrDisabledMapConfig ¶
type ErrDisabledMapConfig struct { // Key -> REST Path that was mis-spelled // Value -> Operation "get, post, etc" -> Sub-value: Any parameters that were found to be mis-spelled in a valid REST PATH BadEntries map[string]map[string][]string }
ErrDisabledMapConfig contains any mis-spellings that could be present in a configuration
func (*ErrDisabledMapConfig) Error ¶
func (edmc *ErrDisabledMapConfig) Error() string
type ErrVerifyFailedParameter ¶
type ErrVerifyFailedParameter struct {
ParameterName string
}
ErrVerifyFailedParameter an error that signifies that a parameter was provided when it was disabled
func (ErrVerifyFailedParameter) Error ¶
func (evfp ErrVerifyFailedParameter) Error() string
type ExtraOptions ¶
type ExtraOptions struct { // Tokens are the access tokens which can access the API. Tokens []string // Respond to Private Network Access preflight requests sent to the indexer. EnablePrivateNetworkAccessHeader bool // MetricsEndpoint turns on the /metrics endpoint for prometheus metrics. MetricsEndpoint bool // MetricsEndpointVerbose generates separate histograms based on query parameters on the /metrics endpoint. MetricsEndpointVerbose bool // Maximum amount of time to wait before timing out writes to a response. Note that handler timeout is computed //off of this. WriteTimeout time.Duration // ReadTimeout is the maximum duration for reading the entire request, including the body. ReadTimeout time.Duration // DisabledMapConfig is the disabled map configuration that is being used by the server DisabledMapConfig *DisabledMapConfig // MaxAPIResourcesPerAccount is the maximum number of combined AppParams, AppLocalState, AssetParams, // and AssetHolding resources per address that can be returned by the /v2/accounts endpoints. // If an address exceeds this number, a 400 error is returned. Zero means unlimited. MaxAPIResourcesPerAccount uint64 // Transactions MaxTransactionsLimit uint64 DefaultTransactionsLimit uint64 // Accounts MaxAccountsLimit uint64 DefaultAccountsLimit uint64 // Assets MaxAssetsLimit uint64 DefaultAssetsLimit uint64 // Asset Balances MaxBalancesLimit uint64 DefaultBalancesLimit uint64 // Applications MaxApplicationsLimit uint64 DefaultApplicationsLimit uint64 // Boxes MaxBoxesLimit uint64 DefaultBoxesLimit uint64 }
ExtraOptions are options which change the behavior of the HTTP server.
type ServerImplementation ¶
type ServerImplementation struct {
// contains filtered or unexported fields
}
ServerImplementation implements the handler interface used by the generated route definitions.
func (*ServerImplementation) LookupAccountAppLocalStates ¶
func (si *ServerImplementation) LookupAccountAppLocalStates(ctx echo.Context, accountID string, params generated.LookupAccountAppLocalStatesParams) error
LookupAccountAppLocalStates queries indexer for AppLocalState for a given account, and optionally a given app ID. (GET /v2/accounts/{account-id}/apps-local-state)
func (*ServerImplementation) LookupAccountAssets ¶
func (si *ServerImplementation) LookupAccountAssets(ctx echo.Context, accountID string, params generated.LookupAccountAssetsParams) error
LookupAccountAssets queries indexer for AssetHolding for a given account, and optionally a given asset ID. (GET /v2/accounts/{account-id}/assets)
func (*ServerImplementation) LookupAccountByID ¶
func (si *ServerImplementation) LookupAccountByID(ctx echo.Context, accountID string, params generated.LookupAccountByIDParams) error
LookupAccountByID queries indexer for a given account. (GET /v2/accounts/{account-id})
func (*ServerImplementation) LookupAccountCreatedApplications ¶
func (si *ServerImplementation) LookupAccountCreatedApplications(ctx echo.Context, accountID string, params generated.LookupAccountCreatedApplicationsParams) error
LookupAccountCreatedApplications queries indexer for AppParams for a given account, and optionally a given app ID. (GET /v2/accounts/{account-id}/created-applications)
func (*ServerImplementation) LookupAccountCreatedAssets ¶
func (si *ServerImplementation) LookupAccountCreatedAssets(ctx echo.Context, accountID string, params generated.LookupAccountCreatedAssetsParams) error
LookupAccountCreatedAssets queries indexer for AssetParams for a given account, and optionally a given asset ID. (GET /v2/accounts/{account-id}/created-assets)
func (*ServerImplementation) LookupAccountTransactions ¶
func (si *ServerImplementation) LookupAccountTransactions(ctx echo.Context, accountID string, params generated.LookupAccountTransactionsParams) error
LookupAccountTransactions looks up transactions associated with a particular account. (GET /v2/accounts/{account-id}/transactions)
func (*ServerImplementation) LookupApplicationBoxByIDAndName ¶
func (si *ServerImplementation) LookupApplicationBoxByIDAndName(ctx echo.Context, applicationID uint64, params generated.LookupApplicationBoxByIDAndNameParams) error
LookupApplicationBoxByIDAndName returns the value of an application's box (GET /v2/applications/{application-id}/box)
func (*ServerImplementation) LookupApplicationByID ¶
func (si *ServerImplementation) LookupApplicationByID(ctx echo.Context, applicationID uint64, params generated.LookupApplicationByIDParams) error
LookupApplicationByID returns one application for the requested ID. (GET /v2/applications/{application-id})
func (*ServerImplementation) LookupApplicationLogsByID ¶
func (si *ServerImplementation) LookupApplicationLogsByID(ctx echo.Context, applicationID uint64, params generated.LookupApplicationLogsByIDParams) error
LookupApplicationLogsByID returns one application logs (GET /v2/applications/{application-id}/logs)
func (*ServerImplementation) LookupAssetBalances ¶
func (si *ServerImplementation) LookupAssetBalances(ctx echo.Context, assetID uint64, params generated.LookupAssetBalancesParams) error
LookupAssetBalances looks up balances for a particular asset (GET /v2/assets/{asset-id}/balances)
func (*ServerImplementation) LookupAssetByID ¶
func (si *ServerImplementation) LookupAssetByID(ctx echo.Context, assetID uint64, params generated.LookupAssetByIDParams) error
LookupAssetByID looks up a particular asset (GET /v2/assets/{asset-id})
func (*ServerImplementation) LookupAssetTransactions ¶
func (si *ServerImplementation) LookupAssetTransactions(ctx echo.Context, assetID uint64, params generated.LookupAssetTransactionsParams) error
LookupAssetTransactions looks up transactions associated with a particular asset (GET /v2/assets/{asset-id}/transactions)
func (*ServerImplementation) LookupBlock ¶
func (si *ServerImplementation) LookupBlock(ctx echo.Context, roundNumber uint64, params generated.LookupBlockParams) error
LookupBlock returns the block for a given round number (GET /v2/blocks/{round-number})
func (*ServerImplementation) LookupTransaction ¶
func (si *ServerImplementation) LookupTransaction(ctx echo.Context, txid string) error
LookupTransaction searches for the requested transaction ID.
func (*ServerImplementation) MakeHealthCheck ¶
func (si *ServerImplementation) MakeHealthCheck(ctx echo.Context) error
MakeHealthCheck returns health check information about indexer and the IndexerDb being used. Returns 200 if healthy. (GET /health)
func (*ServerImplementation) SearchForAccounts ¶
func (si *ServerImplementation) SearchForAccounts(ctx echo.Context, params generated.SearchForAccountsParams) error
SearchForAccounts returns accounts matching the provided parameters (GET /v2/accounts)
func (*ServerImplementation) SearchForApplicationBoxes ¶
func (si *ServerImplementation) SearchForApplicationBoxes(ctx echo.Context, applicationID uint64, params generated.SearchForApplicationBoxesParams) error
SearchForApplicationBoxes returns box names for an app (GET /v2/applications/{application-id}/boxes)
func (*ServerImplementation) SearchForApplications ¶
func (si *ServerImplementation) SearchForApplications(ctx echo.Context, params generated.SearchForApplicationsParams) error
SearchForApplications returns applications for the provided parameters. (GET /v2/applications)
func (*ServerImplementation) SearchForAssets ¶
func (si *ServerImplementation) SearchForAssets(ctx echo.Context, params generated.SearchForAssetsParams) error
SearchForAssets returns assets matching the provided parameters (GET /v2/assets)
func (*ServerImplementation) SearchForTransactions ¶
func (si *ServerImplementation) SearchForTransactions(ctx echo.Context, params generated.SearchForTransactionsParams) error
SearchForTransactions returns transactions matching the provided parameters (GET /v2/transactions)
Source Files ¶
Directories ¶
Path | Synopsis |
---|---|
generated
|
|
common
Package common provides primitives to interact with the openapi HTTP API.
|
Package common provides primitives to interact with the openapi HTTP API. |
v2
Package generated provides primitives to interact with the openapi HTTP API.
|
Package generated provides primitives to interact with the openapi HTTP API. |