@fluentcommerce/fc-connect-sdk 0.1.54 → 0.1.55
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/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,321 +1,321 @@
|
|
|
1
|
-
# Event API Ingestion Templates
|
|
2
|
-
|
|
3
|
-
> **Production-ready Event API ingestion templates**
|
|
4
|
-
> Import data using Fluent Commerce Event API
|
|
5
|
-
|
|
6
|
-
## Overview
|
|
7
|
-
|
|
8
|
-
This directory contains 10 production-ready templates for ingesting data using Fluent Commerce Event API. Event API triggers Rubix workflows and supports multiple entity types.
|
|
9
|
-
|
|
10
|
-
## All Templates
|
|
11
|
-
|
|
12
|
-
### File-Based Templates (8 templates)
|
|
13
|
-
|
|
14
|
-
| Template | Source | Format | Entity | Complexity |
|
|
15
|
-
|----------|--------|--------|--------|------------|
|
|
16
|
-
| [S3 CSV Product](./template-ingestion-s3-csv-product-event.md) | S3 | CSV | Product | Beginner |
|
|
17
|
-
| [S3 JSON Product](./template-ingestion-s3-json-product-event.md) | S3 | JSON | Product | Beginner |
|
|
18
|
-
| [S3 XML Product](./template-ingestion-s3-xml-product-event.md) | S3 | XML | Product | Medium |
|
|
19
|
-
| [S3 Parquet Product](./template-ingestion-s3-parquet-product-event.md) | S3 | Parquet | Product | Advanced |
|
|
20
|
-
| [SFTP CSV Product](./template-ingestion-sftp-csv-product-event.md) | SFTP | CSV | Product | Medium |
|
|
21
|
-
| [SFTP JSON Product](./template-ingestion-sftp-json-product-event.md) | SFTP | JSON | Product | Medium |
|
|
22
|
-
| [SFTP XML Product](./template-ingestion-sftp-xml-product-event.md) | SFTP | XML | Product | Medium |
|
|
23
|
-
| [SFTP Parquet Product](./template-ingestion-sftp-parquet-product-event.md) | SFTP | Parquet | Product | Advanced |
|
|
24
|
-
|
|
25
|
-
### Payload-Based Templates (2 templates)
|
|
26
|
-
|
|
27
|
-
| Template | Source | Format | Entity | Complexity |
|
|
28
|
-
|----------|--------|--------|--------|------------|
|
|
29
|
-
| [Payload JSON Order Cancel](./template-ingestion-payload-json-order-cancel-event.md) | Webhook | JSON | Order | Beginner |
|
|
30
|
-
| [Payload XML Order Cancel](./template-ingestion-payload-xml-order-cancel-event.md) | Webhook | XML | Order | Beginner |
|
|
31
|
-
|
|
32
|
-
## Quick Selection
|
|
33
|
-
|
|
34
|
-
### By Source
|
|
35
|
-
|
|
36
|
-
**S3** (4 templates)
|
|
37
|
-
- [CSV](./template-ingestion-s3-csv-product-event.md) - Beginner
|
|
38
|
-
- [JSON](./template-ingestion-s3-json-product-event.md) - Beginner
|
|
39
|
-
- [XML](./template-ingestion-s3-xml-product-event.md) - Medium
|
|
40
|
-
- [Parquet](./template-ingestion-s3-parquet-product-event.md) - Advanced
|
|
41
|
-
|
|
42
|
-
**SFTP** (4 templates)
|
|
43
|
-
- [CSV](./template-ingestion-sftp-csv-product-event.md) - Medium
|
|
44
|
-
- [JSON](./template-ingestion-sftp-json-product-event.md) - Medium
|
|
45
|
-
- [XML](./template-ingestion-sftp-xml-product-event.md) - Medium
|
|
46
|
-
- [Parquet](./template-ingestion-sftp-parquet-product-event.md) - Advanced
|
|
47
|
-
|
|
48
|
-
**Webhook Payload** (2 templates)
|
|
49
|
-
- [JSON Order Cancel](./template-ingestion-payload-json-order-cancel-event.md) - Beginner
|
|
50
|
-
- [XML Order Cancel](./template-ingestion-payload-xml-order-cancel-event.md) - Beginner
|
|
51
|
-
|
|
52
|
-
### By Format
|
|
53
|
-
|
|
54
|
-
**CSV** (2 templates) - Beginner/Medium
|
|
55
|
-
**JSON** (3 templates) - Beginner (includes payload-based)
|
|
56
|
-
**XML** (3 templates) - Medium (includes payload-based)
|
|
57
|
-
**Parquet** (2 templates) - Advanced
|
|
58
|
-
|
|
59
|
-
### By Entity
|
|
60
|
-
|
|
61
|
-
**Product** (8 templates) - File-based ingestion from S3/SFTP
|
|
62
|
-
**Order** (2 templates) - Payload-based webhook ingestion
|
|
63
|
-
|
|
64
|
-
## Event API Features
|
|
65
|
-
|
|
66
|
-
- **Workflow Triggers** - Triggers Rubix workflows
|
|
67
|
-
- **Multiple Entities** - Products, Orders, Locations
|
|
68
|
-
- **Flexible Schema** - Custom event types
|
|
69
|
-
- **Asynchronous** - Non-blocking processing
|
|
70
|
-
|
|
71
|
-
## When to Use Payload-Based Templates
|
|
72
|
-
|
|
73
|
-
Use payload-based templates when:
|
|
74
|
-
- ✅ Receiving data directly via webhook (not from files)
|
|
75
|
-
- ✅ Need immediate processing (no file discovery/download)
|
|
76
|
-
- ✅ Simple event payloads (e.g., order cancel with just order reference)
|
|
77
|
-
- ✅ Real-time event processing
|
|
78
|
-
|
|
79
|
-
Use file-based templates when:
|
|
80
|
-
- ✅ Processing files from S3 or SFTP
|
|
81
|
-
- ✅ Batch processing multiple records
|
|
82
|
-
- ✅ Need file tracking and archiving
|
|
83
|
-
- ✅ Scheduled ingestion workflows
|
|
84
|
-
|
|
85
|
-
See [parent directory](../) for Batch API and GraphQL templates.
|
|
86
|
-
|
|
87
|
-
## retailerId Requirement
|
|
88
|
-
|
|
89
|
-
**CRITICAL:** Event API requires `retailerId` for all `sendEvent()` calls.
|
|
90
|
-
|
|
91
|
-
**SDK Validation (v0.1.40+):**
|
|
92
|
-
- SDK validates `retailerId` before calling `sendEvent()`
|
|
93
|
-
- Checks: `event.retailerId || client.retailerId`
|
|
94
|
-
- If both missing, throws: `"retailerId is required for Event API. Set via ctx.connectionVariables.retailerId or client.setRetailerId()"`
|
|
95
|
-
- Validation happens **before** API call, ensuring fail-fast behavior
|
|
96
|
-
|
|
97
|
-
**Configuration Options:**
|
|
98
|
-
|
|
99
|
-
### Option 1: Pass in Event Payload (Explicit)
|
|
100
|
-
```typescript
|
|
101
|
-
await client.sendEvent({
|
|
102
|
-
name: 'UPSERT_PRODUCT',
|
|
103
|
-
entityType: 'PRODUCT',
|
|
104
|
-
entityRef: 'SKU-123',
|
|
105
|
-
retailerId: '1', // ✅ Explicit - overrides client setting
|
|
106
|
-
attributes: productData
|
|
107
|
-
});
|
|
108
|
-
```
|
|
109
|
-
|
|
110
|
-
### Option 2: Set on Client (Recommended for Versori)
|
|
111
|
-
```typescript
|
|
112
|
-
// In Versori workflow
|
|
113
|
-
const fluentRetailerId = activation.getVariable('FLUENT_RETAILER_ID');
|
|
114
|
-
client.setRetailerId(fluentRetailerId);
|
|
115
|
-
|
|
116
|
-
// All events inherit retailerId
|
|
117
|
-
await client.sendEvent({
|
|
118
|
-
name: 'UPSERT_PRODUCT',
|
|
119
|
-
entityType: 'PRODUCT',
|
|
120
|
-
entityRef: 'SKU-123', // ✅ retailerId inherited from client
|
|
121
|
-
attributes: productData
|
|
122
|
-
});
|
|
123
|
-
```
|
|
124
|
-
|
|
125
|
-
### Option 3: Via Connection Variables
|
|
126
|
-
```typescript
|
|
127
|
-
// Configure in Versori Connection UI:
|
|
128
|
-
// Custom Parameters (JSON): { "retailerId": "1" }
|
|
129
|
-
|
|
130
|
-
// SDK auto-detects:
|
|
131
|
-
const client = await createClient(ctx);
|
|
132
|
-
// ✅ retailerId = ctx.connectionVariables.retailerId
|
|
133
|
-
|
|
134
|
-
await client.sendEvent(event); // ✅ Works automatically
|
|
135
|
-
```
|
|
136
|
-
|
|
137
|
-
**Validation Error Example:**
|
|
138
|
-
```typescript
|
|
139
|
-
// ❌ This will throw error:
|
|
140
|
-
const client = await createClient(ctx); // No retailerId in connection
|
|
141
|
-
await client.sendEvent({
|
|
142
|
-
name: 'UPSERT_PRODUCT',
|
|
143
|
-
entityType: 'PRODUCT',
|
|
144
|
-
entityRef: 'SKU-123'
|
|
145
|
-
// Missing retailerId
|
|
146
|
-
});
|
|
147
|
-
// Error: retailerId is required for Event API...
|
|
148
|
-
|
|
149
|
-
// ✅ This works:
|
|
150
|
-
client.setRetailerId('1');
|
|
151
|
-
await client.sendEvent({
|
|
152
|
-
name: 'UPSERT_PRODUCT',
|
|
153
|
-
entityType: 'PRODUCT',
|
|
154
|
-
entityRef: 'SKU-123'
|
|
155
|
-
});
|
|
156
|
-
```
|
|
157
|
-
|
|
158
|
-
**Priority Order:**
|
|
159
|
-
1. `event.retailerId` (highest priority)
|
|
160
|
-
2. `client.retailerId` (set via setRetailerId())
|
|
161
|
-
3. `ctx.connectionVariables.retailerId` (auto-detected during createClient())
|
|
162
|
-
|
|
163
|
-
## Automatic Retry Behavior (v0.1.40+)
|
|
164
|
-
|
|
165
|
-
**All Event API Calls Protected:**
|
|
166
|
-
|
|
167
|
-
The SDK automatically retries transient failures for Event API operations:
|
|
168
|
-
- `sendEvent()` - Both `async` and `sync` modes
|
|
169
|
-
|
|
170
|
-
### 401 Authentication Retry
|
|
171
|
-
|
|
172
|
-
**Automatic Platform Auth Refresh:**
|
|
173
|
-
- **Max retries:** 3 attempts for 401 errors
|
|
174
|
-
- **Delay:** Exponential backoff (1s → 2s → 4s, capped at 5s)
|
|
175
|
-
- **Applies to:** Both async and sync event modes
|
|
176
|
-
- **Log message:** `"[fc-connect-sdk:auth] Platform auth failure (401), retrying after {delay}ms"`
|
|
177
|
-
|
|
178
|
-
**Why this matters:**
|
|
179
|
-
- Platform-managed OAuth2 tokens can expire between validation and use
|
|
180
|
-
- Clock skew between Versori and Fluent API can cause timing issues
|
|
181
|
-
- SDK automatically waits for platform token refresh without failing your workflow
|
|
182
|
-
|
|
183
|
-
**Example scenario:**
|
|
184
|
-
```typescript
|
|
185
|
-
// Token expires during batch processing
|
|
186
|
-
for (const record of records) {
|
|
187
|
-
await client.sendEvent({
|
|
188
|
-
name: 'UPSERT_PRODUCT',
|
|
189
|
-
entityType: 'PRODUCT',
|
|
190
|
-
entityRef: record.sku,
|
|
191
|
-
attributes: record
|
|
192
|
-
});
|
|
193
|
-
// On 100th event, token expires
|
|
194
|
-
// ✅ SDK detects 401, waits 1s for platform refresh, retries successfully
|
|
195
|
-
// ✅ Workflow continues without failure
|
|
196
|
-
}
|
|
197
|
-
```
|
|
198
|
-
|
|
199
|
-
### 5xx Server Error Retry
|
|
200
|
-
|
|
201
|
-
**Automatic Transient Error Handling:**
|
|
202
|
-
- **Max retries:** 3 attempts for 5xx errors
|
|
203
|
-
- **Delay:** Exponential backoff (1s → 2s → 4s, capped at 10s)
|
|
204
|
-
- **Applies to:** All `sendEvent()` calls
|
|
205
|
-
- **Log message:** `"[fc-connect-sdk:retry] Request failed, retrying (attempt X/3)"`
|
|
206
|
-
|
|
207
|
-
**Why this matters:**
|
|
208
|
-
- Fluent API may experience transient failures (503 Service Unavailable)
|
|
209
|
-
- Network issues between Versori and Fluent can cause timeouts
|
|
210
|
-
- SDK retries automatically without losing your event data
|
|
211
|
-
|
|
212
|
-
### Network Error Retry
|
|
213
|
-
|
|
214
|
-
**Automatic Network Failure Handling:**
|
|
215
|
-
- **Max retries:** 3 attempts for network errors
|
|
216
|
-
- **Delay:** Exponential backoff (1s → 2s → 4s, capped at 10s)
|
|
217
|
-
- **Applies to:** All `sendEvent()` calls
|
|
218
|
-
|
|
219
|
-
**Example:**
|
|
220
|
-
```typescript
|
|
221
|
-
// Processing 1,000 product events
|
|
222
|
-
for (const product of products) {
|
|
223
|
-
await client.sendEvent({
|
|
224
|
-
name: 'UPSERT_PRODUCT',
|
|
225
|
-
entityType: 'PRODUCT',
|
|
226
|
-
entityRef: product.sku,
|
|
227
|
-
attributes: product
|
|
228
|
-
});
|
|
229
|
-
// Network hiccup on event #500
|
|
230
|
-
// ✅ SDK retries automatically
|
|
231
|
-
// ✅ Event submitted successfully on retry #2
|
|
232
|
-
// ✅ Workflow continues processing remaining 500 events
|
|
233
|
-
}
|
|
234
|
-
```
|
|
235
|
-
|
|
236
|
-
### 4xx Client Error Behavior (No Retry)
|
|
237
|
-
|
|
238
|
-
**Fail-fast for client errors:**
|
|
239
|
-
- **400 Bad Request:** Immediate failure (invalid event payload)
|
|
240
|
-
- **403 Forbidden:** Immediate failure (permission denied)
|
|
241
|
-
- **422 Unprocessable:** Immediate failure (event validation error)
|
|
242
|
-
|
|
243
|
-
**Why no retry:** Client errors require application code changes or data fixes
|
|
244
|
-
|
|
245
|
-
**Example:**
|
|
246
|
-
```typescript
|
|
247
|
-
try {
|
|
248
|
-
await client.sendEvent({
|
|
249
|
-
name: 'UPSERT_PRODUCT',
|
|
250
|
-
entityType: 'PRODUCT',
|
|
251
|
-
entityRef: 'SKU-123',
|
|
252
|
-
attributes: { invalid: 'data' } // ❌ Validation error
|
|
253
|
-
});
|
|
254
|
-
} catch (error) {
|
|
255
|
-
// 422 error - fix data and retry manually
|
|
256
|
-
log.error('Event validation failed', { error: error.message });
|
|
257
|
-
// Handle error: log to dead letter queue, notify admin, etc.
|
|
258
|
-
}
|
|
259
|
-
```
|
|
260
|
-
|
|
261
|
-
### Per-Event Error Handling
|
|
262
|
-
|
|
263
|
-
**Best Practice:** Wrap individual `sendEvent()` calls in try/catch
|
|
264
|
-
|
|
265
|
-
```typescript
|
|
266
|
-
const results = { success: 0, failed: 0, errors: [] };
|
|
267
|
-
|
|
268
|
-
for (const record of records) {
|
|
269
|
-
try {
|
|
270
|
-
await client.sendEvent({
|
|
271
|
-
name: 'UPSERT_PRODUCT',
|
|
272
|
-
entityType: 'PRODUCT',
|
|
273
|
-
entityRef: record.sku,
|
|
274
|
-
attributes: record
|
|
275
|
-
});
|
|
276
|
-
results.success++;
|
|
277
|
-
} catch (error) {
|
|
278
|
-
results.failed++;
|
|
279
|
-
results.errors.push({ sku: record.sku, error: error.message });
|
|
280
|
-
// SDK already retried 401/5xx errors - this is a non-retryable error
|
|
281
|
-
}
|
|
282
|
-
}
|
|
283
|
-
|
|
284
|
-
log.info('Event processing complete', results);
|
|
285
|
-
```
|
|
286
|
-
|
|
287
|
-
### Retry Logging
|
|
288
|
-
|
|
289
|
-
**Monitor retry behavior via Versori logs:**
|
|
290
|
-
```typescript
|
|
291
|
-
// Typical log sequence for 401 retry:
|
|
292
|
-
// [INFO] [fc-connect-sdk:event] Sending event "UPSERT_PRODUCT" (PRODUCT:SKU-123)
|
|
293
|
-
// [WARN] [fc-connect-sdk:auth] Platform auth failure (401), retrying after 1000ms
|
|
294
|
-
// [INFO] [fc-connect-sdk:event] Event "UPSERT_PRODUCT" sent successfully (id: evt-456)
|
|
295
|
-
```
|
|
296
|
-
|
|
297
|
-
**Alert on excessive retries:**
|
|
298
|
-
- Frequent 401 retries → Check Versori connection token refresh settings
|
|
299
|
-
- Frequent 5xx retries → Check Fluent API status page
|
|
300
|
-
- Individual event failures → Review event payload validation
|
|
301
|
-
|
|
302
|
-
## Event Modes
|
|
303
|
-
|
|
304
|
-
**Async Mode** (Default - Recommended):
|
|
305
|
-
```typescript
|
|
306
|
-
await client.sendEvent(event, 'async');
|
|
307
|
-
// ✅ Fast response (event queued)
|
|
308
|
-
// ✅ Non-blocking workflow execution
|
|
309
|
-
// ✅ Rubix processes asynchronously
|
|
310
|
-
```
|
|
311
|
-
|
|
312
|
-
**Sync Mode** (Use for critical events):
|
|
313
|
-
```typescript
|
|
314
|
-
await client.sendEvent(event, 'sync');
|
|
315
|
-
// ✅ Waits for Rubix workflow completion
|
|
316
|
-
// ✅ Returns workflow result
|
|
317
|
-
// ⚠️ Slower response time
|
|
318
|
-
// ⚠️ Blocks workflow execution
|
|
319
|
-
```
|
|
320
|
-
|
|
321
|
-
**Recommendation:** Use `async` mode for most ingestion workflows to maximize throughput.
|
|
1
|
+
# Event API Ingestion Templates
|
|
2
|
+
|
|
3
|
+
> **Production-ready Event API ingestion templates**
|
|
4
|
+
> Import data using Fluent Commerce Event API
|
|
5
|
+
|
|
6
|
+
## Overview
|
|
7
|
+
|
|
8
|
+
This directory contains 10 production-ready templates for ingesting data using Fluent Commerce Event API. Event API triggers Rubix workflows and supports multiple entity types.
|
|
9
|
+
|
|
10
|
+
## All Templates
|
|
11
|
+
|
|
12
|
+
### File-Based Templates (8 templates)
|
|
13
|
+
|
|
14
|
+
| Template | Source | Format | Entity | Complexity |
|
|
15
|
+
|----------|--------|--------|--------|------------|
|
|
16
|
+
| [S3 CSV Product](./template-ingestion-s3-csv-product-event.md) | S3 | CSV | Product | Beginner |
|
|
17
|
+
| [S3 JSON Product](./template-ingestion-s3-json-product-event.md) | S3 | JSON | Product | Beginner |
|
|
18
|
+
| [S3 XML Product](./template-ingestion-s3-xml-product-event.md) | S3 | XML | Product | Medium |
|
|
19
|
+
| [S3 Parquet Product](./template-ingestion-s3-parquet-product-event.md) | S3 | Parquet | Product | Advanced |
|
|
20
|
+
| [SFTP CSV Product](./template-ingestion-sftp-csv-product-event.md) | SFTP | CSV | Product | Medium |
|
|
21
|
+
| [SFTP JSON Product](./template-ingestion-sftp-json-product-event.md) | SFTP | JSON | Product | Medium |
|
|
22
|
+
| [SFTP XML Product](./template-ingestion-sftp-xml-product-event.md) | SFTP | XML | Product | Medium |
|
|
23
|
+
| [SFTP Parquet Product](./template-ingestion-sftp-parquet-product-event.md) | SFTP | Parquet | Product | Advanced |
|
|
24
|
+
|
|
25
|
+
### Payload-Based Templates (2 templates)
|
|
26
|
+
|
|
27
|
+
| Template | Source | Format | Entity | Complexity |
|
|
28
|
+
|----------|--------|--------|--------|------------|
|
|
29
|
+
| [Payload JSON Order Cancel](./template-ingestion-payload-json-order-cancel-event.md) | Webhook | JSON | Order | Beginner |
|
|
30
|
+
| [Payload XML Order Cancel](./template-ingestion-payload-xml-order-cancel-event.md) | Webhook | XML | Order | Beginner |
|
|
31
|
+
|
|
32
|
+
## Quick Selection
|
|
33
|
+
|
|
34
|
+
### By Source
|
|
35
|
+
|
|
36
|
+
**S3** (4 templates)
|
|
37
|
+
- [CSV](./template-ingestion-s3-csv-product-event.md) - Beginner
|
|
38
|
+
- [JSON](./template-ingestion-s3-json-product-event.md) - Beginner
|
|
39
|
+
- [XML](./template-ingestion-s3-xml-product-event.md) - Medium
|
|
40
|
+
- [Parquet](./template-ingestion-s3-parquet-product-event.md) - Advanced
|
|
41
|
+
|
|
42
|
+
**SFTP** (4 templates)
|
|
43
|
+
- [CSV](./template-ingestion-sftp-csv-product-event.md) - Medium
|
|
44
|
+
- [JSON](./template-ingestion-sftp-json-product-event.md) - Medium
|
|
45
|
+
- [XML](./template-ingestion-sftp-xml-product-event.md) - Medium
|
|
46
|
+
- [Parquet](./template-ingestion-sftp-parquet-product-event.md) - Advanced
|
|
47
|
+
|
|
48
|
+
**Webhook Payload** (2 templates)
|
|
49
|
+
- [JSON Order Cancel](./template-ingestion-payload-json-order-cancel-event.md) - Beginner
|
|
50
|
+
- [XML Order Cancel](./template-ingestion-payload-xml-order-cancel-event.md) - Beginner
|
|
51
|
+
|
|
52
|
+
### By Format
|
|
53
|
+
|
|
54
|
+
**CSV** (2 templates) - Beginner/Medium
|
|
55
|
+
**JSON** (3 templates) - Beginner (includes payload-based)
|
|
56
|
+
**XML** (3 templates) - Medium (includes payload-based)
|
|
57
|
+
**Parquet** (2 templates) - Advanced
|
|
58
|
+
|
|
59
|
+
### By Entity
|
|
60
|
+
|
|
61
|
+
**Product** (8 templates) - File-based ingestion from S3/SFTP
|
|
62
|
+
**Order** (2 templates) - Payload-based webhook ingestion
|
|
63
|
+
|
|
64
|
+
## Event API Features
|
|
65
|
+
|
|
66
|
+
- **Workflow Triggers** - Triggers Rubix workflows
|
|
67
|
+
- **Multiple Entities** - Products, Orders, Locations
|
|
68
|
+
- **Flexible Schema** - Custom event types
|
|
69
|
+
- **Asynchronous** - Non-blocking processing
|
|
70
|
+
|
|
71
|
+
## When to Use Payload-Based Templates
|
|
72
|
+
|
|
73
|
+
Use payload-based templates when:
|
|
74
|
+
- ✅ Receiving data directly via webhook (not from files)
|
|
75
|
+
- ✅ Need immediate processing (no file discovery/download)
|
|
76
|
+
- ✅ Simple event payloads (e.g., order cancel with just order reference)
|
|
77
|
+
- ✅ Real-time event processing
|
|
78
|
+
|
|
79
|
+
Use file-based templates when:
|
|
80
|
+
- ✅ Processing files from S3 or SFTP
|
|
81
|
+
- ✅ Batch processing multiple records
|
|
82
|
+
- ✅ Need file tracking and archiving
|
|
83
|
+
- ✅ Scheduled ingestion workflows
|
|
84
|
+
|
|
85
|
+
See [parent directory](../) for Batch API and GraphQL templates.
|
|
86
|
+
|
|
87
|
+
## retailerId Requirement
|
|
88
|
+
|
|
89
|
+
**CRITICAL:** Event API requires `retailerId` for all `sendEvent()` calls.
|
|
90
|
+
|
|
91
|
+
**SDK Validation (v0.1.40+):**
|
|
92
|
+
- SDK validates `retailerId` before calling `sendEvent()`
|
|
93
|
+
- Checks: `event.retailerId || client.retailerId`
|
|
94
|
+
- If both missing, throws: `"retailerId is required for Event API. Set via ctx.connectionVariables.retailerId or client.setRetailerId()"`
|
|
95
|
+
- Validation happens **before** API call, ensuring fail-fast behavior
|
|
96
|
+
|
|
97
|
+
**Configuration Options:**
|
|
98
|
+
|
|
99
|
+
### Option 1: Pass in Event Payload (Explicit)
|
|
100
|
+
```typescript
|
|
101
|
+
await client.sendEvent({
|
|
102
|
+
name: 'UPSERT_PRODUCT',
|
|
103
|
+
entityType: 'PRODUCT',
|
|
104
|
+
entityRef: 'SKU-123',
|
|
105
|
+
retailerId: '1', // ✅ Explicit - overrides client setting
|
|
106
|
+
attributes: productData
|
|
107
|
+
});
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
### Option 2: Set on Client (Recommended for Versori)
|
|
111
|
+
```typescript
|
|
112
|
+
// In Versori workflow
|
|
113
|
+
const fluentRetailerId = activation.getVariable('FLUENT_RETAILER_ID');
|
|
114
|
+
client.setRetailerId(fluentRetailerId);
|
|
115
|
+
|
|
116
|
+
// All events inherit retailerId
|
|
117
|
+
await client.sendEvent({
|
|
118
|
+
name: 'UPSERT_PRODUCT',
|
|
119
|
+
entityType: 'PRODUCT',
|
|
120
|
+
entityRef: 'SKU-123', // ✅ retailerId inherited from client
|
|
121
|
+
attributes: productData
|
|
122
|
+
});
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
### Option 3: Via Connection Variables
|
|
126
|
+
```typescript
|
|
127
|
+
// Configure in Versori Connection UI:
|
|
128
|
+
// Custom Parameters (JSON): { "retailerId": "1" }
|
|
129
|
+
|
|
130
|
+
// SDK auto-detects:
|
|
131
|
+
const client = await createClient(ctx);
|
|
132
|
+
// ✅ retailerId = ctx.connectionVariables.retailerId
|
|
133
|
+
|
|
134
|
+
await client.sendEvent(event); // ✅ Works automatically
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
**Validation Error Example:**
|
|
138
|
+
```typescript
|
|
139
|
+
// ❌ This will throw error:
|
|
140
|
+
const client = await createClient(ctx); // No retailerId in connection
|
|
141
|
+
await client.sendEvent({
|
|
142
|
+
name: 'UPSERT_PRODUCT',
|
|
143
|
+
entityType: 'PRODUCT',
|
|
144
|
+
entityRef: 'SKU-123'
|
|
145
|
+
// Missing retailerId
|
|
146
|
+
});
|
|
147
|
+
// Error: retailerId is required for Event API...
|
|
148
|
+
|
|
149
|
+
// ✅ This works:
|
|
150
|
+
client.setRetailerId('1');
|
|
151
|
+
await client.sendEvent({
|
|
152
|
+
name: 'UPSERT_PRODUCT',
|
|
153
|
+
entityType: 'PRODUCT',
|
|
154
|
+
entityRef: 'SKU-123'
|
|
155
|
+
});
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
**Priority Order:**
|
|
159
|
+
1. `event.retailerId` (highest priority)
|
|
160
|
+
2. `client.retailerId` (set via setRetailerId())
|
|
161
|
+
3. `ctx.connectionVariables.retailerId` (auto-detected during createClient())
|
|
162
|
+
|
|
163
|
+
## Automatic Retry Behavior (v0.1.40+)
|
|
164
|
+
|
|
165
|
+
**All Event API Calls Protected:**
|
|
166
|
+
|
|
167
|
+
The SDK automatically retries transient failures for Event API operations:
|
|
168
|
+
- `sendEvent()` - Both `async` and `sync` modes
|
|
169
|
+
|
|
170
|
+
### 401 Authentication Retry
|
|
171
|
+
|
|
172
|
+
**Automatic Platform Auth Refresh:**
|
|
173
|
+
- **Max retries:** 3 attempts for 401 errors
|
|
174
|
+
- **Delay:** Exponential backoff (1s → 2s → 4s, capped at 5s)
|
|
175
|
+
- **Applies to:** Both async and sync event modes
|
|
176
|
+
- **Log message:** `"[fc-connect-sdk:auth] Platform auth failure (401), retrying after {delay}ms"`
|
|
177
|
+
|
|
178
|
+
**Why this matters:**
|
|
179
|
+
- Platform-managed OAuth2 tokens can expire between validation and use
|
|
180
|
+
- Clock skew between Versori and Fluent API can cause timing issues
|
|
181
|
+
- SDK automatically waits for platform token refresh without failing your workflow
|
|
182
|
+
|
|
183
|
+
**Example scenario:**
|
|
184
|
+
```typescript
|
|
185
|
+
// Token expires during batch processing
|
|
186
|
+
for (const record of records) {
|
|
187
|
+
await client.sendEvent({
|
|
188
|
+
name: 'UPSERT_PRODUCT',
|
|
189
|
+
entityType: 'PRODUCT',
|
|
190
|
+
entityRef: record.sku,
|
|
191
|
+
attributes: record
|
|
192
|
+
});
|
|
193
|
+
// On 100th event, token expires
|
|
194
|
+
// ✅ SDK detects 401, waits 1s for platform refresh, retries successfully
|
|
195
|
+
// ✅ Workflow continues without failure
|
|
196
|
+
}
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
### 5xx Server Error Retry
|
|
200
|
+
|
|
201
|
+
**Automatic Transient Error Handling:**
|
|
202
|
+
- **Max retries:** 3 attempts for 5xx errors
|
|
203
|
+
- **Delay:** Exponential backoff (1s → 2s → 4s, capped at 10s)
|
|
204
|
+
- **Applies to:** All `sendEvent()` calls
|
|
205
|
+
- **Log message:** `"[fc-connect-sdk:retry] Request failed, retrying (attempt X/3)"`
|
|
206
|
+
|
|
207
|
+
**Why this matters:**
|
|
208
|
+
- Fluent API may experience transient failures (503 Service Unavailable)
|
|
209
|
+
- Network issues between Versori and Fluent can cause timeouts
|
|
210
|
+
- SDK retries automatically without losing your event data
|
|
211
|
+
|
|
212
|
+
### Network Error Retry
|
|
213
|
+
|
|
214
|
+
**Automatic Network Failure Handling:**
|
|
215
|
+
- **Max retries:** 3 attempts for network errors
|
|
216
|
+
- **Delay:** Exponential backoff (1s → 2s → 4s, capped at 10s)
|
|
217
|
+
- **Applies to:** All `sendEvent()` calls
|
|
218
|
+
|
|
219
|
+
**Example:**
|
|
220
|
+
```typescript
|
|
221
|
+
// Processing 1,000 product events
|
|
222
|
+
for (const product of products) {
|
|
223
|
+
await client.sendEvent({
|
|
224
|
+
name: 'UPSERT_PRODUCT',
|
|
225
|
+
entityType: 'PRODUCT',
|
|
226
|
+
entityRef: product.sku,
|
|
227
|
+
attributes: product
|
|
228
|
+
});
|
|
229
|
+
// Network hiccup on event #500
|
|
230
|
+
// ✅ SDK retries automatically
|
|
231
|
+
// ✅ Event submitted successfully on retry #2
|
|
232
|
+
// ✅ Workflow continues processing remaining 500 events
|
|
233
|
+
}
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
### 4xx Client Error Behavior (No Retry)
|
|
237
|
+
|
|
238
|
+
**Fail-fast for client errors:**
|
|
239
|
+
- **400 Bad Request:** Immediate failure (invalid event payload)
|
|
240
|
+
- **403 Forbidden:** Immediate failure (permission denied)
|
|
241
|
+
- **422 Unprocessable:** Immediate failure (event validation error)
|
|
242
|
+
|
|
243
|
+
**Why no retry:** Client errors require application code changes or data fixes
|
|
244
|
+
|
|
245
|
+
**Example:**
|
|
246
|
+
```typescript
|
|
247
|
+
try {
|
|
248
|
+
await client.sendEvent({
|
|
249
|
+
name: 'UPSERT_PRODUCT',
|
|
250
|
+
entityType: 'PRODUCT',
|
|
251
|
+
entityRef: 'SKU-123',
|
|
252
|
+
attributes: { invalid: 'data' } // ❌ Validation error
|
|
253
|
+
});
|
|
254
|
+
} catch (error) {
|
|
255
|
+
// 422 error - fix data and retry manually
|
|
256
|
+
log.error('Event validation failed', { error: error.message });
|
|
257
|
+
// Handle error: log to dead letter queue, notify admin, etc.
|
|
258
|
+
}
|
|
259
|
+
```
|
|
260
|
+
|
|
261
|
+
### Per-Event Error Handling
|
|
262
|
+
|
|
263
|
+
**Best Practice:** Wrap individual `sendEvent()` calls in try/catch
|
|
264
|
+
|
|
265
|
+
```typescript
|
|
266
|
+
const results = { success: 0, failed: 0, errors: [] };
|
|
267
|
+
|
|
268
|
+
for (const record of records) {
|
|
269
|
+
try {
|
|
270
|
+
await client.sendEvent({
|
|
271
|
+
name: 'UPSERT_PRODUCT',
|
|
272
|
+
entityType: 'PRODUCT',
|
|
273
|
+
entityRef: record.sku,
|
|
274
|
+
attributes: record
|
|
275
|
+
});
|
|
276
|
+
results.success++;
|
|
277
|
+
} catch (error) {
|
|
278
|
+
results.failed++;
|
|
279
|
+
results.errors.push({ sku: record.sku, error: error.message });
|
|
280
|
+
// SDK already retried 401/5xx errors - this is a non-retryable error
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
log.info('Event processing complete', results);
|
|
285
|
+
```
|
|
286
|
+
|
|
287
|
+
### Retry Logging
|
|
288
|
+
|
|
289
|
+
**Monitor retry behavior via Versori logs:**
|
|
290
|
+
```typescript
|
|
291
|
+
// Typical log sequence for 401 retry:
|
|
292
|
+
// [INFO] [fc-connect-sdk:event] Sending event "UPSERT_PRODUCT" (PRODUCT:SKU-123)
|
|
293
|
+
// [WARN] [fc-connect-sdk:auth] Platform auth failure (401), retrying after 1000ms
|
|
294
|
+
// [INFO] [fc-connect-sdk:event] Event "UPSERT_PRODUCT" sent successfully (id: evt-456)
|
|
295
|
+
```
|
|
296
|
+
|
|
297
|
+
**Alert on excessive retries:**
|
|
298
|
+
- Frequent 401 retries → Check Versori connection token refresh settings
|
|
299
|
+
- Frequent 5xx retries → Check Fluent API status page
|
|
300
|
+
- Individual event failures → Review event payload validation
|
|
301
|
+
|
|
302
|
+
## Event Modes
|
|
303
|
+
|
|
304
|
+
**Async Mode** (Default - Recommended):
|
|
305
|
+
```typescript
|
|
306
|
+
await client.sendEvent(event, 'async');
|
|
307
|
+
// ✅ Fast response (event queued)
|
|
308
|
+
// ✅ Non-blocking workflow execution
|
|
309
|
+
// ✅ Rubix processes asynchronously
|
|
310
|
+
```
|
|
311
|
+
|
|
312
|
+
**Sync Mode** (Use for critical events):
|
|
313
|
+
```typescript
|
|
314
|
+
await client.sendEvent(event, 'sync');
|
|
315
|
+
// ✅ Waits for Rubix workflow completion
|
|
316
|
+
// ✅ Returns workflow result
|
|
317
|
+
// ⚠️ Slower response time
|
|
318
|
+
// ⚠️ Blocks workflow execution
|
|
319
|
+
```
|
|
320
|
+
|
|
321
|
+
**Recommendation:** Use `async` mode for most ingestion workflows to maximize throughput.
|