ml-testing-toolkit 18.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.dockerignore +10 -0
- package/.grype.yaml +16 -0
- package/.ncurc.yaml +9 -0
- package/.nvmrc +1 -0
- package/.versionrc.js +16 -0
- package/CHANGELOG.md +504 -0
- package/CODEOWNERS +30 -0
- package/Dockerfile +42 -0
- package/Dockerfile-newman +13 -0
- package/LICENSE.md +9 -0
- package/README.md +119 -0
- package/assets/diagrams/architectural/architectural-diagram.svg +3 -0
- package/assets/diagrams/flow/flow-diagram.svg +3 -0
- package/assets/images/Sample-Response-Failure.png +0 -0
- package/assets/images/Screenshot 2020-04-16 at 22.58.04.png +0 -0
- package/assets/images/TLS-Enabled-on-Environment.png +0 -0
- package/assets/images/adapter-mutual-tls-enabled.png +0 -0
- package/assets/images/add-additional-input-values.png +0 -0
- package/assets/images/add-condition-button.png +0 -0
- package/assets/images/add-new-assertion.png +0 -0
- package/assets/images/add-new-input-value.png +0 -0
- package/assets/images/add-new-input-variable.png +0 -0
- package/assets/images/additional-transfers.png +0 -0
- package/assets/images/api-provisioning-add-new-api-confirmation.png +0 -0
- package/assets/images/api-provisioning-file-input-window.png +0 -0
- package/assets/images/api-provisioning-list-apis-view.png +0 -0
- package/assets/images/api-provisioning-menu-item.png +0 -0
- package/assets/images/apply_and_restart.jpg +0 -0
- package/assets/images/assess-request-or-response.png +0 -0
- package/assets/images/assess-response-equation-save.png +0 -0
- package/assets/images/assess-response-equation.png +0 -0
- package/assets/images/assess-response-status.png +0 -0
- package/assets/images/building-new-rules-file.png +0 -0
- package/assets/images/callback-rules-screen.png +0 -0
- package/assets/images/configurable-parameter-assertion.png +0 -0
- package/assets/images/configurable-parameter-currency.png +0 -0
- package/assets/images/configurable-parameter.png +0 -0
- package/assets/images/connection-manager-ui-opening.png +0 -0
- package/assets/images/create-inbound-user-simulator.png +0 -0
- package/assets/images/creating-new-rule-file.png +0 -0
- package/assets/images/dfsp-client-cacert.png +0 -0
- package/assets/images/dfsp-client-submit.png +0 -0
- package/assets/images/dfsp-client.png +0 -0
- package/assets/images/dfsp-p2p-happy-path.png +0 -0
- package/assets/images/dfsp-server-cacert.png +0 -0
- package/assets/images/dfsp-server-cert.png +0 -0
- package/assets/images/download-report.png +0 -0
- package/assets/images/drive_have_not_been_shared.jpg +0 -0
- package/assets/images/event-response-options.png +0 -0
- package/assets/images/expand-monitoring-messages.png +0 -0
- package/assets/images/fixed-response-sample.png +0 -0
- package/assets/images/header-selection.png +0 -0
- package/assets/images/heap_error_windows.jpg +0 -0
- package/assets/images/hosted-mode-docker-compose-intro.png +0 -0
- package/assets/images/hub-client-cert.png +0 -0
- package/assets/images/import-template.png +0 -0
- package/assets/images/inbound-requests-environment.png +0 -0
- package/assets/images/inbound-requests-scripts.png +0 -0
- package/assets/images/jws-certificate-submit.png +0 -0
- package/assets/images/jws-certificate.png +0 -0
- package/assets/images/jws-certs-keys.png +0 -0
- package/assets/images/jws-hub-certs-keys.png +0 -0
- package/assets/images/local-enable-jws-publickey.png +0 -0
- package/assets/images/local-mutual-tls-enabled.png +0 -0
- package/assets/images/local_drives_to_be_available.jpg +0 -0
- package/assets/images/mcm-environment-opening.png +0 -0
- package/assets/images/menu-items.png +0 -0
- package/assets/images/mock-response-sample.png +0 -0
- package/assets/images/monitoring-initial-state.png +0 -0
- package/assets/images/monitoring-messages.png +0 -0
- package/assets/images/new-empty-assertion.png +0 -0
- package/assets/images/opened-imported-template.png +0 -0
- package/assets/images/opening-default-settings.png +0 -0
- package/assets/images/opening-sync-response-rules.png +0 -0
- package/assets/images/opening-view.png +0 -0
- package/assets/images/outbound-display-opening-hub.png +0 -0
- package/assets/images/outbound-display-opening.png +0 -0
- package/assets/images/override-with-environment-variable.png +0 -0
- package/assets/images/populate-with-sample-body.png +0 -0
- package/assets/images/resource-selection.png +0 -0
- package/assets/images/rule-builder-select-api.png +0 -0
- package/assets/images/sample-condition-add-configurable-params.png +0 -0
- package/assets/images/sample-condition.png +0 -0
- package/assets/images/sample-editor.png +0 -0
- package/assets/images/sample-request.png +0 -0
- package/assets/images/sample-test-assertion.png +0 -0
- package/assets/images/send-transfer.png +0 -0
- package/assets/images/sending-single-test-case-1.png +0 -0
- package/assets/images/sending-single-test-case-2.png +0 -0
- package/assets/images/sending-test-cases.png +0 -0
- package/assets/images/server-certificates-submitted.png +0 -0
- package/assets/images/simulator-response.png +0 -0
- package/assets/images/simulator-scheme-adapter-endpoint.png +0 -0
- package/assets/images/summarized-view-of-rule.png +0 -0
- package/assets/images/template-window.png +0 -0
- package/assets/images/test-case-editor-console-log.png +0 -0
- package/assets/images/test-case-editor-environment-state.png +0 -0
- package/assets/images/test-case-editor-scripts.png +0 -0
- package/assets/images/test-case-editor.png +0 -0
- package/assets/images/testcase-definition-download.png +0 -0
- package/assets/images/testcase-definition-edit-meta-info.png +0 -0
- package/assets/images/testing-toolkit-mojaloop-testing-toolkit-endpoint.png +0 -0
- package/assets/images/tls-hub-certs-keys.png +0 -0
- package/assets/images/tls-jws-enabled-on-environment.png +0 -0
- package/assets/images/updated-sample-body-data.png +0 -0
- package/assets/images/using-configurable-parameter.png +0 -0
- package/assets/images/validation-rules-screen.png +0 -0
- package/assets/images/view-response.png +0 -0
- package/audit-ci.jsonc +7 -0
- package/connection-manager/docker-compose.yml +55 -0
- package/database/docker-compose.yml +16 -0
- package/docker/hosted-mode/docker-compose.yaml +107 -0
- package/docker/hosted-mode/keycloak/keycloak-realm.json +2298 -0
- package/docker/hosted-mode/mongo-init.sh +1 -0
- package/docker/hosted-mode-tls/docker-compose.yaml +171 -0
- package/docker/hosted-mode-tls/keycloak/keycloak-realm.json +2298 -0
- package/docker/hosted-mode-tls/mongo-init.sh +1 -0
- package/docker-compose.yml +62 -0
- package/documents/Mojaloop-Testing-Toolkit.md +296 -0
- package/documents/RULES_ENGINE.md +403 -0
- package/documents/User-Guide-API-Provisioning.md +121 -0
- package/documents/User-Guide-CLI.md +218 -0
- package/documents/User-Guide-Connection-Manager.md +282 -0
- package/documents/User-Guide-Frequently-Asked-Questions.md +39 -0
- package/documents/User-Guide-Hosted-Mode-Docker-Compose.md +110 -0
- package/documents/User-Guide-Installation.md +163 -0
- package/documents/User-Guide-Mojaloop-Testing-Toolkit.md +642 -0
- package/documents/User-Guide-OAuth-Server-Deployment.md +283 -0
- package/documents/User-Guide-Onboarding-DFSP.md +197 -0
- package/documents/User-Guide-Onboarding-HUB.md +191 -0
- package/documents/User-Guide.md +53 -0
- package/examples/collections/dfsp/p2p_failed_tests.json +7161 -0
- package/examples/collections/dfsp/p2p_fx_happy_path.json +502 -0
- package/examples/collections/dfsp/p2p_happy_path.json +350 -0
- package/examples/collections/dfsp/p2p_happy_path_extended.json +6106 -0
- package/examples/collections/dfsp/p2p_happy_path_jws.json +511 -0
- package/examples/collections/dfsp/p2p_payee_assertions_websocket.json +441 -0
- package/examples/collections/dfsp/sample.json +5029 -0
- package/examples/collections/dfsp/transaction_request_service.json +240 -0
- package/examples/collections/fxp/FXP.json +264 -0
- package/examples/collections/fxp/SDK_backend.json +98 -0
- package/examples/collections/fxp/SDK_outbound.json +163 -0
- package/examples/collections/hub/hub_01_p2p_happy_path/hub_p2p_receive_quote.json +400 -0
- package/examples/collections/hub/hub_01_p2p_happy_path/hub_p2p_send_quote.json +395 -0
- package/examples/collections/hub/hub_02_block_transfer/hub_block_transfer.json +393 -0
- package/examples/collections/hub/hub_03_funds_in_out/hub_funds_in.json +224 -0
- package/examples/collections/hub/hub_03_funds_in_out/hub_funds_out.json +780 -0
- package/examples/collections/hub/hub_04_settlements/hub_settlements.json +3138 -0
- package/examples/collections/hub/hub_05_transfer_negative_scenarios/hub_transfer_negative_payee_abort.json +475 -0
- package/examples/collections/hub/hub_05_transfer_negative_scenarios/hub_transfer_negative_payee_invalid_fulfillment.json +370 -0
- package/examples/collections/hub/hub_05_transfer_negative_scenarios/hub_transfer_negative_transfer_timeout.json +262 -0
- package/examples/collections/hub/hub_06_transaction_requests_service/hub_trs_authorizations.json +117 -0
- package/examples/collections/hub/hub_06_transaction_requests_service/hub_trs_error_framework.json +591 -0
- package/examples/collections/hub/hub_06_transaction_requests_service/hub_trs_received_state.json +379 -0
- package/examples/collections/hub/hub_06_transaction_requests_service/hub_trs_reject_state.json +361 -0
- package/examples/collections/hub/hub_07_quoting_service.json +525 -0
- package/examples/collections/hub/hub_08_participant_inactive_stop_transfers.json +706 -0
- package/examples/collections/hub/hub_09_duplicate_handling_transfers.json +1377 -0
- package/examples/collections/hub/hub_10_on_us_transfers.json +245 -0
- package/examples/collections/hub/hub_11_accented_and_spl_chars.json +629 -0
- package/examples/collections/hub/hub_12_fspiop_version_1.1.json +646 -0
- package/examples/collections/hub/hub_13_bulk_transfers.json +1857 -0
- package/examples/collections/iso20022/self_referencing_iso20022.json +926 -0
- package/examples/collections/provisioning/testingtoolkitdfsp.json +904 -0
- package/examples/environments/dfsp_local_environment.json +46 -0
- package/examples/environments/hub_local_environment.json +57 -0
- package/jest.config.js +17 -0
- package/package.json +199 -0
- package/sbom-v18.12.4.csv +1553 -0
- package/secrets/keygen.sh +5 -0
- package/secrets/privatekey.pem +27 -0
- package/secrets/publickey.cer +21 -0
- package/secrets/tls/01.pem +132 -0
- package/secrets/tls/createSecrets.sh +20 -0
- package/secrets/tls/hub_client.csr +32 -0
- package/secrets/tls/hub_client_cacert.pem +35 -0
- package/secrets/tls/hub_client_cakey.pem +52 -0
- package/secrets/tls/hub_client_key.key +52 -0
- package/secrets/tls/hub_server.csr +31 -0
- package/secrets/tls/hub_server_cacert.pem +35 -0
- package/secrets/tls/hub_server_cakey.pem +52 -0
- package/secrets/tls/hub_server_cert.pem +132 -0
- package/secrets/tls/hub_server_key.key +52 -0
- package/secrets/tls/index.txt +1 -0
- package/secrets/tls/index.txt.attr +1 -0
- package/secrets/tls/openssl-client.cnf +36 -0
- package/secrets/tls/openssl-clientca.cnf +71 -0
- package/secrets/tls/openssl-server.cnf +39 -0
- package/secrets/tls/openssl-serverca.cnf +71 -0
- package/secrets/tls/serial.txt +1 -0
- package/spec_files/api_definitions/als_admin_1.1/api_spec.yaml +804 -0
- package/spec_files/api_definitions/central_admin_1.0/api_spec.yaml +1850 -0
- package/spec_files/api_definitions/central_admin_1.0/response_map.json +96 -0
- package/spec_files/api_definitions/central_admin_old_9.3/api_spec.yaml +2467 -0
- package/spec_files/api_definitions/central_admin_old_9.3/response_map.json +96 -0
- package/spec_files/api_definitions/fspiop_1.0/api_spec.yaml +4187 -0
- package/spec_files/api_definitions/fspiop_1.0/callback_map.json +568 -0
- package/spec_files/api_definitions/fspiop_1.0/mockRef.json +79 -0
- package/spec_files/api_definitions/fspiop_1.0/trigger_templates/transaction_request_followup.json +126 -0
- package/spec_files/api_definitions/fspiop_1.0/trigger_templates/transaction_request_followup_quotes_only.json +97 -0
- package/spec_files/api_definitions/fspiop_1.1/api_spec.yaml +3778 -0
- package/spec_files/api_definitions/fspiop_1.1/callback_map.json +568 -0
- package/spec_files/api_definitions/fspiop_1.1/mockRef.json +79 -0
- package/spec_files/api_definitions/fspiop_1.1/trigger_templates/transaction_request_followup.json +125 -0
- package/spec_files/api_definitions/fspiop_2.0/api_spec.yaml +4839 -0
- package/spec_files/api_definitions/fspiop_2.0/callback_map.json +716 -0
- package/spec_files/api_definitions/fspiop_2.0/mockRef.json +79 -0
- package/spec_files/api_definitions/fspiop_2.0/trigger_templates/transaction_request_followup.json +125 -0
- package/spec_files/api_definitions/fspiop_2.0_iso20022/api_spec.yaml +8331 -0
- package/spec_files/api_definitions/fspiop_2.0_iso20022/callback_map.json +508 -0
- package/spec_files/api_definitions/fspiop_2.0_iso20022/mockRef.json +66 -0
- package/spec_files/api_definitions/fx-api_2.0/api_spec.yaml +1768 -0
- package/spec_files/api_definitions/fx-api_2.0/callback_map.json +188 -0
- package/spec_files/api_definitions/fx-api_2.0/mockRef.json +83 -0
- package/spec_files/api_definitions/mojaloop_sdk_outbound_scheme_adapter_1.0/api_spec.yaml +2612 -0
- package/spec_files/api_definitions/mojaloop_sdk_outbound_scheme_adapter_1.0/mockRef.json +22 -0
- package/spec_files/api_definitions/mojaloop_sdk_outbound_scheme_adapter_1.0/response_map.json +35 -0
- package/spec_files/api_definitions/mojaloop_simulator_0.1/api_spec.yaml +225 -0
- package/spec_files/api_definitions/mojaloop_simulator_sim_1.4/api_spec.yaml +1087 -0
- package/spec_files/api_definitions/mojaloop_simulator_sim_1.4/mockRef.json +75 -0
- package/spec_files/api_definitions/mojaloop_simulator_sim_1.4/response_map.json +55 -0
- package/spec_files/api_definitions/payment_manager_1.4/api_spec.yaml +1389 -0
- package/spec_files/api_definitions/sdk-scheme-adapter-backend-v2_1_0-openapi3-snippets_2.1/api_spec.yaml +2834 -0
- package/spec_files/api_definitions/sdk-scheme-adapter-outbound-v2_1_0-openapi3-snippets_2.1/api_spec.yaml +3449 -0
- package/spec_files/api_definitions/settlements_1.0/api_spec.yaml +983 -0
- package/spec_files/api_definitions/settlements_1.0/mockRef.json +38 -0
- package/spec_files/api_definitions/settlements_1.0/response_map.json +34 -0
- package/spec_files/api_definitions/settlements_2.0/api_spec.yaml +1001 -0
- package/spec_files/api_definitions/settlements_2.0/mockRef.json +38 -0
- package/spec_files/api_definitions/settlements_2.0/response_map.json +34 -0
- package/spec_files/api_definitions/thirdparty_sdk_outbound_0.1/api_spec.yaml +2139 -0
- package/spec_files/reports/templates/newman/html_template.html +1202 -0
- package/spec_files/reports/templates/newman/pdf_template.html +790 -0
- package/spec_files/reports/templates/testcase_definition/table_view.html +1602 -0
- package/spec_files/rules_callback/config.json +3 -0
- package/spec_files/rules_callback/default.json +2698 -0
- package/spec_files/rules_callback/p2p-limit.json +129 -0
- package/spec_files/rules_forward/config.json +3 -0
- package/spec_files/rules_forward/default.json +482 -0
- package/spec_files/rules_response/config.json +3 -0
- package/spec_files/rules_response/default.json +295 -0
- package/spec_files/rules_validation/config.json +3 -0
- package/spec_files/rules_validation/default.json +1 -0
- package/spec_files/rules_validation/p2p-limit.json +55 -0
- package/spec_files/system_config.json +175 -0
- package/spec_files/user_config.json +109 -0
- package/src/index.js +67 -0
- package/src/lib/MyEventEmitter.js +54 -0
- package/src/lib/api-management.js +143 -0
- package/src/lib/api-routes/config.js +83 -0
- package/src/lib/api-routes/history.js +139 -0
- package/src/lib/api-routes/keycloak.js +54 -0
- package/src/lib/api-routes/longpolling.js +70 -0
- package/src/lib/api-routes/oauth2.js +149 -0
- package/src/lib/api-routes/objectstore.js +53 -0
- package/src/lib/api-routes/openapi.js +224 -0
- package/src/lib/api-routes/outbound.js +134 -0
- package/src/lib/api-routes/reports.js +72 -0
- package/src/lib/api-routes/rules.js +356 -0
- package/src/lib/api-routes/samples.js +92 -0
- package/src/lib/api-routes/server-logs.js +44 -0
- package/src/lib/api-routes/settings.js +71 -0
- package/src/lib/api-server.js +135 -0
- package/src/lib/arrayStore.js +101 -0
- package/src/lib/callbackHandler.js +201 -0
- package/src/lib/config.js +177 -0
- package/src/lib/configuration-providers/mb-connection-manager.js +625 -0
- package/src/lib/db/adapters/dbAdapter.js +184 -0
- package/src/lib/db/dfspMockUsers.js +64 -0
- package/src/lib/db/models/mongoDBWrapper.js +78 -0
- package/src/lib/eventListenerClient/inboundEventListener.js +176 -0
- package/src/lib/fileAdapter.js +57 -0
- package/src/lib/httpAgentStore.js +135 -0
- package/src/lib/importExport.js +186 -0
- package/src/lib/jws/JwsSigning.js +141 -0
- package/src/lib/loadSamples.js +128 -0
- package/src/lib/logger.js +20 -0
- package/src/lib/longpollingEmitter.js +56 -0
- package/src/lib/metrics.js +51 -0
- package/src/lib/mocking/custom-functions/generic.js +57 -0
- package/src/lib/mocking/middleware-functions/ilpModel.js +238 -0
- package/src/lib/mocking/middleware-functions/quotesAssociation.js +75 -0
- package/src/lib/mocking/middleware-functions/transactionRequestsService.js +78 -0
- package/src/lib/mocking/openApiDefinitionsModel.js +64 -0
- package/src/lib/mocking/openApiMockHandler.js +466 -0
- package/src/lib/mocking/openApiRulesEngine.js +492 -0
- package/src/lib/mocking/openApiVersionTools.js +136 -0
- package/src/lib/mocking/transformers/fspiopToISO20022.js +230 -0
- package/src/lib/mocking/transformers/index.js +41 -0
- package/src/lib/notificationEmitter.js +64 -0
- package/src/lib/oauth/KeycloakHelper.js +220 -0
- package/src/lib/oauth/LoginService.js +133 -0
- package/src/lib/oauth/OAuthHelper.js +181 -0
- package/src/lib/oauth/OAuthValidator.js +118 -0
- package/src/lib/oauth/Wso2Client.js +64 -0
- package/src/lib/objectStore/inMemoryImpl.js +50 -0
- package/src/lib/objectStore/objectStoreInterface.js +51 -0
- package/src/lib/objectStore.js +122 -0
- package/src/lib/report-generator/generator.js +126 -0
- package/src/lib/report-generator/helpers.js +154 -0
- package/src/lib/requestLogger.js +190 -0
- package/src/lib/resources/wso2carbon-publickey.cert +20 -0
- package/src/lib/rulesEngine.js +95 -0
- package/src/lib/rulesEngineModel.js +463 -0
- package/src/lib/scripting-engines/postman-sandbox.js +142 -0
- package/src/lib/scripting-engines/vm-javascript-sandbox.js +294 -0
- package/src/lib/server-logs/adapters/elastic-search.js +102 -0
- package/src/lib/server-logs/adapters/grafana.js +0 -0
- package/src/lib/server-logs/index.js +75 -0
- package/src/lib/socket-server.js +55 -0
- package/src/lib/storageAdapter.js +109 -0
- package/src/lib/test-outbound/TestCaseRunner.js +173 -0
- package/src/lib/test-outbound/getTracing.js +19 -0
- package/src/lib/test-outbound/outbound-initiator.js +1107 -0
- package/src/lib/uniqueIdGenerator.js +35 -0
- package/src/lib/utils.js +89 -0
- package/src/lib/utilsInternal.js +56 -0
- package/src/lib/webSocketClient/WebSocketClientManager.js +197 -0
- package/src/server.js +218 -0
package/README.md
ADDED
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
Mojaloop Testing Toolkit
|
|
2
|
+
=============================
|
|
3
|
+
|
|
4
|
+
The goal of the Self-testing Tool Kit is for the participants in a Mojaloop Hub, in particular DFSPs, but in future System Integrators and other entities, to have a standard way to test integration to a Mojaloop Hub.
|
|
5
|
+
|
|
6
|
+
It should be simple to use for both technical and non-technical users; although it is primarily directed at QA personnel. The goal is to ensure that the tool is easy to use for almost anyone involved with a Mojaloop related system be able to quickly configure the tool and use it.
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
## Quick Start
|
|
10
|
+
|
|
11
|
+
For getting started with **Mojaloop Testing Toolkit** quickly please follow the below steps.
|
|
12
|
+
|
|
13
|
+
The following software should be installed on your system to run the toolkit.
|
|
14
|
+
|
|
15
|
+
* Git
|
|
16
|
+
* Docker
|
|
17
|
+
|
|
18
|
+
Please execute the following lines to build and run the tool.
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
git clone https://github.com/mojaloop/ml-testing-toolkit
|
|
22
|
+
cd ml-testing-toolkit
|
|
23
|
+
docker-compose up
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
You can get the web interface on http://localhost:6060/
|
|
27
|
+
|
|
28
|
+
The server will start and listen on port **4040**. You can send the mojaloop api requests to this port number.
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
## Testing With Mojaloop Simulator
|
|
32
|
+
|
|
33
|
+
If you want to test the tool for the whole functionality like schema validation, additional validation and callback generation ..etc, you can initiate a transfer cycle from mojaloop simulator UI.
|
|
34
|
+
|
|
35
|
+
Please follow the below steps from the ml-testing-toolkit folder
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
cd simulator
|
|
39
|
+
docker-compose up
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
The above command will start the services scheme-adapter, mojaloop-simulator and mojaloop-simulator-ui.
|
|
43
|
+
|
|
44
|
+
Open the following URLs in your browser and send a transfer from simulator and observe the toolkit logs in web frontend.
|
|
45
|
+
|
|
46
|
+
* http://localhost:6060 (Front end for **Mojaloop Testing Toolkit**)
|
|
47
|
+
* http://localhost (Front end for **Mojaloop Simulator**)
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
## Other Installation Guides
|
|
51
|
+
|
|
52
|
+
For exploring different ways of installation procedures, please follow this [Installation Guide](/documents/User-Guide-Installation.md)
|
|
53
|
+
|
|
54
|
+
## Usage Guides
|
|
55
|
+
|
|
56
|
+
After installation you can interact with the testing toolkit from either web interface or with a command line tool.
|
|
57
|
+
|
|
58
|
+
For Web interface follow this [Usage Guide](/documents/User-Guide.md)
|
|
59
|
+
|
|
60
|
+
For Command line tool follow this [CLI User Guide](/documents/User-Guide-CLI.md)
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
**If you have your own DFSP implementation you can point the peer endpoint to *Mojaloop Testing Toolkit* on port 4040 and try to send requests from your implementation instead of using mojaloop-simulator.**
|
|
64
|
+
|
|
65
|
+
## Web UI Screen Shots
|
|
66
|
+
|
|
67
|
+

|
|
68
|
+
|
|
69
|
+

|
|
70
|
+
|
|
71
|
+

|
|
72
|
+
|
|
73
|
+

|
|
74
|
+
|
|
75
|
+

|
|
76
|
+
|
|
77
|
+

|
|
78
|
+
|
|
79
|
+
-------
|
|
80
|
+
|
|
81
|
+
## Auditing Dependencies
|
|
82
|
+
|
|
83
|
+
We use `audit-ci` along with `npm audit` to check dependencies for node vulnerabilities, and keep track of resolved dependencies with an `audit-ci.jsonc` file.
|
|
84
|
+
|
|
85
|
+
To start a new resolution process, run:
|
|
86
|
+
|
|
87
|
+
```bash
|
|
88
|
+
npm run audit:fix
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
You can then check to see if the CI will pass based on the current dependencies with:
|
|
92
|
+
|
|
93
|
+
```bash
|
|
94
|
+
npm run audit:check
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
The [audit-ci.jsonc](./audit-ci.jsonc) contains any audit-exceptions that cannot be fixed to ensure that CircleCI will build correctly.
|
|
98
|
+
|
|
99
|
+
## Container Scans
|
|
100
|
+
|
|
101
|
+
As part of our CI/CD process, we use anchore-cli to scan our built docker container for vulnerabilities upon release.
|
|
102
|
+
|
|
103
|
+
If you find your release builds are failing, refer to the [container scanning](https://github.com/mojaloop/ci-config#container-scanning) in our shared Mojaloop CI config repo. There is a good chance you simply need to update the `mojaloop-policy-generator.js` file and re-run the circleci workflow.
|
|
104
|
+
|
|
105
|
+
For more information on anchore and anchore-cli, refer to:
|
|
106
|
+
- [Anchore CLI](https://github.com/anchore/anchore-cli)
|
|
107
|
+
- [Circle Orb Registry](https://circleci.com/orbs/registry/orb/anchore/anchore-engine)
|
|
108
|
+
|
|
109
|
+
## Automated Releases
|
|
110
|
+
|
|
111
|
+
As part of our CI/CD process, we use a combination of CircleCI, standard-version
|
|
112
|
+
npm package and github-release CircleCI orb to automatically trigger our releases
|
|
113
|
+
and image builds. This process essentially mimics a manual tag and release.
|
|
114
|
+
|
|
115
|
+
On a merge to main, CircleCI is configured to use the mojaloopci github account
|
|
116
|
+
to push the latest generated CHANGELOG and package version number.
|
|
117
|
+
|
|
118
|
+
Once those changes are pushed, CircleCI will pull the updated main, tag and
|
|
119
|
+
push a release triggering another subsequent build that also publishes a docker image.
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
|
3
|
+
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="821px" height="551px" viewBox="-0.5 -0.5 821 551" content="<mxfile host="www.draw.io" modified="2020-02-13T07:01:54.856Z" agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36" etag="Yf9Xfdr388n96DcOBm3s" version="12.6.8" type="device"><diagram id="SkuA5n1snQKMJyzdszey" name="Page-1">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</diagram></mxfile>"><defs/><g><rect x="30" y="0" width="170" height="250" fill="#d5e8d4" stroke="#82b366" pointer-events="all"/><rect x="0" y="10" width="230" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 228px; height: 1px; padding-top: 20px; margin-left: 1px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 14px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; word-wrap: normal; ">DFSP Implementation</div></div></div></foreignObject><text x="115" y="24" fill="#000000" font-family="Helvetica" font-size="14px" text-anchor="middle" font-weight="bold">DFSP Implementation</text></switch></g><rect x="55" y="140" width="120" height="30" rx="4.5" ry="4.5" fill="#d0cee2" stroke="#56517e" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 155px; margin-left: 56px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Inbound</div></div></div></foreignObject><text x="115" y="159" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Inbound</text></switch></g><rect x="55" y="70" width="120" height="30" rx="4.5" ry="4.5" fill="#d0cee2" stroke="#56517e" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 85px; margin-left: 56px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Outbound</div></div></div></foreignObject><text x="115" y="89" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Outbound</text></switch></g><rect x="270" y="0" width="550" height="550" fill="#edf3fc" stroke="#6c8ebf" pointer-events="all"/><rect x="440" y="10" width="230" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 228px; height: 1px; padding-top: 20px; margin-left: 441px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 14px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; word-wrap: normal; ">Mojaloop Self Testing Toolkit</div></div></div></foreignObject><text x="555" y="24" fill="#000000" font-family="Helvetica" font-size="14px" text-anchor="middle" font-weight="bold">Mojaloop Self Testing Toolkit</text></switch></g><rect x="300" y="65" width="100" height="40" rx="6" ry="6" fill="#ffcccc" stroke="#36393d" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 98px; height: 1px; padding-top: 85px; margin-left: 301px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 10px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Inbound HTTP adapter</div></div></div></foreignObject><text x="350" y="88" fill="#000000" font-family="Helvetica" font-size="10px" text-anchor="middle">Inbound HTTP adapter</text></switch></g><rect x="300" y="140" width="470" height="90" fill="#fad7ac" stroke="#b46504" pointer-events="all"/><rect x="320" y="160" width="120" height="40" rx="6" ry="6" fill="#6d8764" stroke="#3a5431" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 180px; margin-left: 321px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 10px; font-family: Helvetica; color: #ffffff; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Version Negotiation</div></div></div></foreignObject><text x="380" y="183" fill="#ffffff" font-family="Helvetica" font-size="10px" text-anchor="middle">Version Negotiation</text></switch></g><rect x="475" y="160" width="120" height="40" rx="6" ry="6" fill="#6d8764" stroke="#3a5431" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 180px; margin-left: 476px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 10px; font-family: Helvetica; color: #ffffff; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Schema validation</div></div></div></foreignObject><text x="535" y="183" fill="#ffffff" font-family="Helvetica" font-size="10px" text-anchor="middle">Schema validation</text></switch></g><rect x="630" y="160" width="120" height="40" rx="6" ry="6" fill="#6d8764" stroke="#3a5431" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 180px; margin-left: 631px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 10px; font-family: Helvetica; color: #ffffff; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Additional Validations</div></div></div></foreignObject><text x="690" y="183" fill="#ffffff" font-family="Helvetica" font-size="10px" text-anchor="middle">Additional Validations</text></switch></g><rect x="642" y="270" width="140" height="180" fill="#f5f5f5" stroke="#666666" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe center; width: 138px; height: 1px; padding-top: 277px; margin-left: 643px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 10px; font-family: Helvetica; color: #333333; line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; word-wrap: normal; ">Input</div></div></div></foreignObject><text x="712" y="287" fill="#333333" font-family="Helvetica" font-size="10px" text-anchor="middle" font-weight="bold">Input</text></switch></g><path d="M 657 300 L 757 300 L 767 310 L 767 340 L 657 340 L 657 300 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 757 300 L 757 310 L 767 310 Z" fill-opacity="0.05" fill="#000000" stroke="none" pointer-events="all"/><path d="M 757 300 L 757 310 L 767 310" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 108px; height: 1px; padding-top: 320px; margin-left: 658px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 10px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><span style="white-space: normal">FSPIOP openapi spec versions</span></div></div></div></foreignObject><text x="712" y="323" fill="#000000" font-family="Helvetica" font-size="10px" text-anchor="middle">FSPIOP openapi spec ve...</text></switch></g><path d="M 657 350 L 757 350 L 767 360 L 767 390 L 657 390 L 657 350 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 757 350 L 757 360 L 767 360 Z" fill-opacity="0.05" fill="#000000" stroke="none" pointer-events="all"/><path d="M 757 350 L 757 360 L 767 360" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 108px; height: 1px; padding-top: 370px; margin-left: 658px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 10px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Additional Validation Rules</div></div></div></foreignObject><text x="712" y="373" fill="#000000" font-family="Helvetica" font-size="10px" text-anchor="middle">Additional Validation...</text></switch></g><path d="M 657 400 L 757 400 L 767 410 L 767 440 L 657 440 L 657 400 Z" fill="#ffffff" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 757 400 L 757 410 L 767 410 Z" fill-opacity="0.05" fill="#000000" stroke="none" pointer-events="all"/><path d="M 757 400 L 757 410 L 767 410" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 108px; height: 1px; padding-top: 420px; margin-left: 658px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 10px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Callback generation Rules</div></div></div></foreignObject><text x="712" y="423" fill="#000000" font-family="Helvetica" font-size="10px" text-anchor="middle">Callback generation Ru...</text></switch></g><rect x="485" y="400" width="120" height="40" rx="6" ry="6" fill="#ffcccc" stroke="#36393d" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 420px; margin-left: 486px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 10px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Callback Generator</div></div></div></foreignObject><text x="545" y="423" fill="#000000" font-family="Helvetica" font-size="10px" text-anchor="middle">Callback Generator</text></switch></g><path d="M 750 180 L 790 180 Q 800 180 800 190 L 800 365 Q 800 375 790 375 L 773.37 375" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="1 2" pointer-events="stroke"/><path d="M 768.12 375 L 775.12 371.5 L 773.37 375 L 775.12 378.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 175 85 L 293.63 85" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 298.88 85 L 291.88 88.5 L 293.63 85 L 291.88 81.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 71px; margin-left: 235px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 10px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: nowrap; ">POST /transfers</div></div></div></foreignObject><text x="235" y="74" fill="#000000" font-family="Helvetica" font-size="10px" text-anchor="middle">POST /transfers</text></switch></g><path d="M 280 340 L 125 340 Q 115 340 115 330 L 115 176.37" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 115 171.12 L 118.5 178.12 L 115 176.37 L 111.5 178.12 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 431px; margin-left: 401px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 10px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: nowrap; ">PUT /transfers/ID</div></div></div></foreignObject><text x="401" y="434" fill="#000000" font-family="Helvetica" font-size="10px" text-anchor="middle">PUT /transfers/ID</text></switch></g><rect x="280" y="320" width="120" height="40" rx="6" ry="6" fill="#ffcccc" stroke="#36393d" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 340px; margin-left: 281px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 10px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Outbound HTTP adapter</div></div></div></foreignObject><text x="340" y="343" fill="#000000" font-family="Helvetica" font-size="10px" text-anchor="middle">Outbound HTTP adapter</text></switch></g><path d="M 350 105 L 350 153.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 350 158.88 L 346.5 151.88 L 350 153.63 L 353.5 151.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 440 180 L 468.63 180" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/><path d="M 473.88 180 L 466.88 183.5 L 468.63 180 L 466.88 176.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 595 180 L 623.63 180" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="3 3" pointer-events="stroke"/><path d="M 628.88 180 L 621.88 183.5 L 623.63 180 L 621.88 176.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 565 200 L 565 210 Q 565 220 565 230 L 565 310 Q 565 320 575 320 L 600 320 Q 610 320 620 320 L 650.63 320" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="1 2" pointer-events="stroke"/><path d="M 655.88 320 L 648.88 323.5 L 650.63 320 L 648.88 316.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 605 420 L 607.5 420 Q 610 420 620 420 L 650.63 420" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="1 2" pointer-events="stroke"/><path d="M 655.88 420 L 648.88 423.5 L 650.63 420 L 648.88 416.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 690 200 L 690 250 Q 690 260 680 260 L 555 260 Q 545 260 545 270 L 545 393.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 545 398.88 L 541.5 391.88 L 545 393.63 L 548.5 391.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 485 420 L 350 420 Q 340 420 340 410 L 340 366.37" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 340 361.12 L 343.5 368.12 L 340 366.37 L 336.5 368.12 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 370 320 L 370 300 Q 370 290 380 290 L 495 290 Q 505 290 505 280 L 505 206.37" fill="none" stroke="#000000" stroke-miterlimit="10" stroke-dasharray="1 2" pointer-events="stroke"/><path d="M 505 201.12 L 508.5 208.12 L 505 206.37 L 501.5 208.12 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 535 200 L 535 210 Q 535 220 525 220 L 270 220 Q 260 220 260 210 L 260 103 Q 260 93 250 92.94 L 181.37 92.54" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 176.12 92.51 L 183.14 89.05 L 181.37 92.54 L 183.1 96.05 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 150px; margin-left: 230px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 10px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; background-color: #ffffff; white-space: nowrap; ">Success / <br />Error <br />response<br />2XX / 4XX</div></div></div></foreignObject><text x="230" y="153" fill="#000000" font-family="Helvetica" font-size="10px" text-anchor="middle">Success /...</text></switch></g><path d="M 660 200 L 660 230 Q 660 240 650 240 L 530 240 Q 520 240 520 250 L 520 330 Q 520 340 510 340 L 406.37 340" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 401.12 340 L 408.12 336.5 L 406.37 340 L 408.12 343.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 351px; margin-left: 461px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 10px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: nowrap; ">PUT /transfers/ID/error</div></div></div></foreignObject><text x="461" y="354" fill="#000000" font-family="Helvetica" font-size="10px" text-anchor="middle">PUT /transfers/ID/error</text></switch></g></g><switch><g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/><a transform="translate(0,-5)" xlink:href="https://desk.draw.io/support/solutions/articles/16000042487" target="_blank"><text text-anchor="middle" font-size="10px" x="50%" y="100%">Viewer does not support full SVG 1.1</text></a></switch></svg>
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
|
3
|
+
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="837px" height="897px" viewBox="-0.5 -0.5 837 897" content="<mxfile host="www.draw.io" modified="2020-02-13T07:00:32.023Z" agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36" etag="sUiiqT_ty3SpptwDGas2" version="12.6.8" type="device"><diagram id="zb0J1lTHZboETh79LLQe" name="Page-1">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</diagram></mxfile>"><defs/><g><rect x="0" y="0" width="836" height="896" fill="#fffdf7" stroke="#d6b656" pointer-events="all"/><rect x="377" y="259.5" width="260" height="90" fill="#dae8fc" stroke="#6c8ebf" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 258px; height: 1px; padding-top: 305px; margin-left: 378px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Construct body and headers using OpenAPI specification and <b><i>Mock data generation rules</i></b> for <br />PUT /transfers/<ID><br />callback</div></div></div></foreignObject><text x="507" y="308" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Construct body and headers using OpenAPI sp...</text></switch></g><path d="M 221.5 206.25 L 255.85 181.8 Q 264 176 272.15 181.8 L 340.85 230.7 Q 349 236.5 340.85 242.3 L 272.15 291.2 Q 264 297 255.85 291.2 L 187.15 242.3 Q 179 236.5 187.15 230.7 Z" fill="#fff2cc" stroke="#d6b656" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 168px; height: 1px; padding-top: 237px; margin-left: 180px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><span style="white-space: normal">Schema, Header<br />validation <br />against <b><i>OpenAPI<br />Specification</i></b><br /></span></div></div></div></foreignObject><text x="264" y="240" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Schema, Header...</text></switch></g><path d="M 179 236.5 L 116 236.93 Q 106 237 106 247 L 106 268.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 106 273.88 L 102.5 266.88 L 106 268.63 L 109.5 266.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 457 417.5 L 498.73 389.12 Q 507 383.5 515.27 389.12 L 598.73 445.88 Q 607 451.5 598.73 457.12 L 515.27 513.88 Q 507 519.5 498.73 513.88 L 415.27 457.12 Q 407 451.5 415.27 445.88 Z" fill="#fff2cc" stroke="#d6b656" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 198px; height: 1px; padding-top: 452px; margin-left: 408px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><span style="white-space: normal">Validate the generated <br />callback message<br />against <br /><b>OpenAPI specification</b><br /></span></div></div></div></foreignObject><text x="507" y="455" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Validate the generated...</text></switch></g><path d="M 407 451.5 L 274 451.97 Q 264 452 264 460.07 L 264 468.13" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 264 473.38 L 260.5 466.38 L 264 468.13 L 267.5 466.38 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 436px; margin-left: 389px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; background-color: #ffffff; white-space: nowrap; ">Fail</div></div></div></foreignObject><text x="389" y="439" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Fail</text></switch></g><path d="M 507 349.5 L 507 377.13" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 507 382.38 L 503.5 375.38 L 507 377.13 L 510.5 375.38 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 507 519.5 L 507.36 536.13" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 507.48 541.38 L 503.82 534.46 L 507.36 536.13 L 510.82 534.31 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 519px; margin-left: 531px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; background-color: #ffffff; white-space: nowrap; ">Pass</div></div></div></foreignObject><text x="531" y="523" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Pass</text></switch></g><path d="M 146.5 208 L 146.5 207.9 L 154.5 207.84 L 162.5 208.18 L 170.5 208.02 L 178.5 208.14 L 186.5 208 L 186.38 208 L 186.33 212 L 186.45 216 L 186.38 220 L 186.62 224 L 186.5 228 L 186.5 227.8 L 178.5 228.08 L 170.5 227.9 L 162.5 227.93 L 154.5 227.97 L 146.5 228 L 146.63 228 L 146.61 224 L 146.44 220 L 146.6 216 L 146.33 212 L 146.5 208 L 146.5 208 Z Z" fill="none" stroke="none" transform="translate(2,3)" opacity="0.25"/><path d="M 146.5 208 L 146.5 207.9 L 154.5 207.84 L 162.5 208.18 L 170.5 208.02 L 178.5 208.14 L 186.5 208 L 186.38 208 L 186.33 212 L 186.45 216 L 186.38 220 L 186.62 224 L 186.5 228 L 186.5 227.8 L 178.5 228.08 L 170.5 227.9 L 162.5 227.93 L 154.5 227.97 L 146.5 228 L 146.63 228 L 146.61 224 L 146.44 220 L 146.6 216 L 146.33 212 L 146.5 208 L 146.5 208 Z Z" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 38px; height: 1px; padding-top: 218px; margin-left: 148px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Fail</div></div></div></foreignObject><text x="167" y="222" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Fail</text></switch></g><path d="M 458.75 124.75 L 499 99.77 Q 507.5 94.5 516 99.77 L 596.5 149.73 Q 605 155 596.5 160.27 L 516 210.23 Q 507.5 215.5 499 210.23 L 418.5 160.27 Q 410 155 418.5 149.73 Z" fill="#fff2cc" stroke="#d6b656" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 193px; height: 1px; padding-top: 155px; margin-left: 411px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><span style="white-space: normal">Validate fields against<br /><b><i>Additional Rules</i></b><br /></span></div></div></div></foreignObject><text x="508" y="159" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Validate fields against...</text></switch></g><path d="M 507.5 215.5 L 507.07 253.13" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 507.01 258.38 L 503.59 251.34 L 507.07 253.13 L 510.59 251.42 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 221px; margin-left: 529px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; background-color: #ffffff; white-space: nowrap; ">Pass</div></div></div></foreignObject><text x="529" y="225" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Pass</text></switch></g><path d="M 605 155 L 682 155 Q 692 155 691.81 164.57 L 691.62 174.13" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 691.52 179.38 L 688.16 172.31 L 691.62 174.13 L 695.16 172.45 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 146px; margin-left: 624px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; background-color: #ffffff; white-space: nowrap; ">Fail</div></div></div></foreignObject><text x="624" y="149" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Fail</text></switch></g><ellipse cx="264" cy="50" rx="60" ry="25" fill="#f8cecc" stroke="#b85450" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 50px; margin-left: 205px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Start</div></div></div></foreignObject><text x="264" y="54" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Start</text></switch></g><path d="M 194 156.5 L 222 96.5 L 334 96.5 L 306 156.5 Z" fill="#f5f5f5" stroke="#666666" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 138px; height: 1px; padding-top: 127px; margin-left: 195px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #333333; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Incoming POST /transfers request</div></div></div></foreignObject><text x="264" y="130" fill="#333333" font-family="Helvetica" font-size="12px" text-anchor="middle">Incoming POST /transfer...</text></switch></g><path d="M 264 75 L 264 90.13" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 264 95.38 L 260.5 88.38 L 264 90.13 L 267.5 88.38 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 264 156.5 L 264 169.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 264 174.88 L 260.5 167.88 L 264 169.63 L 267.5 167.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 264 297 L 264 318.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 264 323.88 L 260.5 316.88 L 264 318.63 L 267.5 316.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 298px; margin-left: 285px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; background-color: #ffffff; white-space: nowrap; ">Pass</div></div></div></foreignObject><text x="285" y="301" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Pass</text></switch></g><path d="M 467.75 641 L 498.94 622.17 Q 507.5 617 516.06 622.17 L 578.44 659.83 Q 587 665 578.44 670.17 L 516.06 707.83 Q 507.5 713 498.94 707.83 L 436.56 670.17 Q 428 665 436.56 659.83 Z" fill="#fff2cc" stroke="#d6b656" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 157px; height: 1px; padding-top: 665px; margin-left: 429px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><span style="white-space: normal">Check if<br /><b>ENABLE_CALLBACKS</b><br />set in config<br /></span></div></div></div></foreignObject><text x="508" y="669" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Check if...</text></switch></g><ellipse cx="264" cy="845" rx="60" ry="25" fill="#f8cecc" stroke="#b85450" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 845px; margin-left: 205px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">End</div></div></div></foreignObject><text x="264" y="849" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">End</text></switch></g><path d="M 507.5 713 L 507.5 735.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 507.5 740.88 L 504 733.88 L 507.5 735.63 L 511 733.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 714px; margin-left: 491px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; background-color: #ffffff; white-space: nowrap; ">Set</div></div></div></foreignObject><text x="491" y="718" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Set</text></switch></g><path d="M 264 385 L 264 395 Q 264 405 274 405 L 346 405 Q 356 405 356 395 L 356 85 Q 356 75 366 75 L 498 75 Q 508 75 507.83 81.57 L 507.66 88.13" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 507.53 93.38 L 504.21 86.29 L 507.66 88.13 L 511.21 86.47 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 194 385 L 222 325 L 334 325 L 306 385 Z" fill="#f5f5f5" stroke="#666666" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 138px; height: 1px; padding-top: 355px; margin-left: 195px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #333333; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Send 202<br />success response</div></div></div></foreignObject><text x="264" y="359" fill="#333333" font-family="Helvetica" font-size="12px" text-anchor="middle">Send 202...</text></switch></g><path d="M 6 356 L 46 275 L 206 275 L 166 356 Z" fill="#f5f5f5" stroke="#666666" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 198px; height: 1px; padding-top: 316px; margin-left: 7px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #333333; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><span style="color: rgb(0 , 0 , 0)">Send 4XX</span><br style="color: rgb(0 , 0 , 0)" /><span style="color: rgb(0 , 0 , 0)"> error response</span><br style="color: rgb(0 , 0 , 0)" /><span style="color: rgb(0 , 0 , 0)">(</span><span style="color: rgb(0 , 0 , 0) ; white-space: nowrap ; background-color: rgb(255 , 255 , 255)">Schema validation error)</span></div></div></div></foreignObject><text x="106" y="319" fill="#333333" font-family="Helvetica" font-size="12px" text-anchor="middle">Send 4XX...</text></switch></g><path d="M 607 602.5 L 625.67 542.5 L 777 542.5 L 758.33 602.5 Z" fill="#f5f5f5" stroke="#666666" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 168px; height: 1px; padding-top: 573px; margin-left: 608px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #333333; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><font color="#000000">Send<br />Error Callback<br /></font>PUT /transfers/<ID>/error</div></div></div></foreignObject><text x="692" y="576" fill="#333333" font-family="Helvetica" font-size="12px" text-anchor="middle">Send...</text></switch></g><path d="M 430 802 L 461 742 L 585 742 L 554 802 Z" fill="#f5f5f5" stroke="#666666" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 153px; height: 1px; padding-top: 772px; margin-left: 431px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #333333; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Send <br />Success Callback<br />PUT /transfers/<ID></div></div></div></foreignObject><text x="508" y="776" fill="#333333" font-family="Helvetica" font-size="12px" text-anchor="middle">Send...</text></switch></g><rect x="194" y="474.5" width="140" height="45" fill="#dae8fc" stroke="#6c8ebf" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 138px; height: 1px; padding-top: 497px; margin-left: 195px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Log error in the server</div></div></div></foreignObject><text x="264" y="501" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Log error in the server</text></switch></g><path d="M 106 356 L 98.16 834 Q 98 844 108 844.09 L 197.63 844.94" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 202.88 844.99 L 195.85 848.42 L 197.63 844.94 L 195.92 841.42 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 264 519.5 L 264 813.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 264 818.88 L 260.5 811.88 L 264 813.63 L 267.5 811.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 507.5 802 L 507.88 835 Q 508 845 498 845 L 330.37 845" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 325.12 845 L 332.12 841.5 L 330.37 845 L 332.12 848.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 651.75 379.5 L 682.94 360.67 Q 691.5 355.5 700.06 360.67 L 762.44 398.33 Q 771 403.5 762.44 408.67 L 700.06 446.33 Q 691.5 451.5 682.94 446.33 L 620.56 408.67 Q 612 403.5 620.56 398.33 Z" fill="#fff2cc" stroke="#d6b656" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 157px; height: 1px; padding-top: 404px; margin-left: 613px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><span style="white-space: normal">Check if<br /><b>ENABLE_CALLBACKS</b><br />set in config<br /></span></div></div></div></foreignObject><text x="692" y="407" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Check if...</text></switch></g><path d="M 692 602.5 L 692 835 Q 692 845 682 845 L 330.37 845" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 325.12 845 L 332.12 841.5 L 330.37 845 L 332.12 848.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><rect x="631.5" y="180.5" width="120" height="55" fill="#dae8fc" stroke="#6c8ebf" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 208px; margin-left: 633px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Log callback in the server</div></div></div></foreignObject><text x="692" y="212" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Log callback in the...</text></switch></g><path d="M 691.5 235.5 L 691.5 349.13" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 691.5 354.38 L 688 347.38 L 691.5 349.13 L 695 347.38 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 691.5 451.5 L 691.97 536.13" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 691.99 541.38 L 688.46 534.4 L 691.97 536.13 L 695.46 534.36 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 455px; margin-left: 677px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; background-color: #ffffff; white-space: nowrap; ">Set</div></div></div></foreignObject><text x="677" y="459" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Set</text></switch></g><rect x="437.5" y="542.5" width="140" height="55" fill="#dae8fc" stroke="#6c8ebf" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 138px; height: 1px; padding-top: 570px; margin-left: 439px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; ">Log Success Callback in server</div></div></div></foreignObject><text x="508" y="574" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Log Success Callback in...</text></switch></g><path d="M 507.5 597.5 L 507.5 610.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 507.5 615.88 L 504 608.88 L 507.5 610.63 L 511 608.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><path d="M 428 665 L 274 665 Q 264 665 264 675 L 264 813.63" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 264 818.88 L 260.5 811.88 L 264 813.63 L 267.5 811.88 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 647px; margin-left: 426px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; background-color: #ffffff; white-space: nowrap; ">Not set</div></div></div></foreignObject><text x="426" y="651" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Not set</text></switch></g><path d="M 771 403.5 L 796 403.86 Q 806 404 806 414 L 806 835 Q 806 845 796 845 L 330.37 845" fill="none" stroke="#000000" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 325.12 845 L 332.12 841.5 L 330.37 845 L 332.12 848.5 Z" fill="#000000" stroke="#000000" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 396px; margin-left: 787px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: #000000; line-height: 1.2; pointer-events: all; background-color: #ffffff; white-space: nowrap; ">Not set</div></div></div></foreignObject><text x="787" y="399" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle">Not set</text></switch></g></g><switch><g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/><a transform="translate(0,-5)" xlink:href="https://desk.draw.io/support/solutions/articles/16000042487" target="_blank"><text text-anchor="middle" font-size="10px" x="50%" y="100%">Viewer does not support full SVG 1.1</text></a></switch></svg>
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/audit-ci.jsonc
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://github.com/IBM/audit-ci/raw/main/docs/schema.json",
|
|
3
|
+
// audit-ci supports reading JSON, JSONC, and JSON5 config files.
|
|
4
|
+
// Only use one of ["low": true, "moderate": true, "high": true, "critical": true]
|
|
5
|
+
"moderate": true,
|
|
6
|
+
"allowlist": []
|
|
7
|
+
}
|