@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,206 +1,206 @@
|
|
|
1
|
-
# Batch API Ingestion Templates
|
|
2
|
-
|
|
3
|
-
> **Production-ready Batch API ingestion templates**
|
|
4
|
-
> Import inventory data to Fluent Commerce (INVENTORY only)
|
|
5
|
-
|
|
6
|
-
## Overview
|
|
7
|
-
|
|
8
|
-
This directory contains 8 production-ready templates for ingesting inventory data using Fluent Commerce Batch API. The Batch API is **INVENTORY ONLY** - use GraphQL mutations or Event API for other entity types.
|
|
9
|
-
|
|
10
|
-
## All Templates
|
|
11
|
-
|
|
12
|
-
| Template | Source | Format | Complexity |
|
|
13
|
-
|----------|--------|--------|------------|
|
|
14
|
-
| [S3 CSV Inventory](./template-ingestion-s3-csv-inventory-batch.md) | S3 | CSV | Beginner |
|
|
15
|
-
| [S3 JSON Inventory](./template-ingestion-s3-json-inventory-batch.md) | S3 | JSON | Beginner |
|
|
16
|
-
| [S3 XML Inventory](./template-ingestion-s3-xml-inventory-batch.md) | S3 | XML | Medium |
|
|
17
|
-
| [SFTP CSV Inventory](./template-ingestion-sftp-csv-inventory-batch.md) | SFTP | CSV | Medium |
|
|
18
|
-
| [SFTP JSON Inventory](./template-ingestion-sftp-json-inventory-batch.md) | SFTP | JSON | Medium |
|
|
19
|
-
| [SFTP XML Inventory](./template-ingestion-sftp-xml-inventory-batch.md) | SFTP | XML | Medium |
|
|
20
|
-
| [Cycle Count Reconciliation](./template-ingestion-cycle-count-reconciliation.md) | S3/SFTP | CSV | Advanced |
|
|
21
|
-
| [Multi-Channel Inventory Sync](./template-ingestion-multi-channel-inventory-sync.md) | Multiple | Multiple | Advanced |
|
|
22
|
-
|
|
23
|
-
## Quick Selection
|
|
24
|
-
|
|
25
|
-
### By Source
|
|
26
|
-
|
|
27
|
-
**S3** (4 templates)
|
|
28
|
-
- [CSV](./template-ingestion-s3-csv-inventory-batch.md) - Beginner
|
|
29
|
-
- [JSON](./template-ingestion-s3-json-inventory-batch.md) - Beginner
|
|
30
|
-
- [XML](./template-ingestion-s3-xml-inventory-batch.md) - Medium
|
|
31
|
-
|
|
32
|
-
**SFTP** (4 templates)
|
|
33
|
-
- [CSV](./template-ingestion-sftp-csv-inventory-batch.md) - Medium
|
|
34
|
-
- [JSON](./template-ingestion-sftp-json-inventory-batch.md) - Medium
|
|
35
|
-
- [XML](./template-ingestion-sftp-xml-inventory-batch.md) - Medium
|
|
36
|
-
|
|
37
|
-
**Advanced** (2 templates)
|
|
38
|
-
- [Cycle Count](./template-ingestion-cycle-count-reconciliation.md) - Advanced
|
|
39
|
-
- [Multi-Channel Sync](./template-ingestion-multi-channel-inventory-sync.md) - Advanced
|
|
40
|
-
|
|
41
|
-
## Batch API Limitations
|
|
42
|
-
|
|
43
|
-
**CRITICAL: Batch API is INVENTORY ONLY**
|
|
44
|
-
|
|
45
|
-
| Feature | Supported | Notes |
|
|
46
|
-
|---------|-----------|-------|
|
|
47
|
-
| **Entity Type** | ✅ INVENTORY ONLY | ❌ Cannot use for ORDER, PRODUCT, LOCATION |
|
|
48
|
-
| **Action** | ✅ UPSERT ONLY | ❌ No DELETE, CREATE-only, UPDATE-only |
|
|
49
|
-
| **Alternative** | GraphQL mutations | For other entities |
|
|
50
|
-
|
|
51
|
-
See [parent directory](../) for Event API and GraphQL templates.
|
|
52
|
-
|
|
53
|
-
## retailerId Requirement
|
|
54
|
-
|
|
55
|
-
**CRITICAL:** Batch API requires `retailerId` for both `createJob()` and job payload operations.
|
|
56
|
-
|
|
57
|
-
**SDK Validation (v0.1.40+):**
|
|
58
|
-
- SDK validates `retailerId` is set before calling `createJob()`
|
|
59
|
-
- If missing, throws: `"retailerId is required for Job/Batch API. Set via ctx.connectionVariables.retailerId or client.setRetailerId()"`
|
|
60
|
-
- Validation happens **before** any data processing, ensuring fail-fast behavior
|
|
61
|
-
|
|
62
|
-
**Configuration Options:**
|
|
63
|
-
|
|
64
|
-
### Option 1: Pass in Job Payload (Explicit)
|
|
65
|
-
```typescript
|
|
66
|
-
const job = await client.createJob({
|
|
67
|
-
name: 'inventory-sync',
|
|
68
|
-
retailerId: '1', // ✅ Explicit - recommended for multi-tenant
|
|
69
|
-
});
|
|
70
|
-
```
|
|
71
|
-
|
|
72
|
-
### Option 2: Set on Client (Recommended for Versori)
|
|
73
|
-
```typescript
|
|
74
|
-
// In Versori workflow
|
|
75
|
-
const fluentRetailerId = activation.getVariable('FLUENT_RETAILER_ID');
|
|
76
|
-
client.setRetailerId(fluentRetailerId);
|
|
77
|
-
|
|
78
|
-
const job = await client.createJob({
|
|
79
|
-
name: 'inventory-sync' // ✅ retailerId inherited from client
|
|
80
|
-
});
|
|
81
|
-
```
|
|
82
|
-
|
|
83
|
-
### Option 3: Via Connection Variables
|
|
84
|
-
```typescript
|
|
85
|
-
// Configure in Versori Connection UI:
|
|
86
|
-
// Custom Parameters (JSON): { "retailerId": "1" }
|
|
87
|
-
|
|
88
|
-
// SDK auto-detects:
|
|
89
|
-
const client = await createClient(ctx);
|
|
90
|
-
// ✅ retailerId = ctx.connectionVariables.retailerId
|
|
91
|
-
```
|
|
92
|
-
|
|
93
|
-
**Validation Error Example:**
|
|
94
|
-
```typescript
|
|
95
|
-
// ❌ This will throw error:
|
|
96
|
-
const job = await client.createJob({ name: 'test' });
|
|
97
|
-
// Error: retailerId is required for Job/Batch API...
|
|
98
|
-
|
|
99
|
-
// ✅ This works:
|
|
100
|
-
client.setRetailerId('1');
|
|
101
|
-
const job = await client.createJob({ name: 'test' });
|
|
102
|
-
```
|
|
103
|
-
|
|
104
|
-
## Automatic Retry Behavior (v0.1.40+)
|
|
105
|
-
|
|
106
|
-
**All Batch API Methods Protected:**
|
|
107
|
-
|
|
108
|
-
The SDK automatically retries transient failures for all Batch API operations:
|
|
109
|
-
- `createJob()` - Job creation with retry
|
|
110
|
-
- `sendBatch()` - **NEW:** Now includes retry protection
|
|
111
|
-
- `getJobStatus()` - Status polling with retry
|
|
112
|
-
- `getBatchStatus()` - Batch status with retry
|
|
113
|
-
- `getJobResults()` - Results retrieval with retry
|
|
114
|
-
|
|
115
|
-
### 401 Authentication Retry
|
|
116
|
-
|
|
117
|
-
**Automatic Platform Auth Refresh:**
|
|
118
|
-
- **Max retries:** 3 attempts for 401 errors
|
|
119
|
-
- **Delay:** Exponential backoff (1s → 2s → 4s, capped at 5s)
|
|
120
|
-
- **Applies to:** ALL Batch API methods
|
|
121
|
-
- **Log message:** `"[fc-connect-sdk:auth] Platform auth failure (401), retrying after {delay}ms"`
|
|
122
|
-
|
|
123
|
-
**Why this matters:**
|
|
124
|
-
- Platform-managed OAuth2 tokens can expire between validation and use
|
|
125
|
-
- Clock skew between Versori and Fluent API can cause timing issues
|
|
126
|
-
- SDK automatically waits for platform token refresh
|
|
127
|
-
|
|
128
|
-
**Example scenario:**
|
|
129
|
-
```typescript
|
|
130
|
-
// Token expires 1 second before job creation
|
|
131
|
-
const job = await client.createJob({ name: 'inventory', retailerId: '1' });
|
|
132
|
-
// ✅ SDK detects 401, waits 1s for platform refresh, retries successfully
|
|
133
|
-
```
|
|
134
|
-
|
|
135
|
-
### 5xx Server Error Retry
|
|
136
|
-
|
|
137
|
-
**Automatic Transient Error Handling:**
|
|
138
|
-
- **Max retries:** 3 attempts for 5xx errors
|
|
139
|
-
- **Delay:** Exponential backoff (1s → 2s → 4s, capped at 10s)
|
|
140
|
-
- **Applies to:** ALL Batch API methods
|
|
141
|
-
- **Log message:** `"[fc-connect-sdk:retry] Request failed, retrying (attempt X/3)"`
|
|
142
|
-
|
|
143
|
-
### Network Error Retry
|
|
144
|
-
|
|
145
|
-
**Automatic Network Failure Handling:**
|
|
146
|
-
- **Max retries:** 3 attempts for network errors
|
|
147
|
-
- **Delay:** Exponential backoff (1s → 2s → 4s, capped at 10s)
|
|
148
|
-
- **Applies to:** ALL Batch API methods including `sendBatch()`
|
|
149
|
-
|
|
150
|
-
### sendBatch() Retry Protection (NEW in v0.1.40)
|
|
151
|
-
|
|
152
|
-
**Previously:** `sendBatch()` used direct `ctx.fetch()` without retry
|
|
153
|
-
**Now:** `sendBatch()` uses `fetchWithRetry()` for full protection
|
|
154
|
-
|
|
155
|
-
**Impact:**
|
|
156
|
-
- Batch submission failures due to transient network issues now auto-retry
|
|
157
|
-
- Protects significant data processing work (file download, parse, transform)
|
|
158
|
-
- Job expiry detection remains application responsibility (use JobTracker patterns)
|
|
159
|
-
|
|
160
|
-
**Example:**
|
|
161
|
-
```typescript
|
|
162
|
-
// User processes 10,000 inventory records (30 seconds)
|
|
163
|
-
const entities = await processInventoryFile(); // Heavy lifting
|
|
164
|
-
|
|
165
|
-
// Network hiccup during batch submission
|
|
166
|
-
await client.sendBatch(jobId, { entities, action: 'UPSERT' });
|
|
167
|
-
// ✅ SDK auto-retries transient network failure
|
|
168
|
-
// ✅ Batch submitted successfully on retry #2
|
|
169
|
-
// ✅ 30 seconds of processing NOT wasted
|
|
170
|
-
```
|
|
171
|
-
|
|
172
|
-
### 4xx Client Error Behavior (No Retry)
|
|
173
|
-
|
|
174
|
-
**Fail-fast for client errors:**
|
|
175
|
-
- **400 Bad Request:** Immediate failure (invalid payload)
|
|
176
|
-
- **403 Forbidden:** Immediate failure (permission denied)
|
|
177
|
-
- **422 Unprocessable:** Immediate failure (validation error)
|
|
178
|
-
|
|
179
|
-
**Why no retry:** Client errors require application code changes, not retry
|
|
180
|
-
|
|
181
|
-
### Retry Logging
|
|
182
|
-
|
|
183
|
-
**Monitor retry behavior via Versori logs:**
|
|
184
|
-
```typescript
|
|
185
|
-
// Typical log sequence for 401 retry:
|
|
186
|
-
// [INFO] [fc-connect-sdk:job] Creating job "inventory-sync"
|
|
187
|
-
// [WARN] [fc-connect-sdk:auth] Platform auth failure (401), retrying after 1000ms
|
|
188
|
-
// [INFO] [fc-connect-sdk:job] Job created successfully (id: job-123)
|
|
189
|
-
```
|
|
190
|
-
|
|
191
|
-
**Alert on excessive retries:**
|
|
192
|
-
- Frequent 401 retries → Check Versori connection token refresh settings
|
|
193
|
-
- Frequent 5xx retries → Check Fluent API status page
|
|
194
|
-
|
|
195
|
-
## Job Expiry and Orchestration
|
|
196
|
-
|
|
197
|
-
**Note:** SDK retry logic handles **transient failures**, not job expiry.
|
|
198
|
-
|
|
199
|
-
**Job Expiry Detection:** Application responsibility
|
|
200
|
-
- Use `JobTracker` pattern (see templates)
|
|
201
|
-
- Poll `getJobStatus()` with timeout logic
|
|
202
|
-
- Recreate job if expired (status: `EXPIRED`)
|
|
203
|
-
|
|
204
|
-
**Orchestrator Patterns:**
|
|
205
|
-
- **BatchAPIManager** - High-level orchestration with job expiry handling
|
|
206
|
-
- **Manual orchestration** - Custom retry logic for job recreation
|
|
1
|
+
# Batch API Ingestion Templates
|
|
2
|
+
|
|
3
|
+
> **Production-ready Batch API ingestion templates**
|
|
4
|
+
> Import inventory data to Fluent Commerce (INVENTORY only)
|
|
5
|
+
|
|
6
|
+
## Overview
|
|
7
|
+
|
|
8
|
+
This directory contains 8 production-ready templates for ingesting inventory data using Fluent Commerce Batch API. The Batch API is **INVENTORY ONLY** - use GraphQL mutations or Event API for other entity types.
|
|
9
|
+
|
|
10
|
+
## All Templates
|
|
11
|
+
|
|
12
|
+
| Template | Source | Format | Complexity |
|
|
13
|
+
|----------|--------|--------|------------|
|
|
14
|
+
| [S3 CSV Inventory](./template-ingestion-s3-csv-inventory-batch.md) | S3 | CSV | Beginner |
|
|
15
|
+
| [S3 JSON Inventory](./template-ingestion-s3-json-inventory-batch.md) | S3 | JSON | Beginner |
|
|
16
|
+
| [S3 XML Inventory](./template-ingestion-s3-xml-inventory-batch.md) | S3 | XML | Medium |
|
|
17
|
+
| [SFTP CSV Inventory](./template-ingestion-sftp-csv-inventory-batch.md) | SFTP | CSV | Medium |
|
|
18
|
+
| [SFTP JSON Inventory](./template-ingestion-sftp-json-inventory-batch.md) | SFTP | JSON | Medium |
|
|
19
|
+
| [SFTP XML Inventory](./template-ingestion-sftp-xml-inventory-batch.md) | SFTP | XML | Medium |
|
|
20
|
+
| [Cycle Count Reconciliation](./template-ingestion-cycle-count-reconciliation.md) | S3/SFTP | CSV | Advanced |
|
|
21
|
+
| [Multi-Channel Inventory Sync](./template-ingestion-multi-channel-inventory-sync.md) | Multiple | Multiple | Advanced |
|
|
22
|
+
|
|
23
|
+
## Quick Selection
|
|
24
|
+
|
|
25
|
+
### By Source
|
|
26
|
+
|
|
27
|
+
**S3** (4 templates)
|
|
28
|
+
- [CSV](./template-ingestion-s3-csv-inventory-batch.md) - Beginner
|
|
29
|
+
- [JSON](./template-ingestion-s3-json-inventory-batch.md) - Beginner
|
|
30
|
+
- [XML](./template-ingestion-s3-xml-inventory-batch.md) - Medium
|
|
31
|
+
|
|
32
|
+
**SFTP** (4 templates)
|
|
33
|
+
- [CSV](./template-ingestion-sftp-csv-inventory-batch.md) - Medium
|
|
34
|
+
- [JSON](./template-ingestion-sftp-json-inventory-batch.md) - Medium
|
|
35
|
+
- [XML](./template-ingestion-sftp-xml-inventory-batch.md) - Medium
|
|
36
|
+
|
|
37
|
+
**Advanced** (2 templates)
|
|
38
|
+
- [Cycle Count](./template-ingestion-cycle-count-reconciliation.md) - Advanced
|
|
39
|
+
- [Multi-Channel Sync](./template-ingestion-multi-channel-inventory-sync.md) - Advanced
|
|
40
|
+
|
|
41
|
+
## Batch API Limitations
|
|
42
|
+
|
|
43
|
+
**CRITICAL: Batch API is INVENTORY ONLY**
|
|
44
|
+
|
|
45
|
+
| Feature | Supported | Notes |
|
|
46
|
+
|---------|-----------|-------|
|
|
47
|
+
| **Entity Type** | ✅ INVENTORY ONLY | ❌ Cannot use for ORDER, PRODUCT, LOCATION |
|
|
48
|
+
| **Action** | ✅ UPSERT ONLY | ❌ No DELETE, CREATE-only, UPDATE-only |
|
|
49
|
+
| **Alternative** | GraphQL mutations | For other entities |
|
|
50
|
+
|
|
51
|
+
See [parent directory](../) for Event API and GraphQL templates.
|
|
52
|
+
|
|
53
|
+
## retailerId Requirement
|
|
54
|
+
|
|
55
|
+
**CRITICAL:** Batch API requires `retailerId` for both `createJob()` and job payload operations.
|
|
56
|
+
|
|
57
|
+
**SDK Validation (v0.1.40+):**
|
|
58
|
+
- SDK validates `retailerId` is set before calling `createJob()`
|
|
59
|
+
- If missing, throws: `"retailerId is required for Job/Batch API. Set via ctx.connectionVariables.retailerId or client.setRetailerId()"`
|
|
60
|
+
- Validation happens **before** any data processing, ensuring fail-fast behavior
|
|
61
|
+
|
|
62
|
+
**Configuration Options:**
|
|
63
|
+
|
|
64
|
+
### Option 1: Pass in Job Payload (Explicit)
|
|
65
|
+
```typescript
|
|
66
|
+
const job = await client.createJob({
|
|
67
|
+
name: 'inventory-sync',
|
|
68
|
+
retailerId: '1', // ✅ Explicit - recommended for multi-tenant
|
|
69
|
+
});
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
### Option 2: Set on Client (Recommended for Versori)
|
|
73
|
+
```typescript
|
|
74
|
+
// In Versori workflow
|
|
75
|
+
const fluentRetailerId = activation.getVariable('FLUENT_RETAILER_ID');
|
|
76
|
+
client.setRetailerId(fluentRetailerId);
|
|
77
|
+
|
|
78
|
+
const job = await client.createJob({
|
|
79
|
+
name: 'inventory-sync' // ✅ retailerId inherited from client
|
|
80
|
+
});
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
### Option 3: Via Connection Variables
|
|
84
|
+
```typescript
|
|
85
|
+
// Configure in Versori Connection UI:
|
|
86
|
+
// Custom Parameters (JSON): { "retailerId": "1" }
|
|
87
|
+
|
|
88
|
+
// SDK auto-detects:
|
|
89
|
+
const client = await createClient(ctx);
|
|
90
|
+
// ✅ retailerId = ctx.connectionVariables.retailerId
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
**Validation Error Example:**
|
|
94
|
+
```typescript
|
|
95
|
+
// ❌ This will throw error:
|
|
96
|
+
const job = await client.createJob({ name: 'test' });
|
|
97
|
+
// Error: retailerId is required for Job/Batch API...
|
|
98
|
+
|
|
99
|
+
// ✅ This works:
|
|
100
|
+
client.setRetailerId('1');
|
|
101
|
+
const job = await client.createJob({ name: 'test' });
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
## Automatic Retry Behavior (v0.1.40+)
|
|
105
|
+
|
|
106
|
+
**All Batch API Methods Protected:**
|
|
107
|
+
|
|
108
|
+
The SDK automatically retries transient failures for all Batch API operations:
|
|
109
|
+
- `createJob()` - Job creation with retry
|
|
110
|
+
- `sendBatch()` - **NEW:** Now includes retry protection
|
|
111
|
+
- `getJobStatus()` - Status polling with retry
|
|
112
|
+
- `getBatchStatus()` - Batch status with retry
|
|
113
|
+
- `getJobResults()` - Results retrieval with retry
|
|
114
|
+
|
|
115
|
+
### 401 Authentication Retry
|
|
116
|
+
|
|
117
|
+
**Automatic Platform Auth Refresh:**
|
|
118
|
+
- **Max retries:** 3 attempts for 401 errors
|
|
119
|
+
- **Delay:** Exponential backoff (1s → 2s → 4s, capped at 5s)
|
|
120
|
+
- **Applies to:** ALL Batch API methods
|
|
121
|
+
- **Log message:** `"[fc-connect-sdk:auth] Platform auth failure (401), retrying after {delay}ms"`
|
|
122
|
+
|
|
123
|
+
**Why this matters:**
|
|
124
|
+
- Platform-managed OAuth2 tokens can expire between validation and use
|
|
125
|
+
- Clock skew between Versori and Fluent API can cause timing issues
|
|
126
|
+
- SDK automatically waits for platform token refresh
|
|
127
|
+
|
|
128
|
+
**Example scenario:**
|
|
129
|
+
```typescript
|
|
130
|
+
// Token expires 1 second before job creation
|
|
131
|
+
const job = await client.createJob({ name: 'inventory', retailerId: '1' });
|
|
132
|
+
// ✅ SDK detects 401, waits 1s for platform refresh, retries successfully
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
### 5xx Server Error Retry
|
|
136
|
+
|
|
137
|
+
**Automatic Transient Error Handling:**
|
|
138
|
+
- **Max retries:** 3 attempts for 5xx errors
|
|
139
|
+
- **Delay:** Exponential backoff (1s → 2s → 4s, capped at 10s)
|
|
140
|
+
- **Applies to:** ALL Batch API methods
|
|
141
|
+
- **Log message:** `"[fc-connect-sdk:retry] Request failed, retrying (attempt X/3)"`
|
|
142
|
+
|
|
143
|
+
### Network Error Retry
|
|
144
|
+
|
|
145
|
+
**Automatic Network Failure Handling:**
|
|
146
|
+
- **Max retries:** 3 attempts for network errors
|
|
147
|
+
- **Delay:** Exponential backoff (1s → 2s → 4s, capped at 10s)
|
|
148
|
+
- **Applies to:** ALL Batch API methods including `sendBatch()`
|
|
149
|
+
|
|
150
|
+
### sendBatch() Retry Protection (NEW in v0.1.40)
|
|
151
|
+
|
|
152
|
+
**Previously:** `sendBatch()` used direct `ctx.fetch()` without retry
|
|
153
|
+
**Now:** `sendBatch()` uses `fetchWithRetry()` for full protection
|
|
154
|
+
|
|
155
|
+
**Impact:**
|
|
156
|
+
- Batch submission failures due to transient network issues now auto-retry
|
|
157
|
+
- Protects significant data processing work (file download, parse, transform)
|
|
158
|
+
- Job expiry detection remains application responsibility (use JobTracker patterns)
|
|
159
|
+
|
|
160
|
+
**Example:**
|
|
161
|
+
```typescript
|
|
162
|
+
// User processes 10,000 inventory records (30 seconds)
|
|
163
|
+
const entities = await processInventoryFile(); // Heavy lifting
|
|
164
|
+
|
|
165
|
+
// Network hiccup during batch submission
|
|
166
|
+
await client.sendBatch(jobId, { entities, action: 'UPSERT' });
|
|
167
|
+
// ✅ SDK auto-retries transient network failure
|
|
168
|
+
// ✅ Batch submitted successfully on retry #2
|
|
169
|
+
// ✅ 30 seconds of processing NOT wasted
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
### 4xx Client Error Behavior (No Retry)
|
|
173
|
+
|
|
174
|
+
**Fail-fast for client errors:**
|
|
175
|
+
- **400 Bad Request:** Immediate failure (invalid payload)
|
|
176
|
+
- **403 Forbidden:** Immediate failure (permission denied)
|
|
177
|
+
- **422 Unprocessable:** Immediate failure (validation error)
|
|
178
|
+
|
|
179
|
+
**Why no retry:** Client errors require application code changes, not retry
|
|
180
|
+
|
|
181
|
+
### Retry Logging
|
|
182
|
+
|
|
183
|
+
**Monitor retry behavior via Versori logs:**
|
|
184
|
+
```typescript
|
|
185
|
+
// Typical log sequence for 401 retry:
|
|
186
|
+
// [INFO] [fc-connect-sdk:job] Creating job "inventory-sync"
|
|
187
|
+
// [WARN] [fc-connect-sdk:auth] Platform auth failure (401), retrying after 1000ms
|
|
188
|
+
// [INFO] [fc-connect-sdk:job] Job created successfully (id: job-123)
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
**Alert on excessive retries:**
|
|
192
|
+
- Frequent 401 retries → Check Versori connection token refresh settings
|
|
193
|
+
- Frequent 5xx retries → Check Fluent API status page
|
|
194
|
+
|
|
195
|
+
## Job Expiry and Orchestration
|
|
196
|
+
|
|
197
|
+
**Note:** SDK retry logic handles **transient failures**, not job expiry.
|
|
198
|
+
|
|
199
|
+
**Job Expiry Detection:** Application responsibility
|
|
200
|
+
- Use `JobTracker` pattern (see templates)
|
|
201
|
+
- Poll `getJobStatus()` with timeout logic
|
|
202
|
+
- Recreate job if expired (status: `EXPIRED`)
|
|
203
|
+
|
|
204
|
+
**Orchestrator Patterns:**
|
|
205
|
+
- **BatchAPIManager** - High-level orchestration with job expiry handling
|
|
206
|
+
- **Manual orchestration** - Custom retry logic for job recreation
|