Documentation ¶
Index ¶
- Constants
- func DetermineAPIVersions(apis []discovery.ModelDiscoveryItem) []string
- func EnableTLSCheck(state bool)
- func NewWebSocketUpgrader() *websocket.Upgrader
- func PutParametersToJourneyContext(config JourneyConfig, context model.Context) error
- func SupportedAcrValues() []string
- func SupportedRequestSignAlgValues() []interface{}
- type AcquiredAccessTokenWebSocketEvent
- type AcquiredAllAccessTokensWebSocketEvent
- type AppJourney
- func (wj *AppJourney) AllTokenCollected() bool
- func (wj *AppJourney) CollectToken(code, state, scope string) error
- func (wj *AppJourney) ConditionalProperties() []discovery.ConditionalAPIProperties
- func (wj *AppJourney) DiscoveryModel() (discovery.Model, error)
- func (wj *AppJourney) EnableDynamicResourceIDs()
- func (wj *AppJourney) Events() events.Events
- func (wj *AppJourney) FilteredManifests() (manifest.Scripts, error)
- func (wj *AppJourney) NewDaemonController()
- func (wj *AppJourney) Results() executors.DaemonController
- func (wj *AppJourney) RunTests() error
- func (wj *AppJourney) SetConfig(config JourneyConfig) error
- func (wj *AppJourney) SetDiscoveryModel(discoveryModel *discovery.Model) (discovery.ValidationFailures, error)
- func (wj *AppJourney) SetFilteredManifests(fmfs manifest.Scripts)
- func (wj *AppJourney) StopTestRun()
- func (wj *AppJourney) TLSVersionResult() map[string]*discovery.TLSValidationResult
- func (wj *AppJourney) TestCases() (generation.SpecRun, error)
- type AuthClaim
- type ErrorResponse
- type GlobalConfiguration
- type Journey
- type JourneyConfig
- type MockJourney
- func (_m *MockJourney) AllTokenCollected() bool
- func (_m *MockJourney) CollectToken(code string, state string, scope string) error
- func (_m *MockJourney) ConditionalProperties() []discovery.ConditionalAPIProperties
- func (_m *MockJourney) DiscoveryModel() (discovery.Model, error)
- func (_m *MockJourney) Events() events.Events
- func (_m *MockJourney) FilteredManifests() (manifest.Scripts, error)
- func (_m *MockJourney) NewDaemonController()
- func (_m *MockJourney) Results() executors.DaemonController
- func (_m *MockJourney) RunTests() error
- func (_m *MockJourney) SetConfig(config JourneyConfig) error
- func (_m *MockJourney) SetDiscoveryModel(discoveryModel *discovery.Model) (discovery.ValidationFailures, error)
- func (_m *MockJourney) SetFilteredManifests(_a0 manifest.Scripts)
- func (_m *MockJourney) StopTestRun()
- func (_m *MockJourney) TLSVersionResult() map[string]*discovery.TLSValidationResult
- func (_m *MockJourney) TestCases() (generation.SpecRun, error)
- type PostDiscoveryModelResponse
- type RedirectError
- type RedirectFragment
- type RedirectQuery
- type ResponseType
- type Server
- type StoppedEvent
- type SupportedRequestSignAlg
- type TestCaseResultWebSocketEvent
- type TestCasesCompletedWebSocketEvent
- type VersionResponse
Constants ¶
const ( CtxTPPSignatureKID = "tpp_signature_kid" CtxTPPSignatureIssuer = "tpp_signature_issuer" CtxTPPSignatureTAN = "tpp_signature_tan" CtxConstClientID = "client_id" CtxConstClientSecret = "client_secret" CtxConstTokenEndpoint = "token_endpoint" CtxResponseType = "responseType" CtxConstTokenEndpointAuthMethod = "token_endpoint_auth_method" CtxConstFapiFinancialID = "x-fapi-financial-id" CtxConstFapiCustomerIPAddress = "x-fapi-customer-ip-address" CtxConstRedirectURL = "redirect_url" CtxConstAuthorisationEndpoint = "authorisation_endpoint" CtxConstBasicAuthentication = "basic_authentication" CtxConstResourceBaseURL = "resource_server" CtxConstIssuer = "issuer" CtxAPIVersion = "api-version" CtxConsentedAccountID = "consentedAccountId" CtxStatementID = "statementId" CtxInternationalCreditorSchema = "internationalCreditorScheme" CtxInternationalCreditorIdentification = "internationalCreditorIdentification" CtxInternationalCreditorName = "internationalCreditorName" CtxCBPIIDebtorAccountName = "cbpiiDebtorAccountName" CtxCBPIIDebtorAccountSchemeName = "cbpiiDebtorAccountSchemeName" CtxCBPIIDebtorAccountIdentification = "cbpiiDebtorAccountIdentification" CtxCreditorSchema = "creditorScheme" CtxCreditorIdentification = "creditorIdentification" CtxCreditorName = "creditorName" CtxInstructedAmountCurrency = "instructedAmountCurrency" CtxInstructedAmountValue = "instructedAmountValue" CtxPaymentFrequency = "payment_frequency" // CtxPaymentFrequency - for example `EvryDay`. CtxFirstPaymentDateTime = "firstPaymentDateTime" CtxRequestedExecutionDateTime = "requestedExecutionDateTime" CtxCurrencyOfTransfer = "currencyOfTransfer" CtxTransactionFromDate = "transactionFromDate" CtxTransactionToDate = "transactionToDate" CtxRequestObjectSigningAlg = "requestObjectSigningAlg" CtxSigningPrivate = "signingPrivate" CtxSigningPublic = "signingPublic" CtxPhase = "phase" CtxDynamicResourceIDs = "dynamicResourceIDs" CtxAcrValuesSupported = "acrValuesSupported" )
Context Variables
const ListenHost = "0.0.0.0"
ListenHost defines the name/address by which the service can be accessed.
const (
MIMEApplicationZIP = "application/zip"
)
MIME types
Variables ¶
This section is empty.
Functions ¶
func DetermineAPIVersions ¶
func DetermineAPIVersions(apis []discovery.ModelDiscoveryItem) []string
DetermineAPIVersions -
func NewWebSocketUpgrader ¶
NewWebSocketUpgrader creates a new websocket.Ugprader.
func PutParametersToJourneyContext ¶
func PutParametersToJourneyContext(config JourneyConfig, context model.Context) error
PutParametersToJourneyContext populates a JourneyContext with values from the config screen
func SupportedAcrValues ¶
func SupportedAcrValues() []string
SupportedAcrValues returns a slice of supported acr values to be used in the request object those are values that the Authorization Server is being requested to use for processing this Authentication Request https://openbanking.atlassian.net/wiki/spaces/DZ/pages/7046134/Open+Banking+Security+Profile+-+Implementer+s+Draft+v1.1.0
func SupportedRequestSignAlgValues ¶
func SupportedRequestSignAlgValues() []interface{}
SupportedRequestSignAlgValues -
Types ¶
type AcquiredAccessTokenWebSocketEvent ¶
type AcquiredAccessTokenWebSocketEvent struct { Type string `json:"type"` Value events.AcquiredAccessToken `json:"value"` }
AcquiredAccessTokenWebSocketEvent -
type AcquiredAllAccessTokensWebSocketEvent ¶
type AcquiredAllAccessTokensWebSocketEvent struct { Type string `json:"type"` Value events.AcquiredAllAccessTokens `json:"value"` }
AcquiredAllAccessTokensWebSocketEvent -
type AppJourney ¶
type AppJourney struct {
// contains filtered or unexported fields
}
AppJourney - application controlled by this class
func NewJourney ¶
func NewJourney(logger *logrus.Entry, generator generation.Generator, validator discovery.Validator, tlsValidator discovery.TLSValidator, dynamicResourceIDs bool) *AppJourney
NewJourney creates an instance for a user journey
func (*AppJourney) AllTokenCollected ¶
func (wj *AppJourney) AllTokenCollected() bool
AllTokenCollected -
func (*AppJourney) CollectToken ¶
func (wj *AppJourney) CollectToken(code, state, scope string) error
CollectToken -
func (*AppJourney) ConditionalProperties ¶
func (wj *AppJourney) ConditionalProperties() []discovery.ConditionalAPIProperties
ConditionalProperties retrieve conditional properties right after they have been set from the discovery model to the webJourney.ConditionalProperties
func (*AppJourney) DiscoveryModel ¶
func (wj *AppJourney) DiscoveryModel() (discovery.Model, error)
DiscoveryModel -
func (*AppJourney) EnableDynamicResourceIDs ¶
func (wj *AppJourney) EnableDynamicResourceIDs()
EnableDynamicResourceIDs is triggered by and environment variable dynids=true
func (*AppJourney) FilteredManifests ¶
func (wj *AppJourney) FilteredManifests() (manifest.Scripts, error)
FilteredManifests -
func (*AppJourney) NewDaemonController ¶
func (wj *AppJourney) NewDaemonController()
NewDaemonController - calls StopTestRun and then sets new daemonController and new events on journey. This is a solution to prevent events being sent to a disconnected websocket instead of new websocket after the client reconnects.
func (*AppJourney) SetConfig ¶
func (wj *AppJourney) SetConfig(config JourneyConfig) error
SetConfig -
func (*AppJourney) SetDiscoveryModel ¶
func (wj *AppJourney) SetDiscoveryModel(discoveryModel *discovery.Model) (discovery.ValidationFailures, error)
SetDiscoveryModel -
func (*AppJourney) SetFilteredManifests ¶
func (wj *AppJourney) SetFilteredManifests(fmfs manifest.Scripts)
SetFilteredManifests -
func (*AppJourney) TLSVersionResult ¶
func (wj *AppJourney) TLSVersionResult() map[string]*discovery.TLSValidationResult
TLSVersionResult -
func (*AppJourney) TestCases ¶
func (wj *AppJourney) TestCases() (generation.SpecRun, error)
TestCases -
type AuthClaim ¶
type AuthClaim struct { jwt.RegisteredClaims AuditTrackingID string `json:"auditTrackingId"` TokenName string `json:"tokenName"` Nonce string `json:"nonce"` Acr string `json:"acr"` CHash string `json:"c_hash"` OpenBankingIntentID string `json:"openbanking_intent_id"` SHash string `json:"s_hash"` Azp string `json:"azp"` AuthTime int `json:"auth_time"` Realm string `json:"realm"` TokenType string `json:"tokenType"` }
AuthClaim represents an in coming JWT from third part ASPSP as part of authentication/consent process during `Hybrid Flow Authentication` https://openid.net/specs/openid-connect-core-1_0.html#HybridFlowAuth
type ErrorResponse ¶
type ErrorResponse struct {
Error interface{} `json:"error"`
}
ErrorResponse wraps `error` into a JSON object.
func NewErrorMessageResponse ¶
func NewErrorMessageResponse(msg string) *ErrorResponse
NewErrorMessageResponse -
func NewErrorResponse ¶
func NewErrorResponse(err error) *ErrorResponse
NewErrorResponse creates a ErrorResponse object from a go standard error
type GlobalConfiguration ¶
type GlobalConfiguration struct { SigningPrivate string `json:"signing_private" validate:"not_empty"` SigningPublic string `json:"signing_public" validate:"not_empty"` TransportPrivate string `json:"transport_private" validate:"not_empty"` TransportPublic string `json:"transport_public" validate:"not_empty"` TPPSignatureKID string `json:"tpp_signature_kid,omitempty"` TPPSignatureIssuer string `json:"tpp_signature_issuer,omitempty"` TPPSignatureTAN string `json:"tpp_signature_tan,omitempty"` ClientID string `json:"client_id" validate:"not_empty"` ClientSecret string `json:"client_secret" validate:"not_empty"` TokenEndpoint string `json:"token_endpoint" validate:"valid_url"` ResponseType string `json:"response_type" validate:"not_empty"` TokenEndpointAuthMethod string `json:"token_endpoint_auth_method" validate:"not_empty"` AuthorizationEndpoint string `json:"authorization_endpoint" validate:"valid_url"` ResourceBaseURL string `json:"resource_base_url" validate:"valid_url"` XFAPIFinancialID string `json:"x_fapi_financial_id" validate:"not_empty"` XFAPICustomerIPAddress string `json:"x_fapi_customer_ip_address,omitempty"` RedirectURL string `json:"redirect_url" validate:"valid_url"` ResourceIDs model.ResourceIDs `json:"resource_ids" validate:"not_empty"` CreditorAccount models.Payment `json:"creditor_account"` InternationalCreditorAccount models.Payment `json:"international_creditor_account"` TransactionFromDate string `json:"transaction_from_date" validate:"not_empty"` TransactionToDate string `json:"transaction_to_date" validate:"not_empty"` RequestObjectSigningAlgorithm string `json:"request_object_signing_alg"` InstructedAmount models.InstructedAmount `json:"instructed_amount"` PaymentFrequency models.PaymentFrequency `json:"payment_frequency"` FirstPaymentDateTime string `json:"first_payment_date_time"` RequestedExecutionDateTime string `json:"requested_execution_date_time"` CurrencyOfTransfer string `json:"currency_of_transfer"` AcrValuesSupported []string `json:"acr_values_supported,omitempty"` ConditionalProperties []discovery.ConditionalAPIProperties `json:"conditional_properties,omitempty"` CBPIIDebtorAccount discovery.CBPIIDebtorAccount `json:"cbpii_debtor_account"` // Should be taken from the well-known endpoint: Issuer string `json:"issuer" validate:"valid_url"` }
GlobalConfiguration -
func (GlobalConfiguration) Validate ¶
func (c GlobalConfiguration) Validate() error
Validate - used by https://github.com/go-ozzo/ozzo-validation to validate struct.
type Journey ¶
type Journey interface { SetDiscoveryModel(discoveryModel *discovery.Model) (discovery.ValidationFailures, error) DiscoveryModel() (discovery.Model, error) SetFilteredManifests(manifest.Scripts) FilteredManifests() (manifest.Scripts, error) TestCases() (generation.SpecRun, error) CollectToken(code, state, scope string) error AllTokenCollected() bool RunTests() error StopTestRun() NewDaemonController() Results() executors.DaemonController SetConfig(config JourneyConfig) error ConditionalProperties() []discovery.ConditionalAPIProperties Events() events.Events TLSVersionResult() map[string]*discovery.TLSValidationResult }
Journey represents all possible steps for a user test conformance journey
Happy path journey would look like: 1. SetCertificates - sets configuration to run test cases 2. SetDiscoveryModel - this validates and if successful set this as your discovery model 3. TestCases - Generates test cases, generates permission set requirements to run tests and starts a token collector 3.1 CollectToken - collects all tokens required to RunTest 4. RunTest - Runs triggers a background run on all generated test from previous steps, needs all token to be already collected 5. Results - returns a background process control, so we can monitor on finished tests
type JourneyConfig ¶
type JourneyConfig struct { ResponseType string AcrValuesSupported []string // contains filtered or unexported fields }
JourneyConfig main configuration variables
func MakeJourneyConfig ¶
func MakeJourneyConfig(config *GlobalConfiguration) (JourneyConfig, error)
MakeJourneyConfig -
type MockJourney ¶
MockJourney is an autogenerated mock type for the Journey type
func (*MockJourney) AllTokenCollected ¶
func (_m *MockJourney) AllTokenCollected() bool
AllTokenCollected provides a mock function with given fields:
func (*MockJourney) CollectToken ¶
func (_m *MockJourney) CollectToken(code string, state string, scope string) error
CollectToken provides a mock function with given fields: code, state, scope
func (*MockJourney) ConditionalProperties ¶
func (_m *MockJourney) ConditionalProperties() []discovery.ConditionalAPIProperties
ConditionalProperties provides a mock function with given fields:
func (*MockJourney) DiscoveryModel ¶
func (_m *MockJourney) DiscoveryModel() (discovery.Model, error)
DiscoveryModel provides a mock function with given fields:
func (*MockJourney) Events ¶
func (_m *MockJourney) Events() events.Events
Events provides a mock function with given fields:
func (*MockJourney) FilteredManifests ¶
func (_m *MockJourney) FilteredManifests() (manifest.Scripts, error)
FilteredManifests provides a mock function with given fields:
func (*MockJourney) NewDaemonController ¶
func (_m *MockJourney) NewDaemonController()
NewDaemonController provides a mock function with given fields:
func (*MockJourney) Results ¶
func (_m *MockJourney) Results() executors.DaemonController
Results provides a mock function with given fields:
func (*MockJourney) RunTests ¶
func (_m *MockJourney) RunTests() error
RunTests provides a mock function with given fields:
func (*MockJourney) SetConfig ¶
func (_m *MockJourney) SetConfig(config JourneyConfig) error
SetConfig provides a mock function with given fields: config
func (*MockJourney) SetDiscoveryModel ¶
func (_m *MockJourney) SetDiscoveryModel(discoveryModel *discovery.Model) (discovery.ValidationFailures, error)
SetDiscoveryModel provides a mock function with given fields: discoveryModel
func (*MockJourney) SetFilteredManifests ¶
func (_m *MockJourney) SetFilteredManifests(_a0 manifest.Scripts)
SetFilteredManifests provides a mock function with given fields: _a0
func (*MockJourney) StopTestRun ¶
func (_m *MockJourney) StopTestRun()
StopTestRun provides a mock function with given fields:
func (*MockJourney) TLSVersionResult ¶
func (_m *MockJourney) TLSVersionResult() map[string]*discovery.TLSValidationResult
TLSVersionResult provides a mock function with given fields:
func (*MockJourney) TestCases ¶
func (_m *MockJourney) TestCases() (generation.SpecRun, error)
TestCases provides a mock function with given fields:
type PostDiscoveryModelResponse ¶
type PostDiscoveryModelResponse struct { TokenEndpoints map[string]string `json:"token_endpoints"` TokenEndpointAuthMethods map[string][]string `json:"token_endpoint_auth_methods"` DefaultTokenEndpointAuthMethod map[string]string `json:"default_token_endpoint_auth_method"` RequestObjectSigningAlgValuesSupported map[string][]string `json:"request_object_signing_alg_values_supported"` DefaultRequestObjectSigningAlgValuesSupported map[string]string `json:"default_request_object_signing_alg_values_supported"` AuthorizationEndpoints map[string]string `json:"authorization_endpoints"` Issuers map[string]string `json:"issuers"` DefaultTxnFromDateTime string `json:"default_transaction_from_date"` DefaultTxnToDateTime string `json:"default_transaction_to_date"` ResponseTypesSupported []string `json:"response_types_supported"` AcrValuesSupported []string `json:"acr_values_supported"` }
PostDiscoveryModelResponse -
type RedirectError ¶
type RedirectError struct { ErrorDescription string `json:"error_description" form:"error_description" query:"error_description"` Error string `json:"error" form:"error" query:"error"` State string `json:"state" form:"state" query:"state"` }
RedirectError -
type RedirectFragment ¶
type RedirectFragment struct { Code string `json:"code" form:"code" query:"code"` Scope string `json:"scope" form:"scope" query:"scope"` IDToken string `json:"id_token" form:"id_token" query:"id_token"` State string `json:"state" form:"state" query:"state"` }
RedirectFragment -
type RedirectQuery ¶
type RedirectQuery struct { Code string `json:"code" form:"code" query:"code"` Scope string `json:"scope" form:"scope" query:"scope"` IDToken string `json:"id_token" form:"id_token" query:"id_token"` State string `json:"state" form:"state" query:"state"` }
RedirectQuery -
type ResponseType ¶
type ResponseType = interface{}
ResponseType - Needs to be a interface{} slice, see the official test for an example https://github.com/go-ozzo/ozzo-validation/blob/master/in_test.go
type Server ¶
type Server struct { *echo.Echo // Wrap (using composition) *echo.Echo, allows us to pretend Server is echo.Echo. // contains filtered or unexported fields }
Server - wraps *echo.Echo.
type SupportedRequestSignAlg ¶
type SupportedRequestSignAlg interface{}
SupportedRequestSignAlg - Needs to be a interface{} slice, see the official test for an example https://github.com/go-ozzo/ozzo-validation/blob/master/in_test.go
type TestCaseResultWebSocketEvent ¶
type TestCaseResultWebSocketEvent struct { Type string `json:"type"` Test results.TestCase `json:"test"` }
TestCaseResultWebSocketEvent -
type TestCasesCompletedWebSocketEvent ¶
type TestCasesCompletedWebSocketEvent struct { Type string `json:"type"` Value bool `json:"value"` }
TestCasesCompletedWebSocketEvent -
type VersionResponse ¶
type VersionResponse struct { Version string `json:"version"` Msg string `json:"message"` Update bool `json:"update"` }
VersionResponse is defined as a response object for /version API calls