@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,393 +1,393 @@
|
|
|
1
|
-
# Module 1: Introduction to Parquet Processing
|
|
2
|
-
|
|
3
|
-
[← Back to Parquet Guide](../parquet-readme.md)
|
|
4
|
-
|
|
5
|
-
**Module 1 of 8** | **Level**: Beginner | **Time**: 10 minutes
|
|
6
|
-
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
## Overview
|
|
10
|
-
|
|
11
|
-
This module introduces **Parquet file processing** in the Fluent Connect SDK, explaining what Parquet is, when to use it, and why it's essential for modern data integration and analytics workflows.
|
|
12
|
-
|
|
13
|
-
## Learning Objectives
|
|
14
|
-
|
|
15
|
-
By the end of this module, you will:
|
|
16
|
-
- ✅ Understand what Parquet format is and why it matters
|
|
17
|
-
- ✅ Know when to use Parquet vs other formats (CSV, JSON, XML)
|
|
18
|
-
- ✅ Recognize key features and benefits of the SDK's ParquetParserService
|
|
19
|
-
- ✅ Identify real-world business use cases for Parquet processing
|
|
20
|
-
|
|
21
|
-
---
|
|
22
|
-
|
|
23
|
-
## What is Parquet?
|
|
24
|
-
|
|
25
|
-
**Apache Parquet** is an open-source, columnar storage file format designed for efficient data storage and retrieval, particularly for analytics workloads.
|
|
26
|
-
|
|
27
|
-
### Row-Based vs Columnar Storage
|
|
28
|
-
|
|
29
|
-
**Traditional Row-Based Formats** (CSV, JSON):
|
|
30
|
-
```
|
|
31
|
-
Record 1: { sku: "ABC", location: "WH1", qty: 100, status: "AVAILABLE" }
|
|
32
|
-
Record 2: { sku: "DEF", location: "WH2", qty: 50, status: "RESERVED" }
|
|
33
|
-
Record 3: { sku: "GHI", location: "WH3", qty: 200, status: "AVAILABLE" }
|
|
34
|
-
|
|
35
|
-
Storage: [Record 1][Record 2][Record 3]
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
To query "all quantities", you must read **all fields** of **all records**.
|
|
39
|
-
|
|
40
|
-
**Columnar Format** (Parquet):
|
|
41
|
-
```
|
|
42
|
-
Column 'sku': ["ABC", "DEF", "GHI"]
|
|
43
|
-
Column 'location': ["WH1", "WH2", "WH3"]
|
|
44
|
-
Column 'qty': [100, 50, 200]
|
|
45
|
-
Column 'status': ["AVAILABLE", "RESERVED", "AVAILABLE"]
|
|
46
|
-
|
|
47
|
-
Storage: [sku column][location column][qty column][status column]
|
|
48
|
-
```
|
|
49
|
-
|
|
50
|
-
To query "all quantities", you read **only the qty column** - much faster and more efficient.
|
|
51
|
-
|
|
52
|
-
### Key Characteristics
|
|
53
|
-
|
|
54
|
-
1. **Columnar Storage**: Data organized by columns, not rows
|
|
55
|
-
2. **Compression**: Built-in compression (SNAPPY, GZIP, etc.)
|
|
56
|
-
3. **Schema Enforcement**: Strongly typed with defined schema
|
|
57
|
-
4. **Efficient Encoding**: Column-specific encoding for optimal size
|
|
58
|
-
5. **Metadata Rich**: Column statistics, data types, min/max values
|
|
59
|
-
|
|
60
|
-
---
|
|
61
|
-
|
|
62
|
-
## Why Use Parquet?
|
|
63
|
-
|
|
64
|
-
### Performance Benefits
|
|
65
|
-
|
|
66
|
-
| Benefit | Description | Impact |
|
|
67
|
-
|---------|-------------|--------|
|
|
68
|
-
| **Faster Analytics** | Read only columns needed | 10-100x faster queries |
|
|
69
|
-
| **Smaller Files** | Compression + encoding | 50-80% size reduction |
|
|
70
|
-
| **Better I/O** | Reduced disk reads | Lower cloud storage costs |
|
|
71
|
-
| **Column Pruning** | Skip irrelevant data | Faster processing |
|
|
72
|
-
|
|
73
|
-
### Real-World Example
|
|
74
|
-
|
|
75
|
-
**Scenario**: Extract 1 million inventory positions from Fluent Commerce for analytics
|
|
76
|
-
|
|
77
|
-
**CSV Format**:
|
|
78
|
-
- File size: ~200 MB
|
|
79
|
-
- Query for quantities: Read entire 200 MB
|
|
80
|
-
- Processing time: ~30 seconds
|
|
81
|
-
|
|
82
|
-
**Parquet Format**:
|
|
83
|
-
- File size: ~40 MB (80% reduction)
|
|
84
|
-
- Query for quantities: Read only qty column (~4 MB)
|
|
85
|
-
- Processing time: ~2 seconds (15x faster)
|
|
86
|
-
|
|
87
|
-
---
|
|
88
|
-
|
|
89
|
-
## When to Use Parquet
|
|
90
|
-
|
|
91
|
-
### Ideal Use Cases
|
|
92
|
-
|
|
93
|
-
✅ **Large-Scale Data Extraction**
|
|
94
|
-
- Daily inventory snapshots (millions of positions)
|
|
95
|
-
- Product catalog exports (hundreds of thousands of products)
|
|
96
|
-
- Historical order data (long-term analysis)
|
|
97
|
-
|
|
98
|
-
✅ **Data Warehouse Integration**
|
|
99
|
-
- ETL pipelines to analytics platforms
|
|
100
|
-
- Data lake storage (S3, Azure Data Lake)
|
|
101
|
-
- Business intelligence reporting
|
|
102
|
-
|
|
103
|
-
✅ **Analytics Workloads**
|
|
104
|
-
- Aggregation queries (SUM, AVG, COUNT)
|
|
105
|
-
- Time-series analysis
|
|
106
|
-
- Column-specific filtering
|
|
107
|
-
|
|
108
|
-
✅ **Cloud Storage Optimization**
|
|
109
|
-
- Reduce S3/blob storage costs
|
|
110
|
-
- Faster data transfers
|
|
111
|
-
- Lower bandwidth usage
|
|
112
|
-
|
|
113
|
-
### When NOT to Use Parquet
|
|
114
|
-
|
|
115
|
-
❌ **Small Datasets** (< 10,000 records)
|
|
116
|
-
- Overhead not worth it
|
|
117
|
-
- Use CSV or JSON instead
|
|
118
|
-
|
|
119
|
-
❌ **Frequent Updates**
|
|
120
|
-
- Parquet is write-once, read-many
|
|
121
|
-
- Better for batch processing
|
|
122
|
-
|
|
123
|
-
❌ **Human Readability**
|
|
124
|
-
- Binary format, not human-readable
|
|
125
|
-
- Use CSV for manual inspection
|
|
126
|
-
|
|
127
|
-
❌ **Real-Time Streaming**
|
|
128
|
-
- Better suited for batch operations
|
|
129
|
-
- Use Kafka/streaming formats for real-time
|
|
130
|
-
|
|
131
|
-
---
|
|
132
|
-
|
|
133
|
-
## Business Context
|
|
134
|
-
|
|
135
|
-
### Inventory Management
|
|
136
|
-
|
|
137
|
-
**Use Case**: Daily inventory extract for data warehouse
|
|
138
|
-
|
|
139
|
-
**Business Goal**: Provide analytics team with inventory positions for reporting and forecasting
|
|
140
|
-
|
|
141
|
-
**Parquet Benefits**:
|
|
142
|
-
- Extract 2M positions → 50 MB Parquet file (vs 250 MB CSV)
|
|
143
|
-
- Query by location → Read only locationRef column
|
|
144
|
-
- Historical analysis → Partitioned by date for efficient queries
|
|
145
|
-
|
|
146
|
-
**Example Flow**:
|
|
147
|
-
```
|
|
148
|
-
Fluent Commerce GraphQL
|
|
149
|
-
↓ (Extraction with pagination)
|
|
150
|
-
Parquet File (inventory_2025-10-19.parquet)
|
|
151
|
-
↓ (Upload to S3)
|
|
152
|
-
Data Warehouse (Snowflake, Redshift, BigQuery)
|
|
153
|
-
↓ (Analytics queries)
|
|
154
|
-
Business Intelligence Dashboard
|
|
155
|
-
```
|
|
156
|
-
|
|
157
|
-
### Product Catalog
|
|
158
|
-
|
|
159
|
-
**Use Case**: Product catalog sync to external systems
|
|
160
|
-
|
|
161
|
-
**Business Goal**: Keep e-commerce platform synchronized with Fluent Commerce product data
|
|
162
|
-
|
|
163
|
-
**Parquet Benefits**:
|
|
164
|
-
- Incremental updates → Compare only changed columns
|
|
165
|
-
- Attribute analysis → Query specific product attributes
|
|
166
|
-
- Catalog versioning → Historical snapshots
|
|
167
|
-
|
|
168
|
-
### Order Management
|
|
169
|
-
|
|
170
|
-
**Use Case**: Historical order data for BI reporting
|
|
171
|
-
|
|
172
|
-
**Business Goal**: Analyze order trends, customer behavior, revenue patterns
|
|
173
|
-
|
|
174
|
-
**Parquet Benefits**:
|
|
175
|
-
- Long-term storage → Compressed historical data
|
|
176
|
-
- Time-series queries → Partitioned by order date
|
|
177
|
-
- Customer analysis → Filter by customer attributes efficiently
|
|
178
|
-
|
|
179
|
-
---
|
|
180
|
-
|
|
181
|
-
## SDK ParquetParserService Overview
|
|
182
|
-
|
|
183
|
-
The Fluent Connect SDK provides **fully functional** Parquet processing via the `ParquetParserService`.
|
|
184
|
-
|
|
185
|
-
### Key Features
|
|
186
|
-
|
|
187
|
-
| Feature | Description |
|
|
188
|
-
|---------|-------------|
|
|
189
|
-
| **Powered by hyparquet** | High-performance Parquet library |
|
|
190
|
-
| **Streaming Support** | Process large files without loading into memory |
|
|
191
|
-
| **Validation** | Built-in schema and data validation |
|
|
192
|
-
| **Statistics** | Column statistics for data profiling |
|
|
193
|
-
| **Batch Processing** | Configurable batch sizes for memory control |
|
|
194
|
-
| **Performance Metrics** | Track throughput and processing time |
|
|
195
|
-
|
|
196
|
-
### What's Included
|
|
197
|
-
|
|
198
|
-
✅ **Reading Parquet Files**
|
|
199
|
-
- Parse from ArrayBuffer, Buffer, or S3
|
|
200
|
-
- Stream large files with memory efficiency
|
|
201
|
-
- Column selection and filtering
|
|
202
|
-
|
|
203
|
-
✅ **Validation & Statistics**
|
|
204
|
-
- Schema validation (required columns, types)
|
|
205
|
-
- Column statistics (nulls, unique values, min/max)
|
|
206
|
-
- Data quality profiling
|
|
207
|
-
|
|
208
|
-
✅ **Performance Optimization**
|
|
209
|
-
- Configurable batch sizes
|
|
210
|
-
- Streaming for large datasets
|
|
211
|
-
- Performance metrics tracking
|
|
212
|
-
|
|
213
|
-
✅ **Integration**
|
|
214
|
-
- Seamless S3 integration
|
|
215
|
-
- GraphQL extraction workflows
|
|
216
|
-
- Universal field mapping
|
|
217
|
-
|
|
218
|
-
### What's NOT Included
|
|
219
|
-
|
|
220
|
-
❌ **Writing Parquet Files**
|
|
221
|
-
- SDK focuses on reading/parsing
|
|
222
|
-
- For writing, use `parquetjs` library separately
|
|
223
|
-
- See [Module 4: Writing Parquet](./03-pattern-guides-parquet-04-writing-parquet.md) for patterns
|
|
224
|
-
|
|
225
|
-
❌ **Complex Queries**
|
|
226
|
-
- No SQL-like query engine
|
|
227
|
-
- Filter in application code after parsing
|
|
228
|
-
- Use dedicated analytics tools (Spark, Presto) for complex queries
|
|
229
|
-
|
|
230
|
-
---
|
|
231
|
-
|
|
232
|
-
## Comparison with Other Formats
|
|
233
|
-
|
|
234
|
-
### CSV vs JSON vs Parquet
|
|
235
|
-
|
|
236
|
-
| Aspect | CSV | JSON | Parquet |
|
|
237
|
-
|--------|-----|------|---------|
|
|
238
|
-
| **Storage** | Row-based | Row-based | Columnar |
|
|
239
|
-
| **Compression** | Minimal | Minimal | Excellent (50-80%) |
|
|
240
|
-
| **Schema** | No schema | No schema | Strongly typed |
|
|
241
|
-
| **Read Speed** | Moderate | Slow | Very Fast (analytics) |
|
|
242
|
-
| **File Size** | Medium | Large | Small |
|
|
243
|
-
| **Human Readable** | ✅ Yes | ✅ Yes | ❌ No |
|
|
244
|
-
| **Analytics** | Poor | Poor | Excellent |
|
|
245
|
-
| **Updates** | Easy | Easy | Difficult |
|
|
246
|
-
| **SDK Support** | CSVParserService | JSONParser | ParquetParser |
|
|
247
|
-
|
|
248
|
-
### When to Choose Each
|
|
249
|
-
|
|
250
|
-
**CSV**:
|
|
251
|
-
- Small datasets (< 100K records)
|
|
252
|
-
- Human-readable data
|
|
253
|
-
- Simple data exchange
|
|
254
|
-
- Frequent manual inspection
|
|
255
|
-
|
|
256
|
-
**JSON**:
|
|
257
|
-
- Nested/hierarchical data
|
|
258
|
-
- API responses
|
|
259
|
-
- Configuration files
|
|
260
|
-
- Web applications
|
|
261
|
-
|
|
262
|
-
**Parquet**:
|
|
263
|
-
- Large datasets (> 100K records)
|
|
264
|
-
- Analytics workloads
|
|
265
|
-
- Data warehouse integration
|
|
266
|
-
- Cloud storage optimization
|
|
267
|
-
|
|
268
|
-
---
|
|
269
|
-
|
|
270
|
-
## Performance Expectations
|
|
271
|
-
|
|
272
|
-
### SDK ParquetParserService Benchmarks
|
|
273
|
-
|
|
274
|
-
Based on test files in `fc-connect-sdk/tests/fixtures/parquet/`:
|
|
275
|
-
|
|
276
|
-
| File Size | Records | Processing Time | Throughput |
|
|
277
|
-
|-----------|---------|-----------------|------------|
|
|
278
|
-
| **3-10 KB** | 10-50 | < 10 ms | 5,000+ rec/sec |
|
|
279
|
-
| **170-336 KB** | 1,000-2,000 | 50-100 ms | 20,000 rec/sec |
|
|
280
|
-
| **1.7 MB** | 10,000 | 200-300 ms | 35,000 rec/sec |
|
|
281
|
-
| **8.5 MB** | 50,000 | 800 ms - 1 sec | 50,000 rec/sec |
|
|
282
|
-
| **17 MB** | 100,000 | 1.5-2 sec | 55,000 rec/sec |
|
|
283
|
-
| **85 MB** | 500,000 | 6-8 sec | 65,000 rec/sec |
|
|
284
|
-
| **169 MB** | 1,000,000 | 12-15 sec | 70,000 rec/sec |
|
|
285
|
-
|
|
286
|
-
**Hardware**: Standard Node.js runtime, 8GB RAM
|
|
287
|
-
**Configuration**: Default batch size (1,000), streaming enabled
|
|
288
|
-
|
|
289
|
-
### Memory Usage
|
|
290
|
-
|
|
291
|
-
- **Small files (< 10 MB)**: ~10-20 MB RAM
|
|
292
|
-
- **Medium files (10-100 MB)**: ~50-100 MB RAM
|
|
293
|
-
- **Large files (> 100 MB)**: ~100-200 MB RAM with streaming
|
|
294
|
-
|
|
295
|
-
**Note**: Streaming mode keeps memory usage low regardless of file size.
|
|
296
|
-
|
|
297
|
-
---
|
|
298
|
-
|
|
299
|
-
## Architecture Integration
|
|
300
|
-
|
|
301
|
-
### Where Parquet Fits in SDK Workflows
|
|
302
|
-
|
|
303
|
-
```
|
|
304
|
-
┌─────────────────────────────────────────────────┐
|
|
305
|
-
│ Fluent Commerce GraphQL API │
|
|
306
|
-
└────────────────┬────────────────────────────────┘
|
|
307
|
-
│
|
|
308
|
-
▼
|
|
309
|
-
┌───────────────┐
|
|
310
|
-
│ FluentClient │
|
|
311
|
-
│ (GraphQL) │
|
|
312
|
-
└───────┬───────┘
|
|
313
|
-
│
|
|
314
|
-
▼
|
|
315
|
-
┌────────────────┐
|
|
316
|
-
│ Auto-Pagination│ ← Extract large datasets
|
|
317
|
-
└───────┬────────┘
|
|
318
|
-
│
|
|
319
|
-
▼
|
|
320
|
-
┌────────────────┐
|
|
321
|
-
│ Universal │ ← Transform fields
|
|
322
|
-
│ Mapper │
|
|
323
|
-
└───────┬────────┘
|
|
324
|
-
│
|
|
325
|
-
▼
|
|
326
|
-
┌────────────────────────────┐
|
|
327
|
-
│ Parquet Writer │ ← Convert to Parquet
|
|
328
|
-
│ (parquetjs library) │
|
|
329
|
-
└────────────┬───────────────┘
|
|
330
|
-
│
|
|
331
|
-
▼
|
|
332
|
-
┌────────────────────────────┐
|
|
333
|
-
│ S3DataSource │ ← Upload to S3
|
|
334
|
-
└────────────┬───────────────┘
|
|
335
|
-
│
|
|
336
|
-
▼
|
|
337
|
-
┌────────────────────────────┐
|
|
338
|
-
│ Data Warehouse │ ← Analytics
|
|
339
|
-
│ (Snowflake, Redshift) │
|
|
340
|
-
└────────────────────────────┘
|
|
341
|
-
|
|
342
|
-
═════════════════════════════════════════
|
|
343
|
-
|
|
344
|
-
┌────────────────────────────┐
|
|
345
|
-
│ S3 Data Lake │
|
|
346
|
-
└────────────┬───────────────┘
|
|
347
|
-
│
|
|
348
|
-
▼
|
|
349
|
-
┌────────────────────────────┐
|
|
350
|
-
│ S3DataSource │ ← Download from S3
|
|
351
|
-
└────────────┬───────────────┘
|
|
352
|
-
│
|
|
353
|
-
▼
|
|
354
|
-
┌────────────────────────────┐
|
|
355
|
-
│ ParquetParserService │ ← Parse Parquet ✅
|
|
356
|
-
└────────────┬───────────────┘
|
|
357
|
-
│
|
|
358
|
-
▼
|
|
359
|
-
┌────────────────────────────┐
|
|
360
|
-
│ Universal Mapper │ ← Transform to Fluent
|
|
361
|
-
└────────────┬───────────────┘
|
|
362
|
-
│
|
|
363
|
-
▼
|
|
364
|
-
┌────────────────────────────┐
|
|
365
|
-
│ Batch API │ ← Upsert to Fluent
|
|
366
|
-
└────────────────────────────┘
|
|
367
|
-
```
|
|
368
|
-
|
|
369
|
-
---
|
|
370
|
-
|
|
371
|
-
## Key Takeaways
|
|
372
|
-
|
|
373
|
-
- 🎯 **Parquet is columnar** - Optimized for analytics, not row-by-row access
|
|
374
|
-
- 🎯 **Use for large datasets** - 100K+ records, data warehouse integration
|
|
375
|
-
- 🎯 **SDK provides reading** - Full parsing, streaming, validation (not writing)
|
|
376
|
-
- 🎯 **Business value** - Faster analytics, lower storage costs, better performance
|
|
377
|
-
- 🎯 **Real-world use** - Inventory extracts, product catalogs, order history
|
|
378
|
-
|
|
379
|
-
---
|
|
380
|
-
|
|
381
|
-
## Next Steps
|
|
382
|
-
|
|
383
|
-
Continue to [Module 2: Quick Start](.././modules/03-pattern-guides-parquet-02-quick-start.md) to see ParquetParserService in action with hands-on examples.
|
|
384
|
-
|
|
385
|
-
---
|
|
386
|
-
|
|
387
|
-
[← Back to Guide](../parquet-readme.md) | [Next: Module 2 - Quick Start →](.././modules/03-pattern-guides-parquet-02-quick-start.md)
|
|
388
|
-
|
|
389
|
-
## Related Documentation
|
|
390
|
-
|
|
391
|
-
- [Data Extraction Guide](../../extraction/) - GraphQL extraction workflows
|
|
392
|
-
- [S3 Data Source Guide](../../../02-CORE-GUIDES/data-sources/data-sources-readme.md) - S3 integration patterns
|
|
393
|
-
- [Universal Mapping Guide](../../../02-CORE-GUIDES/mapping/) - Field transformation
|
|
1
|
+
# Module 1: Introduction to Parquet Processing
|
|
2
|
+
|
|
3
|
+
[← Back to Parquet Guide](../parquet-readme.md)
|
|
4
|
+
|
|
5
|
+
**Module 1 of 8** | **Level**: Beginner | **Time**: 10 minutes
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Overview
|
|
10
|
+
|
|
11
|
+
This module introduces **Parquet file processing** in the Fluent Connect SDK, explaining what Parquet is, when to use it, and why it's essential for modern data integration and analytics workflows.
|
|
12
|
+
|
|
13
|
+
## Learning Objectives
|
|
14
|
+
|
|
15
|
+
By the end of this module, you will:
|
|
16
|
+
- ✅ Understand what Parquet format is and why it matters
|
|
17
|
+
- ✅ Know when to use Parquet vs other formats (CSV, JSON, XML)
|
|
18
|
+
- ✅ Recognize key features and benefits of the SDK's ParquetParserService
|
|
19
|
+
- ✅ Identify real-world business use cases for Parquet processing
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## What is Parquet?
|
|
24
|
+
|
|
25
|
+
**Apache Parquet** is an open-source, columnar storage file format designed for efficient data storage and retrieval, particularly for analytics workloads.
|
|
26
|
+
|
|
27
|
+
### Row-Based vs Columnar Storage
|
|
28
|
+
|
|
29
|
+
**Traditional Row-Based Formats** (CSV, JSON):
|
|
30
|
+
```
|
|
31
|
+
Record 1: { sku: "ABC", location: "WH1", qty: 100, status: "AVAILABLE" }
|
|
32
|
+
Record 2: { sku: "DEF", location: "WH2", qty: 50, status: "RESERVED" }
|
|
33
|
+
Record 3: { sku: "GHI", location: "WH3", qty: 200, status: "AVAILABLE" }
|
|
34
|
+
|
|
35
|
+
Storage: [Record 1][Record 2][Record 3]
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
To query "all quantities", you must read **all fields** of **all records**.
|
|
39
|
+
|
|
40
|
+
**Columnar Format** (Parquet):
|
|
41
|
+
```
|
|
42
|
+
Column 'sku': ["ABC", "DEF", "GHI"]
|
|
43
|
+
Column 'location': ["WH1", "WH2", "WH3"]
|
|
44
|
+
Column 'qty': [100, 50, 200]
|
|
45
|
+
Column 'status': ["AVAILABLE", "RESERVED", "AVAILABLE"]
|
|
46
|
+
|
|
47
|
+
Storage: [sku column][location column][qty column][status column]
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
To query "all quantities", you read **only the qty column** - much faster and more efficient.
|
|
51
|
+
|
|
52
|
+
### Key Characteristics
|
|
53
|
+
|
|
54
|
+
1. **Columnar Storage**: Data organized by columns, not rows
|
|
55
|
+
2. **Compression**: Built-in compression (SNAPPY, GZIP, etc.)
|
|
56
|
+
3. **Schema Enforcement**: Strongly typed with defined schema
|
|
57
|
+
4. **Efficient Encoding**: Column-specific encoding for optimal size
|
|
58
|
+
5. **Metadata Rich**: Column statistics, data types, min/max values
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
## Why Use Parquet?
|
|
63
|
+
|
|
64
|
+
### Performance Benefits
|
|
65
|
+
|
|
66
|
+
| Benefit | Description | Impact |
|
|
67
|
+
|---------|-------------|--------|
|
|
68
|
+
| **Faster Analytics** | Read only columns needed | 10-100x faster queries |
|
|
69
|
+
| **Smaller Files** | Compression + encoding | 50-80% size reduction |
|
|
70
|
+
| **Better I/O** | Reduced disk reads | Lower cloud storage costs |
|
|
71
|
+
| **Column Pruning** | Skip irrelevant data | Faster processing |
|
|
72
|
+
|
|
73
|
+
### Real-World Example
|
|
74
|
+
|
|
75
|
+
**Scenario**: Extract 1 million inventory positions from Fluent Commerce for analytics
|
|
76
|
+
|
|
77
|
+
**CSV Format**:
|
|
78
|
+
- File size: ~200 MB
|
|
79
|
+
- Query for quantities: Read entire 200 MB
|
|
80
|
+
- Processing time: ~30 seconds
|
|
81
|
+
|
|
82
|
+
**Parquet Format**:
|
|
83
|
+
- File size: ~40 MB (80% reduction)
|
|
84
|
+
- Query for quantities: Read only qty column (~4 MB)
|
|
85
|
+
- Processing time: ~2 seconds (15x faster)
|
|
86
|
+
|
|
87
|
+
---
|
|
88
|
+
|
|
89
|
+
## When to Use Parquet
|
|
90
|
+
|
|
91
|
+
### Ideal Use Cases
|
|
92
|
+
|
|
93
|
+
✅ **Large-Scale Data Extraction**
|
|
94
|
+
- Daily inventory snapshots (millions of positions)
|
|
95
|
+
- Product catalog exports (hundreds of thousands of products)
|
|
96
|
+
- Historical order data (long-term analysis)
|
|
97
|
+
|
|
98
|
+
✅ **Data Warehouse Integration**
|
|
99
|
+
- ETL pipelines to analytics platforms
|
|
100
|
+
- Data lake storage (S3, Azure Data Lake)
|
|
101
|
+
- Business intelligence reporting
|
|
102
|
+
|
|
103
|
+
✅ **Analytics Workloads**
|
|
104
|
+
- Aggregation queries (SUM, AVG, COUNT)
|
|
105
|
+
- Time-series analysis
|
|
106
|
+
- Column-specific filtering
|
|
107
|
+
|
|
108
|
+
✅ **Cloud Storage Optimization**
|
|
109
|
+
- Reduce S3/blob storage costs
|
|
110
|
+
- Faster data transfers
|
|
111
|
+
- Lower bandwidth usage
|
|
112
|
+
|
|
113
|
+
### When NOT to Use Parquet
|
|
114
|
+
|
|
115
|
+
❌ **Small Datasets** (< 10,000 records)
|
|
116
|
+
- Overhead not worth it
|
|
117
|
+
- Use CSV or JSON instead
|
|
118
|
+
|
|
119
|
+
❌ **Frequent Updates**
|
|
120
|
+
- Parquet is write-once, read-many
|
|
121
|
+
- Better for batch processing
|
|
122
|
+
|
|
123
|
+
❌ **Human Readability**
|
|
124
|
+
- Binary format, not human-readable
|
|
125
|
+
- Use CSV for manual inspection
|
|
126
|
+
|
|
127
|
+
❌ **Real-Time Streaming**
|
|
128
|
+
- Better suited for batch operations
|
|
129
|
+
- Use Kafka/streaming formats for real-time
|
|
130
|
+
|
|
131
|
+
---
|
|
132
|
+
|
|
133
|
+
## Business Context
|
|
134
|
+
|
|
135
|
+
### Inventory Management
|
|
136
|
+
|
|
137
|
+
**Use Case**: Daily inventory extract for data warehouse
|
|
138
|
+
|
|
139
|
+
**Business Goal**: Provide analytics team with inventory positions for reporting and forecasting
|
|
140
|
+
|
|
141
|
+
**Parquet Benefits**:
|
|
142
|
+
- Extract 2M positions → 50 MB Parquet file (vs 250 MB CSV)
|
|
143
|
+
- Query by location → Read only locationRef column
|
|
144
|
+
- Historical analysis → Partitioned by date for efficient queries
|
|
145
|
+
|
|
146
|
+
**Example Flow**:
|
|
147
|
+
```
|
|
148
|
+
Fluent Commerce GraphQL
|
|
149
|
+
↓ (Extraction with pagination)
|
|
150
|
+
Parquet File (inventory_2025-10-19.parquet)
|
|
151
|
+
↓ (Upload to S3)
|
|
152
|
+
Data Warehouse (Snowflake, Redshift, BigQuery)
|
|
153
|
+
↓ (Analytics queries)
|
|
154
|
+
Business Intelligence Dashboard
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
### Product Catalog
|
|
158
|
+
|
|
159
|
+
**Use Case**: Product catalog sync to external systems
|
|
160
|
+
|
|
161
|
+
**Business Goal**: Keep e-commerce platform synchronized with Fluent Commerce product data
|
|
162
|
+
|
|
163
|
+
**Parquet Benefits**:
|
|
164
|
+
- Incremental updates → Compare only changed columns
|
|
165
|
+
- Attribute analysis → Query specific product attributes
|
|
166
|
+
- Catalog versioning → Historical snapshots
|
|
167
|
+
|
|
168
|
+
### Order Management
|
|
169
|
+
|
|
170
|
+
**Use Case**: Historical order data for BI reporting
|
|
171
|
+
|
|
172
|
+
**Business Goal**: Analyze order trends, customer behavior, revenue patterns
|
|
173
|
+
|
|
174
|
+
**Parquet Benefits**:
|
|
175
|
+
- Long-term storage → Compressed historical data
|
|
176
|
+
- Time-series queries → Partitioned by order date
|
|
177
|
+
- Customer analysis → Filter by customer attributes efficiently
|
|
178
|
+
|
|
179
|
+
---
|
|
180
|
+
|
|
181
|
+
## SDK ParquetParserService Overview
|
|
182
|
+
|
|
183
|
+
The Fluent Connect SDK provides **fully functional** Parquet processing via the `ParquetParserService`.
|
|
184
|
+
|
|
185
|
+
### Key Features
|
|
186
|
+
|
|
187
|
+
| Feature | Description |
|
|
188
|
+
|---------|-------------|
|
|
189
|
+
| **Powered by hyparquet** | High-performance Parquet library |
|
|
190
|
+
| **Streaming Support** | Process large files without loading into memory |
|
|
191
|
+
| **Validation** | Built-in schema and data validation |
|
|
192
|
+
| **Statistics** | Column statistics for data profiling |
|
|
193
|
+
| **Batch Processing** | Configurable batch sizes for memory control |
|
|
194
|
+
| **Performance Metrics** | Track throughput and processing time |
|
|
195
|
+
|
|
196
|
+
### What's Included
|
|
197
|
+
|
|
198
|
+
✅ **Reading Parquet Files**
|
|
199
|
+
- Parse from ArrayBuffer, Buffer, or S3
|
|
200
|
+
- Stream large files with memory efficiency
|
|
201
|
+
- Column selection and filtering
|
|
202
|
+
|
|
203
|
+
✅ **Validation & Statistics**
|
|
204
|
+
- Schema validation (required columns, types)
|
|
205
|
+
- Column statistics (nulls, unique values, min/max)
|
|
206
|
+
- Data quality profiling
|
|
207
|
+
|
|
208
|
+
✅ **Performance Optimization**
|
|
209
|
+
- Configurable batch sizes
|
|
210
|
+
- Streaming for large datasets
|
|
211
|
+
- Performance metrics tracking
|
|
212
|
+
|
|
213
|
+
✅ **Integration**
|
|
214
|
+
- Seamless S3 integration
|
|
215
|
+
- GraphQL extraction workflows
|
|
216
|
+
- Universal field mapping
|
|
217
|
+
|
|
218
|
+
### What's NOT Included
|
|
219
|
+
|
|
220
|
+
❌ **Writing Parquet Files**
|
|
221
|
+
- SDK focuses on reading/parsing
|
|
222
|
+
- For writing, use `parquetjs` library separately
|
|
223
|
+
- See [Module 4: Writing Parquet](./03-pattern-guides-parquet-04-writing-parquet.md) for patterns
|
|
224
|
+
|
|
225
|
+
❌ **Complex Queries**
|
|
226
|
+
- No SQL-like query engine
|
|
227
|
+
- Filter in application code after parsing
|
|
228
|
+
- Use dedicated analytics tools (Spark, Presto) for complex queries
|
|
229
|
+
|
|
230
|
+
---
|
|
231
|
+
|
|
232
|
+
## Comparison with Other Formats
|
|
233
|
+
|
|
234
|
+
### CSV vs JSON vs Parquet
|
|
235
|
+
|
|
236
|
+
| Aspect | CSV | JSON | Parquet |
|
|
237
|
+
|--------|-----|------|---------|
|
|
238
|
+
| **Storage** | Row-based | Row-based | Columnar |
|
|
239
|
+
| **Compression** | Minimal | Minimal | Excellent (50-80%) |
|
|
240
|
+
| **Schema** | No schema | No schema | Strongly typed |
|
|
241
|
+
| **Read Speed** | Moderate | Slow | Very Fast (analytics) |
|
|
242
|
+
| **File Size** | Medium | Large | Small |
|
|
243
|
+
| **Human Readable** | ✅ Yes | ✅ Yes | ❌ No |
|
|
244
|
+
| **Analytics** | Poor | Poor | Excellent |
|
|
245
|
+
| **Updates** | Easy | Easy | Difficult |
|
|
246
|
+
| **SDK Support** | CSVParserService | JSONParser | ParquetParser |
|
|
247
|
+
|
|
248
|
+
### When to Choose Each
|
|
249
|
+
|
|
250
|
+
**CSV**:
|
|
251
|
+
- Small datasets (< 100K records)
|
|
252
|
+
- Human-readable data
|
|
253
|
+
- Simple data exchange
|
|
254
|
+
- Frequent manual inspection
|
|
255
|
+
|
|
256
|
+
**JSON**:
|
|
257
|
+
- Nested/hierarchical data
|
|
258
|
+
- API responses
|
|
259
|
+
- Configuration files
|
|
260
|
+
- Web applications
|
|
261
|
+
|
|
262
|
+
**Parquet**:
|
|
263
|
+
- Large datasets (> 100K records)
|
|
264
|
+
- Analytics workloads
|
|
265
|
+
- Data warehouse integration
|
|
266
|
+
- Cloud storage optimization
|
|
267
|
+
|
|
268
|
+
---
|
|
269
|
+
|
|
270
|
+
## Performance Expectations
|
|
271
|
+
|
|
272
|
+
### SDK ParquetParserService Benchmarks
|
|
273
|
+
|
|
274
|
+
Based on test files in `fc-connect-sdk/tests/fixtures/parquet/`:
|
|
275
|
+
|
|
276
|
+
| File Size | Records | Processing Time | Throughput |
|
|
277
|
+
|-----------|---------|-----------------|------------|
|
|
278
|
+
| **3-10 KB** | 10-50 | < 10 ms | 5,000+ rec/sec |
|
|
279
|
+
| **170-336 KB** | 1,000-2,000 | 50-100 ms | 20,000 rec/sec |
|
|
280
|
+
| **1.7 MB** | 10,000 | 200-300 ms | 35,000 rec/sec |
|
|
281
|
+
| **8.5 MB** | 50,000 | 800 ms - 1 sec | 50,000 rec/sec |
|
|
282
|
+
| **17 MB** | 100,000 | 1.5-2 sec | 55,000 rec/sec |
|
|
283
|
+
| **85 MB** | 500,000 | 6-8 sec | 65,000 rec/sec |
|
|
284
|
+
| **169 MB** | 1,000,000 | 12-15 sec | 70,000 rec/sec |
|
|
285
|
+
|
|
286
|
+
**Hardware**: Standard Node.js runtime, 8GB RAM
|
|
287
|
+
**Configuration**: Default batch size (1,000), streaming enabled
|
|
288
|
+
|
|
289
|
+
### Memory Usage
|
|
290
|
+
|
|
291
|
+
- **Small files (< 10 MB)**: ~10-20 MB RAM
|
|
292
|
+
- **Medium files (10-100 MB)**: ~50-100 MB RAM
|
|
293
|
+
- **Large files (> 100 MB)**: ~100-200 MB RAM with streaming
|
|
294
|
+
|
|
295
|
+
**Note**: Streaming mode keeps memory usage low regardless of file size.
|
|
296
|
+
|
|
297
|
+
---
|
|
298
|
+
|
|
299
|
+
## Architecture Integration
|
|
300
|
+
|
|
301
|
+
### Where Parquet Fits in SDK Workflows
|
|
302
|
+
|
|
303
|
+
```
|
|
304
|
+
┌─────────────────────────────────────────────────┐
|
|
305
|
+
│ Fluent Commerce GraphQL API │
|
|
306
|
+
└────────────────┬────────────────────────────────┘
|
|
307
|
+
│
|
|
308
|
+
▼
|
|
309
|
+
┌───────────────┐
|
|
310
|
+
│ FluentClient │
|
|
311
|
+
│ (GraphQL) │
|
|
312
|
+
└───────┬───────┘
|
|
313
|
+
│
|
|
314
|
+
▼
|
|
315
|
+
┌────────────────┐
|
|
316
|
+
│ Auto-Pagination│ ← Extract large datasets
|
|
317
|
+
└───────┬────────┘
|
|
318
|
+
│
|
|
319
|
+
▼
|
|
320
|
+
┌────────────────┐
|
|
321
|
+
│ Universal │ ← Transform fields
|
|
322
|
+
│ Mapper │
|
|
323
|
+
└───────┬────────┘
|
|
324
|
+
│
|
|
325
|
+
▼
|
|
326
|
+
┌────────────────────────────┐
|
|
327
|
+
│ Parquet Writer │ ← Convert to Parquet
|
|
328
|
+
│ (parquetjs library) │
|
|
329
|
+
└────────────┬───────────────┘
|
|
330
|
+
│
|
|
331
|
+
▼
|
|
332
|
+
┌────────────────────────────┐
|
|
333
|
+
│ S3DataSource │ ← Upload to S3
|
|
334
|
+
└────────────┬───────────────┘
|
|
335
|
+
│
|
|
336
|
+
▼
|
|
337
|
+
┌────────────────────────────┐
|
|
338
|
+
│ Data Warehouse │ ← Analytics
|
|
339
|
+
│ (Snowflake, Redshift) │
|
|
340
|
+
└────────────────────────────┘
|
|
341
|
+
|
|
342
|
+
═════════════════════════════════════════
|
|
343
|
+
|
|
344
|
+
┌────────────────────────────┐
|
|
345
|
+
│ S3 Data Lake │
|
|
346
|
+
└────────────┬───────────────┘
|
|
347
|
+
│
|
|
348
|
+
▼
|
|
349
|
+
┌────────────────────────────┐
|
|
350
|
+
│ S3DataSource │ ← Download from S3
|
|
351
|
+
└────────────┬───────────────┘
|
|
352
|
+
│
|
|
353
|
+
▼
|
|
354
|
+
┌────────────────────────────┐
|
|
355
|
+
│ ParquetParserService │ ← Parse Parquet ✅
|
|
356
|
+
└────────────┬───────────────┘
|
|
357
|
+
│
|
|
358
|
+
▼
|
|
359
|
+
┌────────────────────────────┐
|
|
360
|
+
│ Universal Mapper │ ← Transform to Fluent
|
|
361
|
+
└────────────┬───────────────┘
|
|
362
|
+
│
|
|
363
|
+
▼
|
|
364
|
+
┌────────────────────────────┐
|
|
365
|
+
│ Batch API │ ← Upsert to Fluent
|
|
366
|
+
└────────────────────────────┘
|
|
367
|
+
```
|
|
368
|
+
|
|
369
|
+
---
|
|
370
|
+
|
|
371
|
+
## Key Takeaways
|
|
372
|
+
|
|
373
|
+
- 🎯 **Parquet is columnar** - Optimized for analytics, not row-by-row access
|
|
374
|
+
- 🎯 **Use for large datasets** - 100K+ records, data warehouse integration
|
|
375
|
+
- 🎯 **SDK provides reading** - Full parsing, streaming, validation (not writing)
|
|
376
|
+
- 🎯 **Business value** - Faster analytics, lower storage costs, better performance
|
|
377
|
+
- 🎯 **Real-world use** - Inventory extracts, product catalogs, order history
|
|
378
|
+
|
|
379
|
+
---
|
|
380
|
+
|
|
381
|
+
## Next Steps
|
|
382
|
+
|
|
383
|
+
Continue to [Module 2: Quick Start](.././modules/03-pattern-guides-parquet-02-quick-start.md) to see ParquetParserService in action with hands-on examples.
|
|
384
|
+
|
|
385
|
+
---
|
|
386
|
+
|
|
387
|
+
[← Back to Guide](../parquet-readme.md) | [Next: Module 2 - Quick Start →](.././modules/03-pattern-guides-parquet-02-quick-start.md)
|
|
388
|
+
|
|
389
|
+
## Related Documentation
|
|
390
|
+
|
|
391
|
+
- [Data Extraction Guide](../../extraction/) - GraphQL extraction workflows
|
|
392
|
+
- [S3 Data Source Guide](../../../02-CORE-GUIDES/data-sources/data-sources-readme.md) - S3 integration patterns
|
|
393
|
+
- [Universal Mapping Guide](../../../02-CORE-GUIDES/mapping/) - Field transformation
|