@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,313 +1,313 @@
|
|
|
1
|
-
# Connector Scenarios Learning Path
|
|
2
|
-
|
|
3
|
-
> **Complete guide to building production connectors with the Fluent Connect SDK**
|
|
4
|
-
> Progressive learning modules with real-world implementation patterns and verified code examples
|
|
5
|
-
|
|
6
|
-
## 📚 What You'll Learn
|
|
7
|
-
|
|
8
|
-
This guide teaches you how to build end-to-end connectors for Fluent Commerce integrations using the SDK. By the end, you'll understand:
|
|
9
|
-
|
|
10
|
-
- ✅ How to architect complete data flows from source to Fluent Commerce
|
|
11
|
-
- ✅ How to combine data sources (SFTP, S3), parsers (CSV, JSON, Parquet), and transformations
|
|
12
|
-
- ✅ How to implement validation, state management, and error handling
|
|
13
|
-
- ✅ How to handle batch processing and monitoring
|
|
14
|
-
- ✅ How to build bidirectional sync patterns (ingestion and extraction)
|
|
15
|
-
- ✅ How to aggregate data from multiple sources
|
|
16
|
-
- ✅ Real production patterns for inventory, orders, and product catalog sync
|
|
17
|
-
|
|
18
|
-
## 🎯 Learning Path Overview
|
|
19
|
-
|
|
20
|
-
This guide is organized into **7 progressive modules**. Follow them in order for the best learning experience:
|
|
21
|
-
|
|
22
|
-
| Module | Topic | Level |
|
|
23
|
-
| -------------------------------------------------- | ------------------------------------------------------------------------ | ------------ |
|
|
24
|
-
| [Module 1](./modules/connector-scenarios-01-foundations.md) | **Foundations** - Connector architecture, data flow patterns | Beginner |
|
|
25
|
-
| [Module 2](./modules/connector-scenarios-02-simple-scenarios.md) | **Simple Scenarios** - SFTP CSV ingestion, basic transformations | Beginner |
|
|
26
|
-
| [Module 3](./modules/connector-scenarios-03-intermediate-scenarios.md) | **Intermediate Scenarios** - S3 Parquet, JSON orders, validation | Intermediate |
|
|
27
|
-
| [Module 4](./modules/connector-scenarios-04-advanced-scenarios.md) | **Advanced Scenarios** - State management, multi-source aggregation | Advanced |
|
|
28
|
-
| [Module 5](./modules/connector-scenarios-05-bidirectional-sync.md) | **Bidirectional Sync** - Extraction patterns, Fluent to external systems | Advanced |
|
|
29
|
-
| [Module 6](./modules/connector-scenarios-06-production-patterns.md) | **Production Patterns** - Error handling, monitoring, deployment | Intermediate |
|
|
30
|
-
| [Module 7](./modules/connector-scenarios-07-reference.md) | **Reference** - Complete pattern catalog, best practices | Reference |
|
|
31
|
-
|
|
32
|
-
## 🚀 Quick Navigation
|
|
33
|
-
|
|
34
|
-
### By Use Case
|
|
35
|
-
|
|
36
|
-
- **First time building a connector?** → Start with [Module 1: Foundations](./modules/connector-scenarios-01-foundations.md)
|
|
37
|
-
- **Need SFTP CSV ingestion?** → Jump to [Module 2: Simple Scenarios](./modules/connector-scenarios-02-simple-scenarios.md)
|
|
38
|
-
- **Need S3 Parquet processing?** → See [Module 3: Intermediate Scenarios](./modules/connector-scenarios-03-intermediate-scenarios.md)
|
|
39
|
-
- **Need multi-source aggregation?** → Check [Module 4: Advanced Scenarios](./modules/connector-scenarios-04-advanced-scenarios.md)
|
|
40
|
-
- **Need to export from Fluent?** → See [Module 5: Bidirectional Sync](./modules/connector-scenarios-05-bidirectional-sync.md)
|
|
41
|
-
- **Want code examples?** → Browse [Examples Directory](./examples/)
|
|
42
|
-
|
|
43
|
-
### By Scenario Type
|
|
44
|
-
|
|
45
|
-
Different connector types require different patterns and complexity levels:
|
|
46
|
-
|
|
47
|
-
| Scenario | Complexity | Data Source | Format | Example |
|
|
48
|
-
| ------------------------ | ---------- | ----------- | -------- | ------------------------------------------------------- |
|
|
49
|
-
| SFTP CSV to Inventory | Simple | SFTP | CSV | [Examples](./examples/common-patterns.ts) |
|
|
50
|
-
| S3 Parquet to Products | Medium | S3 | Parquet | [Examples](./examples/common-patterns.ts) |
|
|
51
|
-
| SFTP JSON to Orders | Medium | SFTP | JSON | [Examples](./examples/common-patterns.ts) |
|
|
52
|
-
| S3 CSV with State | Medium | S3 | CSV | [Examples](./examples/common-patterns.ts) |
|
|
53
|
-
| Multi-Source Aggregation | High | SFTP+S3 | Multiple | [Examples](./examples/common-patterns.ts) |
|
|
54
|
-
| Fluent to SFTP Export | Medium | Fluent API | JSON/CSV | [Examples](./examples/common-patterns.ts) |
|
|
55
|
-
|
|
56
|
-
### By Component
|
|
57
|
-
|
|
58
|
-
Find examples by SDK component usage:
|
|
59
|
-
|
|
60
|
-
| Component | Use Case | Example |
|
|
61
|
-
| -------------------- | --------------------- | -------------------------------------------------------------------- |
|
|
62
|
-
| `SftpDataSource` | SFTP file operations | [SFTP CSV Scenario](./examples/common-patterns.ts) |
|
|
63
|
-
| `S3DataSource` | S3 file operations | [S3 Parquet Scenario](./examples/common-patterns.ts) |
|
|
64
|
-
| `UniversalMapper` | Field transformations | All scenarios |
|
|
65
|
-
| `StateService` | Duplicate prevention | [State Management Scenario](./examples/common-patterns.ts) |
|
|
66
|
-
| `FluentClient` | Batch API operations | [Multi-Source Scenario](./examples/common-patterns.ts) |
|
|
67
|
-
| `ExtractionOrchestrator` | Fluent data export | [Bidirectional Scenario](./examples/common-patterns.ts) |
|
|
68
|
-
|
|
69
|
-
## 📖 Quick Reference
|
|
70
|
-
|
|
71
|
-
For quick lookups, see:
|
|
72
|
-
|
|
73
|
-
- [Quick Reference Cheat Sheet](./connector-scenarios-quick-reference.md) - All patterns on one page
|
|
74
|
-
- [Common Patterns](./examples/common-patterns.ts) - Copy-paste ready snippets
|
|
75
|
-
- [Best Practices](./modules/connector-scenarios-06-production-patterns.md#best-practices) - Production guidelines
|
|
76
|
-
|
|
77
|
-
## 🎓 Prerequisites
|
|
78
|
-
|
|
79
|
-
Before starting this guide, you should:
|
|
80
|
-
|
|
81
|
-
1. ✅ Have the SDK installed: `npm install @fluentcommerce/fc-connect-sdk`
|
|
82
|
-
2. ✅ Have Fluent API credentials (clientId, clientSecret, retailerId)
|
|
83
|
-
3. ✅ Understand basic SDK concepts (client creation, services)
|
|
84
|
-
4. ✅ Have access to data sources (SFTP, S3) if testing integrations
|
|
85
|
-
|
|
86
|
-
**New to the SDK?** Start with the [Getting Started Guide](../../00-START-HERE/getting-started.md) first.
|
|
87
|
-
|
|
88
|
-
## 🔍 Key Concepts at a Glance
|
|
89
|
-
|
|
90
|
-
### Complete Connector Architecture
|
|
91
|
-
|
|
92
|
-
```typescript
|
|
93
|
-
// A complete connector combines multiple SDK components:
|
|
94
|
-
|
|
95
|
-
// 1. Data Source (where data comes from)
|
|
96
|
-
const sftpSource = new SftpDataSource({...});
|
|
97
|
-
|
|
98
|
-
// 2. Parser (how to read the data format)
|
|
99
|
-
const parser = new CSVParserService({...});
|
|
100
|
-
|
|
101
|
-
// 3. Field Mapper (how to transform fields)
|
|
102
|
-
const mapper = new UniversalMapper({...});
|
|
103
|
-
|
|
104
|
-
// 4. Fluent Client (where data goes)
|
|
105
|
-
const client = await createClient({...});
|
|
106
|
-
|
|
107
|
-
// 5. State Management (prevent duplicates)
|
|
108
|
-
// ⚠️ IMPORTANT: StateService constructor takes only logger (optional)
|
|
109
|
-
const stateService = new StateService(logger);
|
|
110
|
-
// KV adapter must be passed to EVERY method call
|
|
111
|
-
const kv = openKv(); // Or VersoriKVAdapter for Versori platform
|
|
112
|
-
const workflowId = 'my-workflow';
|
|
113
|
-
|
|
114
|
-
// 6. Orchestration (tie it all together)
|
|
115
|
-
async function processFiles() {
|
|
116
|
-
const files = await sftpSource.listFiles();
|
|
117
|
-
for (const file of files) {
|
|
118
|
-
// KV adapter MUST be passed to every method
|
|
119
|
-
if (await stateService.isFileProcessed(kv, file.name, workflowId)) continue;
|
|
120
|
-
|
|
121
|
-
const content = await sftpSource.downloadFile(file.name);
|
|
122
|
-
const records = await parser.parse(content);
|
|
123
|
-
const transformed = await mapper.mapBatch(records);
|
|
124
|
-
|
|
125
|
-
await client.sendBatch(jobId, { entities: transformed });
|
|
126
|
-
// KV adapter MUST be passed to every method
|
|
127
|
-
await stateService.markFileProcessed(kv, file.name, {}, workflowId);
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
```
|
|
131
|
-
|
|
132
|
-
### Data Flow Pattern
|
|
133
|
-
|
|
134
|
-
```
|
|
135
|
-
┌─────────────┐ ┌─────────┐ ┌─────────────┐ ┌──────────┐ ┌─────────────┐
|
|
136
|
-
│ Data Source │ --> │ Parser │ --> │ Field Mapper│ --> │ Batch │ --> │ Fluent │
|
|
137
|
-
│ SFTP/S3/etc │ │ CSV/JSON│ │ Transform │ │ API │ │ Commerce │
|
|
138
|
-
└─────────────┘ └─────────┘ └─────────────┘ └──────────┘ └─────────────┘
|
|
139
|
-
│ │ │
|
|
140
|
-
│ │ │
|
|
141
|
-
v v v
|
|
142
|
-
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
|
|
143
|
-
│ State │ │ Validation │ │ Monitoring │
|
|
144
|
-
│ Management │ │ Service │ │ Metrics │
|
|
145
|
-
└─────────────┘ └─────────────┘ └─────────────┘
|
|
146
|
-
```
|
|
147
|
-
|
|
148
|
-
### Scenario Complexity Comparison
|
|
149
|
-
|
|
150
|
-
| Feature | Simple | Intermediate | Advanced |
|
|
151
|
-
| -------------------- | ------------------- | ---------------------- | -------------------------- |
|
|
152
|
-
| **Data Sources** | Single (SFTP or S3) | Single with options | Multiple sources |
|
|
153
|
-
| **Formats** | CSV only | CSV, JSON, Parquet | Multiple formats |
|
|
154
|
-
| **Validation** | Basic field checks | Schema validation | Cross-source validation |
|
|
155
|
-
| **State Management** | None or simple | File-level tracking | Record-level + checkpoints |
|
|
156
|
-
| **Error Handling** | Basic try-catch | Retry + move to errors | Recovery + notifications |
|
|
157
|
-
| **Batch Processing** | Single batch | Multiple batches | Streaming + chunking |
|
|
158
|
-
| **Monitoring** | Basic logging | Metrics tracking | Full observability |
|
|
159
|
-
|
|
160
|
-
## 🛠️ Complete Example
|
|
161
|
-
|
|
162
|
-
Here's a minimal but complete connector (SFTP CSV to Fluent Inventory):
|
|
163
|
-
|
|
164
|
-
```typescript
|
|
165
|
-
import {
|
|
166
|
-
createClient,
|
|
167
|
-
SftpDataSource,
|
|
168
|
-
UniversalMapper,
|
|
169
|
-
createConsoleLogger,
|
|
170
|
-
} from '@fluentcommerce/fc-connect-sdk';
|
|
171
|
-
|
|
172
|
-
// Initialize services
|
|
173
|
-
const logger = createConsoleLogger();
|
|
174
|
-
|
|
175
|
-
const sftpSource = new SftpDataSource(
|
|
176
|
-
{
|
|
177
|
-
type: 'SFTP_CSV',
|
|
178
|
-
connectionId: 'inventory-sftp',
|
|
179
|
-
name: 'Inventory SFTP',
|
|
180
|
-
settings: {
|
|
181
|
-
host: process.env.SFTP_HOST,
|
|
182
|
-
username: process.env.SFTP_USERNAME,
|
|
183
|
-
password: process.env.SFTP_PASSWORD,
|
|
184
|
-
remotePath: '/inventory/updates',
|
|
185
|
-
csvHeaders: ['sku', 'location', 'quantity', 'status'],
|
|
186
|
-
},
|
|
187
|
-
},
|
|
188
|
-
logger
|
|
189
|
-
);
|
|
190
|
-
|
|
191
|
-
const mapper = new UniversalMapper({
|
|
192
|
-
fields: {
|
|
193
|
-
ref: { source: 'sku', resolver: 'sdk.uppercase' },
|
|
194
|
-
locationRef: { source: 'location' },
|
|
195
|
-
qty: { source: 'quantity', resolver: 'sdk.parseInt' },
|
|
196
|
-
status: { source: 'status' },
|
|
197
|
-
},
|
|
198
|
-
});
|
|
199
|
-
|
|
200
|
-
const client = await createClient({
|
|
201
|
-
config: {
|
|
202
|
-
baseUrl: process.env.FLUENT_BASE_URL,
|
|
203
|
-
clientId: process.env.FLUENT_CLIENT_ID,
|
|
204
|
-
clientSecret: process.env.FLUENT_CLIENT_SECRET,
|
|
205
|
-
retailerId: process.env.FLUENT_RETAILER_ID,
|
|
206
|
-
},
|
|
207
|
-
});
|
|
208
|
-
|
|
209
|
-
// Main process
|
|
210
|
-
async function syncInventory() {
|
|
211
|
-
const files = await sftpSource.listFiles({ filePattern: '*.csv' });
|
|
212
|
-
|
|
213
|
-
for (const file of files) {
|
|
214
|
-
logger.info(`Processing: ${file.name}`);
|
|
215
|
-
|
|
216
|
-
const content = await sftpSource.downloadFile(file.name);
|
|
217
|
-
const parser = new CSVParserService();
|
|
218
|
-
const records = await parser.parse(content as string);
|
|
219
|
-
|
|
220
|
-
const transformed = [];
|
|
221
|
-
for (const record of records) {
|
|
222
|
-
const result = await mapper.map(record);
|
|
223
|
-
if (result.success) transformed.push(result.data);
|
|
224
|
-
}
|
|
225
|
-
|
|
226
|
-
const job = await client.createJob({
|
|
227
|
-
name: `Inventory Update - ${file.name}`,
|
|
228
|
-
retailerId: process.env.FLUENT_RETAILER_ID,
|
|
229
|
-
});
|
|
230
|
-
|
|
231
|
-
await client.sendBatch(job.id, {
|
|
232
|
-
action: 'UPSERT',
|
|
233
|
-
entityType: 'INVENTORY',
|
|
234
|
-
entities: transformed.map(r => ({
|
|
235
|
-
ref: r.ref,
|
|
236
|
-
productRef: r.ref,
|
|
237
|
-
locationRef: r.locationRef,
|
|
238
|
-
qty: r.qty,
|
|
239
|
-
status: r.status,
|
|
240
|
-
})),
|
|
241
|
-
});
|
|
242
|
-
|
|
243
|
-
logger.info(`✅ Processed ${transformed.length} records`);
|
|
244
|
-
}
|
|
245
|
-
}
|
|
246
|
-
|
|
247
|
-
syncInventory();
|
|
248
|
-
```
|
|
249
|
-
|
|
250
|
-
**What this does:**
|
|
251
|
-
|
|
252
|
-
1. Connects to SFTP and lists CSV files
|
|
253
|
-
2. Downloads and parses each file
|
|
254
|
-
3. Transforms fields using UniversalMapper
|
|
255
|
-
4. Sends data to Fluent via Batch API
|
|
256
|
-
5. Logs progress and results
|
|
257
|
-
|
|
258
|
-
## 📂 Repository Structure
|
|
259
|
-
|
|
260
|
-
```
|
|
261
|
-
docs/guides/connector-scenarios/
|
|
262
|
-
├── readme.md # This file - main index
|
|
263
|
-
├── quick-reference.md # Cheat sheet for patterns
|
|
264
|
-
│
|
|
265
|
-
├── modules/ # Learning modules
|
|
266
|
-
│ ├── 01-foundations.md # Architecture and concepts
|
|
267
|
-
│ ├── 02-simple-scenarios.md # SFTP CSV basics
|
|
268
|
-
│ ├── 03-intermediate-scenarios.md # S3 Parquet, JSON, validation
|
|
269
|
-
│ ├── 04-advanced-scenarios.md # State, multi-source, streaming
|
|
270
|
-
│ ├── 05-bidirectional-sync.md # Extraction and export
|
|
271
|
-
│ ├── 06-production-patterns.md # Error handling, monitoring
|
|
272
|
-
│ └── 07-reference.md # Complete pattern catalog
|
|
273
|
-
│
|
|
274
|
-
└── examples/ # Complete working examples
|
|
275
|
-
├── readme.md # Examples index
|
|
276
|
-
├── common-patterns.ts # Reusable code patterns
|
|
277
|
-
├── scenario-1-sftp-csv-inventory.ts # Scenario 1: SFTP CSV
|
|
278
|
-
├── scenario-2-s3-parquet-products.ts # Scenario 2: S3 Parquet
|
|
279
|
-
├── scenario-3-sftp-json-orders.ts # Scenario 3: SFTP JSON
|
|
280
|
-
├── scenario-4-s3-csv-state.ts # Scenario 4: State management
|
|
281
|
-
├── scenario-5-multi-source.ts # Scenario 5: Multi-source
|
|
282
|
-
└── scenario-6-bidirectional.ts # Scenario 6: Bidirectional sync
|
|
283
|
-
```
|
|
284
|
-
|
|
285
|
-
## 🔗 Related Documentation
|
|
286
|
-
|
|
287
|
-
- [Universal Mapping Guide](../../02-CORE-GUIDES/mapping/mapping-readme.md) - Field transformation details
|
|
288
|
-
- [Auto-Pagination Guide](../../02-CORE-GUIDES/auto-pagination/auto-pagination-readme.md) - Efficient data fetching
|
|
289
|
-
- [Resolver Development Guide](../../02-CORE-GUIDES/mapping/resolvers/mapping-resolvers-readme.md) - Custom transformation functions
|
|
290
|
-
- [Getting Started](../../00-START-HERE/getting-started.md) - SDK basics
|
|
291
|
-
- [API Reference](../../02-CORE-GUIDES/api-reference/api-reference-readme.md) - Complete SDK API
|
|
292
|
-
|
|
293
|
-
## 💡 Tips for Best Results
|
|
294
|
-
|
|
295
|
-
1. **Start simple** - Begin with Scenario 1 (SFTP CSV) before complex patterns
|
|
296
|
-
2. **Validate early** - Test transformations with sample data first
|
|
297
|
-
3. **Use state management** - Always track processed files to prevent duplicates
|
|
298
|
-
4. **Handle errors gracefully** - Move failed files to error folders for review
|
|
299
|
-
5. **Monitor performance** - Log metrics for processing time and record counts
|
|
300
|
-
6. **Test incrementally** - Validate each component (source, parser, mapper) separately
|
|
301
|
-
|
|
302
|
-
## 🚦 Getting Started
|
|
303
|
-
|
|
304
|
-
Ready to begin? Start with [Module 1: Foundations →](./modules/connector-scenarios-01-foundations.md)
|
|
305
|
-
|
|
306
|
-
---
|
|
307
|
-
|
|
308
|
-
**Need Help?**
|
|
309
|
-
|
|
310
|
-
- 📖 Browse [Examples](./examples/)
|
|
311
|
-
- 🔍 Check [Production Patterns](./modules/connector-scenarios-06-production-patterns.md)
|
|
312
|
-
- 📚 See [Best Practices](./modules/connector-scenarios-06-production-patterns.md#best-practices)
|
|
313
|
-
- 📧 Contact support@fluentcommerce.com
|
|
1
|
+
# Connector Scenarios Learning Path
|
|
2
|
+
|
|
3
|
+
> **Complete guide to building production connectors with the Fluent Connect SDK**
|
|
4
|
+
> Progressive learning modules with real-world implementation patterns and verified code examples
|
|
5
|
+
|
|
6
|
+
## 📚 What You'll Learn
|
|
7
|
+
|
|
8
|
+
This guide teaches you how to build end-to-end connectors for Fluent Commerce integrations using the SDK. By the end, you'll understand:
|
|
9
|
+
|
|
10
|
+
- ✅ How to architect complete data flows from source to Fluent Commerce
|
|
11
|
+
- ✅ How to combine data sources (SFTP, S3), parsers (CSV, JSON, Parquet), and transformations
|
|
12
|
+
- ✅ How to implement validation, state management, and error handling
|
|
13
|
+
- ✅ How to handle batch processing and monitoring
|
|
14
|
+
- ✅ How to build bidirectional sync patterns (ingestion and extraction)
|
|
15
|
+
- ✅ How to aggregate data from multiple sources
|
|
16
|
+
- ✅ Real production patterns for inventory, orders, and product catalog sync
|
|
17
|
+
|
|
18
|
+
## 🎯 Learning Path Overview
|
|
19
|
+
|
|
20
|
+
This guide is organized into **7 progressive modules**. Follow them in order for the best learning experience:
|
|
21
|
+
|
|
22
|
+
| Module | Topic | Level |
|
|
23
|
+
| -------------------------------------------------- | ------------------------------------------------------------------------ | ------------ |
|
|
24
|
+
| [Module 1](./modules/connector-scenarios-01-foundations.md) | **Foundations** - Connector architecture, data flow patterns | Beginner |
|
|
25
|
+
| [Module 2](./modules/connector-scenarios-02-simple-scenarios.md) | **Simple Scenarios** - SFTP CSV ingestion, basic transformations | Beginner |
|
|
26
|
+
| [Module 3](./modules/connector-scenarios-03-intermediate-scenarios.md) | **Intermediate Scenarios** - S3 Parquet, JSON orders, validation | Intermediate |
|
|
27
|
+
| [Module 4](./modules/connector-scenarios-04-advanced-scenarios.md) | **Advanced Scenarios** - State management, multi-source aggregation | Advanced |
|
|
28
|
+
| [Module 5](./modules/connector-scenarios-05-bidirectional-sync.md) | **Bidirectional Sync** - Extraction patterns, Fluent to external systems | Advanced |
|
|
29
|
+
| [Module 6](./modules/connector-scenarios-06-production-patterns.md) | **Production Patterns** - Error handling, monitoring, deployment | Intermediate |
|
|
30
|
+
| [Module 7](./modules/connector-scenarios-07-reference.md) | **Reference** - Complete pattern catalog, best practices | Reference |
|
|
31
|
+
|
|
32
|
+
## 🚀 Quick Navigation
|
|
33
|
+
|
|
34
|
+
### By Use Case
|
|
35
|
+
|
|
36
|
+
- **First time building a connector?** → Start with [Module 1: Foundations](./modules/connector-scenarios-01-foundations.md)
|
|
37
|
+
- **Need SFTP CSV ingestion?** → Jump to [Module 2: Simple Scenarios](./modules/connector-scenarios-02-simple-scenarios.md)
|
|
38
|
+
- **Need S3 Parquet processing?** → See [Module 3: Intermediate Scenarios](./modules/connector-scenarios-03-intermediate-scenarios.md)
|
|
39
|
+
- **Need multi-source aggregation?** → Check [Module 4: Advanced Scenarios](./modules/connector-scenarios-04-advanced-scenarios.md)
|
|
40
|
+
- **Need to export from Fluent?** → See [Module 5: Bidirectional Sync](./modules/connector-scenarios-05-bidirectional-sync.md)
|
|
41
|
+
- **Want code examples?** → Browse [Examples Directory](./examples/)
|
|
42
|
+
|
|
43
|
+
### By Scenario Type
|
|
44
|
+
|
|
45
|
+
Different connector types require different patterns and complexity levels:
|
|
46
|
+
|
|
47
|
+
| Scenario | Complexity | Data Source | Format | Example |
|
|
48
|
+
| ------------------------ | ---------- | ----------- | -------- | ------------------------------------------------------- |
|
|
49
|
+
| SFTP CSV to Inventory | Simple | SFTP | CSV | [Examples](./examples/common-patterns.ts) |
|
|
50
|
+
| S3 Parquet to Products | Medium | S3 | Parquet | [Examples](./examples/common-patterns.ts) |
|
|
51
|
+
| SFTP JSON to Orders | Medium | SFTP | JSON | [Examples](./examples/common-patterns.ts) |
|
|
52
|
+
| S3 CSV with State | Medium | S3 | CSV | [Examples](./examples/common-patterns.ts) |
|
|
53
|
+
| Multi-Source Aggregation | High | SFTP+S3 | Multiple | [Examples](./examples/common-patterns.ts) |
|
|
54
|
+
| Fluent to SFTP Export | Medium | Fluent API | JSON/CSV | [Examples](./examples/common-patterns.ts) |
|
|
55
|
+
|
|
56
|
+
### By Component
|
|
57
|
+
|
|
58
|
+
Find examples by SDK component usage:
|
|
59
|
+
|
|
60
|
+
| Component | Use Case | Example |
|
|
61
|
+
| -------------------- | --------------------- | -------------------------------------------------------------------- |
|
|
62
|
+
| `SftpDataSource` | SFTP file operations | [SFTP CSV Scenario](./examples/common-patterns.ts) |
|
|
63
|
+
| `S3DataSource` | S3 file operations | [S3 Parquet Scenario](./examples/common-patterns.ts) |
|
|
64
|
+
| `UniversalMapper` | Field transformations | All scenarios |
|
|
65
|
+
| `StateService` | Duplicate prevention | [State Management Scenario](./examples/common-patterns.ts) |
|
|
66
|
+
| `FluentClient` | Batch API operations | [Multi-Source Scenario](./examples/common-patterns.ts) |
|
|
67
|
+
| `ExtractionOrchestrator` | Fluent data export | [Bidirectional Scenario](./examples/common-patterns.ts) |
|
|
68
|
+
|
|
69
|
+
## 📖 Quick Reference
|
|
70
|
+
|
|
71
|
+
For quick lookups, see:
|
|
72
|
+
|
|
73
|
+
- [Quick Reference Cheat Sheet](./connector-scenarios-quick-reference.md) - All patterns on one page
|
|
74
|
+
- [Common Patterns](./examples/common-patterns.ts) - Copy-paste ready snippets
|
|
75
|
+
- [Best Practices](./modules/connector-scenarios-06-production-patterns.md#best-practices) - Production guidelines
|
|
76
|
+
|
|
77
|
+
## 🎓 Prerequisites
|
|
78
|
+
|
|
79
|
+
Before starting this guide, you should:
|
|
80
|
+
|
|
81
|
+
1. ✅ Have the SDK installed: `npm install @fluentcommerce/fc-connect-sdk`
|
|
82
|
+
2. ✅ Have Fluent API credentials (clientId, clientSecret, retailerId)
|
|
83
|
+
3. ✅ Understand basic SDK concepts (client creation, services)
|
|
84
|
+
4. ✅ Have access to data sources (SFTP, S3) if testing integrations
|
|
85
|
+
|
|
86
|
+
**New to the SDK?** Start with the [Getting Started Guide](../../00-START-HERE/getting-started.md) first.
|
|
87
|
+
|
|
88
|
+
## 🔍 Key Concepts at a Glance
|
|
89
|
+
|
|
90
|
+
### Complete Connector Architecture
|
|
91
|
+
|
|
92
|
+
```typescript
|
|
93
|
+
// A complete connector combines multiple SDK components:
|
|
94
|
+
|
|
95
|
+
// 1. Data Source (where data comes from)
|
|
96
|
+
const sftpSource = new SftpDataSource({...});
|
|
97
|
+
|
|
98
|
+
// 2. Parser (how to read the data format)
|
|
99
|
+
const parser = new CSVParserService({...});
|
|
100
|
+
|
|
101
|
+
// 3. Field Mapper (how to transform fields)
|
|
102
|
+
const mapper = new UniversalMapper({...});
|
|
103
|
+
|
|
104
|
+
// 4. Fluent Client (where data goes)
|
|
105
|
+
const client = await createClient({...});
|
|
106
|
+
|
|
107
|
+
// 5. State Management (prevent duplicates)
|
|
108
|
+
// ⚠️ IMPORTANT: StateService constructor takes only logger (optional)
|
|
109
|
+
const stateService = new StateService(logger);
|
|
110
|
+
// KV adapter must be passed to EVERY method call
|
|
111
|
+
const kv = openKv(); // Or VersoriKVAdapter for Versori platform
|
|
112
|
+
const workflowId = 'my-workflow';
|
|
113
|
+
|
|
114
|
+
// 6. Orchestration (tie it all together)
|
|
115
|
+
async function processFiles() {
|
|
116
|
+
const files = await sftpSource.listFiles();
|
|
117
|
+
for (const file of files) {
|
|
118
|
+
// KV adapter MUST be passed to every method
|
|
119
|
+
if (await stateService.isFileProcessed(kv, file.name, workflowId)) continue;
|
|
120
|
+
|
|
121
|
+
const content = await sftpSource.downloadFile(file.name);
|
|
122
|
+
const records = await parser.parse(content);
|
|
123
|
+
const transformed = await mapper.mapBatch(records);
|
|
124
|
+
|
|
125
|
+
await client.sendBatch(jobId, { entities: transformed });
|
|
126
|
+
// KV adapter MUST be passed to every method
|
|
127
|
+
await stateService.markFileProcessed(kv, file.name, {}, workflowId);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
### Data Flow Pattern
|
|
133
|
+
|
|
134
|
+
```
|
|
135
|
+
┌─────────────┐ ┌─────────┐ ┌─────────────┐ ┌──────────┐ ┌─────────────┐
|
|
136
|
+
│ Data Source │ --> │ Parser │ --> │ Field Mapper│ --> │ Batch │ --> │ Fluent │
|
|
137
|
+
│ SFTP/S3/etc │ │ CSV/JSON│ │ Transform │ │ API │ │ Commerce │
|
|
138
|
+
└─────────────┘ └─────────┘ └─────────────┘ └──────────┘ └─────────────┘
|
|
139
|
+
│ │ │
|
|
140
|
+
│ │ │
|
|
141
|
+
v v v
|
|
142
|
+
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
|
|
143
|
+
│ State │ │ Validation │ │ Monitoring │
|
|
144
|
+
│ Management │ │ Service │ │ Metrics │
|
|
145
|
+
└─────────────┘ └─────────────┘ └─────────────┘
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
### Scenario Complexity Comparison
|
|
149
|
+
|
|
150
|
+
| Feature | Simple | Intermediate | Advanced |
|
|
151
|
+
| -------------------- | ------------------- | ---------------------- | -------------------------- |
|
|
152
|
+
| **Data Sources** | Single (SFTP or S3) | Single with options | Multiple sources |
|
|
153
|
+
| **Formats** | CSV only | CSV, JSON, Parquet | Multiple formats |
|
|
154
|
+
| **Validation** | Basic field checks | Schema validation | Cross-source validation |
|
|
155
|
+
| **State Management** | None or simple | File-level tracking | Record-level + checkpoints |
|
|
156
|
+
| **Error Handling** | Basic try-catch | Retry + move to errors | Recovery + notifications |
|
|
157
|
+
| **Batch Processing** | Single batch | Multiple batches | Streaming + chunking |
|
|
158
|
+
| **Monitoring** | Basic logging | Metrics tracking | Full observability |
|
|
159
|
+
|
|
160
|
+
## 🛠️ Complete Example
|
|
161
|
+
|
|
162
|
+
Here's a minimal but complete connector (SFTP CSV to Fluent Inventory):
|
|
163
|
+
|
|
164
|
+
```typescript
|
|
165
|
+
import {
|
|
166
|
+
createClient,
|
|
167
|
+
SftpDataSource,
|
|
168
|
+
UniversalMapper,
|
|
169
|
+
createConsoleLogger,
|
|
170
|
+
} from '@fluentcommerce/fc-connect-sdk';
|
|
171
|
+
|
|
172
|
+
// Initialize services
|
|
173
|
+
const logger = createConsoleLogger();
|
|
174
|
+
|
|
175
|
+
const sftpSource = new SftpDataSource(
|
|
176
|
+
{
|
|
177
|
+
type: 'SFTP_CSV',
|
|
178
|
+
connectionId: 'inventory-sftp',
|
|
179
|
+
name: 'Inventory SFTP',
|
|
180
|
+
settings: {
|
|
181
|
+
host: process.env.SFTP_HOST,
|
|
182
|
+
username: process.env.SFTP_USERNAME,
|
|
183
|
+
password: process.env.SFTP_PASSWORD,
|
|
184
|
+
remotePath: '/inventory/updates',
|
|
185
|
+
csvHeaders: ['sku', 'location', 'quantity', 'status'],
|
|
186
|
+
},
|
|
187
|
+
},
|
|
188
|
+
logger
|
|
189
|
+
);
|
|
190
|
+
|
|
191
|
+
const mapper = new UniversalMapper({
|
|
192
|
+
fields: {
|
|
193
|
+
ref: { source: 'sku', resolver: 'sdk.uppercase' },
|
|
194
|
+
locationRef: { source: 'location' },
|
|
195
|
+
qty: { source: 'quantity', resolver: 'sdk.parseInt' },
|
|
196
|
+
status: { source: 'status' },
|
|
197
|
+
},
|
|
198
|
+
});
|
|
199
|
+
|
|
200
|
+
const client = await createClient({
|
|
201
|
+
config: {
|
|
202
|
+
baseUrl: process.env.FLUENT_BASE_URL,
|
|
203
|
+
clientId: process.env.FLUENT_CLIENT_ID,
|
|
204
|
+
clientSecret: process.env.FLUENT_CLIENT_SECRET,
|
|
205
|
+
retailerId: process.env.FLUENT_RETAILER_ID,
|
|
206
|
+
},
|
|
207
|
+
});
|
|
208
|
+
|
|
209
|
+
// Main process
|
|
210
|
+
async function syncInventory() {
|
|
211
|
+
const files = await sftpSource.listFiles({ filePattern: '*.csv' });
|
|
212
|
+
|
|
213
|
+
for (const file of files) {
|
|
214
|
+
logger.info(`Processing: ${file.name}`);
|
|
215
|
+
|
|
216
|
+
const content = await sftpSource.downloadFile(file.name);
|
|
217
|
+
const parser = new CSVParserService();
|
|
218
|
+
const records = await parser.parse(content as string);
|
|
219
|
+
|
|
220
|
+
const transformed = [];
|
|
221
|
+
for (const record of records) {
|
|
222
|
+
const result = await mapper.map(record);
|
|
223
|
+
if (result.success) transformed.push(result.data);
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
const job = await client.createJob({
|
|
227
|
+
name: `Inventory Update - ${file.name}`,
|
|
228
|
+
retailerId: process.env.FLUENT_RETAILER_ID,
|
|
229
|
+
});
|
|
230
|
+
|
|
231
|
+
await client.sendBatch(job.id, {
|
|
232
|
+
action: 'UPSERT',
|
|
233
|
+
entityType: 'INVENTORY',
|
|
234
|
+
entities: transformed.map(r => ({
|
|
235
|
+
ref: r.ref,
|
|
236
|
+
productRef: r.ref,
|
|
237
|
+
locationRef: r.locationRef,
|
|
238
|
+
qty: r.qty,
|
|
239
|
+
status: r.status,
|
|
240
|
+
})),
|
|
241
|
+
});
|
|
242
|
+
|
|
243
|
+
logger.info(`✅ Processed ${transformed.length} records`);
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
syncInventory();
|
|
248
|
+
```
|
|
249
|
+
|
|
250
|
+
**What this does:**
|
|
251
|
+
|
|
252
|
+
1. Connects to SFTP and lists CSV files
|
|
253
|
+
2. Downloads and parses each file
|
|
254
|
+
3. Transforms fields using UniversalMapper
|
|
255
|
+
4. Sends data to Fluent via Batch API
|
|
256
|
+
5. Logs progress and results
|
|
257
|
+
|
|
258
|
+
## 📂 Repository Structure
|
|
259
|
+
|
|
260
|
+
```
|
|
261
|
+
docs/guides/connector-scenarios/
|
|
262
|
+
├── readme.md # This file - main index
|
|
263
|
+
├── quick-reference.md # Cheat sheet for patterns
|
|
264
|
+
│
|
|
265
|
+
├── modules/ # Learning modules
|
|
266
|
+
│ ├── 01-foundations.md # Architecture and concepts
|
|
267
|
+
│ ├── 02-simple-scenarios.md # SFTP CSV basics
|
|
268
|
+
│ ├── 03-intermediate-scenarios.md # S3 Parquet, JSON, validation
|
|
269
|
+
│ ├── 04-advanced-scenarios.md # State, multi-source, streaming
|
|
270
|
+
│ ├── 05-bidirectional-sync.md # Extraction and export
|
|
271
|
+
│ ├── 06-production-patterns.md # Error handling, monitoring
|
|
272
|
+
│ └── 07-reference.md # Complete pattern catalog
|
|
273
|
+
│
|
|
274
|
+
└── examples/ # Complete working examples
|
|
275
|
+
├── readme.md # Examples index
|
|
276
|
+
├── common-patterns.ts # Reusable code patterns
|
|
277
|
+
├── scenario-1-sftp-csv-inventory.ts # Scenario 1: SFTP CSV
|
|
278
|
+
├── scenario-2-s3-parquet-products.ts # Scenario 2: S3 Parquet
|
|
279
|
+
├── scenario-3-sftp-json-orders.ts # Scenario 3: SFTP JSON
|
|
280
|
+
├── scenario-4-s3-csv-state.ts # Scenario 4: State management
|
|
281
|
+
├── scenario-5-multi-source.ts # Scenario 5: Multi-source
|
|
282
|
+
└── scenario-6-bidirectional.ts # Scenario 6: Bidirectional sync
|
|
283
|
+
```
|
|
284
|
+
|
|
285
|
+
## 🔗 Related Documentation
|
|
286
|
+
|
|
287
|
+
- [Universal Mapping Guide](../../02-CORE-GUIDES/mapping/mapping-readme.md) - Field transformation details
|
|
288
|
+
- [Auto-Pagination Guide](../../02-CORE-GUIDES/auto-pagination/auto-pagination-readme.md) - Efficient data fetching
|
|
289
|
+
- [Resolver Development Guide](../../02-CORE-GUIDES/mapping/resolvers/mapping-resolvers-readme.md) - Custom transformation functions
|
|
290
|
+
- [Getting Started](../../00-START-HERE/getting-started.md) - SDK basics
|
|
291
|
+
- [API Reference](../../02-CORE-GUIDES/api-reference/api-reference-readme.md) - Complete SDK API
|
|
292
|
+
|
|
293
|
+
## 💡 Tips for Best Results
|
|
294
|
+
|
|
295
|
+
1. **Start simple** - Begin with Scenario 1 (SFTP CSV) before complex patterns
|
|
296
|
+
2. **Validate early** - Test transformations with sample data first
|
|
297
|
+
3. **Use state management** - Always track processed files to prevent duplicates
|
|
298
|
+
4. **Handle errors gracefully** - Move failed files to error folders for review
|
|
299
|
+
5. **Monitor performance** - Log metrics for processing time and record counts
|
|
300
|
+
6. **Test incrementally** - Validate each component (source, parser, mapper) separately
|
|
301
|
+
|
|
302
|
+
## 🚦 Getting Started
|
|
303
|
+
|
|
304
|
+
Ready to begin? Start with [Module 1: Foundations →](./modules/connector-scenarios-01-foundations.md)
|
|
305
|
+
|
|
306
|
+
---
|
|
307
|
+
|
|
308
|
+
**Need Help?**
|
|
309
|
+
|
|
310
|
+
- 📖 Browse [Examples](./examples/)
|
|
311
|
+
- 🔍 Check [Production Patterns](./modules/connector-scenarios-06-production-patterns.md)
|
|
312
|
+
- 📚 See [Best Practices](./modules/connector-scenarios-06-production-patterns.md#best-practices)
|
|
313
|
+
- 📧 Contact support@fluentcommerce.com
|