Skip to content

Commit 05b029b

Browse files
committed
source-shopify-native: support multiple Shopify stores
Add support for capturing data from multiple Shopify stores in a single capture task. Key changes: - Endpoint config now accepts a list of stores with individual credentials - State is always dict-based, keyed by store_id - Collection keys include `/_meta/store` for new captures - Legacy single-store captures maintain backward compatibility with `["/id"]` keys - Automatic state migration from flat to dict-based format - Validation ensures backfill acknowledgment when: - Adding multiple stores to a legacy capture - Re-enabling bindings that missed a key structure transition
1 parent 981a8e2 commit 05b029b

33 files changed

Lines changed: 1465 additions & 524 deletions
Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,39 @@
1-
---
21
$defs:
32
Meta:
43
properties:
54
op:
65
default: u
7-
description: "Operation type (c: Create, u: Update, d: Delete)"
6+
description: 'Operation type (c: Create, u: Update, d: Delete)'
87
enum:
9-
- c
10-
- u
11-
- d
8+
- c
9+
- u
10+
- d
1211
title: Op
1312
type: string
1413
row_id:
1514
default: -1
16-
description: "Row ID of the Document, counting up from zero, or -1 if not known"
15+
description: Row ID of the Document, counting up from zero, or -1 if not known
1716
title: Row Id
1817
type: integer
18+
store:
19+
anyOf:
20+
- type: string
21+
- type: 'null'
22+
default: null
23+
description: The Shopify store this document belongs to
24+
title: Store
1925
title: Meta
2026
type: object
2127
additionalProperties: true
2228
properties:
2329
_meta:
24-
$ref: "#/$defs/Meta"
25-
default:
26-
op: u
27-
row_id: -1
30+
$ref: '#/$defs/Meta'
2831
description: Document metadata
2932
id:
3033
title: Id
3134
type: string
3235
required:
33-
- id
36+
- id
3437
title: ShopifyGraphQLResource
3538
type: object
3639
x-infer-schema: true
Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,39 @@
1-
---
21
$defs:
32
Meta:
43
properties:
54
op:
65
default: u
7-
description: "Operation type (c: Create, u: Update, d: Delete)"
6+
description: 'Operation type (c: Create, u: Update, d: Delete)'
87
enum:
9-
- c
10-
- u
11-
- d
8+
- c
9+
- u
10+
- d
1211
title: Op
1312
type: string
1413
row_id:
1514
default: -1
16-
description: "Row ID of the Document, counting up from zero, or -1 if not known"
15+
description: Row ID of the Document, counting up from zero, or -1 if not known
1716
title: Row Id
1817
type: integer
18+
store:
19+
anyOf:
20+
- type: string
21+
- type: 'null'
22+
default: null
23+
description: The Shopify store this document belongs to
24+
title: Store
1925
title: Meta
2026
type: object
2127
additionalProperties: true
2228
properties:
2329
_meta:
24-
$ref: "#/$defs/Meta"
25-
default:
26-
op: u
27-
row_id: -1
30+
$ref: '#/$defs/Meta'
2831
description: Document metadata
2932
id:
3033
title: Id
3134
type: string
3235
required:
33-
- id
36+
- id
3437
title: ShopifyGraphQLResource
3538
type: object
3639
x-infer-schema: true
Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,39 @@
1-
---
21
$defs:
32
Meta:
43
properties:
54
op:
65
default: u
7-
description: "Operation type (c: Create, u: Update, d: Delete)"
6+
description: 'Operation type (c: Create, u: Update, d: Delete)'
87
enum:
9-
- c
10-
- u
11-
- d
8+
- c
9+
- u
10+
- d
1211
title: Op
1312
type: string
1413
row_id:
1514
default: -1
16-
description: "Row ID of the Document, counting up from zero, or -1 if not known"
15+
description: Row ID of the Document, counting up from zero, or -1 if not known
1716
title: Row Id
1817
type: integer
18+
store:
19+
anyOf:
20+
- type: string
21+
- type: 'null'
22+
default: null
23+
description: The Shopify store this document belongs to
24+
title: Store
1925
title: Meta
2026
type: object
2127
additionalProperties: true
2228
properties:
2329
_meta:
24-
$ref: "#/$defs/Meta"
25-
default:
26-
op: u
27-
row_id: -1
30+
$ref: '#/$defs/Meta'
2831
description: Document metadata
2932
id:
3033
title: Id
3134
type: string
3235
required:
33-
- id
36+
- id
3437
title: ShopifyGraphQLResource
3538
type: object
3639
x-infer-schema: true
Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,39 @@
1-
---
21
$defs:
32
Meta:
43
properties:
54
op:
65
default: u
7-
description: "Operation type (c: Create, u: Update, d: Delete)"
6+
description: 'Operation type (c: Create, u: Update, d: Delete)'
87
enum:
9-
- c
10-
- u
11-
- d
8+
- c
9+
- u
10+
- d
1211
title: Op
1312
type: string
1413
row_id:
1514
default: -1
16-
description: "Row ID of the Document, counting up from zero, or -1 if not known"
15+
description: Row ID of the Document, counting up from zero, or -1 if not known
1716
title: Row Id
1817
type: integer
18+
store:
19+
anyOf:
20+
- type: string
21+
- type: 'null'
22+
default: null
23+
description: The Shopify store this document belongs to
24+
title: Store
1925
title: Meta
2026
type: object
2127
additionalProperties: true
2228
properties:
2329
_meta:
24-
$ref: "#/$defs/Meta"
25-
default:
26-
op: u
27-
row_id: -1
30+
$ref: '#/$defs/Meta'
2831
description: Document metadata
2932
id:
3033
title: Id
3134
type: string
3235
required:
33-
- id
36+
- id
3437
title: ShopifyGraphQLResource
3538
type: object
3639
x-infer-schema: true
Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,39 @@
1-
---
21
$defs:
32
Meta:
43
properties:
54
op:
65
default: u
7-
description: "Operation type (c: Create, u: Update, d: Delete)"
6+
description: 'Operation type (c: Create, u: Update, d: Delete)'
87
enum:
9-
- c
10-
- u
11-
- d
8+
- c
9+
- u
10+
- d
1211
title: Op
1312
type: string
1413
row_id:
1514
default: -1
16-
description: "Row ID of the Document, counting up from zero, or -1 if not known"
15+
description: Row ID of the Document, counting up from zero, or -1 if not known
1716
title: Row Id
1817
type: integer
18+
store:
19+
anyOf:
20+
- type: string
21+
- type: 'null'
22+
default: null
23+
description: The Shopify store this document belongs to
24+
title: Store
1925
title: Meta
2026
type: object
2127
additionalProperties: true
2228
properties:
2329
_meta:
24-
$ref: "#/$defs/Meta"
25-
default:
26-
op: u
27-
row_id: -1
30+
$ref: '#/$defs/Meta'
2831
description: Document metadata
2932
id:
3033
title: Id
3134
type: string
3235
required:
33-
- id
36+
- id
3437
title: ShopifyGraphQLResource
3538
type: object
3639
x-infer-schema: true

0 commit comments

Comments
 (0)