Documentation
¶
Overview ¶
Package web handles receiving and supplying information within the node.
AccountBalanceController ¶
AccountBalanceController allows for the display of the active accounts ETH and LINK balances.
API ¶
API contains logic for the web interface to display items.
BridgeTypesController ¶
BridgeTypesController allows for the creation of BridgeTypes on the node. BridgeTypes are the external adapters which add functionality not available in the core, from outside the node.
JobRunsController ¶
JobRunsController allows for the creation of JobRuns within a given Job on the node.
JobSpecsController ¶
JobSpecsController allows for the creation of specs to be added to the node, and shows the current specs which have already been added.
JobSpecErrorsController ¶
JobSpecErrorsController allows for errors to be dismissed ¶
Router ¶
Router defines the valid paths for the node and responds to requests.
Index ¶
- Constants
- Variables
- func AuthenticateBySession(store AuthStorer, c *gin.Context) error
- func AuthenticateByToken(store AuthStorer, c *gin.Context) error
- func AuthenticateExternalInitiator(store AuthStorer, c *gin.Context) error
- func BuildFMTaskDAG(js models.JobSpec) (string, *pipeline.Pipeline, error)
- func FindSessionCookie(cookies []*http.Cookie) *http.Cookie
- func GzipFileServer(root ServeFileSystem) http.Handler
- func MigrateJobSpec(c *orm.Config, js models.JobSpec) (job.Job, error)
- func NewJSONAPIResponse(resource interface{}) ([]byte, error)
- func NewPaginatedResponse(url url.URL, size, page, count int, resource interface{}) ([]byte, error)
- func NewPaginatedResponseWithMeta(url url.URL, size, page, count int, resource interface{}, ...) ([]byte, error)
- func ParseJSONAPIResponse(input []byte, resource interface{}) error
- func ParsePaginatedRequest(sizeParam, pageParam string) (int, int, int, error)
- func ParsePaginatedResponse(input []byte, resource interface{}, links *jsonapi.Links) error
- func ParsePaginatedResponseWithMeta(input []byte, resource interface{}, links *jsonapi.Links, meta *jsonapi.Meta) error
- func RequireAuth(store AuthStorer, methods ...authType) gin.HandlerFunc
- func Router(app chainlink.Application) *gin.Engine
- func ServeGzippedAssets(urlPrefix string, fs ServeFileSystem) gin.HandlerFunc
- func StatusCodeForError(err interface{}) int
- type AuthStorer
- type BoxFileSystem
- type BridgeTypesController
- func (btc *BridgeTypesController) Create(c *gin.Context)
- func (btc *BridgeTypesController) Destroy(c *gin.Context)
- func (btc *BridgeTypesController) Index(c *gin.Context, size, page, offset int)
- func (btc *BridgeTypesController) Show(c *gin.Context)
- func (btc *BridgeTypesController) Update(c *gin.Context)
- type BulkDeletesController
- type CSAKeysController
- type Change
- type ConfigController
- type ConfigPatchResponse
- type CreateFeedsManagerRequest
- type CreateJobRequest
- type ETHKeysController
- type ExternalInitiatorsController
- type FeedsManagerController
- type GenericJobSpec
- type HealthController
- type JobRunsController
- type JobSpecErrorsController
- type JobSpecsController
- type JobsController
- type LogController
- type LogPatchRequest
- type MigrateController
- type OCRKeysController
- type P2PKeysController
- type PingController
- type PipelineRunsController
- type ServeFileSystem
- type ServiceAgreementsController
- type Session
- type SessionsController
- type TransactionsController
- type TransfersController
- type TxAttemptsController
- type UpdatePasswordRequest
- type UserController
- type VRFKeysController
Constants ¶
const ( // PaginationDefault is the number of records to supply from a paginated // request when no size param is supplied. PaginationDefault = 25 // MediaType is the response header for JSONAPI documents. MediaType = "application/vnd.api+json" // KeyNextLink is the name of the key that contains the HREF for the next // document in a paginated response. KeyNextLink = "next" // KeyPreviousLink is the name of the key that contains the HREF for the // previous document in a paginated response. KeyPreviousLink = "prev" )
const ( // APIKey is the header name for the API token identifier for user authentication. APIKey = "X-API-KEY" // APISecret is the header name for the API token secret for user authentication. APISecret = "X-API-SECRET" )
const ( // SessionName is the session name SessionName = "clsession" // SessionIDKey is the session ID key in the session map SessionIDKey = "clsession_id" // SessionUserKey is the User key in the session map SessionUserKey = "user" // SessionExternalInitiatorKey is the External Initiator key in the session map SessionExternalInitiatorKey = "external_initiator" )
Variables ¶
var (
ErrInvalidInitiatorType = errors.New("invalid initiator type")
)
Functions ¶
func AuthenticateBySession ¶
func AuthenticateBySession(store AuthStorer, c *gin.Context) error
func AuthenticateByToken ¶
func AuthenticateByToken(store AuthStorer, c *gin.Context) error
AuthenticateByToken authenticates a User by their API token.
func AuthenticateExternalInitiator ¶
func AuthenticateExternalInitiator(store AuthStorer, c *gin.Context) error
func FindSessionCookie ¶
FindSessionCookie returns the cookie with the "clsession" name
func GzipFileServer ¶
func GzipFileServer(root ServeFileSystem) http.Handler
GzipFileServer is a drop-in replacement for Go's standard http.FileServer which adds support for static resources precompressed with gzip, at the cost of removing the support for directory browsing.
func MigrateJobSpec ¶
Does not support mixed initiator types.
func NewJSONAPIResponse ¶
NewJSONAPIResponse returns a JSONAPI response for a single resource.
func NewPaginatedResponse ¶
NewPaginatedResponse returns a jsonapi.Document with links to next and previous collection pages
func ParseJSONAPIResponse ¶
ParseJSONAPIResponse parses the bytes of the root document and unmarshals it into the given resource.
func ParsePaginatedRequest ¶
ParsePaginatedRequest parses the parameters that control pagination for a collection request, returning the size and offset if specified, or a sensible default.
func ParsePaginatedResponse ¶
ParsePaginatedResponse parse a JSONAPI response for a document with links
func ParsePaginatedResponseWithMeta ¶
func ParsePaginatedResponseWithMeta(input []byte, resource interface{}, links *jsonapi.Links, meta *jsonapi.Meta) error
ParsePaginatedResponse parse a JSONAPI response for a document with links
func RequireAuth ¶
func RequireAuth(store AuthStorer, methods ...authType) gin.HandlerFunc
func Router ¶
func Router(app chainlink.Application) *gin.Engine
Router listens and responds to requests to the node for valid paths.
func ServeGzippedAssets ¶
func ServeGzippedAssets(urlPrefix string, fs ServeFileSystem) gin.HandlerFunc
Static returns a middleware handler that serves static files in the given directory.
func StatusCodeForError ¶
func StatusCodeForError(err interface{}) int
StatusCodeForError returns an http status code for an error type.
Types ¶
type AuthStorer ¶
type BoxFileSystem ¶
BoxFileSystem implements ServeFileSystem with a packr box
type BridgeTypesController ¶
type BridgeTypesController struct {
App chainlink.Application
}
BridgeTypesController manages BridgeType requests in the node.
func (*BridgeTypesController) Create ¶
func (btc *BridgeTypesController) Create(c *gin.Context)
Create adds the BridgeType to the given context.
func (*BridgeTypesController) Destroy ¶
func (btc *BridgeTypesController) Destroy(c *gin.Context)
Destroy removes a specific Bridge.
func (*BridgeTypesController) Index ¶
func (btc *BridgeTypesController) Index(c *gin.Context, size, page, offset int)
Index lists Bridges, one page at a time.
func (*BridgeTypesController) Show ¶
func (btc *BridgeTypesController) Show(c *gin.Context)
Show returns the details of a specific Bridge.
func (*BridgeTypesController) Update ¶
func (btc *BridgeTypesController) Update(c *gin.Context)
Update can change the restricted attributes for a bridge
type BulkDeletesController ¶
type BulkDeletesController struct {
App chainlink.Application
}
BulkDeletesController manages background tasks that delete resources given a query
func (*BulkDeletesController) Delete ¶
func (bdc *BulkDeletesController) Delete(c *gin.Context)
Delete removes all runs given a query Example:
"<application>/bulk_delete_runs"
type CSAKeysController ¶
type CSAKeysController struct {
App chainlink.Application
}
CSAKeysController manages CSA keys
func (*CSAKeysController) Create ¶
func (ctrl *CSAKeysController) Create(c *gin.Context)
Create and return a P2P key Example: "POST <application>/keys/csa"
func (*CSAKeysController) Index ¶
func (ctrl *CSAKeysController) Index(c *gin.Context)
Index lists P2P keys Example: "GET <application>/keys/csa"
type ConfigController ¶
type ConfigController struct {
App chainlink.Application
}
ConfigController manages config variables
func (*ConfigController) Patch ¶
func (cc *ConfigController) Patch(c *gin.Context)
Patch updates one or more configuration options
func (*ConfigController) Show ¶
func (cc *ConfigController) Show(c *gin.Context)
Show returns the whitelist of config variables Example:
"<application>/config"
type ConfigPatchResponse ¶
type ConfigPatchResponse struct {
EthGasPriceDefault Change `json:"ethGasPriceDefault"`
}
ConfigPatchResponse represents the change to the configuration made due to a PATCH to the config endpoint
func (ConfigPatchResponse) GetID ¶
func (c ConfigPatchResponse) GetID() string
GetID returns the jsonapi ID.
func (*ConfigPatchResponse) SetID ¶
func (*ConfigPatchResponse) SetID(string) error
SetID is used to conform to the UnmarshallIdentifier interface for deserializing from jsonapi documents.
type CreateFeedsManagerRequest ¶
type CreateFeedsManagerRequest struct { Name string `json:"name"` URI string `json:"uri"` JobTypes []string `json:"jobTypes"` PublicKey feeds.PublicKey `json:"publicKey"` Network string `json:"network"` }
CreateFeedsManagerRequest represents a JSONAPI request for registering a feeds manager
type CreateJobRequest ¶
type CreateJobRequest struct {
TOML string `json:"toml"`
}
CreateJobRequest represents a request to create and start a job (V2).
type ETHKeysController ¶
type ETHKeysController struct {
App chainlink.Application
}
ETHKeysController manages account keys
func (*ETHKeysController) Create ¶
func (ekc *ETHKeysController) Create(c *gin.Context)
Create adds a new account Example:
"<application>/keys/eth"
func (*ETHKeysController) Delete ¶
func (ekc *ETHKeysController) Delete(c *gin.Context)
Delete an ETH key bundle Example: "DELETE <application>/keys/eth/:keyID" "DELETE <application>/keys/eth/:keyID?hard=true"
func (*ETHKeysController) Export ¶
func (ekc *ETHKeysController) Export(c *gin.Context)
func (*ETHKeysController) Import ¶
func (ekc *ETHKeysController) Import(c *gin.Context)
Import imports a key
func (*ETHKeysController) Index ¶
func (ekc *ETHKeysController) Index(c *gin.Context)
Index returns the node's Ethereum keys and the account balances of ETH & LINK. Example:
"<application>/keys/eth"
type ExternalInitiatorsController ¶
type ExternalInitiatorsController struct {
App chainlink.Application
}
ExternalInitiatorsController manages external initiators
func (*ExternalInitiatorsController) Create ¶
func (eic *ExternalInitiatorsController) Create(c *gin.Context)
Create builds and saves a new service agreement record.
func (*ExternalInitiatorsController) Destroy ¶
func (eic *ExternalInitiatorsController) Destroy(c *gin.Context)
Destroy deletes an ExternalInitiator
type FeedsManagerController ¶
type FeedsManagerController struct {
App chainlink.Application
}
FeedsManagerController manages the feeds managers
func (*FeedsManagerController) Create ¶
func (fmc *FeedsManagerController) Create(c *gin.Context)
Create registers a new feeds manager. Example: "POST <application>/feeds_managers"
func (*FeedsManagerController) List ¶
func (fmc *FeedsManagerController) List(c *gin.Context)
List retrieves all the feeds managers Example: "GET <application>/feeds_managers"
func (*FeedsManagerController) Show ¶
func (fmc *FeedsManagerController) Show(c *gin.Context)
Show retrieve a feeds manager by id Example: "GET <application>/feeds_managers/<id>"
type GenericJobSpec ¶
type HealthController ¶
type HealthController struct {
App chainlink.Application
}
func (*HealthController) Health ¶
func (hc *HealthController) Health(c *gin.Context)
func (*HealthController) Readyz ¶
func (hc *HealthController) Readyz(c *gin.Context)
NOTE: We only implement the k8s readiness check, *not* the liveness check. Liveness checks are only recommended in cases where the app doesn't crash itself on panic, and if implemented incorrectly can cause cascading failures. See the following for more information: - https://srcco.de/posts/kubernetes-liveness-probes-are-dangerous.html
type JobRunsController ¶
type JobRunsController struct {
App chainlink.Application
}
JobRunsController manages JobRun requests in the node.
func (*JobRunsController) Cancel ¶
func (jrc *JobRunsController) Cancel(c *gin.Context)
Cancel stops a Run from continuing. Example:
"<application>/runs/:RunID/cancellation"
func (*JobRunsController) Create ¶
func (jrc *JobRunsController) Create(c *gin.Context)
Create starts a new Run for the requested JobSpec. Example:
"<application>/specs/:SpecID/runs"
func (*JobRunsController) Index ¶
func (jrc *JobRunsController) Index(c *gin.Context, size, page, offset int)
Index returns paginated JobRuns for a given JobSpec Example:
"<application>/runs?jobSpecId=:jobSpecId&size=1&page=2"
func (*JobRunsController) Show ¶
func (jrc *JobRunsController) Show(c *gin.Context)
Show returns the details of a JobRun. Example:
"<application>/runs/:RunID"
func (*JobRunsController) Update ¶
func (jrc *JobRunsController) Update(c *gin.Context)
Update allows external adapters to resume a JobRun, reporting the result of the task and marking it no longer pending. Example:
"<application>/runs/:RunID"
type JobSpecErrorsController ¶
type JobSpecErrorsController struct {
App chainlink.Application
}
JobSpecErrorsController manages JobSpecError requests
func (*JobSpecErrorsController) Destroy ¶
func (jsec *JobSpecErrorsController) Destroy(c *gin.Context)
Destroy deletes a JobSpecError record from the database, effectively silencing the error notification
type JobSpecsController ¶
type JobSpecsController struct {
App chainlink.Application
}
JobSpecsController manages JobSpec requests.
func (*JobSpecsController) Create ¶
func (jsc *JobSpecsController) Create(c *gin.Context)
Create adds validates, saves, and starts a new JobSpec. Example:
"<application>/specs"
func (*JobSpecsController) Destroy ¶
func (jsc *JobSpecsController) Destroy(c *gin.Context)
Destroy soft deletes a job spec. Example:
"<application>/specs/:SpecID"
func (*JobSpecsController) Index ¶
func (jsc *JobSpecsController) Index(c *gin.Context, size, page, offset int)
Index lists JobSpecs, one page at a time. Example:
"<application>/specs?size=1&page=2"
func (*JobSpecsController) Show ¶
func (jsc *JobSpecsController) Show(c *gin.Context)
Show returns the details of a JobSpec. Example:
"<application>/specs/:SpecID"
type JobsController ¶
type JobsController struct {
App chainlink.Application
}
JobsController manages jobs
func (*JobsController) Create ¶
func (jc *JobsController) Create(c *gin.Context)
Create validates, saves and starts a new job. Example: "POST <application>/jobs"
func (*JobsController) Delete ¶
func (jc *JobsController) Delete(c *gin.Context)
Delete hard deletes a job spec. Example: "DELETE <application>/specs/:ID"
func (*JobsController) Index ¶
func (jc *JobsController) Index(c *gin.Context)
Index lists all jobs Example: "GET <application>/jobs"
func (*JobsController) Show ¶
func (jc *JobsController) Show(c *gin.Context)
Show returns the details of a job Example: "GET <application>/jobs/:ID"
type LogController ¶
type LogController struct {
App chainlink.Application
}
LogController manages the logger config
func (*LogController) Get ¶
func (cc *LogController) Get(c *gin.Context)
Get retrieves the current log config settings
func (*LogController) Patch ¶
func (cc *LogController) Patch(c *gin.Context)
Patch sets a log level and enables sql logging for the logger
type LogPatchRequest ¶
type MigrateController ¶
type MigrateController struct {
App chainlink.Application
}
func (*MigrateController) Migrate ¶
func (mc *MigrateController) Migrate(c *gin.Context)
Creates a v2 job from a v1 job ID. Example:
"POST <application>/migrate/123e4567-e89b-12d3-a456-426614174000"
Where "123e4567-e89b-12d3-a456-426614174000" is a v1 job ID.
type OCRKeysController ¶
type OCRKeysController struct {
App chainlink.Application
}
OCRKeysController manages OCR key bundles
func (*OCRKeysController) Create ¶
func (ocrkc *OCRKeysController) Create(c *gin.Context)
Create and return an OCR key bundle Example: "POST <application>/keys/ocr"
func (*OCRKeysController) Delete ¶
func (ocrkc *OCRKeysController) Delete(c *gin.Context)
Delete an OCR key bundle Example: "DELETE <application>/keys/ocr/:keyID" "DELETE <application>/keys/ocr/:keyID?hard=true"
func (*OCRKeysController) Export ¶
func (ocrkc *OCRKeysController) Export(c *gin.Context)
Export exports an OCR key bundle Example: "Post <application>/keys/ocr/export"
func (*OCRKeysController) Import ¶
func (ocrkc *OCRKeysController) Import(c *gin.Context)
Import imports an OCR key bundle Example: "Post <application>/keys/ocr/import"
func (*OCRKeysController) Index ¶
func (ocrkc *OCRKeysController) Index(c *gin.Context)
Index lists OCR key bundles Example: "GET <application>/keys/ocr"
type P2PKeysController ¶
type P2PKeysController struct {
App chainlink.Application
}
P2PKeysController manages P2P keys
func (*P2PKeysController) Create ¶
func (p2pkc *P2PKeysController) Create(c *gin.Context)
Create and return a P2P key Example: "POST <application>/keys/p2p"
func (*P2PKeysController) Delete ¶
func (p2pkc *P2PKeysController) Delete(c *gin.Context)
Delete a P2P key Example: "DELETE <application>/keys/p2p/:keyID" "DELETE <application>/keys/p2p/:keyID?hard=true"
func (*P2PKeysController) Export ¶
func (p2pkc *P2PKeysController) Export(c *gin.Context)
Export exports a P2P key Example: "Post <application>/keys/p2p/export"
func (*P2PKeysController) Import ¶
func (p2pkc *P2PKeysController) Import(c *gin.Context)
Import imports a P2P key Example: "Post <application>/keys/p2p/import"
func (*P2PKeysController) Index ¶
func (p2pkc *P2PKeysController) Index(c *gin.Context)
Index lists P2P keys Example: "GET <application>/keys/p2p"
type PingController ¶
type PingController struct {
App chainlink.Application
}
PingController has the ping endpoint.
type PipelineRunsController ¶
type PipelineRunsController struct {
App chainlink.Application
}
PipelineRunsController manages V2 job run requests.
func (*PipelineRunsController) Create ¶
func (prc *PipelineRunsController) Create(c *gin.Context)
Create triggers a pipeline run for a job. Example: "POST <application>/jobs/:ID/runs"
func (*PipelineRunsController) Index ¶
func (prc *PipelineRunsController) Index(c *gin.Context, size, page, offset int)
Index returns all pipeline runs for a job. Example: "GET <application>/jobs/:ID/runs"
func (*PipelineRunsController) Show ¶
func (prc *PipelineRunsController) Show(c *gin.Context)
Show returns a specified pipeline run. Example: "GET <application>/jobs/:ID/runs/:runID"
type ServeFileSystem ¶
type ServeFileSystem interface { http.FileSystem Exists(prefix string, path string) bool }
ServeFileSystem wraps a http.FileSystem with an additional file existence check
type ServiceAgreementsController ¶
type ServiceAgreementsController struct {
App chainlink.Application
}
ServiceAgreementsController manages service agreements.
func (*ServiceAgreementsController) Create ¶
func (sac *ServiceAgreementsController) Create(c *gin.Context)
Create builds and saves a new service agreement record.
func (*ServiceAgreementsController) Show ¶
func (sac *ServiceAgreementsController) Show(c *gin.Context)
Show returns the details of a ServiceAgreement. Example:
"<application>/service_agreements/:SAID"
type Session ¶
type Session struct {
Authenticated bool `json:"authenticated"`
}
type SessionsController ¶
type SessionsController struct {
App chainlink.Application
}
SessionsController manages session requests.
func (*SessionsController) Create ¶
func (sc *SessionsController) Create(c *gin.Context)
Create creates a session ID for the given user credentials, and returns it in a cookie.
func (*SessionsController) Destroy ¶
func (sc *SessionsController) Destroy(c *gin.Context)
Destroy erases the session ID for the sole API user.
type TransactionsController ¶
type TransactionsController struct {
App chainlink.Application
}
TransactionsController displays Ethereum transactions requests.
func (*TransactionsController) Index ¶
func (tc *TransactionsController) Index(c *gin.Context, size, page, offset int)
Index returns paginated transactions
func (*TransactionsController) Show ¶
func (tc *TransactionsController) Show(c *gin.Context)
Show returns the details of a Ethereum Transasction details. Example:
"<application>/transactions/:TxHash"
type TransfersController ¶
type TransfersController struct {
App chainlink.Application
}
TransfersController can send LINK tokens to another address
func (*TransfersController) Create ¶
func (tc *TransfersController) Create(c *gin.Context)
Create sends ETH from the Chainlink's account to a specified address.
Example: "<application>/withdrawals"
type TxAttemptsController ¶
type TxAttemptsController struct {
App chainlink.Application
}
TxAttemptsController lists TxAttempts requests.
type UpdatePasswordRequest ¶
type UpdatePasswordRequest struct { OldPassword string `json:"oldPassword"` NewPassword string `json:"newPassword"` }
UpdatePasswordRequest defines the request to set a new password for the current session's User.
type UserController ¶
type UserController struct {
App chainlink.Application
}
UserController manages the current Session's User User.
func (*UserController) DeleteAPIToken ¶
func (c *UserController) DeleteAPIToken(ctx *gin.Context)
DeleteAPIToken deletes and disables a user's API token.
func (*UserController) NewAPIToken ¶
func (c *UserController) NewAPIToken(ctx *gin.Context)
NewAPIToken generates a new API token for a user overwriting any pre-existing one set.
func (*UserController) UpdatePassword ¶
func (c *UserController) UpdatePassword(ctx *gin.Context)
UpdatePassword changes the password for the current User.
type VRFKeysController ¶
type VRFKeysController struct {
App chainlink.Application
}
VRFKeysController manages VRF keys
func (*VRFKeysController) Create ¶
func (vrfkc *VRFKeysController) Create(c *gin.Context)
Create and return a VRF key Example: "POST <application>/keys/vrf"
func (*VRFKeysController) Delete ¶
func (vrfkc *VRFKeysController) Delete(c *gin.Context)
Delete a VRF key Example: "DELETE <application>/keys/vrf/:keyID" "DELETE <application>/keys/vrf/:keyID?hard=true"
func (*VRFKeysController) Export ¶
func (vrfkc *VRFKeysController) Export(c *gin.Context)
Export exports a VRF key Example: "Post <application>/keys/vrf/export/:keyID"
func (*VRFKeysController) Import ¶
func (vrfkc *VRFKeysController) Import(c *gin.Context)
Import imports a VRF key Example: "Post <application>/keys/vrf/import"
func (*VRFKeysController) Index ¶
func (vrfkc *VRFKeysController) Index(c *gin.Context)
Index lists VRF keys Example: "GET <application>/keys/vrf"
Source Files
¶
- api.go
- authentication.go
- bridge_types_controller.go
- bulk_deletes_controller.go
- config_controller.go
- cookies.go
- csa_keys_controller.go
- doc.go
- eth_keys_controller.go
- external_initiators_controller.go
- feeds_manager_controller.go
- health_controller.go
- helpers.go
- job_runs_controller.go
- job_spec_errors_controller.go
- job_specs_controller.go
- jobs_controller.go
- log_controller.go
- middleware.go
- migrate_controller.go
- ocr_keys_controller.go
- p2p_keys_controller.go
- ping_controller.go
- pipeline_runs_controller.go
- router.go
- service_agreements_controller.go
- sessions_controller.go
- transactions_controller.go
- transfer_controller.go
- tx_attempts_controller.go
- user_controller.go
- vrf_keys_controller.go