@fluentcommerce/fc-connect-sdk 0.1.54 → 0.1.56
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/CHANGELOG.md +12 -0
- package/README.md +11 -0
- package/dist/cjs/clients/fluent-client.js +13 -6
- package/dist/cjs/utils/pagination-helpers.js +38 -2
- package/dist/cjs/versori/fluent-versori-client.js +11 -5
- package/dist/esm/clients/fluent-client.js +13 -6
- package/dist/esm/utils/pagination-helpers.js +38 -2
- package/dist/esm/versori/fluent-versori-client.js +11 -5
- package/dist/tsconfig.esm.tsbuildinfo +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/tsconfig.types.tsbuildinfo +1 -1
- package/docs/00-START-HERE/EXPORT-VALIDATION.md +158 -158
- package/docs/00-START-HERE/cli-analyze-source-structure-guide.md +655 -655
- package/docs/00-START-HERE/cli-documentation-index.md +202 -202
- package/docs/00-START-HERE/cli-quick-reference.md +252 -252
- package/docs/00-START-HERE/decision-tree.md +552 -552
- package/docs/00-START-HERE/getting-started.md +1070 -1070
- package/docs/00-START-HERE/mapper-quick-decision-guide.md +235 -235
- package/docs/00-START-HERE/readme.md +237 -237
- package/docs/00-START-HERE/retailerid-configuration.md +404 -404
- package/docs/00-START-HERE/sdk-philosophy.md +794 -794
- package/docs/00-START-HERE/troubleshooting-quick-reference.md +1086 -1086
- package/docs/01-TEMPLATES/faq.md +686 -686
- package/docs/01-TEMPLATES/patterns/pattern-templates-guide.md +68 -68
- package/docs/01-TEMPLATES/patterns/patterns-csv-schema-validation-and-rejection-report.md +233 -233
- package/docs/01-TEMPLATES/patterns/patterns-custom-resolvers.md +407 -407
- package/docs/01-TEMPLATES/patterns/patterns-error-handling-retry.md +511 -511
- package/docs/01-TEMPLATES/patterns/patterns-field-mapping-universal.md +701 -701
- package/docs/01-TEMPLATES/patterns/patterns-large-file-splitting.md +1430 -1430
- package/docs/01-TEMPLATES/patterns/patterns-master-data-etl.md +2399 -2399
- package/docs/01-TEMPLATES/patterns/patterns-pagination-streaming.md +447 -447
- package/docs/01-TEMPLATES/patterns/patterns-state-duplicate-prevention.md +385 -385
- package/docs/01-TEMPLATES/readme.md +957 -957
- package/docs/01-TEMPLATES/standalone/standalone-asn-inbound-processing.md +1209 -1209
- package/docs/01-TEMPLATES/standalone/standalone-graphql-query-export.md +1140 -1140
- package/docs/01-TEMPLATES/standalone/standalone-graphql-to-parquet-partitioned-s3.md +432 -432
- package/docs/01-TEMPLATES/standalone/standalone-multi-channel-inventory-sync.md +1185 -1185
- package/docs/01-TEMPLATES/standalone/standalone-multi-source-aggregation.md +1462 -1462
- package/docs/01-TEMPLATES/standalone/standalone-s3-csv-batch-api.md +1390 -1390
- package/docs/01-TEMPLATES/standalone/standalone-s3-csv-inventory-to-batch.md +330 -330
- package/docs/01-TEMPLATES/standalone/standalone-scripts-guide.md +87 -87
- package/docs/01-TEMPLATES/standalone/standalone-sftp-xml-graphql.md +1444 -1444
- package/docs/01-TEMPLATES/standalone/standalone-webhook-payload-processing.md +688 -688
- package/docs/01-TEMPLATES/versori/business-examples/business-examples-dropship-order-routing.md +193 -193
- package/docs/01-TEMPLATES/versori/business-examples/business-examples-graphql-parquet-extraction.md +518 -518
- package/docs/01-TEMPLATES/versori/business-examples/business-examples-inter-location-transfers.md +2162 -2162
- package/docs/01-TEMPLATES/versori/business-examples/business-examples-pre-order-allocation.md +2226 -2226
- package/docs/01-TEMPLATES/versori/business-examples/business-scenarios-guide.md +87 -87
- package/docs/01-TEMPLATES/versori/patterns/versori-patterns-connection-validation-pattern.md +656 -656
- package/docs/01-TEMPLATES/versori/patterns/versori-patterns-dual-workflow-connector.md +835 -835
- package/docs/01-TEMPLATES/versori/patterns/versori-patterns-guide.md +108 -108
- package/docs/01-TEMPLATES/versori/patterns/versori-patterns-kv-state-management.md +1533 -1533
- package/docs/01-TEMPLATES/versori/patterns/versori-patterns-xml-response-patterns.md +1160 -1160
- package/docs/01-TEMPLATES/versori/versori-platform-guide.md +201 -201
- package/docs/01-TEMPLATES/versori/webhooks/template-webhook-asn-purchase-order.md +1906 -1906
- package/docs/01-TEMPLATES/versori/webhooks/template-webhook-dropship-routing.md +1074 -1074
- package/docs/01-TEMPLATES/versori/webhooks/template-webhook-flash-sale-reserve.md +1395 -1395
- package/docs/01-TEMPLATES/versori/webhooks/template-webhook-generic-xml-order.md +888 -888
- package/docs/01-TEMPLATES/versori/webhooks/template-webhook-payment-gateway-integration.md +2478 -2478
- package/docs/01-TEMPLATES/versori/webhooks/template-webhook-rma-returns-comprehensive.md +2240 -2240
- package/docs/01-TEMPLATES/versori/webhooks/template-webhook-xml-order-ingestion.md +2029 -2029
- package/docs/01-TEMPLATES/versori/webhooks/webhook-templates-guide.md +140 -140
- package/docs/01-TEMPLATES/versori/workflows/_examples/sample-data/inventory-mapping.json +20 -20
- package/docs/01-TEMPLATES/versori/workflows/_examples/sample-data/products_2025-01-22.csv +11 -11
- package/docs/01-TEMPLATES/versori/workflows/_examples/sample-data/sample-data-guide.md +34 -34
- package/docs/01-TEMPLATES/versori/workflows/_examples/workflow-examples-guide.md +36 -36
- package/docs/01-TEMPLATES/versori/workflows/extraction/extraction-modes-guide.md +1038 -1038
- package/docs/01-TEMPLATES/versori/workflows/extraction/extraction-workflows-guide.md +138 -138
- package/docs/01-TEMPLATES/versori/workflows/extraction/graphql-queries/graphql-extraction-guide.md +63 -63
- package/docs/01-TEMPLATES/versori/workflows/extraction/graphql-queries/template-extraction-fulfillments-to-sftp-csv.md +2062 -2062
- package/docs/01-TEMPLATES/versori/workflows/extraction/graphql-queries/template-extraction-fulfillments-to-sftp-xml.md +2294 -2294
- package/docs/01-TEMPLATES/versori/workflows/extraction/graphql-queries/template-extraction-inventory-positions-to-s3-csv.md +2461 -2461
- package/docs/01-TEMPLATES/versori/workflows/extraction/graphql-queries/template-extraction-inventory-positions-to-sftp-xml.md +2529 -2529
- package/docs/01-TEMPLATES/versori/workflows/extraction/graphql-queries/template-extraction-inventory-quantities-to-s3-csv.md +2464 -2464
- package/docs/01-TEMPLATES/versori/workflows/extraction/graphql-queries/template-extraction-inventory-quantities-to-s3-json.md +1959 -1959
- package/docs/01-TEMPLATES/versori/workflows/extraction/graphql-queries/template-extraction-orders-to-s3-csv.md +1953 -1953
- package/docs/01-TEMPLATES/versori/workflows/extraction/graphql-queries/template-extraction-orders-to-sftp-xml.md +2541 -2541
- package/docs/01-TEMPLATES/versori/workflows/extraction/graphql-queries/template-extraction-products-to-s3-json.md +2384 -2384
- package/docs/01-TEMPLATES/versori/workflows/extraction/graphql-queries/template-extraction-products-to-sftp-xml.md +2445 -2445
- package/docs/01-TEMPLATES/versori/workflows/extraction/graphql-queries/template-extraction-virtual-positions-to-s3-csv.md +2355 -2355
- package/docs/01-TEMPLATES/versori/workflows/extraction/graphql-queries/template-extraction-virtual-positions-to-s3-json.md +2042 -2042
- package/docs/01-TEMPLATES/versori/workflows/extraction/graphql-queries/template-extraction-virtual-positions-to-sftp-xml.md +2726 -2726
- package/docs/01-TEMPLATES/versori/workflows/ingestion/batch-api/batch-api-guide.md +206 -206
- package/docs/01-TEMPLATES/versori/workflows/ingestion/batch-api/template-ingestion-cycle-count-reconciliation.md +2030 -2030
- package/docs/01-TEMPLATES/versori/workflows/ingestion/batch-api/template-ingestion-multi-channel-inventory-sync.md +1882 -1882
- package/docs/01-TEMPLATES/versori/workflows/ingestion/batch-api/template-ingestion-s3-csv-inventory-batch.md +2827 -2827
- package/docs/01-TEMPLATES/versori/workflows/ingestion/batch-api/template-ingestion-s3-json-inventory-batch.md +1952 -1952
- package/docs/01-TEMPLATES/versori/workflows/ingestion/batch-api/template-ingestion-s3-xml-inventory-batch.md +3289 -3289
- package/docs/01-TEMPLATES/versori/workflows/ingestion/batch-api/template-ingestion-sftp-csv-inventory-batch.md +3064 -3064
- package/docs/01-TEMPLATES/versori/workflows/ingestion/batch-api/template-ingestion-sftp-json-inventory-batch.md +3238 -3238
- package/docs/01-TEMPLATES/versori/workflows/ingestion/batch-api/template-ingestion-sftp-xml-inventory-batch.md +2977 -2977
- package/docs/01-TEMPLATES/versori/workflows/ingestion/event-api/event-api-guide.md +321 -321
- package/docs/01-TEMPLATES/versori/workflows/ingestion/event-api/template-ingestion-payload-json-order-cancel-event.md +959 -959
- package/docs/01-TEMPLATES/versori/workflows/ingestion/event-api/template-ingestion-payload-xml-order-cancel-event.md +1170 -1170
- package/docs/01-TEMPLATES/versori/workflows/ingestion/event-api/template-ingestion-s3-csv-product-event.md +2312 -2312
- package/docs/01-TEMPLATES/versori/workflows/ingestion/event-api/template-ingestion-s3-json-product-event.md +2999 -2999
- package/docs/01-TEMPLATES/versori/workflows/ingestion/event-api/template-ingestion-s3-parquet-product-event.md +2836 -2836
- package/docs/01-TEMPLATES/versori/workflows/ingestion/event-api/template-ingestion-s3-xml-product-event.md +2395 -2395
- package/docs/01-TEMPLATES/versori/workflows/ingestion/event-api/template-ingestion-sftp-csv-product-event.md +2295 -2295
- package/docs/01-TEMPLATES/versori/workflows/ingestion/event-api/template-ingestion-sftp-json-product-event.md +2602 -2602
- package/docs/01-TEMPLATES/versori/workflows/ingestion/event-api/template-ingestion-sftp-parquet-product-event.md +2589 -2589
- package/docs/01-TEMPLATES/versori/workflows/ingestion/event-api/template-ingestion-sftp-xml-product-event.md +3578 -3578
- package/docs/01-TEMPLATES/versori/workflows/ingestion/graphql-mutations/graphql-mutations-guide.md +93 -93
- package/docs/01-TEMPLATES/versori/workflows/ingestion/graphql-mutations/template-ingestion-payload-json-order-update-graphql.md +1260 -1260
- package/docs/01-TEMPLATES/versori/workflows/ingestion/graphql-mutations/template-ingestion-payload-xml-order-update-graphql.md +1472 -1472
- package/docs/01-TEMPLATES/versori/workflows/ingestion/graphql-mutations/template-ingestion-s3-csv-control-graphql.md +2417 -2417
- package/docs/01-TEMPLATES/versori/workflows/ingestion/graphql-mutations/template-ingestion-s3-csv-location-graphql.md +2811 -2811
- package/docs/01-TEMPLATES/versori/workflows/ingestion/graphql-mutations/template-ingestion-s3-csv-price-graphql.md +2619 -2619
- package/docs/01-TEMPLATES/versori/workflows/ingestion/graphql-mutations/template-ingestion-s3-json-location-graphql.md +2807 -2807
- package/docs/01-TEMPLATES/versori/workflows/ingestion/graphql-mutations/template-ingestion-s3-xml-location-graphql.md +2373 -2373
- package/docs/01-TEMPLATES/versori/workflows/ingestion/graphql-mutations/template-ingestion-sftp-csv-control-graphql.md +2740 -2740
- package/docs/01-TEMPLATES/versori/workflows/ingestion/graphql-mutations/template-ingestion-sftp-csv-location-graphql.md +2760 -2760
- package/docs/01-TEMPLATES/versori/workflows/ingestion/graphql-mutations/template-ingestion-sftp-json-location-graphql.md +1710 -1710
- package/docs/01-TEMPLATES/versori/workflows/ingestion/ingestion-workflows-guide.md +136 -136
- package/docs/01-TEMPLATES/versori/workflows/rubix-webhooks/rubix-webhooks-guide.md +520 -520
- package/docs/01-TEMPLATES/versori/workflows/rubix-webhooks/template-webhook-rubix-fulfilment-to-sftp-xml-inline.md +1418 -1418
- package/docs/01-TEMPLATES/versori/workflows/rubix-webhooks/template-webhook-rubix-fulfilment-to-sftp-xml-universal-mapper.md +1785 -1785
- package/docs/01-TEMPLATES/versori/workflows/rubix-webhooks/template-webhook-rubix-order-attribute-update.md +824 -824
- package/docs/01-TEMPLATES/versori/workflows/workflows-overview-guide.md +646 -646
- package/docs/02-CORE-GUIDES/advanced-services/advanced-services-batch-archival.md +724 -724
- package/docs/02-CORE-GUIDES/advanced-services/advanced-services-job-tracker.md +627 -627
- package/docs/02-CORE-GUIDES/advanced-services/advanced-services-partial-batch-recovery.md +561 -561
- package/docs/02-CORE-GUIDES/advanced-services/advanced-services-quick-reference.md +367 -367
- package/docs/02-CORE-GUIDES/advanced-services/advanced-services-readme.md +407 -407
- package/docs/02-CORE-GUIDES/advanced-services/readme.md +49 -49
- package/docs/02-CORE-GUIDES/api-reference/api-reference-quick-reference.md +548 -548
- package/docs/02-CORE-GUIDES/api-reference/event-api-input-output-reference.md +702 -1171
- package/docs/02-CORE-GUIDES/api-reference/examples/client-initialization.ts +286 -286
- package/docs/02-CORE-GUIDES/api-reference/graphql-error-classification.md +337 -337
- package/docs/02-CORE-GUIDES/api-reference/modules/api-reference-01-client-api.md +399 -520
- package/docs/02-CORE-GUIDES/api-reference/modules/api-reference-03-authentication.md +199 -199
- package/docs/02-CORE-GUIDES/api-reference/modules/api-reference-04-graphql-mapping.md +925 -925
- package/docs/02-CORE-GUIDES/api-reference/modules/api-reference-05-services.md +1198 -1198
- package/docs/02-CORE-GUIDES/api-reference/modules/api-reference-06-data-sources.md +1083 -1083
- package/docs/02-CORE-GUIDES/api-reference/modules/api-reference-07-parsers.md +1097 -1097
- package/docs/02-CORE-GUIDES/api-reference/modules/api-reference-08-pagination.md +513 -513
- package/docs/02-CORE-GUIDES/api-reference/modules/api-reference-08-types.md +545 -597
- package/docs/02-CORE-GUIDES/api-reference/modules/api-reference-09-error-handling.md +527 -527
- package/docs/02-CORE-GUIDES/api-reference/modules/api-reference-09-webhook-validation.md +514 -514
- package/docs/02-CORE-GUIDES/api-reference/modules/api-reference-10-extraction.md +557 -557
- package/docs/02-CORE-GUIDES/api-reference/modules/api-reference-10-utilities.md +412 -412
- package/docs/02-CORE-GUIDES/api-reference/modules/api-reference-11-cli-tools.md +423 -423
- package/docs/02-CORE-GUIDES/api-reference/modules/api-reference-11-error-handling.md +716 -716
- package/docs/02-CORE-GUIDES/api-reference/modules/api-reference-12-analyze-source-structure.md +518 -518
- package/docs/02-CORE-GUIDES/api-reference/modules/api-reference-12-partial-responses.md +212 -212
- package/docs/02-CORE-GUIDES/api-reference/modules/api-reference-12-testing.md +300 -300
- package/docs/02-CORE-GUIDES/api-reference/modules/api-reference-13-resolver-builder.md +322 -322
- package/docs/02-CORE-GUIDES/api-reference/readme.md +279 -279
- package/docs/02-CORE-GUIDES/auto-pagination/auto-pagination-quick-reference.md +351 -351
- package/docs/02-CORE-GUIDES/auto-pagination/auto-pagination-readme.md +277 -277
- package/docs/02-CORE-GUIDES/auto-pagination/examples/auto-pagination-readme.md +178 -178
- package/docs/02-CORE-GUIDES/auto-pagination/examples/common-patterns.ts +351 -351
- package/docs/02-CORE-GUIDES/auto-pagination/examples/paginate-products.ts +384 -384
- package/docs/02-CORE-GUIDES/auto-pagination/examples/paginate-virtual-positions.ts +308 -308
- package/docs/02-CORE-GUIDES/auto-pagination/modules/auto-pagination-01-foundations.md +470 -470
- package/docs/02-CORE-GUIDES/auto-pagination/modules/auto-pagination-02-quick-start.md +713 -713
- package/docs/02-CORE-GUIDES/auto-pagination/modules/auto-pagination-03-configuration.md +754 -754
- package/docs/02-CORE-GUIDES/auto-pagination/modules/auto-pagination-04-advanced-patterns.md +732 -732
- package/docs/02-CORE-GUIDES/auto-pagination/modules/auto-pagination-05-sdk-integration.md +847 -847
- package/docs/02-CORE-GUIDES/auto-pagination/modules/auto-pagination-06-troubleshooting.md +359 -359
- package/docs/02-CORE-GUIDES/auto-pagination/modules/auto-pagination-07-api-reference.md +462 -462
- package/docs/02-CORE-GUIDES/auto-pagination/readme.md +54 -54
- package/docs/02-CORE-GUIDES/data-sources/data-sources-file-operations-error-handling.md +1487 -1487
- package/docs/02-CORE-GUIDES/data-sources/data-sources-quick-reference.md +836 -836
- package/docs/02-CORE-GUIDES/data-sources/data-sources-readme.md +276 -276
- package/docs/02-CORE-GUIDES/data-sources/data-sources-sftp-credential-access-security.md +553 -553
- package/docs/02-CORE-GUIDES/data-sources/examples/common-patterns.ts +409 -409
- package/docs/02-CORE-GUIDES/data-sources/examples/data-sources-readme.md +178 -178
- package/docs/02-CORE-GUIDES/data-sources/examples/s3-operations.ts +308 -308
- package/docs/02-CORE-GUIDES/data-sources/examples/sftp-operations.ts +371 -371
- package/docs/02-CORE-GUIDES/data-sources/modules/data-sources-01-foundations.md +735 -735
- package/docs/02-CORE-GUIDES/data-sources/modules/data-sources-02-s3-operations.md +1302 -1302
- package/docs/02-CORE-GUIDES/data-sources/modules/data-sources-03-sftp-operations.md +1379 -1379
- package/docs/02-CORE-GUIDES/data-sources/modules/data-sources-04-file-patterns.md +941 -941
- package/docs/02-CORE-GUIDES/data-sources/modules/data-sources-05-advanced-topics.md +813 -813
- package/docs/02-CORE-GUIDES/data-sources/modules/data-sources-06-integration-patterns.md +486 -486
- package/docs/02-CORE-GUIDES/data-sources/modules/data-sources-07-troubleshooting.md +387 -387
- package/docs/02-CORE-GUIDES/data-sources/modules/data-sources-08-api-reference.md +417 -417
- package/docs/02-CORE-GUIDES/data-sources/readme.md +77 -77
- package/docs/02-CORE-GUIDES/error-handling-guide.md +936 -936
- package/docs/02-CORE-GUIDES/extraction/examples/02-core-guides-extraction-readme.md +116 -116
- package/docs/02-CORE-GUIDES/extraction/examples/common-patterns.ts +428 -428
- package/docs/02-CORE-GUIDES/extraction/examples/extract-inventory-basic.ts +187 -187
- package/docs/02-CORE-GUIDES/extraction/extraction-quick-reference.md +596 -596
- package/docs/02-CORE-GUIDES/extraction/modules/02-core-guides-extraction-01-foundations.md +514 -514
- package/docs/02-CORE-GUIDES/extraction/modules/02-core-guides-extraction-02-basic-extraction.md +823 -823
- package/docs/02-CORE-GUIDES/extraction/modules/02-core-guides-extraction-03-parquet-processing.md +507 -507
- package/docs/02-CORE-GUIDES/extraction/modules/02-core-guides-extraction-04-data-enrichment.md +546 -546
- package/docs/02-CORE-GUIDES/extraction/modules/02-core-guides-extraction-05-transformation.md +494 -494
- package/docs/02-CORE-GUIDES/extraction/modules/02-core-guides-extraction-06-export-formats.md +458 -458
- package/docs/02-CORE-GUIDES/extraction/modules/02-core-guides-extraction-06-performance.md +138 -138
- package/docs/02-CORE-GUIDES/extraction/modules/02-core-guides-extraction-07-api-reference.md +148 -148
- package/docs/02-CORE-GUIDES/extraction/modules/02-core-guides-extraction-07-optimization.md +692 -692
- package/docs/02-CORE-GUIDES/extraction/modules/02-core-guides-extraction-08-extraction-orchestrator.md +1008 -1008
- package/docs/02-CORE-GUIDES/extraction/readme.md +151 -151
- package/docs/02-CORE-GUIDES/ingestion/examples/_simple-kv-store.ts +40 -40
- package/docs/02-CORE-GUIDES/ingestion/examples/error-recovery.ts +728 -728
- package/docs/02-CORE-GUIDES/ingestion/examples/event-driven.ts +501 -501
- package/docs/02-CORE-GUIDES/ingestion/examples/local-file-ingestion.ts +88 -88
- package/docs/02-CORE-GUIDES/ingestion/examples/parquet-ingestion.ts +117 -117
- package/docs/02-CORE-GUIDES/ingestion/examples/performance-optimized.ts +647 -647
- package/docs/02-CORE-GUIDES/ingestion/examples/s3-csv-ingestion.ts +169 -169
- package/docs/02-CORE-GUIDES/ingestion/examples/sftp-csv-ingestion.ts +134 -134
- package/docs/02-CORE-GUIDES/ingestion/ingestion-quick-reference.md +546 -546
- package/docs/02-CORE-GUIDES/ingestion/modules/02-core-guides-ingestion-01-introduction.md +626 -626
- package/docs/02-CORE-GUIDES/ingestion/modules/02-core-guides-ingestion-02-quick-start.md +658 -658
- package/docs/02-CORE-GUIDES/ingestion/modules/02-core-guides-ingestion-03-data-sources.md +1052 -1052
- package/docs/02-CORE-GUIDES/ingestion/modules/02-core-guides-ingestion-04-field-mapping.md +763 -763
- package/docs/02-CORE-GUIDES/ingestion/modules/02-core-guides-ingestion-05-advanced-parsers.md +676 -676
- package/docs/02-CORE-GUIDES/ingestion/modules/02-core-guides-ingestion-06-batch-api.md +1295 -1295
- package/docs/02-CORE-GUIDES/ingestion/modules/02-core-guides-ingestion-07-api-reference.md +138 -138
- package/docs/02-CORE-GUIDES/ingestion/modules/02-core-guides-ingestion-07-state-management.md +1037 -1037
- package/docs/02-CORE-GUIDES/ingestion/modules/02-core-guides-ingestion-08-performance-optimization.md +1349 -1349
- package/docs/02-CORE-GUIDES/ingestion/modules/02-core-guides-ingestion-09-best-practices.md +1893 -1893
- package/docs/02-CORE-GUIDES/ingestion/readme.md +160 -160
- package/docs/02-CORE-GUIDES/logging-guide.md +585 -585
- package/docs/02-CORE-GUIDES/mapping/error-handling-patterns.md +401 -401
- package/docs/02-CORE-GUIDES/mapping/examples/02-core-guides-mapping-readme.md +128 -128
- package/docs/02-CORE-GUIDES/mapping/examples/common-patterns.ts +273 -273
- package/docs/02-CORE-GUIDES/mapping/examples/csv-location-ingestion.json +36 -36
- package/docs/02-CORE-GUIDES/mapping/examples/csv-mapping.ts +242 -242
- package/docs/02-CORE-GUIDES/mapping/examples/graphql-to-parquet-extraction.json +36 -36
- package/docs/02-CORE-GUIDES/mapping/examples/json-mapping.ts +213 -213
- package/docs/02-CORE-GUIDES/mapping/examples/json-product-to-mutation.json +48 -48
- package/docs/02-CORE-GUIDES/mapping/examples/xml-mapping.ts +291 -291
- package/docs/02-CORE-GUIDES/mapping/examples/xml-order-to-mutation.json +45 -45
- package/docs/02-CORE-GUIDES/mapping/graphql-mutation-mapping/graphql-mutation-mapping-quick-reference.md +463 -463
- package/docs/02-CORE-GUIDES/mapping/graphql-mutation-mapping/graphql-mutation-mapping-readme.md +227 -227
- package/docs/02-CORE-GUIDES/mapping/graphql-mutation-mapping/modules/graphql-mutation-mapping-01-introduction.md +222 -222
- package/docs/02-CORE-GUIDES/mapping/graphql-mutation-mapping/modules/graphql-mutation-mapping-02-quick-start.md +351 -351
- package/docs/02-CORE-GUIDES/mapping/graphql-mutation-mapping/modules/graphql-mutation-mapping-03-schema-validation.md +569 -569
- package/docs/02-CORE-GUIDES/mapping/graphql-mutation-mapping/modules/graphql-mutation-mapping-04-mapping-patterns.md +471 -471
- package/docs/02-CORE-GUIDES/mapping/graphql-mutation-mapping/modules/graphql-mutation-mapping-05-configuration-reference.md +611 -611
- package/docs/02-CORE-GUIDES/mapping/graphql-mutation-mapping/modules/graphql-mutation-mapping-06-advanced-xpath.md +148 -148
- package/docs/02-CORE-GUIDES/mapping/graphql-mutation-mapping/modules/graphql-mutation-mapping-06-path-syntax.md +464 -464
- package/docs/02-CORE-GUIDES/mapping/graphql-mutation-mapping/modules/graphql-mutation-mapping-07-api-reference.md +94 -94
- package/docs/02-CORE-GUIDES/mapping/graphql-mutation-mapping/modules/graphql-mutation-mapping-07-array-handling.md +307 -307
- package/docs/02-CORE-GUIDES/mapping/graphql-mutation-mapping/modules/graphql-mutation-mapping-08-custom-resolvers.md +544 -544
- package/docs/02-CORE-GUIDES/mapping/graphql-mutation-mapping/modules/graphql-mutation-mapping-09-advanced-patterns.md +427 -427
- package/docs/02-CORE-GUIDES/mapping/graphql-mutation-mapping/modules/graphql-mutation-mapping-10-hooks-and-variables.md +336 -336
- package/docs/02-CORE-GUIDES/mapping/graphql-mutation-mapping/modules/graphql-mutation-mapping-11-error-handling.md +488 -488
- package/docs/02-CORE-GUIDES/mapping/graphql-mutation-mapping/modules/graphql-mutation-mapping-12-arguments-vs-nodes.md +383 -383
- package/docs/02-CORE-GUIDES/mapping/graphql-mutation-mapping/modules/graphql-mutation-mapping-13-best-practices.md +477 -477
- package/docs/02-CORE-GUIDES/mapping/graphql-mutation-mapping/readme.md +62 -62
- package/docs/02-CORE-GUIDES/mapping/mapping-format-decision-tree.md +480 -480
- package/docs/02-CORE-GUIDES/mapping/mapping-graphql-alias-batching-guide.md +820 -820
- package/docs/02-CORE-GUIDES/mapping/mapping-javascript-objects.md +2369 -2369
- package/docs/02-CORE-GUIDES/mapping/mapping-mapper-comparison-guide.md +682 -682
- package/docs/02-CORE-GUIDES/mapping/modules/02-core-guides-mapping-07-api-reference.md +1327 -1327
- package/docs/02-CORE-GUIDES/mapping/modules/02-core-guides-mapping-08-error-handling.md +1142 -1142
- package/docs/02-CORE-GUIDES/mapping/modules/mapping-04-use-cases.md +891 -891
- package/docs/02-CORE-GUIDES/mapping/modules/mapping-06-helpers-resolvers.md +1126 -1126
- package/docs/02-CORE-GUIDES/mapping/modules/mapping-06-sdk-resolvers.md +199 -199
- package/docs/02-CORE-GUIDES/mapping/modules/mapping-07-api-reference.md +1319 -1319
- package/docs/02-CORE-GUIDES/mapping/readme.md +178 -178
- package/docs/02-CORE-GUIDES/mapping/resolver-registration.md +410 -410
- package/docs/02-CORE-GUIDES/mapping/resolvers/examples/common-patterns.ts +226 -226
- package/docs/02-CORE-GUIDES/mapping/resolvers/examples/custom-resolvers.ts +227 -227
- package/docs/02-CORE-GUIDES/mapping/resolvers/examples/sdk-resolvers-usage.ts +203 -203
- package/docs/02-CORE-GUIDES/mapping/resolvers/mapping-resolvers-readme.md +274 -274
- package/docs/02-CORE-GUIDES/mapping/resolvers/mapping-resolvers-resolver-api-reference.md +679 -679
- package/docs/02-CORE-GUIDES/mapping/resolvers/mapping-resolvers-resolver-cookbook.md +826 -826
- package/docs/02-CORE-GUIDES/mapping/resolvers/mapping-resolvers-resolver-guide.md +1330 -1330
- package/docs/02-CORE-GUIDES/mapping/resolvers/mapping-resolvers-resolver-helpers-reference.md +1437 -1437
- package/docs/02-CORE-GUIDES/mapping/resolvers/mapping-resolvers-resolver-parameters-reference.md +553 -553
- package/docs/02-CORE-GUIDES/mapping/resolvers/mapping-resolvers-resolver-troubleshooting.md +854 -854
- package/docs/02-CORE-GUIDES/mapping/resolvers/readme.md +75 -75
- package/docs/02-CORE-GUIDES/parsers/examples/02-core-guides-parsers-readme.md +161 -161
- package/docs/02-CORE-GUIDES/parsers/examples/csv-parser-examples.ts +110 -110
- package/docs/02-CORE-GUIDES/parsers/examples/json-parser-examples.ts +33 -33
- package/docs/02-CORE-GUIDES/parsers/examples/parquet-parser-examples.ts +47 -47
- package/docs/02-CORE-GUIDES/parsers/examples/xml-parser-examples.ts +38 -38
- package/docs/02-CORE-GUIDES/parsers/modules/02-core-guides-parsers-01-foundations.md +355 -355
- package/docs/02-CORE-GUIDES/parsers/modules/02-core-guides-parsers-02-csv-parser.md +772 -772
- package/docs/02-CORE-GUIDES/parsers/modules/02-core-guides-parsers-03-json-parser.md +789 -789
- package/docs/02-CORE-GUIDES/parsers/modules/02-core-guides-parsers-04-xml-parser.md +857 -857
- package/docs/02-CORE-GUIDES/parsers/modules/02-core-guides-parsers-05-parquet-parser.md +603 -603
- package/docs/02-CORE-GUIDES/parsers/modules/02-core-guides-parsers-06-integration-patterns.md +702 -702
- package/docs/02-CORE-GUIDES/parsers/modules/02-core-guides-parsers-06-streaming.md +121 -121
- package/docs/02-CORE-GUIDES/parsers/modules/02-core-guides-parsers-07-api-reference.md +89 -89
- package/docs/02-CORE-GUIDES/parsers/modules/02-core-guides-parsers-07-troubleshooting.md +727 -727
- package/docs/02-CORE-GUIDES/parsers/parsers-quick-reference.md +482 -482
- package/docs/02-CORE-GUIDES/parsers/parsers-readme.md +258 -258
- package/docs/02-CORE-GUIDES/parsers/readme.md +65 -65
- package/docs/02-CORE-GUIDES/readme.md +194 -194
- package/docs/02-CORE-GUIDES/webhook-validation/examples/basic-validation.ts +108 -108
- package/docs/02-CORE-GUIDES/webhook-validation/examples/common-patterns.ts +316 -316
- package/docs/02-CORE-GUIDES/webhook-validation/examples/webhook-validation-readme.md +61 -61
- package/docs/02-CORE-GUIDES/webhook-validation/modules/webhook-validation-01-foundations.md +440 -440
- package/docs/02-CORE-GUIDES/webhook-validation/modules/webhook-validation-02-quick-start.md +525 -525
- package/docs/02-CORE-GUIDES/webhook-validation/modules/webhook-validation-03-versori-integration.md +741 -741
- package/docs/02-CORE-GUIDES/webhook-validation/modules/webhook-validation-04-platform-integration.md +629 -629
- package/docs/02-CORE-GUIDES/webhook-validation/modules/webhook-validation-05-configuration.md +535 -535
- package/docs/02-CORE-GUIDES/webhook-validation/modules/webhook-validation-06-error-handling.md +611 -611
- package/docs/02-CORE-GUIDES/webhook-validation/modules/webhook-validation-06-troubleshooting.md +124 -124
- package/docs/02-CORE-GUIDES/webhook-validation/modules/webhook-validation-07-api-reference.md +511 -511
- package/docs/02-CORE-GUIDES/webhook-validation/modules/webhook-validation-08-rubix-webhooks.md +590 -590
- package/docs/02-CORE-GUIDES/webhook-validation/modules/webhook-validation-09-rubix-event-vs-http-call.md +432 -432
- package/docs/02-CORE-GUIDES/webhook-validation/readme.md +239 -239
- package/docs/02-CORE-GUIDES/webhook-validation/webhook-validation-quick-reference.md +392 -392
- package/docs/03-PATTERN-GUIDES/connector-scenarios/connector-scenarios-quick-reference.md +498 -498
- package/docs/03-PATTERN-GUIDES/connector-scenarios/connector-scenarios-readme.md +313 -313
- package/docs/03-PATTERN-GUIDES/connector-scenarios/examples/common-patterns.ts +612 -612
- package/docs/03-PATTERN-GUIDES/connector-scenarios/examples/connector-scenarios-readme.md +253 -253
- package/docs/03-PATTERN-GUIDES/connector-scenarios/modules/connector-scenarios-01-foundations.md +452 -452
- package/docs/03-PATTERN-GUIDES/connector-scenarios/modules/connector-scenarios-02-simple-scenarios.md +681 -681
- package/docs/03-PATTERN-GUIDES/connector-scenarios/modules/connector-scenarios-03-intermediate-scenarios.md +637 -637
- package/docs/03-PATTERN-GUIDES/connector-scenarios/modules/connector-scenarios-04-advanced-scenarios.md +650 -650
- package/docs/03-PATTERN-GUIDES/connector-scenarios/modules/connector-scenarios-05-bidirectional-sync.md +233 -233
- package/docs/03-PATTERN-GUIDES/connector-scenarios/modules/connector-scenarios-06-production-patterns.md +442 -442
- package/docs/03-PATTERN-GUIDES/connector-scenarios/modules/connector-scenarios-07-reference.md +445 -445
- package/docs/03-PATTERN-GUIDES/connector-scenarios/readme.md +31 -31
- package/docs/03-PATTERN-GUIDES/enterprise-integration-patterns.md +1528 -1528
- package/docs/03-PATTERN-GUIDES/error-handling/comprehensive-error-handling-guide.md +1437 -1437
- package/docs/03-PATTERN-GUIDES/error-handling/error-handling-quick-reference.md +390 -390
- package/docs/03-PATTERN-GUIDES/error-handling/examples/common-patterns.ts +438 -438
- package/docs/03-PATTERN-GUIDES/error-handling/modules/error-handling-01-foundations.md +362 -362
- package/docs/03-PATTERN-GUIDES/error-handling/modules/error-handling-02-error-types.md +850 -850
- package/docs/03-PATTERN-GUIDES/error-handling/modules/error-handling-03-utf8-handling.md +456 -456
- package/docs/03-PATTERN-GUIDES/error-handling/modules/error-handling-04-error-scenarios.md +658 -658
- package/docs/03-PATTERN-GUIDES/error-handling/modules/error-handling-05-calling-patterns.md +671 -671
- package/docs/03-PATTERN-GUIDES/error-handling/modules/error-handling-06-retry-strategies.md +1034 -1034
- package/docs/03-PATTERN-GUIDES/error-handling/modules/error-handling-07-monitoring.md +653 -653
- package/docs/03-PATTERN-GUIDES/error-handling/modules/error-handling-08-api-reference.md +847 -847
- package/docs/03-PATTERN-GUIDES/error-handling/readme.md +36 -36
- package/docs/03-PATTERN-GUIDES/examples/__tests__/readme.md +40 -40
- package/docs/03-PATTERN-GUIDES/examples/__tests__/resolver-examples.test.js +282 -282
- package/docs/03-PATTERN-GUIDES/examples/test-data/03-pattern-guides-readme.md +110 -110
- package/docs/03-PATTERN-GUIDES/examples/test-data/canonical-inventory.json +123 -123
- package/docs/03-PATTERN-GUIDES/examples/test-data/canonical-order.json +171 -171
- package/docs/03-PATTERN-GUIDES/examples/test-data/readme.md +28 -28
- package/docs/03-PATTERN-GUIDES/extraction/extraction-readme.md +15 -15
- package/docs/03-PATTERN-GUIDES/extraction/readme.md +25 -25
- package/docs/03-PATTERN-GUIDES/file-operations/examples/common-patterns.ts +407 -407
- package/docs/03-PATTERN-GUIDES/file-operations/examples/file-operations-readme.md +142 -142
- package/docs/03-PATTERN-GUIDES/file-operations/file-operations-quick-reference.md +462 -462
- package/docs/03-PATTERN-GUIDES/file-operations/file-operations-readme.md +379 -379
- package/docs/03-PATTERN-GUIDES/file-operations/modules/file-operations-01-foundations.md +430 -430
- package/docs/03-PATTERN-GUIDES/file-operations/modules/file-operations-02-quick-start.md +484 -484
- package/docs/03-PATTERN-GUIDES/file-operations/modules/file-operations-03-s3-operations.md +507 -507
- package/docs/03-PATTERN-GUIDES/file-operations/modules/file-operations-04-sftp-operations.md +963 -963
- package/docs/03-PATTERN-GUIDES/file-operations/modules/file-operations-05-streaming-performance.md +503 -503
- package/docs/03-PATTERN-GUIDES/file-operations/modules/file-operations-06-archive-patterns.md +386 -386
- package/docs/03-PATTERN-GUIDES/file-operations/modules/file-operations-06-error-handling.md +117 -117
- package/docs/03-PATTERN-GUIDES/file-operations/modules/file-operations-07-api-reference.md +78 -78
- package/docs/03-PATTERN-GUIDES/file-operations/modules/file-operations-07-testing-troubleshooting.md +567 -567
- package/docs/03-PATTERN-GUIDES/file-operations/modules/file-operations-08-api-reference.md +1055 -1055
- package/docs/03-PATTERN-GUIDES/file-operations/readme.md +32 -32
- package/docs/03-PATTERN-GUIDES/ingestion/ingestion-readme.md +15 -15
- package/docs/03-PATTERN-GUIDES/ingestion/readme.md +25 -25
- package/docs/03-PATTERN-GUIDES/integration-patterns/examples/batch-processing.ts +130 -130
- package/docs/03-PATTERN-GUIDES/integration-patterns/examples/common-patterns.ts +360 -360
- package/docs/03-PATTERN-GUIDES/integration-patterns/examples/delta-sync.ts +130 -130
- package/docs/03-PATTERN-GUIDES/integration-patterns/examples/integration-patterns-readme.md +100 -100
- package/docs/03-PATTERN-GUIDES/integration-patterns/examples/real-time-webhook.ts +398 -398
- package/docs/03-PATTERN-GUIDES/integration-patterns/integration-patterns-quick-reference.md +962 -962
- package/docs/03-PATTERN-GUIDES/integration-patterns/integration-patterns-readme.md +134 -134
- package/docs/03-PATTERN-GUIDES/integration-patterns/modules/integration-patterns-01-real-time-processing.md +991 -991
- package/docs/03-PATTERN-GUIDES/integration-patterns/modules/integration-patterns-02-batch-processing.md +1547 -1547
- package/docs/03-PATTERN-GUIDES/integration-patterns/modules/integration-patterns-03-delta-sync.md +1108 -1108
- package/docs/03-PATTERN-GUIDES/integration-patterns/modules/integration-patterns-04-webhook-patterns.md +1181 -1181
- package/docs/03-PATTERN-GUIDES/integration-patterns/modules/integration-patterns-05-error-handling.md +1061 -1061
- package/docs/03-PATTERN-GUIDES/integration-patterns/modules/integration-patterns-06-advanced-integration-services.md +1547 -1547
- package/docs/03-PATTERN-GUIDES/integration-patterns/modules/integration-patterns-06-performance.md +109 -109
- package/docs/03-PATTERN-GUIDES/integration-patterns/modules/integration-patterns-07-api-reference.md +34 -34
- package/docs/03-PATTERN-GUIDES/integration-patterns/readme.md +30 -30
- package/docs/03-PATTERN-GUIDES/logging-minimal-mode.md +128 -128
- package/docs/03-PATTERN-GUIDES/multiple-connections/examples/common-patterns.ts +380 -380
- package/docs/03-PATTERN-GUIDES/multiple-connections/examples/multiple-connections-readme.md +139 -139
- package/docs/03-PATTERN-GUIDES/multiple-connections/examples/parallel-root-connections.ts +149 -149
- package/docs/03-PATTERN-GUIDES/multiple-connections/examples/real-world-scenarios.ts +405 -405
- package/docs/03-PATTERN-GUIDES/multiple-connections/modules/multiple-connections-01-foundations.md +378 -378
- package/docs/03-PATTERN-GUIDES/multiple-connections/modules/multiple-connections-02-quick-start.md +566 -566
- package/docs/03-PATTERN-GUIDES/multiple-connections/modules/multiple-connections-03-targeting-connections.md +659 -659
- package/docs/03-PATTERN-GUIDES/multiple-connections/modules/multiple-connections-04-parallel-queries.md +656 -656
- package/docs/03-PATTERN-GUIDES/multiple-connections/modules/multiple-connections-05-best-practices.md +624 -624
- package/docs/03-PATTERN-GUIDES/multiple-connections/modules/multiple-connections-06-api-reference.md +824 -824
- package/docs/03-PATTERN-GUIDES/multiple-connections/modules/multiple-connections-06-versori.md +119 -119
- package/docs/03-PATTERN-GUIDES/multiple-connections/modules/multiple-connections-07-api-reference.md +87 -87
- package/docs/03-PATTERN-GUIDES/multiple-connections/multiple-connections-quick-reference.md +353 -353
- package/docs/03-PATTERN-GUIDES/multiple-connections/multiple-connections-readme.md +270 -270
- package/docs/03-PATTERN-GUIDES/multiple-connections/readme.md +30 -30
- package/docs/03-PATTERN-GUIDES/pagination/pagination-readme.md +14 -14
- package/docs/03-PATTERN-GUIDES/pagination/readme.md +24 -24
- package/docs/03-PATTERN-GUIDES/parquet/examples/common-patterns.ts +180 -180
- package/docs/03-PATTERN-GUIDES/parquet/examples/read-parquet.ts +48 -48
- package/docs/03-PATTERN-GUIDES/parquet/examples/write-parquet.ts +65 -65
- package/docs/03-PATTERN-GUIDES/parquet/modules/03-pattern-guides-parquet-01-introduction.md +393 -393
- package/docs/03-PATTERN-GUIDES/parquet/modules/03-pattern-guides-parquet-02-quick-start.md +572 -572
- package/docs/03-PATTERN-GUIDES/parquet/modules/03-pattern-guides-parquet-03-reading-parquet.md +525 -525
- package/docs/03-PATTERN-GUIDES/parquet/modules/03-pattern-guides-parquet-04-writing-parquet.md +554 -554
- package/docs/03-PATTERN-GUIDES/parquet/modules/03-pattern-guides-parquet-05-graphql-extraction.md +405 -405
- package/docs/03-PATTERN-GUIDES/parquet/modules/03-pattern-guides-parquet-06-performance.md +104 -104
- package/docs/03-PATTERN-GUIDES/parquet/modules/03-pattern-guides-parquet-06-s3-integration.md +511 -511
- package/docs/03-PATTERN-GUIDES/parquet/modules/03-pattern-guides-parquet-07-api-reference.md +90 -90
- package/docs/03-PATTERN-GUIDES/parquet/modules/03-pattern-guides-parquet-07-performance-optimization.md +525 -525
- package/docs/03-PATTERN-GUIDES/parquet/modules/03-pattern-guides-parquet-08-best-practices.md +712 -712
- package/docs/03-PATTERN-GUIDES/parquet/parquet-quick-reference.md +683 -683
- package/docs/03-PATTERN-GUIDES/parquet/parquet-readme.md +248 -248
- package/docs/03-PATTERN-GUIDES/parquet/readme.md +32 -32
- package/docs/03-PATTERN-GUIDES/parsers/parsers-readme.md +12 -12
- package/docs/03-PATTERN-GUIDES/parsers/readme.md +24 -24
- package/docs/03-PATTERN-GUIDES/readme.md +159 -159
- package/docs/03-PATTERN-GUIDES/webhooks/readme.md +24 -24
- package/docs/03-PATTERN-GUIDES/webhooks/webhooks-readme.md +8 -8
- package/docs/04-REFERENCE/architecture/architecture-01-overview.md +427 -427
- package/docs/04-REFERENCE/architecture/architecture-02-client-architecture.md +424 -424
- package/docs/04-REFERENCE/architecture/architecture-03-data-flow.md +690 -690
- package/docs/04-REFERENCE/architecture/architecture-04-service-layer.md +834 -834
- package/docs/04-REFERENCE/architecture/architecture-05-integration-architecture.md +655 -655
- package/docs/04-REFERENCE/architecture/architecture-06-state-management.md +653 -653
- package/docs/04-REFERENCE/architecture/architecture-adding-new-data-sources.md +686 -686
- package/docs/04-REFERENCE/architecture/readme.md +279 -279
- package/docs/04-REFERENCE/platforms/deno/readme.md +117 -117
- package/docs/04-REFERENCE/platforms/nodejs/readme.md +146 -146
- package/docs/04-REFERENCE/platforms/readme.md +135 -135
- package/docs/04-REFERENCE/platforms/versori/modules/platforms-versori-01-introduction.md +398 -398
- package/docs/04-REFERENCE/platforms/versori/modules/platforms-versori-02-quick-start.md +560 -560
- package/docs/04-REFERENCE/platforms/versori/modules/platforms-versori-03-authentication.md +757 -757
- package/docs/04-REFERENCE/platforms/versori/modules/platforms-versori-04-workflows.md +2476 -2476
- package/docs/04-REFERENCE/platforms/versori/modules/platforms-versori-05-connections.md +1167 -1167
- package/docs/04-REFERENCE/platforms/versori/modules/platforms-versori-06-kv-storage.md +990 -990
- package/docs/04-REFERENCE/platforms/versori/modules/platforms-versori-06-state-management.md +121 -121
- package/docs/04-REFERENCE/platforms/versori/modules/platforms-versori-07-api-reference.md +68 -68
- package/docs/04-REFERENCE/platforms/versori/modules/platforms-versori-07-deployment.md +731 -731
- package/docs/04-REFERENCE/platforms/versori/modules/platforms-versori-08-best-practices.md +1111 -1111
- package/docs/04-REFERENCE/platforms/versori/modules/platforms-versori-09-signature-reference.md +766 -766
- package/docs/04-REFERENCE/platforms/versori/platforms-versori-readme.md +299 -299
- package/docs/04-REFERENCE/platforms/versori/platforms-versori-s3-sftp-configuration-guide.md +1425 -1425
- package/docs/04-REFERENCE/platforms/versori/platforms-versori-webhook-api-key-security.md +816 -816
- package/docs/04-REFERENCE/platforms/versori/platforms-versori-webhook-connection-security.md +681 -681
- package/docs/04-REFERENCE/platforms/versori/platforms-versori-workflow-task-types.md +708 -708
- package/docs/04-REFERENCE/platforms/versori/readme.md +108 -108
- package/docs/04-REFERENCE/readme.md +148 -148
- package/docs/04-REFERENCE/resolver-signature/examples/advanced-resolvers.ts +482 -482
- package/docs/04-REFERENCE/resolver-signature/examples/async-resolvers.ts +496 -496
- package/docs/04-REFERENCE/resolver-signature/examples/basic-resolvers.ts +343 -343
- package/docs/04-REFERENCE/resolver-signature/examples/resolver-signature-readme.md +188 -188
- package/docs/04-REFERENCE/resolver-signature/examples/testing-resolvers.ts +463 -463
- package/docs/04-REFERENCE/resolver-signature/modules/resolver-signature-01-foundations.md +286 -286
- package/docs/04-REFERENCE/resolver-signature/modules/resolver-signature-02-parameter-reference.md +643 -643
- package/docs/04-REFERENCE/resolver-signature/modules/resolver-signature-03-basic-examples.md +521 -521
- package/docs/04-REFERENCE/resolver-signature/modules/resolver-signature-04-advanced-patterns.md +739 -739
- package/docs/04-REFERENCE/resolver-signature/modules/resolver-signature-05-sdk-resolvers.md +531 -531
- package/docs/04-REFERENCE/resolver-signature/modules/resolver-signature-06-migration-guide.md +650 -650
- package/docs/04-REFERENCE/resolver-signature/modules/resolver-signature-06-testing.md +125 -125
- package/docs/04-REFERENCE/resolver-signature/modules/resolver-signature-07-api-reference.md +794 -794
- package/docs/04-REFERENCE/resolver-signature/readme.md +64 -64
- package/docs/04-REFERENCE/resolver-signature/resolver-signature-quick-reference.md +270 -270
- package/docs/04-REFERENCE/resolver-signature/resolver-signature-readme.md +351 -351
- package/docs/04-REFERENCE/schema/fluent-commerce-schema.json +764 -764
- package/docs/04-REFERENCE/schema/readme.md +141 -141
- package/docs/04-REFERENCE/testing/examples/04-reference-testing-readme.md +158 -158
- package/docs/04-REFERENCE/testing/examples/fluent-testing.ts +62 -62
- package/docs/04-REFERENCE/testing/examples/health-check.ts +155 -155
- package/docs/04-REFERENCE/testing/examples/integration-test.ts +119 -119
- package/docs/04-REFERENCE/testing/examples/performance-test.ts +183 -183
- package/docs/04-REFERENCE/testing/examples/s3-testing.ts +127 -127
- package/docs/04-REFERENCE/testing/modules/04-reference-testing-01-foundations.md +267 -267
- package/docs/04-REFERENCE/testing/modules/04-reference-testing-02-s3-testing.md +599 -599
- package/docs/04-REFERENCE/testing/modules/04-reference-testing-03-fluent-testing.md +589 -589
- package/docs/04-REFERENCE/testing/modules/04-reference-testing-04-integration-testing.md +699 -699
- package/docs/04-REFERENCE/testing/modules/04-reference-testing-05-debugging.md +478 -478
- package/docs/04-REFERENCE/testing/modules/04-reference-testing-06-cicd-integration.md +463 -463
- package/docs/04-REFERENCE/testing/modules/04-reference-testing-06-preflight-validation.md +131 -131
- package/docs/04-REFERENCE/testing/modules/04-reference-testing-07-best-practices.md +499 -499
- package/docs/04-REFERENCE/testing/modules/04-reference-testing-07-coverage-ci.md +165 -165
- package/docs/04-REFERENCE/testing/modules/04-reference-testing-08-api-reference.md +634 -634
- package/docs/04-REFERENCE/testing/readme.md +86 -86
- package/docs/04-REFERENCE/testing/testing-quick-reference.md +667 -667
- package/docs/04-REFERENCE/testing/testing-readme.md +286 -286
- package/docs/04-REFERENCE/troubleshooting/readme.md +144 -144
- package/docs/04-REFERENCE/troubleshooting/troubleshooting-deno-sftp-compatibility.md +392 -392
- package/docs/template-loading-matrix.md +242 -242
- package/package.json +5 -3
- package/docs/02-CORE-GUIDES/api-reference/cli-profile-integration.md +0 -377
|
@@ -1,239 +1,239 @@
|
|
|
1
|
-
# Webhook Validation Learning Path
|
|
2
|
-
|
|
3
|
-
**Secure Webhook Authentication for Fluent Commerce Rubix**
|
|
4
|
-
|
|
5
|
-
The FC Connect SDK provides cryptographic webhook validation to ensure webhooks from Fluent Commerce Rubix workflows are authentic, untampered, and trustworthy. Whether you're building Versori connectors, Express.js APIs, or serverless functions, the SDK handles signature verification automatically.
|
|
6
|
-
|
|
7
|
-
## Quick Start
|
|
8
|
-
|
|
9
|
-
```typescript
|
|
10
|
-
import {
|
|
11
|
-
WebhookValidationService,
|
|
12
|
-
createConsoleLogger,
|
|
13
|
-
} from '@fluentcommerce/fc-connect-sdk';
|
|
14
|
-
|
|
15
|
-
// ✅ Simple: Use console logger directly
|
|
16
|
-
const logger = createConsoleLogger();
|
|
17
|
-
|
|
18
|
-
// ✅ Versori: Pass Versori log directly (no wrapper needed)
|
|
19
|
-
// const logger = ctx.log;
|
|
20
|
-
|
|
21
|
-
const validator = new WebhookValidationService(
|
|
22
|
-
{
|
|
23
|
-
strictValidation: true,
|
|
24
|
-
},
|
|
25
|
-
logger
|
|
26
|
-
);
|
|
27
|
-
|
|
28
|
-
const result = await validator.validateWebhook(
|
|
29
|
-
rawBody, // Raw request body as string
|
|
30
|
-
headers, // Request headers object
|
|
31
|
-
publicKey // Public key from Fluent Commerce
|
|
32
|
-
);
|
|
33
|
-
|
|
34
|
-
if (!result.isValid) {
|
|
35
|
-
console.error('Invalid webhook:', result.error);
|
|
36
|
-
// Reject the webhook
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
// Process valid webhook
|
|
40
|
-
console.log('Valid webhook using:', result.algorithm);
|
|
41
|
-
```
|
|
42
|
-
|
|
43
|
-
**That's it.** The SDK auto-detects signature type, verifies authenticity, and returns validation results.
|
|
44
|
-
|
|
45
|
-
---
|
|
46
|
-
|
|
47
|
-
## What You'll Learn
|
|
48
|
-
|
|
49
|
-
This guide teaches you how to validate webhooks from Fluent Commerce Rubix workflows using cryptographic signatures. By the end, you'll understand:
|
|
50
|
-
|
|
51
|
-
- How webhook signature validation works (SHA512, MD5 algorithms)
|
|
52
|
-
- Auto-detection patterns for signature headers
|
|
53
|
-
- Versori platform integration patterns
|
|
54
|
-
- Express.js and Node.js webhook endpoints
|
|
55
|
-
- Configuration options and factory methods
|
|
56
|
-
- Error handling and troubleshooting
|
|
57
|
-
- Security best practices for webhook validation
|
|
58
|
-
|
|
59
|
-
## Learning Path Overview
|
|
60
|
-
|
|
61
|
-
This guide is organized into **9 progressive modules**. Follow them in order for the best learning experience:
|
|
62
|
-
|
|
63
|
-
| Module | Topic | Level | Estimated Time |
|
|
64
|
-
| ------------------------------------------------ | -------------------------------------------------------------------------- | ------------ | -------------- |
|
|
65
|
-
| [Module 1](./modules/webhook-validation-01-foundations.md) | **Foundations** - How webhook validation works, algorithms, security model | Beginner | 20 minutes |
|
|
66
|
-
| [Module 2](./modules/webhook-validation-02-quick-start.md) | **Quick Start** - Basic usage, auto-detection, first validation | Beginner | 15 minutes |
|
|
67
|
-
| [Module 3](./modules/webhook-validation-03-versori-integration.md) | **Versori Integration** - Versori webhook patterns, connection-based auth | Intermediate | 25 minutes |
|
|
68
|
-
| [Module 4](./modules/webhook-validation-04-platform-integration.md) | **Platform Integration** - Express.js, serverless, other frameworks | Intermediate | 30 minutes |
|
|
69
|
-
| [Module 5](./modules/webhook-validation-05-configuration.md) | **Configuration** - All options, factory methods, custom configs | Intermediate | 20 minutes |
|
|
70
|
-
| [Module 6](./modules/webhook-validation-06-error-handling.md) | **Error Handling** - Validation results, common errors, debugging | Intermediate | 25 minutes |
|
|
71
|
-
| [Module 7](./modules/webhook-validation-07-api-reference.md) | **API Reference** - Complete interfaces, TypeScript types, FAQ | Reference | As needed |
|
|
72
|
-
| [Module 8](./modules/webhook-validation-08-rubix-webhooks.md) | **Rubix Webhooks** - Rubix HTTP Call webhook validation patterns | Intermediate | 20 minutes |
|
|
73
|
-
| [Module 9](./modules/webhook-validation-09-rubix-event-vs-http-call.md) | **Event vs HTTP Call** - Distinguish webhook types, choose validation method | Intermediate | 15 minutes |
|
|
74
|
-
|
|
75
|
-
**Total learning time:** ~3.2 hours for complete mastery
|
|
76
|
-
|
|
77
|
-
---
|
|
78
|
-
|
|
79
|
-
## Quick Navigation
|
|
80
|
-
|
|
81
|
-
### By Use Case
|
|
82
|
-
|
|
83
|
-
- **First time validating webhooks?** → Start with [Module 1: Foundations](./modules/webhook-validation-01-foundations.md)
|
|
84
|
-
- **Need working code now?** → Jump to [Module 2: Quick Start](./modules/webhook-validation-02-quick-start.md)
|
|
85
|
-
- **Building Versori connector?** → See [Module 3: Versori Integration](./modules/webhook-validation-03-versori-integration.md)
|
|
86
|
-
- **Validating Rubix webhooks?** → Check [Module 9: Event vs HTTP Call](./modules/webhook-validation-09-rubix-event-vs-http-call.md) first!
|
|
87
|
-
- **Validating Rubix HTTP Call webhooks?** → Check [Module 8: Rubix Webhooks](./modules/webhook-validation-08-rubix-webhooks.md)
|
|
88
|
-
- **Using Express.js?** → Check [Module 4: Platform Integration](./modules/webhook-validation-04-platform-integration.md)
|
|
89
|
-
- **Validation failing?** → Review [Module 6: Error Handling](./modules/webhook-validation-06-error-handling.md)
|
|
90
|
-
- **Need specific config?** → Browse [Module 7: API Reference](./modules/webhook-validation-07-api-reference.md)
|
|
91
|
-
|
|
92
|
-
### By Platform
|
|
93
|
-
|
|
94
|
-
| Platform | Complexity | Recommended Module | Example |
|
|
95
|
-
| --------------- | ---------- | ------------------------------------------------ | ----------------------------------------------------- |
|
|
96
|
-
| **Versori** | Low | [Module 3](./modules/webhook-validation-03-versori-integration.md) | [Common Patterns](./examples/common-patterns.ts) |
|
|
97
|
-
| **Express.js** | Medium | [Module 4](./modules/webhook-validation-04-platform-integration.md) | [Common Patterns](./examples/common-patterns.ts) |
|
|
98
|
-
| **Next.js API** | Medium | [Module 4](./modules/webhook-validation-04-platform-integration.md) | [Common Patterns](./examples/common-patterns.ts) |
|
|
99
|
-
| **AWS Lambda** | Medium | [Module 4](./modules/webhook-validation-04-platform-integration.md) | [Common Patterns](./examples/common-patterns.ts) |
|
|
100
|
-
| **Standalone** | Low | [Module 2](./modules/webhook-validation-02-quick-start.md) | [basic-validation.ts](./examples/common-patterns.ts) |
|
|
101
|
-
|
|
102
|
-
---
|
|
103
|
-
|
|
104
|
-
## Quick Reference
|
|
105
|
-
|
|
106
|
-
For quick lookups, see:
|
|
107
|
-
|
|
108
|
-
- [Quick Reference Cheat Sheet](../advanced-services/advanced-services-quick-reference.md) - All patterns on one page
|
|
109
|
-
- [Common Patterns](./examples/common-patterns.ts) - Copy-paste ready snippets
|
|
110
|
-
- [Troubleshooting](./modules/webhook-validation-06-error-handling.md#common-errors) - Error messages and fixes
|
|
111
|
-
|
|
112
|
-
---
|
|
113
|
-
|
|
114
|
-
## Prerequisites
|
|
115
|
-
|
|
116
|
-
Before starting this guide, you should:
|
|
117
|
-
|
|
118
|
-
1. Have the SDK installed: `npm install @fluentcommerce/fc-connect-sdk@latest # v0.1.27+`
|
|
119
|
-
2. Have Fluent Commerce public key for webhook validation
|
|
120
|
-
3. Understand basic webhook concepts (HTTP requests, headers, signatures)
|
|
121
|
-
4. (Optional) Familiarity with cryptographic signatures (RSA, SHA, MD5)
|
|
122
|
-
|
|
123
|
-
**New to the SDK?** Start with the [Getting Started Guide](../../00-START-HERE/getting-started.md) first.
|
|
124
|
-
|
|
125
|
-
---
|
|
126
|
-
|
|
127
|
-
## Key Concepts at a Glance
|
|
128
|
-
|
|
129
|
-
### Before: Manual Signature Verification
|
|
130
|
-
|
|
131
|
-
```typescript
|
|
132
|
-
// Complex crypto operations, header parsing, algorithm selection
|
|
133
|
-
const crypto = require('crypto');
|
|
134
|
-
const signature = headers['fluent-signature'] || headers['flex.signature'];
|
|
135
|
-
const verify = crypto.createVerify('SHA512withRSA');
|
|
136
|
-
verify.update(rawBody);
|
|
137
|
-
const isValid = verify.verify(publicKey, signature, 'base64');
|
|
138
|
-
```
|
|
139
|
-
|
|
140
|
-
### After: SDK Auto-Detection
|
|
141
|
-
|
|
142
|
-
```typescript
|
|
143
|
-
// SDK handles everything automatically
|
|
144
|
-
const result = await validator.validateWebhook(rawBody, headers, publicKey);
|
|
145
|
-
if (!result.isValid) throw new Error('Invalid webhook');
|
|
146
|
-
```
|
|
147
|
-
|
|
148
|
-
---
|
|
149
|
-
|
|
150
|
-
## Why Validate Webhooks?
|
|
151
|
-
|
|
152
|
-
Webhook validation ensures:
|
|
153
|
-
|
|
154
|
-
- **Authenticity**: Webhook is genuinely from Fluent Commerce
|
|
155
|
-
- **Integrity**: Payload hasn't been tampered with in transit
|
|
156
|
-
- **Security**: Signature validation (replay protection requires additional timestamp validation) and malicious requests
|
|
157
|
-
- **Trust**: Only process verified, trusted webhook data
|
|
158
|
-
|
|
159
|
-
**Without validation**, your system could process:
|
|
160
|
-
|
|
161
|
-
- Malicious payloads disguised as Fluent webhooks
|
|
162
|
-
- Modified data from man-in-the-middle attacks
|
|
163
|
-
- Replay attacks with stale webhook data
|
|
164
|
-
- Unauthorized requests from bad actors
|
|
165
|
-
|
|
166
|
-
---
|
|
167
|
-
|
|
168
|
-
## Webhook Validation Scope
|
|
169
|
-
|
|
170
|
-
The SDK's `validateWebhook()` method is designed for **Fluent Commerce Rubix workflows** but technically works with **any system that implements RSA signature verification** with compatible algorithms (SHA512withRSA or MD5withRSA).
|
|
171
|
-
|
|
172
|
-
**Key Requirement:** You must have access to the **public key** that matches the private key used to sign the webhook.
|
|
173
|
-
|
|
174
|
-
**Common Use Cases:**
|
|
175
|
-
- ✅ Fluent Commerce Rubix workflows (primary use case)
|
|
176
|
-
- ✅ Any system using RSA signatures with SHA512 or MD5
|
|
177
|
-
- ❌ Third-party webhooks using HMAC (Shopify, GitHub, Stripe) - requires manual validation
|
|
178
|
-
|
|
179
|
-
---
|
|
180
|
-
|
|
181
|
-
## Supported Signature Algorithms
|
|
182
|
-
|
|
183
|
-
The SDK supports both Fluent Commerce signature standards:
|
|
184
|
-
|
|
185
|
-
| Algorithm | Header | Use Case |
|
|
186
|
-
| ----------------- | ------------------ | ---------------------------------------------- |
|
|
187
|
-
| **SHA512withRSA** | `fluent-signature` | Rubix workflows (default) |
|
|
188
|
-
| **MD5withRSA** | `flex.signature` | Flex workflows |
|
|
189
|
-
|
|
190
|
-
**Auto-detection**: The SDK automatically selects the correct algorithm based on which header is present.
|
|
191
|
-
|
|
192
|
-
---
|
|
193
|
-
|
|
194
|
-
## Best Practices
|
|
195
|
-
|
|
196
|
-
1. **Always validate** before processing webhook data (Module 1)
|
|
197
|
-
2. **Use auto-detection** - let SDK choose algorithm (Module 2)
|
|
198
|
-
3. **Enable strict validation** in production (Module 5)
|
|
199
|
-
4. **Store public keys securely** in environment variables (Module 1)
|
|
200
|
-
5. **Log validation failures** for security monitoring (Module 6)
|
|
201
|
-
6. **Return 401** for invalid signatures (Module 4)
|
|
202
|
-
7. **Use raw request body** - never parse before validation (Module 2)
|
|
203
|
-
|
|
204
|
-
---
|
|
205
|
-
|
|
206
|
-
## Security Notes
|
|
207
|
-
|
|
208
|
-
- This service validates webhooks from **Fluent Commerce Rubix workflows only**
|
|
209
|
-
- Public keys are environment-specific (production, sandbox, UAT)
|
|
210
|
-
- Always use HTTPS for webhook endpoints in production
|
|
211
|
-
- Never log or expose raw signature values
|
|
212
|
-
- Rotate public keys periodically per security policy
|
|
213
|
-
- Monitor validation failures for potential attacks
|
|
214
|
-
|
|
215
|
-
---
|
|
216
|
-
|
|
217
|
-
## Getting Help
|
|
218
|
-
|
|
219
|
-
- **Quick answers:** [Quick Reference](../advanced-services/advanced-services-quick-reference.md)
|
|
220
|
-
- **Troubleshooting:** [Module 6: Error Handling](./modules/webhook-validation-06-error-handling.md)
|
|
221
|
-
- **Examples:** [`examples/`](./examples/)
|
|
222
|
-
- **API Reference:** [Module 7](./modules/webhook-validation-07-api-reference.md)
|
|
223
|
-
|
|
224
|
-
---
|
|
225
|
-
|
|
226
|
-
## Next Steps
|
|
227
|
-
|
|
228
|
-
**New to webhook validation?** Start with [Module 1: Foundations](./modules/webhook-validation-01-foundations.md)
|
|
229
|
-
|
|
230
|
-
**Already familiar?** Jump to specific topics:
|
|
231
|
-
|
|
232
|
-
- [Versori Integration](./modules/webhook-validation-03-versori-integration.md)
|
|
233
|
-
- [Platform Integration](./modules/webhook-validation-04-platform-integration.md)
|
|
234
|
-
- [Error Handling](./modules/webhook-validation-06-error-handling.md)
|
|
235
|
-
- [API Reference](./modules/webhook-validation-07-api-reference.md)
|
|
236
|
-
|
|
237
|
-
---
|
|
238
|
-
|
|
239
|
-
**Remember:** Webhook validation is **essential for security**. Never process unvalidated webhooks in production.
|
|
1
|
+
# Webhook Validation Learning Path
|
|
2
|
+
|
|
3
|
+
**Secure Webhook Authentication for Fluent Commerce Rubix**
|
|
4
|
+
|
|
5
|
+
The FC Connect SDK provides cryptographic webhook validation to ensure webhooks from Fluent Commerce Rubix workflows are authentic, untampered, and trustworthy. Whether you're building Versori connectors, Express.js APIs, or serverless functions, the SDK handles signature verification automatically.
|
|
6
|
+
|
|
7
|
+
## Quick Start
|
|
8
|
+
|
|
9
|
+
```typescript
|
|
10
|
+
import {
|
|
11
|
+
WebhookValidationService,
|
|
12
|
+
createConsoleLogger,
|
|
13
|
+
} from '@fluentcommerce/fc-connect-sdk';
|
|
14
|
+
|
|
15
|
+
// ✅ Simple: Use console logger directly
|
|
16
|
+
const logger = createConsoleLogger();
|
|
17
|
+
|
|
18
|
+
// ✅ Versori: Pass Versori log directly (no wrapper needed)
|
|
19
|
+
// const logger = ctx.log;
|
|
20
|
+
|
|
21
|
+
const validator = new WebhookValidationService(
|
|
22
|
+
{
|
|
23
|
+
strictValidation: true,
|
|
24
|
+
},
|
|
25
|
+
logger
|
|
26
|
+
);
|
|
27
|
+
|
|
28
|
+
const result = await validator.validateWebhook(
|
|
29
|
+
rawBody, // Raw request body as string
|
|
30
|
+
headers, // Request headers object
|
|
31
|
+
publicKey // Public key from Fluent Commerce
|
|
32
|
+
);
|
|
33
|
+
|
|
34
|
+
if (!result.isValid) {
|
|
35
|
+
console.error('Invalid webhook:', result.error);
|
|
36
|
+
// Reject the webhook
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
// Process valid webhook
|
|
40
|
+
console.log('Valid webhook using:', result.algorithm);
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
**That's it.** The SDK auto-detects signature type, verifies authenticity, and returns validation results.
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
## What You'll Learn
|
|
48
|
+
|
|
49
|
+
This guide teaches you how to validate webhooks from Fluent Commerce Rubix workflows using cryptographic signatures. By the end, you'll understand:
|
|
50
|
+
|
|
51
|
+
- How webhook signature validation works (SHA512, MD5 algorithms)
|
|
52
|
+
- Auto-detection patterns for signature headers
|
|
53
|
+
- Versori platform integration patterns
|
|
54
|
+
- Express.js and Node.js webhook endpoints
|
|
55
|
+
- Configuration options and factory methods
|
|
56
|
+
- Error handling and troubleshooting
|
|
57
|
+
- Security best practices for webhook validation
|
|
58
|
+
|
|
59
|
+
## Learning Path Overview
|
|
60
|
+
|
|
61
|
+
This guide is organized into **9 progressive modules**. Follow them in order for the best learning experience:
|
|
62
|
+
|
|
63
|
+
| Module | Topic | Level | Estimated Time |
|
|
64
|
+
| ------------------------------------------------ | -------------------------------------------------------------------------- | ------------ | -------------- |
|
|
65
|
+
| [Module 1](./modules/webhook-validation-01-foundations.md) | **Foundations** - How webhook validation works, algorithms, security model | Beginner | 20 minutes |
|
|
66
|
+
| [Module 2](./modules/webhook-validation-02-quick-start.md) | **Quick Start** - Basic usage, auto-detection, first validation | Beginner | 15 minutes |
|
|
67
|
+
| [Module 3](./modules/webhook-validation-03-versori-integration.md) | **Versori Integration** - Versori webhook patterns, connection-based auth | Intermediate | 25 minutes |
|
|
68
|
+
| [Module 4](./modules/webhook-validation-04-platform-integration.md) | **Platform Integration** - Express.js, serverless, other frameworks | Intermediate | 30 minutes |
|
|
69
|
+
| [Module 5](./modules/webhook-validation-05-configuration.md) | **Configuration** - All options, factory methods, custom configs | Intermediate | 20 minutes |
|
|
70
|
+
| [Module 6](./modules/webhook-validation-06-error-handling.md) | **Error Handling** - Validation results, common errors, debugging | Intermediate | 25 minutes |
|
|
71
|
+
| [Module 7](./modules/webhook-validation-07-api-reference.md) | **API Reference** - Complete interfaces, TypeScript types, FAQ | Reference | As needed |
|
|
72
|
+
| [Module 8](./modules/webhook-validation-08-rubix-webhooks.md) | **Rubix Webhooks** - Rubix HTTP Call webhook validation patterns | Intermediate | 20 minutes |
|
|
73
|
+
| [Module 9](./modules/webhook-validation-09-rubix-event-vs-http-call.md) | **Event vs HTTP Call** - Distinguish webhook types, choose validation method | Intermediate | 15 minutes |
|
|
74
|
+
|
|
75
|
+
**Total learning time:** ~3.2 hours for complete mastery
|
|
76
|
+
|
|
77
|
+
---
|
|
78
|
+
|
|
79
|
+
## Quick Navigation
|
|
80
|
+
|
|
81
|
+
### By Use Case
|
|
82
|
+
|
|
83
|
+
- **First time validating webhooks?** → Start with [Module 1: Foundations](./modules/webhook-validation-01-foundations.md)
|
|
84
|
+
- **Need working code now?** → Jump to [Module 2: Quick Start](./modules/webhook-validation-02-quick-start.md)
|
|
85
|
+
- **Building Versori connector?** → See [Module 3: Versori Integration](./modules/webhook-validation-03-versori-integration.md)
|
|
86
|
+
- **Validating Rubix webhooks?** → Check [Module 9: Event vs HTTP Call](./modules/webhook-validation-09-rubix-event-vs-http-call.md) first!
|
|
87
|
+
- **Validating Rubix HTTP Call webhooks?** → Check [Module 8: Rubix Webhooks](./modules/webhook-validation-08-rubix-webhooks.md)
|
|
88
|
+
- **Using Express.js?** → Check [Module 4: Platform Integration](./modules/webhook-validation-04-platform-integration.md)
|
|
89
|
+
- **Validation failing?** → Review [Module 6: Error Handling](./modules/webhook-validation-06-error-handling.md)
|
|
90
|
+
- **Need specific config?** → Browse [Module 7: API Reference](./modules/webhook-validation-07-api-reference.md)
|
|
91
|
+
|
|
92
|
+
### By Platform
|
|
93
|
+
|
|
94
|
+
| Platform | Complexity | Recommended Module | Example |
|
|
95
|
+
| --------------- | ---------- | ------------------------------------------------ | ----------------------------------------------------- |
|
|
96
|
+
| **Versori** | Low | [Module 3](./modules/webhook-validation-03-versori-integration.md) | [Common Patterns](./examples/common-patterns.ts) |
|
|
97
|
+
| **Express.js** | Medium | [Module 4](./modules/webhook-validation-04-platform-integration.md) | [Common Patterns](./examples/common-patterns.ts) |
|
|
98
|
+
| **Next.js API** | Medium | [Module 4](./modules/webhook-validation-04-platform-integration.md) | [Common Patterns](./examples/common-patterns.ts) |
|
|
99
|
+
| **AWS Lambda** | Medium | [Module 4](./modules/webhook-validation-04-platform-integration.md) | [Common Patterns](./examples/common-patterns.ts) |
|
|
100
|
+
| **Standalone** | Low | [Module 2](./modules/webhook-validation-02-quick-start.md) | [basic-validation.ts](./examples/common-patterns.ts) |
|
|
101
|
+
|
|
102
|
+
---
|
|
103
|
+
|
|
104
|
+
## Quick Reference
|
|
105
|
+
|
|
106
|
+
For quick lookups, see:
|
|
107
|
+
|
|
108
|
+
- [Quick Reference Cheat Sheet](../advanced-services/advanced-services-quick-reference.md) - All patterns on one page
|
|
109
|
+
- [Common Patterns](./examples/common-patterns.ts) - Copy-paste ready snippets
|
|
110
|
+
- [Troubleshooting](./modules/webhook-validation-06-error-handling.md#common-errors) - Error messages and fixes
|
|
111
|
+
|
|
112
|
+
---
|
|
113
|
+
|
|
114
|
+
## Prerequisites
|
|
115
|
+
|
|
116
|
+
Before starting this guide, you should:
|
|
117
|
+
|
|
118
|
+
1. Have the SDK installed: `npm install @fluentcommerce/fc-connect-sdk@latest # v0.1.27+`
|
|
119
|
+
2. Have Fluent Commerce public key for webhook validation
|
|
120
|
+
3. Understand basic webhook concepts (HTTP requests, headers, signatures)
|
|
121
|
+
4. (Optional) Familiarity with cryptographic signatures (RSA, SHA, MD5)
|
|
122
|
+
|
|
123
|
+
**New to the SDK?** Start with the [Getting Started Guide](../../00-START-HERE/getting-started.md) first.
|
|
124
|
+
|
|
125
|
+
---
|
|
126
|
+
|
|
127
|
+
## Key Concepts at a Glance
|
|
128
|
+
|
|
129
|
+
### Before: Manual Signature Verification
|
|
130
|
+
|
|
131
|
+
```typescript
|
|
132
|
+
// Complex crypto operations, header parsing, algorithm selection
|
|
133
|
+
const crypto = require('crypto');
|
|
134
|
+
const signature = headers['fluent-signature'] || headers['flex.signature'];
|
|
135
|
+
const verify = crypto.createVerify('SHA512withRSA');
|
|
136
|
+
verify.update(rawBody);
|
|
137
|
+
const isValid = verify.verify(publicKey, signature, 'base64');
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
### After: SDK Auto-Detection
|
|
141
|
+
|
|
142
|
+
```typescript
|
|
143
|
+
// SDK handles everything automatically
|
|
144
|
+
const result = await validator.validateWebhook(rawBody, headers, publicKey);
|
|
145
|
+
if (!result.isValid) throw new Error('Invalid webhook');
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
---
|
|
149
|
+
|
|
150
|
+
## Why Validate Webhooks?
|
|
151
|
+
|
|
152
|
+
Webhook validation ensures:
|
|
153
|
+
|
|
154
|
+
- **Authenticity**: Webhook is genuinely from Fluent Commerce
|
|
155
|
+
- **Integrity**: Payload hasn't been tampered with in transit
|
|
156
|
+
- **Security**: Signature validation (replay protection requires additional timestamp validation) and malicious requests
|
|
157
|
+
- **Trust**: Only process verified, trusted webhook data
|
|
158
|
+
|
|
159
|
+
**Without validation**, your system could process:
|
|
160
|
+
|
|
161
|
+
- Malicious payloads disguised as Fluent webhooks
|
|
162
|
+
- Modified data from man-in-the-middle attacks
|
|
163
|
+
- Replay attacks with stale webhook data
|
|
164
|
+
- Unauthorized requests from bad actors
|
|
165
|
+
|
|
166
|
+
---
|
|
167
|
+
|
|
168
|
+
## Webhook Validation Scope
|
|
169
|
+
|
|
170
|
+
The SDK's `validateWebhook()` method is designed for **Fluent Commerce Rubix workflows** but technically works with **any system that implements RSA signature verification** with compatible algorithms (SHA512withRSA or MD5withRSA).
|
|
171
|
+
|
|
172
|
+
**Key Requirement:** You must have access to the **public key** that matches the private key used to sign the webhook.
|
|
173
|
+
|
|
174
|
+
**Common Use Cases:**
|
|
175
|
+
- ✅ Fluent Commerce Rubix workflows (primary use case)
|
|
176
|
+
- ✅ Any system using RSA signatures with SHA512 or MD5
|
|
177
|
+
- ❌ Third-party webhooks using HMAC (Shopify, GitHub, Stripe) - requires manual validation
|
|
178
|
+
|
|
179
|
+
---
|
|
180
|
+
|
|
181
|
+
## Supported Signature Algorithms
|
|
182
|
+
|
|
183
|
+
The SDK supports both Fluent Commerce signature standards:
|
|
184
|
+
|
|
185
|
+
| Algorithm | Header | Use Case |
|
|
186
|
+
| ----------------- | ------------------ | ---------------------------------------------- |
|
|
187
|
+
| **SHA512withRSA** | `fluent-signature` | Rubix workflows (default) |
|
|
188
|
+
| **MD5withRSA** | `flex.signature` | Flex workflows |
|
|
189
|
+
|
|
190
|
+
**Auto-detection**: The SDK automatically selects the correct algorithm based on which header is present.
|
|
191
|
+
|
|
192
|
+
---
|
|
193
|
+
|
|
194
|
+
## Best Practices
|
|
195
|
+
|
|
196
|
+
1. **Always validate** before processing webhook data (Module 1)
|
|
197
|
+
2. **Use auto-detection** - let SDK choose algorithm (Module 2)
|
|
198
|
+
3. **Enable strict validation** in production (Module 5)
|
|
199
|
+
4. **Store public keys securely** in environment variables (Module 1)
|
|
200
|
+
5. **Log validation failures** for security monitoring (Module 6)
|
|
201
|
+
6. **Return 401** for invalid signatures (Module 4)
|
|
202
|
+
7. **Use raw request body** - never parse before validation (Module 2)
|
|
203
|
+
|
|
204
|
+
---
|
|
205
|
+
|
|
206
|
+
## Security Notes
|
|
207
|
+
|
|
208
|
+
- This service validates webhooks from **Fluent Commerce Rubix workflows only**
|
|
209
|
+
- Public keys are environment-specific (production, sandbox, UAT)
|
|
210
|
+
- Always use HTTPS for webhook endpoints in production
|
|
211
|
+
- Never log or expose raw signature values
|
|
212
|
+
- Rotate public keys periodically per security policy
|
|
213
|
+
- Monitor validation failures for potential attacks
|
|
214
|
+
|
|
215
|
+
---
|
|
216
|
+
|
|
217
|
+
## Getting Help
|
|
218
|
+
|
|
219
|
+
- **Quick answers:** [Quick Reference](../advanced-services/advanced-services-quick-reference.md)
|
|
220
|
+
- **Troubleshooting:** [Module 6: Error Handling](./modules/webhook-validation-06-error-handling.md)
|
|
221
|
+
- **Examples:** [`examples/`](./examples/)
|
|
222
|
+
- **API Reference:** [Module 7](./modules/webhook-validation-07-api-reference.md)
|
|
223
|
+
|
|
224
|
+
---
|
|
225
|
+
|
|
226
|
+
## Next Steps
|
|
227
|
+
|
|
228
|
+
**New to webhook validation?** Start with [Module 1: Foundations](./modules/webhook-validation-01-foundations.md)
|
|
229
|
+
|
|
230
|
+
**Already familiar?** Jump to specific topics:
|
|
231
|
+
|
|
232
|
+
- [Versori Integration](./modules/webhook-validation-03-versori-integration.md)
|
|
233
|
+
- [Platform Integration](./modules/webhook-validation-04-platform-integration.md)
|
|
234
|
+
- [Error Handling](./modules/webhook-validation-06-error-handling.md)
|
|
235
|
+
- [API Reference](./modules/webhook-validation-07-api-reference.md)
|
|
236
|
+
|
|
237
|
+
---
|
|
238
|
+
|
|
239
|
+
**Remember:** Webhook validation is **essential for security**. Never process unvalidated webhooks in production.
|