airweave-sdk 0.8.64__py3-none-any.whl → 0.8.66__py3-none-any.whl

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.
Files changed (46) hide show
  1. airweave/__init__.py +44 -38
  2. airweave/client.py +19 -16
  3. airweave/collections/__init__.py +3 -6
  4. airweave/collections/client.py +273 -113
  5. airweave/collections/raw_client.py +633 -94
  6. airweave/collections/types/__init__.py +2 -4
  7. airweave/core/client_wrapper.py +4 -30
  8. airweave/errors/__init__.py +10 -2
  9. airweave/errors/conflict_error.py +11 -0
  10. airweave/errors/not_found_error.py +11 -0
  11. airweave/errors/too_many_requests_error.py +11 -0
  12. airweave/errors/unprocessable_entity_error.py +1 -2
  13. airweave/{types/message_status.py → events/__init__.py} +2 -1
  14. airweave/events/client.py +919 -0
  15. airweave/events/raw_client.py +1435 -0
  16. airweave/source_connections/client.py +210 -162
  17. airweave/source_connections/raw_client.py +574 -137
  18. airweave/sources/client.py +42 -18
  19. airweave/sources/raw_client.py +118 -17
  20. airweave/types/__init__.py +33 -33
  21. airweave/types/{create_subscription_request.py → conflict_error_response.py} +9 -6
  22. airweave/types/delivery_attempt.py +61 -0
  23. airweave/types/event_message.py +55 -0
  24. airweave/types/event_message_with_attempts.py +59 -0
  25. airweave/types/{endpoint_secret_out.py → not_found_error_response.py} +9 -2
  26. airweave/types/{subscription_with_attempts_out.py → rate_limit_error_response.py} +9 -6
  27. airweave/types/recovery_task.py +35 -0
  28. airweave/types/search_request.py +13 -10
  29. airweave/types/search_response.py +6 -3
  30. airweave/types/source_connection.py +73 -18
  31. airweave/types/source_connection_job.py +65 -15
  32. airweave/types/source_connection_list_item.py +45 -10
  33. airweave/types/sync_event_payload.py +72 -0
  34. airweave/types/{patch_subscription_request.py → validation_error_detail.py} +16 -5
  35. airweave/types/validation_error_response.py +30 -0
  36. airweave/types/webhook_subscription.py +68 -0
  37. {airweave_sdk-0.8.64.dist-info → airweave_sdk-0.8.66.dist-info}/METADATA +1 -5
  38. {airweave_sdk-0.8.64.dist-info → airweave_sdk-0.8.66.dist-info}/RECORD +39 -34
  39. airweave/collections/types/search_collections_readable_id_search_post_response.py +0 -8
  40. airweave/types/collection_update.py +0 -35
  41. airweave/types/endpoint_out.py +0 -35
  42. airweave/types/message_attempt_out.py +0 -37
  43. airweave/types/message_attempt_trigger_type.py +0 -3
  44. airweave/types/message_out.py +0 -29
  45. airweave/types/message_status_text.py +0 -5
  46. {airweave_sdk-0.8.64.dist-info → airweave_sdk-0.8.66.dist-info}/WHEEL +0 -0
@@ -39,7 +39,13 @@ class SourceConnectionsClient:
39
39
  request_options: typing.Optional[RequestOptions] = None,
40
40
  ) -> typing.List[SourceConnectionListItem]:
41
41
  """
42
- List source connections with minimal fields for performance.
42
+ Retrieve all source connections for your organization.
43
+
44
+ Returns a lightweight list of source connections with essential fields for
45
+ display and navigation. Use the collection filter to see connections within
46
+ a specific collection.
47
+
48
+ For full connection details including sync history, use the GET /{id} endpoint.
43
49
 
44
50
  Parameters
45
51
  ----------
@@ -47,8 +53,10 @@ class SourceConnectionsClient:
47
53
  Filter by collection readable ID
48
54
 
49
55
  skip : typing.Optional[int]
56
+ Number of connections to skip for pagination
50
57
 
51
58
  limit : typing.Optional[int]
59
+ Maximum number of connections to return (1-1000)
52
60
 
53
61
  request_options : typing.Optional[RequestOptions]
54
62
  Request-specific configuration.
@@ -56,21 +64,19 @@ class SourceConnectionsClient:
56
64
  Returns
57
65
  -------
58
66
  typing.List[SourceConnectionListItem]
59
- Successful Response
67
+ List of source connections
60
68
 
61
69
  Examples
62
70
  --------
63
71
  from airweave import AirweaveSDK
64
72
 
65
73
  client = AirweaveSDK(
66
- framework_name="YOUR_FRAMEWORK_NAME",
67
- framework_version="YOUR_FRAMEWORK_VERSION",
68
74
  api_key="YOUR_API_KEY",
69
75
  )
70
76
  client.source_connections.list(
71
77
  collection="collection",
72
- skip=1,
73
- limit=1,
78
+ skip=0,
79
+ limit=100,
74
80
  )
75
81
  """
76
82
  _response = self._raw_client.list(
@@ -93,45 +99,42 @@ class SourceConnectionsClient:
93
99
  request_options: typing.Optional[RequestOptions] = None,
94
100
  ) -> SourceConnection:
95
101
  """
96
- Create a new source connection.
102
+ Create a new source connection to sync data from an external source.
97
103
 
98
- The authentication configuration determines the flow:
99
- - DirectAuthentication: Immediate creation with provided credentials
100
- - OAuthBrowserAuthentication: Returns shell with authentication URL
101
- - OAuthTokenAuthentication: Immediate creation with provided token
102
- - AuthProviderAuthentication: Using external auth provider
104
+ The authentication method determines the creation flow:
103
105
 
104
- BYOC (Bring Your Own Client) is detected when client_id and client_secret
105
- are provided in OAuthBrowserAuthentication.
106
+ - **Direct**: Provide credentials (API key, token) directly. Connection is created immediately.
107
+ - **OAuth Browser**: Returns a connection with an `auth_url` to redirect users for authentication.
108
+ - **OAuth Token**: Provide an existing OAuth token. Connection is created immediately.
109
+ - **Auth Provider**: Use a pre-configured auth provider (e.g., Composio, Pipedream).
106
110
 
107
- sync_immediately defaults:
108
- - True for: direct, oauth_token, auth_provider
109
- - False for: oauth_browser, oauth_byoc (these sync after authentication)
111
+ After successful authentication, data sync can begin automatically or on-demand.
110
112
 
111
113
  Parameters
112
114
  ----------
113
115
  short_name : str
114
- Source identifier (e.g., 'slack', 'github')
116
+ Source type identifier (e.g., 'slack', 'github', 'notion')
115
117
 
116
118
  readable_collection_id : str
117
- Collection readable ID
119
+ The readable ID of the collection to add this connection to
118
120
 
119
121
  name : typing.Optional[str]
120
- Connection name (defaults to '{Source Name} Connection')
122
+ Display name for the connection. If not provided, defaults to '{Source Name} Connection'.
121
123
 
122
124
  description : typing.Optional[str]
123
- Connection description
125
+ Optional description of what this connection is used for
124
126
 
125
127
  config : typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]]
126
- Source-specific configuration
128
+ Source-specific configuration (e.g., repository name, filters)
127
129
 
128
130
  schedule : typing.Optional[ScheduleConfig]
131
+ Optional sync schedule configuration
129
132
 
130
133
  sync_immediately : typing.Optional[bool]
131
134
  Run initial sync after creation. Defaults to True for direct/token/auth_provider, False for OAuth browser/BYOC flows (which sync after authentication)
132
135
 
133
136
  authentication : typing.Optional[Authentication]
134
- Authentication config (defaults to OAuth browser flow for OAuth sources)
137
+ Authentication configuration. Type is auto-detected from provided fields.
135
138
 
136
139
  redirect_url : typing.Optional[str]
137
140
  URL to redirect to after OAuth flow completes (only used for OAuth flows)
@@ -142,20 +145,18 @@ class SourceConnectionsClient:
142
145
  Returns
143
146
  -------
144
147
  SourceConnection
145
- Successful Response
148
+ Created source connection
146
149
 
147
150
  Examples
148
151
  --------
149
152
  from airweave import AirweaveSDK
150
153
 
151
154
  client = AirweaveSDK(
152
- framework_name="YOUR_FRAMEWORK_NAME",
153
- framework_version="YOUR_FRAMEWORK_VERSION",
154
155
  api_key="YOUR_API_KEY",
155
156
  )
156
157
  client.source_connections.create(
157
- short_name="short_name",
158
- readable_collection_id="readable_collection_id",
158
+ short_name="github",
159
+ readable_collection_id="customer-support-tickets-x7k9m",
159
160
  )
160
161
  """
161
162
  _response = self._raw_client.create(
@@ -176,11 +177,18 @@ class SourceConnectionsClient:
176
177
  self, source_connection_id: str, *, request_options: typing.Optional[RequestOptions] = None
177
178
  ) -> SourceConnection:
178
179
  """
179
- Get a source connection with optional depth expansion.
180
+ Retrieve details of a specific source connection.
181
+
182
+ Returns complete information about the connection including:
183
+ - Configuration settings
184
+ - Authentication status
185
+ - Sync schedule and history
186
+ - Entity statistics
180
187
 
181
188
  Parameters
182
189
  ----------
183
190
  source_connection_id : str
191
+ Unique identifier of the source connection (UUID)
184
192
 
185
193
  request_options : typing.Optional[RequestOptions]
186
194
  Request-specific configuration.
@@ -188,19 +196,17 @@ class SourceConnectionsClient:
188
196
  Returns
189
197
  -------
190
198
  SourceConnection
191
- Successful Response
199
+ Source connection details
192
200
 
193
201
  Examples
194
202
  --------
195
203
  from airweave import AirweaveSDK
196
204
 
197
205
  client = AirweaveSDK(
198
- framework_name="YOUR_FRAMEWORK_NAME",
199
- framework_version="YOUR_FRAMEWORK_VERSION",
200
206
  api_key="YOUR_API_KEY",
201
207
  )
202
208
  client.source_connections.get(
203
- source_connection_id="source_connection_id",
209
+ source_connection_id="550e8400-e29b-41d4-a716-446655440000",
204
210
  )
205
211
  """
206
212
  _response = self._raw_client.get(source_connection_id, request_options=request_options)
@@ -210,11 +216,19 @@ class SourceConnectionsClient:
210
216
  self, source_connection_id: str, *, request_options: typing.Optional[RequestOptions] = None
211
217
  ) -> SourceConnection:
212
218
  """
213
- Delete a source connection and all related data.
219
+ Permanently delete a source connection and all its synced data.
220
+
221
+ This operation:
222
+ - Removes all entities synced from this source from the vector database
223
+ - Cancels any scheduled or running sync jobs
224
+ - Deletes the connection configuration and credentials
225
+
226
+ **Warning**: This action cannot be undone. All synced data will be permanently deleted.
214
227
 
215
228
  Parameters
216
229
  ----------
217
230
  source_connection_id : str
231
+ Unique identifier of the source connection to delete (UUID)
218
232
 
219
233
  request_options : typing.Optional[RequestOptions]
220
234
  Request-specific configuration.
@@ -222,19 +236,17 @@ class SourceConnectionsClient:
222
236
  Returns
223
237
  -------
224
238
  SourceConnection
225
- Successful Response
239
+ Deleted source connection
226
240
 
227
241
  Examples
228
242
  --------
229
243
  from airweave import AirweaveSDK
230
244
 
231
245
  client = AirweaveSDK(
232
- framework_name="YOUR_FRAMEWORK_NAME",
233
- framework_version="YOUR_FRAMEWORK_VERSION",
234
246
  api_key="YOUR_API_KEY",
235
247
  )
236
248
  client.source_connections.delete(
237
- source_connection_id="source_connection_id",
249
+ source_connection_id="550e8400-e29b-41d4-a716-446655440000",
238
250
  )
239
251
  """
240
252
  _response = self._raw_client.delete(source_connection_id, request_options=request_options)
@@ -252,29 +264,35 @@ class SourceConnectionsClient:
252
264
  request_options: typing.Optional[RequestOptions] = None,
253
265
  ) -> SourceConnection:
254
266
  """
255
- Update a source connection.
267
+ Update an existing source connection's configuration.
256
268
 
257
- Updateable fields:
258
- - name, description
259
- - config_fields
260
- - cron_schedule
261
- - auth_fields (direct auth only)
269
+ You can modify:
270
+ - **Name and description**: Display information
271
+ - **Configuration**: Source-specific settings (e.g., repository name, filters)
272
+ - **Schedule**: Cron expression for automatic syncs
273
+ - **Authentication**: Update credentials (direct auth only)
274
+
275
+ Only include the fields you want to change; omitted fields retain their current values.
262
276
 
263
277
  Parameters
264
278
  ----------
265
279
  source_connection_id : str
280
+ Unique identifier of the source connection to update (UUID)
266
281
 
267
282
  name : typing.Optional[str]
283
+ Updated display name for the connection
268
284
 
269
285
  description : typing.Optional[str]
286
+ Updated description
270
287
 
271
288
  config : typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]]
272
- Source-specific configuration
289
+ Updated source-specific configuration
273
290
 
274
291
  schedule : typing.Optional[ScheduleConfig]
292
+ Updated sync schedule configuration
275
293
 
276
294
  authentication : typing.Optional[Authentication]
277
- Authentication config (defaults to OAuth browser flow for OAuth sources)
295
+ Updated authentication credentials (direct auth only)
278
296
 
279
297
  request_options : typing.Optional[RequestOptions]
280
298
  Request-specific configuration.
@@ -282,19 +300,17 @@ class SourceConnectionsClient:
282
300
  Returns
283
301
  -------
284
302
  SourceConnection
285
- Successful Response
303
+ Updated source connection
286
304
 
287
305
  Examples
288
306
  --------
289
307
  from airweave import AirweaveSDK
290
308
 
291
309
  client = AirweaveSDK(
292
- framework_name="YOUR_FRAMEWORK_NAME",
293
- framework_version="YOUR_FRAMEWORK_VERSION",
294
310
  api_key="YOUR_API_KEY",
295
311
  )
296
312
  client.source_connections.update(
297
- source_connection_id="source_connection_id",
313
+ source_connection_id="550e8400-e29b-41d4-a716-446655440000",
298
314
  )
299
315
  """
300
316
  _response = self._raw_client.update(
@@ -316,25 +332,22 @@ class SourceConnectionsClient:
316
332
  request_options: typing.Optional[RequestOptions] = None,
317
333
  ) -> SourceConnectionJob:
318
334
  """
319
- Trigger a sync run for a source connection.
335
+ Trigger a data synchronization job for a source connection.
320
336
 
321
- Runs are always executed through Temporal workflow engine.
337
+ Starts an asynchronous sync job that pulls the latest data from the connected
338
+ source. The job runs in the background and you can monitor its progress using
339
+ the jobs endpoint.
322
340
 
323
- Args:
324
- db: Database session
325
- source_connection_id: ID of the source connection to run
326
- ctx: API context with organization and user information
327
- guard_rail: Guard rail service for usage limits
328
- force_full_sync: If True, forces a full sync with orphaned entity cleanup
329
- for continuous syncs. Raises 400 error if used on
330
- non-continuous syncs (which are always full syncs).
341
+ For continuous sync connections, this performs an incremental sync by default.
342
+ Use `force_full_sync=true` to perform a complete re-sync of all data.
331
343
 
332
344
  Parameters
333
345
  ----------
334
346
  source_connection_id : str
347
+ Unique identifier of the source connection to sync (UUID)
335
348
 
336
349
  force_full_sync : typing.Optional[bool]
337
- Force a full sync ignoring cursor data instead of waiting for the daily cleanup schedule. Only allowed for continuous syncs.
350
+ Force a full sync ignoring cursor data. Only applies to continuous sync connections. Non-continuous connections always perform full syncs.
338
351
 
339
352
  request_options : typing.Optional[RequestOptions]
340
353
  Request-specific configuration.
@@ -342,20 +355,18 @@ class SourceConnectionsClient:
342
355
  Returns
343
356
  -------
344
357
  SourceConnectionJob
345
- Successful Response
358
+ Created sync job
346
359
 
347
360
  Examples
348
361
  --------
349
362
  from airweave import AirweaveSDK
350
363
 
351
364
  client = AirweaveSDK(
352
- framework_name="YOUR_FRAMEWORK_NAME",
353
- framework_version="YOUR_FRAMEWORK_VERSION",
354
365
  api_key="YOUR_API_KEY",
355
366
  )
356
367
  client.source_connections.run(
357
- source_connection_id="source_connection_id",
358
- force_full_sync=True,
368
+ source_connection_id="550e8400-e29b-41d4-a716-446655440000",
369
+ force_full_sync=False,
359
370
  )
360
371
  """
361
372
  _response = self._raw_client.run(
@@ -371,13 +382,26 @@ class SourceConnectionsClient:
371
382
  request_options: typing.Optional[RequestOptions] = None,
372
383
  ) -> typing.List[SourceConnectionJob]:
373
384
  """
374
- Get sync jobs for a source connection.
385
+ Retrieve the sync job history for a source connection.
386
+
387
+ Returns a list of sync jobs ordered by creation time (newest first). Each job
388
+ includes status, timing information, and entity counts.
389
+
390
+ Job statuses:
391
+ - **PENDING**: Job is queued and waiting to start
392
+ - **RUNNING**: Sync is actively pulling and processing data
393
+ - **COMPLETED**: Sync finished successfully
394
+ - **FAILED**: Sync encountered an error
395
+ - **CANCELLED**: Sync was manually cancelled
396
+ - **CANCELLING**: Cancellation has been requested
375
397
 
376
398
  Parameters
377
399
  ----------
378
400
  source_connection_id : str
401
+ Unique identifier of the source connection (UUID)
379
402
 
380
403
  limit : typing.Optional[int]
404
+ Maximum number of jobs to return (1-1000)
381
405
 
382
406
  request_options : typing.Optional[RequestOptions]
383
407
  Request-specific configuration.
@@ -385,20 +409,18 @@ class SourceConnectionsClient:
385
409
  Returns
386
410
  -------
387
411
  typing.List[SourceConnectionJob]
388
- Successful Response
412
+ List of sync jobs
389
413
 
390
414
  Examples
391
415
  --------
392
416
  from airweave import AirweaveSDK
393
417
 
394
418
  client = AirweaveSDK(
395
- framework_name="YOUR_FRAMEWORK_NAME",
396
- framework_version="YOUR_FRAMEWORK_VERSION",
397
419
  api_key="YOUR_API_KEY",
398
420
  )
399
421
  client.source_connections.get_source_connection_jobs(
400
- source_connection_id="source_connection_id",
401
- limit=1,
422
+ source_connection_id="550e8400-e29b-41d4-a716-446655440000",
423
+ limit=100,
402
424
  )
403
425
  """
404
426
  _response = self._raw_client.get_source_connection_jobs(
@@ -410,17 +432,21 @@ class SourceConnectionsClient:
410
432
  self, source_connection_id: str, job_id: str, *, request_options: typing.Optional[RequestOptions] = None
411
433
  ) -> SourceConnectionJob:
412
434
  """
413
- Cancel a running sync job for a source connection.
435
+ Request cancellation of a running sync job.
436
+
437
+ The job will be marked as CANCELLING and the sync workflow will stop at the
438
+ next checkpoint. Already-processed entities are retained.
414
439
 
415
- This endpoint requests cancellation and marks the job as CANCELLING.
416
- The workflow updates the final status to CANCELLED when it processes
417
- the cancellation request.
440
+ **Note**: Cancellation is asynchronous. The job status will change to CANCELLED
441
+ once the workflow has fully stopped.
418
442
 
419
443
  Parameters
420
444
  ----------
421
445
  source_connection_id : str
446
+ Unique identifier of the source connection (UUID)
422
447
 
423
448
  job_id : str
449
+ Unique identifier of the sync job to cancel (UUID)
424
450
 
425
451
  request_options : typing.Optional[RequestOptions]
426
452
  Request-specific configuration.
@@ -428,20 +454,18 @@ class SourceConnectionsClient:
428
454
  Returns
429
455
  -------
430
456
  SourceConnectionJob
431
- Successful Response
457
+ Job with cancellation status
432
458
 
433
459
  Examples
434
460
  --------
435
461
  from airweave import AirweaveSDK
436
462
 
437
463
  client = AirweaveSDK(
438
- framework_name="YOUR_FRAMEWORK_NAME",
439
- framework_version="YOUR_FRAMEWORK_VERSION",
440
464
  api_key="YOUR_API_KEY",
441
465
  )
442
466
  client.source_connections.cancel_job(
443
- source_connection_id="source_connection_id",
444
- job_id="job_id",
467
+ source_connection_id="550e8400-e29b-41d4-a716-446655440000",
468
+ job_id="660e8400-e29b-41d4-a716-446655440001",
445
469
  )
446
470
  """
447
471
  _response = self._raw_client.cancel_job(source_connection_id, job_id, request_options=request_options)
@@ -472,7 +496,13 @@ class AsyncSourceConnectionsClient:
472
496
  request_options: typing.Optional[RequestOptions] = None,
473
497
  ) -> typing.List[SourceConnectionListItem]:
474
498
  """
475
- List source connections with minimal fields for performance.
499
+ Retrieve all source connections for your organization.
500
+
501
+ Returns a lightweight list of source connections with essential fields for
502
+ display and navigation. Use the collection filter to see connections within
503
+ a specific collection.
504
+
505
+ For full connection details including sync history, use the GET /{id} endpoint.
476
506
 
477
507
  Parameters
478
508
  ----------
@@ -480,8 +510,10 @@ class AsyncSourceConnectionsClient:
480
510
  Filter by collection readable ID
481
511
 
482
512
  skip : typing.Optional[int]
513
+ Number of connections to skip for pagination
483
514
 
484
515
  limit : typing.Optional[int]
516
+ Maximum number of connections to return (1-1000)
485
517
 
486
518
  request_options : typing.Optional[RequestOptions]
487
519
  Request-specific configuration.
@@ -489,7 +521,7 @@ class AsyncSourceConnectionsClient:
489
521
  Returns
490
522
  -------
491
523
  typing.List[SourceConnectionListItem]
492
- Successful Response
524
+ List of source connections
493
525
 
494
526
  Examples
495
527
  --------
@@ -498,8 +530,6 @@ class AsyncSourceConnectionsClient:
498
530
  from airweave import AsyncAirweaveSDK
499
531
 
500
532
  client = AsyncAirweaveSDK(
501
- framework_name="YOUR_FRAMEWORK_NAME",
502
- framework_version="YOUR_FRAMEWORK_VERSION",
503
533
  api_key="YOUR_API_KEY",
504
534
  )
505
535
 
@@ -507,8 +537,8 @@ class AsyncSourceConnectionsClient:
507
537
  async def main() -> None:
508
538
  await client.source_connections.list(
509
539
  collection="collection",
510
- skip=1,
511
- limit=1,
540
+ skip=0,
541
+ limit=100,
512
542
  )
513
543
 
514
544
 
@@ -534,45 +564,42 @@ class AsyncSourceConnectionsClient:
534
564
  request_options: typing.Optional[RequestOptions] = None,
535
565
  ) -> SourceConnection:
536
566
  """
537
- Create a new source connection.
567
+ Create a new source connection to sync data from an external source.
538
568
 
539
- The authentication configuration determines the flow:
540
- - DirectAuthentication: Immediate creation with provided credentials
541
- - OAuthBrowserAuthentication: Returns shell with authentication URL
542
- - OAuthTokenAuthentication: Immediate creation with provided token
543
- - AuthProviderAuthentication: Using external auth provider
569
+ The authentication method determines the creation flow:
544
570
 
545
- BYOC (Bring Your Own Client) is detected when client_id and client_secret
546
- are provided in OAuthBrowserAuthentication.
571
+ - **Direct**: Provide credentials (API key, token) directly. Connection is created immediately.
572
+ - **OAuth Browser**: Returns a connection with an `auth_url` to redirect users for authentication.
573
+ - **OAuth Token**: Provide an existing OAuth token. Connection is created immediately.
574
+ - **Auth Provider**: Use a pre-configured auth provider (e.g., Composio, Pipedream).
547
575
 
548
- sync_immediately defaults:
549
- - True for: direct, oauth_token, auth_provider
550
- - False for: oauth_browser, oauth_byoc (these sync after authentication)
576
+ After successful authentication, data sync can begin automatically or on-demand.
551
577
 
552
578
  Parameters
553
579
  ----------
554
580
  short_name : str
555
- Source identifier (e.g., 'slack', 'github')
581
+ Source type identifier (e.g., 'slack', 'github', 'notion')
556
582
 
557
583
  readable_collection_id : str
558
- Collection readable ID
584
+ The readable ID of the collection to add this connection to
559
585
 
560
586
  name : typing.Optional[str]
561
- Connection name (defaults to '{Source Name} Connection')
587
+ Display name for the connection. If not provided, defaults to '{Source Name} Connection'.
562
588
 
563
589
  description : typing.Optional[str]
564
- Connection description
590
+ Optional description of what this connection is used for
565
591
 
566
592
  config : typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]]
567
- Source-specific configuration
593
+ Source-specific configuration (e.g., repository name, filters)
568
594
 
569
595
  schedule : typing.Optional[ScheduleConfig]
596
+ Optional sync schedule configuration
570
597
 
571
598
  sync_immediately : typing.Optional[bool]
572
599
  Run initial sync after creation. Defaults to True for direct/token/auth_provider, False for OAuth browser/BYOC flows (which sync after authentication)
573
600
 
574
601
  authentication : typing.Optional[Authentication]
575
- Authentication config (defaults to OAuth browser flow for OAuth sources)
602
+ Authentication configuration. Type is auto-detected from provided fields.
576
603
 
577
604
  redirect_url : typing.Optional[str]
578
605
  URL to redirect to after OAuth flow completes (only used for OAuth flows)
@@ -583,7 +610,7 @@ class AsyncSourceConnectionsClient:
583
610
  Returns
584
611
  -------
585
612
  SourceConnection
586
- Successful Response
613
+ Created source connection
587
614
 
588
615
  Examples
589
616
  --------
@@ -592,16 +619,14 @@ class AsyncSourceConnectionsClient:
592
619
  from airweave import AsyncAirweaveSDK
593
620
 
594
621
  client = AsyncAirweaveSDK(
595
- framework_name="YOUR_FRAMEWORK_NAME",
596
- framework_version="YOUR_FRAMEWORK_VERSION",
597
622
  api_key="YOUR_API_KEY",
598
623
  )
599
624
 
600
625
 
601
626
  async def main() -> None:
602
627
  await client.source_connections.create(
603
- short_name="short_name",
604
- readable_collection_id="readable_collection_id",
628
+ short_name="github",
629
+ readable_collection_id="customer-support-tickets-x7k9m",
605
630
  )
606
631
 
607
632
 
@@ -625,11 +650,18 @@ class AsyncSourceConnectionsClient:
625
650
  self, source_connection_id: str, *, request_options: typing.Optional[RequestOptions] = None
626
651
  ) -> SourceConnection:
627
652
  """
628
- Get a source connection with optional depth expansion.
653
+ Retrieve details of a specific source connection.
654
+
655
+ Returns complete information about the connection including:
656
+ - Configuration settings
657
+ - Authentication status
658
+ - Sync schedule and history
659
+ - Entity statistics
629
660
 
630
661
  Parameters
631
662
  ----------
632
663
  source_connection_id : str
664
+ Unique identifier of the source connection (UUID)
633
665
 
634
666
  request_options : typing.Optional[RequestOptions]
635
667
  Request-specific configuration.
@@ -637,7 +669,7 @@ class AsyncSourceConnectionsClient:
637
669
  Returns
638
670
  -------
639
671
  SourceConnection
640
- Successful Response
672
+ Source connection details
641
673
 
642
674
  Examples
643
675
  --------
@@ -646,15 +678,13 @@ class AsyncSourceConnectionsClient:
646
678
  from airweave import AsyncAirweaveSDK
647
679
 
648
680
  client = AsyncAirweaveSDK(
649
- framework_name="YOUR_FRAMEWORK_NAME",
650
- framework_version="YOUR_FRAMEWORK_VERSION",
651
681
  api_key="YOUR_API_KEY",
652
682
  )
653
683
 
654
684
 
655
685
  async def main() -> None:
656
686
  await client.source_connections.get(
657
- source_connection_id="source_connection_id",
687
+ source_connection_id="550e8400-e29b-41d4-a716-446655440000",
658
688
  )
659
689
 
660
690
 
@@ -667,11 +697,19 @@ class AsyncSourceConnectionsClient:
667
697
  self, source_connection_id: str, *, request_options: typing.Optional[RequestOptions] = None
668
698
  ) -> SourceConnection:
669
699
  """
670
- Delete a source connection and all related data.
700
+ Permanently delete a source connection and all its synced data.
701
+
702
+ This operation:
703
+ - Removes all entities synced from this source from the vector database
704
+ - Cancels any scheduled or running sync jobs
705
+ - Deletes the connection configuration and credentials
706
+
707
+ **Warning**: This action cannot be undone. All synced data will be permanently deleted.
671
708
 
672
709
  Parameters
673
710
  ----------
674
711
  source_connection_id : str
712
+ Unique identifier of the source connection to delete (UUID)
675
713
 
676
714
  request_options : typing.Optional[RequestOptions]
677
715
  Request-specific configuration.
@@ -679,7 +717,7 @@ class AsyncSourceConnectionsClient:
679
717
  Returns
680
718
  -------
681
719
  SourceConnection
682
- Successful Response
720
+ Deleted source connection
683
721
 
684
722
  Examples
685
723
  --------
@@ -688,15 +726,13 @@ class AsyncSourceConnectionsClient:
688
726
  from airweave import AsyncAirweaveSDK
689
727
 
690
728
  client = AsyncAirweaveSDK(
691
- framework_name="YOUR_FRAMEWORK_NAME",
692
- framework_version="YOUR_FRAMEWORK_VERSION",
693
729
  api_key="YOUR_API_KEY",
694
730
  )
695
731
 
696
732
 
697
733
  async def main() -> None:
698
734
  await client.source_connections.delete(
699
- source_connection_id="source_connection_id",
735
+ source_connection_id="550e8400-e29b-41d4-a716-446655440000",
700
736
  )
701
737
 
702
738
 
@@ -717,29 +753,35 @@ class AsyncSourceConnectionsClient:
717
753
  request_options: typing.Optional[RequestOptions] = None,
718
754
  ) -> SourceConnection:
719
755
  """
720
- Update a source connection.
756
+ Update an existing source connection's configuration.
721
757
 
722
- Updateable fields:
723
- - name, description
724
- - config_fields
725
- - cron_schedule
726
- - auth_fields (direct auth only)
758
+ You can modify:
759
+ - **Name and description**: Display information
760
+ - **Configuration**: Source-specific settings (e.g., repository name, filters)
761
+ - **Schedule**: Cron expression for automatic syncs
762
+ - **Authentication**: Update credentials (direct auth only)
763
+
764
+ Only include the fields you want to change; omitted fields retain their current values.
727
765
 
728
766
  Parameters
729
767
  ----------
730
768
  source_connection_id : str
769
+ Unique identifier of the source connection to update (UUID)
731
770
 
732
771
  name : typing.Optional[str]
772
+ Updated display name for the connection
733
773
 
734
774
  description : typing.Optional[str]
775
+ Updated description
735
776
 
736
777
  config : typing.Optional[typing.Dict[str, typing.Optional[typing.Any]]]
737
- Source-specific configuration
778
+ Updated source-specific configuration
738
779
 
739
780
  schedule : typing.Optional[ScheduleConfig]
781
+ Updated sync schedule configuration
740
782
 
741
783
  authentication : typing.Optional[Authentication]
742
- Authentication config (defaults to OAuth browser flow for OAuth sources)
784
+ Updated authentication credentials (direct auth only)
743
785
 
744
786
  request_options : typing.Optional[RequestOptions]
745
787
  Request-specific configuration.
@@ -747,7 +789,7 @@ class AsyncSourceConnectionsClient:
747
789
  Returns
748
790
  -------
749
791
  SourceConnection
750
- Successful Response
792
+ Updated source connection
751
793
 
752
794
  Examples
753
795
  --------
@@ -756,15 +798,13 @@ class AsyncSourceConnectionsClient:
756
798
  from airweave import AsyncAirweaveSDK
757
799
 
758
800
  client = AsyncAirweaveSDK(
759
- framework_name="YOUR_FRAMEWORK_NAME",
760
- framework_version="YOUR_FRAMEWORK_VERSION",
761
801
  api_key="YOUR_API_KEY",
762
802
  )
763
803
 
764
804
 
765
805
  async def main() -> None:
766
806
  await client.source_connections.update(
767
- source_connection_id="source_connection_id",
807
+ source_connection_id="550e8400-e29b-41d4-a716-446655440000",
768
808
  )
769
809
 
770
810
 
@@ -789,25 +829,22 @@ class AsyncSourceConnectionsClient:
789
829
  request_options: typing.Optional[RequestOptions] = None,
790
830
  ) -> SourceConnectionJob:
791
831
  """
792
- Trigger a sync run for a source connection.
832
+ Trigger a data synchronization job for a source connection.
793
833
 
794
- Runs are always executed through Temporal workflow engine.
834
+ Starts an asynchronous sync job that pulls the latest data from the connected
835
+ source. The job runs in the background and you can monitor its progress using
836
+ the jobs endpoint.
795
837
 
796
- Args:
797
- db: Database session
798
- source_connection_id: ID of the source connection to run
799
- ctx: API context with organization and user information
800
- guard_rail: Guard rail service for usage limits
801
- force_full_sync: If True, forces a full sync with orphaned entity cleanup
802
- for continuous syncs. Raises 400 error if used on
803
- non-continuous syncs (which are always full syncs).
838
+ For continuous sync connections, this performs an incremental sync by default.
839
+ Use `force_full_sync=true` to perform a complete re-sync of all data.
804
840
 
805
841
  Parameters
806
842
  ----------
807
843
  source_connection_id : str
844
+ Unique identifier of the source connection to sync (UUID)
808
845
 
809
846
  force_full_sync : typing.Optional[bool]
810
- Force a full sync ignoring cursor data instead of waiting for the daily cleanup schedule. Only allowed for continuous syncs.
847
+ Force a full sync ignoring cursor data. Only applies to continuous sync connections. Non-continuous connections always perform full syncs.
811
848
 
812
849
  request_options : typing.Optional[RequestOptions]
813
850
  Request-specific configuration.
@@ -815,7 +852,7 @@ class AsyncSourceConnectionsClient:
815
852
  Returns
816
853
  -------
817
854
  SourceConnectionJob
818
- Successful Response
855
+ Created sync job
819
856
 
820
857
  Examples
821
858
  --------
@@ -824,16 +861,14 @@ class AsyncSourceConnectionsClient:
824
861
  from airweave import AsyncAirweaveSDK
825
862
 
826
863
  client = AsyncAirweaveSDK(
827
- framework_name="YOUR_FRAMEWORK_NAME",
828
- framework_version="YOUR_FRAMEWORK_VERSION",
829
864
  api_key="YOUR_API_KEY",
830
865
  )
831
866
 
832
867
 
833
868
  async def main() -> None:
834
869
  await client.source_connections.run(
835
- source_connection_id="source_connection_id",
836
- force_full_sync=True,
870
+ source_connection_id="550e8400-e29b-41d4-a716-446655440000",
871
+ force_full_sync=False,
837
872
  )
838
873
 
839
874
 
@@ -852,13 +887,26 @@ class AsyncSourceConnectionsClient:
852
887
  request_options: typing.Optional[RequestOptions] = None,
853
888
  ) -> typing.List[SourceConnectionJob]:
854
889
  """
855
- Get sync jobs for a source connection.
890
+ Retrieve the sync job history for a source connection.
891
+
892
+ Returns a list of sync jobs ordered by creation time (newest first). Each job
893
+ includes status, timing information, and entity counts.
894
+
895
+ Job statuses:
896
+ - **PENDING**: Job is queued and waiting to start
897
+ - **RUNNING**: Sync is actively pulling and processing data
898
+ - **COMPLETED**: Sync finished successfully
899
+ - **FAILED**: Sync encountered an error
900
+ - **CANCELLED**: Sync was manually cancelled
901
+ - **CANCELLING**: Cancellation has been requested
856
902
 
857
903
  Parameters
858
904
  ----------
859
905
  source_connection_id : str
906
+ Unique identifier of the source connection (UUID)
860
907
 
861
908
  limit : typing.Optional[int]
909
+ Maximum number of jobs to return (1-1000)
862
910
 
863
911
  request_options : typing.Optional[RequestOptions]
864
912
  Request-specific configuration.
@@ -866,7 +914,7 @@ class AsyncSourceConnectionsClient:
866
914
  Returns
867
915
  -------
868
916
  typing.List[SourceConnectionJob]
869
- Successful Response
917
+ List of sync jobs
870
918
 
871
919
  Examples
872
920
  --------
@@ -875,16 +923,14 @@ class AsyncSourceConnectionsClient:
875
923
  from airweave import AsyncAirweaveSDK
876
924
 
877
925
  client = AsyncAirweaveSDK(
878
- framework_name="YOUR_FRAMEWORK_NAME",
879
- framework_version="YOUR_FRAMEWORK_VERSION",
880
926
  api_key="YOUR_API_KEY",
881
927
  )
882
928
 
883
929
 
884
930
  async def main() -> None:
885
931
  await client.source_connections.get_source_connection_jobs(
886
- source_connection_id="source_connection_id",
887
- limit=1,
932
+ source_connection_id="550e8400-e29b-41d4-a716-446655440000",
933
+ limit=100,
888
934
  )
889
935
 
890
936
 
@@ -899,17 +945,21 @@ class AsyncSourceConnectionsClient:
899
945
  self, source_connection_id: str, job_id: str, *, request_options: typing.Optional[RequestOptions] = None
900
946
  ) -> SourceConnectionJob:
901
947
  """
902
- Cancel a running sync job for a source connection.
948
+ Request cancellation of a running sync job.
949
+
950
+ The job will be marked as CANCELLING and the sync workflow will stop at the
951
+ next checkpoint. Already-processed entities are retained.
903
952
 
904
- This endpoint requests cancellation and marks the job as CANCELLING.
905
- The workflow updates the final status to CANCELLED when it processes
906
- the cancellation request.
953
+ **Note**: Cancellation is asynchronous. The job status will change to CANCELLED
954
+ once the workflow has fully stopped.
907
955
 
908
956
  Parameters
909
957
  ----------
910
958
  source_connection_id : str
959
+ Unique identifier of the source connection (UUID)
911
960
 
912
961
  job_id : str
962
+ Unique identifier of the sync job to cancel (UUID)
913
963
 
914
964
  request_options : typing.Optional[RequestOptions]
915
965
  Request-specific configuration.
@@ -917,7 +967,7 @@ class AsyncSourceConnectionsClient:
917
967
  Returns
918
968
  -------
919
969
  SourceConnectionJob
920
- Successful Response
970
+ Job with cancellation status
921
971
 
922
972
  Examples
923
973
  --------
@@ -926,16 +976,14 @@ class AsyncSourceConnectionsClient:
926
976
  from airweave import AsyncAirweaveSDK
927
977
 
928
978
  client = AsyncAirweaveSDK(
929
- framework_name="YOUR_FRAMEWORK_NAME",
930
- framework_version="YOUR_FRAMEWORK_VERSION",
931
979
  api_key="YOUR_API_KEY",
932
980
  )
933
981
 
934
982
 
935
983
  async def main() -> None:
936
984
  await client.source_connections.cancel_job(
937
- source_connection_id="source_connection_id",
938
- job_id="job_id",
985
+ source_connection_id="550e8400-e29b-41d4-a716-446655440000",
986
+ job_id="660e8400-e29b-41d4-a716-446655440001",
939
987
  )
940
988
 
941
989