airbyte-agent-linear 0.19.22__tar.gz → 0.19.45__tar.gz

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.

Potentially problematic release.


This version of airbyte-agent-linear might be problematic. Click here for more details.

Files changed (62) hide show
  1. {airbyte_agent_linear-0.19.22 → airbyte_agent_linear-0.19.45}/CHANGELOG.md +115 -0
  2. {airbyte_agent_linear-0.19.22 → airbyte_agent_linear-0.19.45}/PKG-INFO +18 -15
  3. {airbyte_agent_linear-0.19.22 → airbyte_agent_linear-0.19.45}/README.md +8 -4
  4. {airbyte_agent_linear-0.19.22 → airbyte_agent_linear-0.19.45}/REFERENCE.md +4 -4
  5. airbyte_agent_linear-0.19.45/airbyte_agent_linear/__init__.py +81 -0
  6. {airbyte_agent_linear-0.19.22 → airbyte_agent_linear-0.19.45}/airbyte_agent_linear/_vendored/connector_sdk/auth_strategies.py +2 -5
  7. {airbyte_agent_linear-0.19.22 → airbyte_agent_linear-0.19.45}/airbyte_agent_linear/_vendored/connector_sdk/auth_template.py +1 -1
  8. {airbyte_agent_linear-0.19.22 → airbyte_agent_linear-0.19.45}/airbyte_agent_linear/_vendored/connector_sdk/cloud_utils/client.py +26 -26
  9. {airbyte_agent_linear-0.19.22 → airbyte_agent_linear-0.19.45}/airbyte_agent_linear/_vendored/connector_sdk/connector_model_loader.py +14 -6
  10. {airbyte_agent_linear-0.19.22 → airbyte_agent_linear-0.19.45}/airbyte_agent_linear/_vendored/connector_sdk/constants.py +1 -1
  11. {airbyte_agent_linear-0.19.22 → airbyte_agent_linear-0.19.45}/airbyte_agent_linear/_vendored/connector_sdk/executor/hosted_executor.py +10 -11
  12. {airbyte_agent_linear-0.19.22 → airbyte_agent_linear-0.19.45}/airbyte_agent_linear/_vendored/connector_sdk/executor/local_executor.py +171 -34
  13. {airbyte_agent_linear-0.19.22 → airbyte_agent_linear-0.19.45}/airbyte_agent_linear/_vendored/connector_sdk/extensions.py +43 -5
  14. {airbyte_agent_linear-0.19.22 → airbyte_agent_linear-0.19.45}/airbyte_agent_linear/_vendored/connector_sdk/http/response.py +2 -0
  15. airbyte_agent_linear-0.19.45/airbyte_agent_linear/_vendored/connector_sdk/introspection.py +262 -0
  16. {airbyte_agent_linear-0.19.22 → airbyte_agent_linear-0.19.45}/airbyte_agent_linear/_vendored/connector_sdk/logging/logger.py +9 -9
  17. {airbyte_agent_linear-0.19.22 → airbyte_agent_linear-0.19.45}/airbyte_agent_linear/_vendored/connector_sdk/logging/types.py +10 -10
  18. airbyte_agent_linear-0.19.45/airbyte_agent_linear/_vendored/connector_sdk/observability/config.py +179 -0
  19. {airbyte_agent_linear-0.19.22 → airbyte_agent_linear-0.19.45}/airbyte_agent_linear/_vendored/connector_sdk/observability/models.py +6 -6
  20. {airbyte_agent_linear-0.19.22 → airbyte_agent_linear-0.19.45}/airbyte_agent_linear/_vendored/connector_sdk/observability/session.py +41 -32
  21. {airbyte_agent_linear-0.19.22 → airbyte_agent_linear-0.19.45}/airbyte_agent_linear/_vendored/connector_sdk/performance/metrics.py +3 -3
  22. {airbyte_agent_linear-0.19.22 → airbyte_agent_linear-0.19.45}/airbyte_agent_linear/_vendored/connector_sdk/schema/base.py +21 -18
  23. {airbyte_agent_linear-0.19.22 → airbyte_agent_linear-0.19.45}/airbyte_agent_linear/_vendored/connector_sdk/schema/components.py +59 -58
  24. {airbyte_agent_linear-0.19.22 → airbyte_agent_linear-0.19.45}/airbyte_agent_linear/_vendored/connector_sdk/schema/connector.py +22 -33
  25. airbyte_agent_linear-0.19.45/airbyte_agent_linear/_vendored/connector_sdk/schema/extensions.py +230 -0
  26. {airbyte_agent_linear-0.19.22 → airbyte_agent_linear-0.19.45}/airbyte_agent_linear/_vendored/connector_sdk/schema/operations.py +32 -32
  27. {airbyte_agent_linear-0.19.22 → airbyte_agent_linear-0.19.45}/airbyte_agent_linear/_vendored/connector_sdk/schema/security.py +44 -34
  28. {airbyte_agent_linear-0.19.22 → airbyte_agent_linear-0.19.45}/airbyte_agent_linear/_vendored/connector_sdk/secrets.py +2 -2
  29. {airbyte_agent_linear-0.19.22 → airbyte_agent_linear-0.19.45}/airbyte_agent_linear/_vendored/connector_sdk/telemetry/events.py +9 -8
  30. {airbyte_agent_linear-0.19.22 → airbyte_agent_linear-0.19.45}/airbyte_agent_linear/_vendored/connector_sdk/telemetry/tracker.py +9 -5
  31. {airbyte_agent_linear-0.19.22 → airbyte_agent_linear-0.19.45}/airbyte_agent_linear/_vendored/connector_sdk/types.py +7 -3
  32. {airbyte_agent_linear-0.19.22 → airbyte_agent_linear-0.19.45}/airbyte_agent_linear/connector.py +124 -26
  33. {airbyte_agent_linear-0.19.22 → airbyte_agent_linear-0.19.45}/airbyte_agent_linear/connector_model.py +6 -2
  34. {airbyte_agent_linear-0.19.22 → airbyte_agent_linear-0.19.45}/airbyte_agent_linear/models.py +12 -2
  35. {airbyte_agent_linear-0.19.22 → airbyte_agent_linear-0.19.45}/airbyte_agent_linear/types.py +2 -1
  36. {airbyte_agent_linear-0.19.22 → airbyte_agent_linear-0.19.45}/pyproject.toml +11 -12
  37. airbyte_agent_linear-0.19.22/airbyte_agent_linear/__init__.py +0 -43
  38. airbyte_agent_linear-0.19.22/airbyte_agent_linear/_vendored/connector_sdk/schema/extensions.py +0 -109
  39. {airbyte_agent_linear-0.19.22 → airbyte_agent_linear-0.19.45}/.gitignore +0 -0
  40. {airbyte_agent_linear-0.19.22 → airbyte_agent_linear-0.19.45}/airbyte_agent_linear/_vendored/__init__.py +0 -0
  41. {airbyte_agent_linear-0.19.22 → airbyte_agent_linear-0.19.45}/airbyte_agent_linear/_vendored/connector_sdk/__init__.py +0 -0
  42. {airbyte_agent_linear-0.19.22 → airbyte_agent_linear-0.19.45}/airbyte_agent_linear/_vendored/connector_sdk/cloud_utils/__init__.py +0 -0
  43. {airbyte_agent_linear-0.19.22 → airbyte_agent_linear-0.19.45}/airbyte_agent_linear/_vendored/connector_sdk/exceptions.py +0 -0
  44. {airbyte_agent_linear-0.19.22 → airbyte_agent_linear-0.19.45}/airbyte_agent_linear/_vendored/connector_sdk/executor/__init__.py +0 -0
  45. {airbyte_agent_linear-0.19.22 → airbyte_agent_linear-0.19.45}/airbyte_agent_linear/_vendored/connector_sdk/executor/models.py +0 -0
  46. {airbyte_agent_linear-0.19.22 → airbyte_agent_linear-0.19.45}/airbyte_agent_linear/_vendored/connector_sdk/http/__init__.py +0 -0
  47. {airbyte_agent_linear-0.19.22 → airbyte_agent_linear-0.19.45}/airbyte_agent_linear/_vendored/connector_sdk/http/adapters/__init__.py +0 -0
  48. {airbyte_agent_linear-0.19.22 → airbyte_agent_linear-0.19.45}/airbyte_agent_linear/_vendored/connector_sdk/http/adapters/httpx_adapter.py +0 -0
  49. {airbyte_agent_linear-0.19.22 → airbyte_agent_linear-0.19.45}/airbyte_agent_linear/_vendored/connector_sdk/http/config.py +0 -0
  50. {airbyte_agent_linear-0.19.22 → airbyte_agent_linear-0.19.45}/airbyte_agent_linear/_vendored/connector_sdk/http/exceptions.py +0 -0
  51. {airbyte_agent_linear-0.19.22 → airbyte_agent_linear-0.19.45}/airbyte_agent_linear/_vendored/connector_sdk/http/protocols.py +0 -0
  52. {airbyte_agent_linear-0.19.22 → airbyte_agent_linear-0.19.45}/airbyte_agent_linear/_vendored/connector_sdk/http_client.py +0 -0
  53. {airbyte_agent_linear-0.19.22 → airbyte_agent_linear-0.19.45}/airbyte_agent_linear/_vendored/connector_sdk/logging/__init__.py +0 -0
  54. {airbyte_agent_linear-0.19.22 → airbyte_agent_linear-0.19.45}/airbyte_agent_linear/_vendored/connector_sdk/observability/__init__.py +0 -0
  55. {airbyte_agent_linear-0.19.22 → airbyte_agent_linear-0.19.45}/airbyte_agent_linear/_vendored/connector_sdk/observability/redactor.py +0 -0
  56. {airbyte_agent_linear-0.19.22 → airbyte_agent_linear-0.19.45}/airbyte_agent_linear/_vendored/connector_sdk/performance/__init__.py +0 -0
  57. {airbyte_agent_linear-0.19.22 → airbyte_agent_linear-0.19.45}/airbyte_agent_linear/_vendored/connector_sdk/performance/instrumentation.py +0 -0
  58. {airbyte_agent_linear-0.19.22 → airbyte_agent_linear-0.19.45}/airbyte_agent_linear/_vendored/connector_sdk/schema/__init__.py +0 -0
  59. {airbyte_agent_linear-0.19.22 → airbyte_agent_linear-0.19.45}/airbyte_agent_linear/_vendored/connector_sdk/telemetry/__init__.py +0 -0
  60. {airbyte_agent_linear-0.19.22 → airbyte_agent_linear-0.19.45}/airbyte_agent_linear/_vendored/connector_sdk/telemetry/config.py +0 -0
  61. {airbyte_agent_linear-0.19.22 → airbyte_agent_linear-0.19.45}/airbyte_agent_linear/_vendored/connector_sdk/utils.py +0 -0
  62. {airbyte_agent_linear-0.19.22 → airbyte_agent_linear-0.19.45}/airbyte_agent_linear/_vendored/connector_sdk/validation.py +0 -0
@@ -1,5 +1,120 @@
1
1
  # Linear changelog
2
2
 
3
+ ## [0.19.45] - 2026-01-15
4
+ - Updated connector definition (YAML version 0.1.4)
5
+ - Source commit: fa9a3b02
6
+ - SDK version: 0.1.0
7
+
8
+ ## [0.19.44] - 2026-01-15
9
+ - Updated connector definition (YAML version 0.1.4)
10
+ - Source commit: 61a2e822
11
+ - SDK version: 0.1.0
12
+
13
+ ## [0.19.43] - 2026-01-15
14
+ - Updated connector definition (YAML version 0.1.4)
15
+ - Source commit: 35211193
16
+ - SDK version: 0.1.0
17
+
18
+ ## [0.19.42] - 2026-01-15
19
+ - Updated connector definition (YAML version 0.1.4)
20
+ - Source commit: 20b3afd9
21
+ - SDK version: 0.1.0
22
+
23
+ ## [0.19.41] - 2026-01-15
24
+ - Updated connector definition (YAML version 0.1.4)
25
+ - Source commit: b7138b41
26
+ - SDK version: 0.1.0
27
+
28
+ ## [0.19.40] - 2026-01-15
29
+ - Updated connector definition (YAML version 0.1.4)
30
+ - Source commit: 10173eb1
31
+ - SDK version: 0.1.0
32
+
33
+ ## [0.19.39] - 2026-01-15
34
+ - Updated connector definition (YAML version 0.1.4)
35
+ - Source commit: a23d9e7a
36
+ - SDK version: 0.1.0
37
+
38
+ ## [0.19.38] - 2026-01-14
39
+ - Updated connector definition (YAML version 0.1.4)
40
+ - Source commit: 7ef09816
41
+ - SDK version: 0.1.0
42
+
43
+ ## [0.19.37] - 2026-01-14
44
+ - Updated connector definition (YAML version 0.1.3)
45
+ - Source commit: 5b228315
46
+ - SDK version: 0.1.0
47
+
48
+ ## [0.19.36] - 2026-01-14
49
+ - Updated connector definition (YAML version 0.1.2)
50
+ - Source commit: e6285db5
51
+ - SDK version: 0.1.0
52
+
53
+ ## [0.19.35] - 2026-01-14
54
+ - Updated connector definition (YAML version 0.1.2)
55
+ - Source commit: 31de238d
56
+ - SDK version: 0.1.0
57
+
58
+ ## [0.19.34] - 2026-01-13
59
+ - Updated connector definition (YAML version 0.1.2)
60
+ - Source commit: e80a226e
61
+ - SDK version: 0.1.0
62
+
63
+ ## [0.19.33] - 2026-01-13
64
+ - Updated connector definition (YAML version 0.1.2)
65
+ - Source commit: 78b1be67
66
+ - SDK version: 0.1.0
67
+
68
+ ## [0.19.32] - 2026-01-11
69
+ - Updated connector definition (YAML version 0.1.2)
70
+ - Source commit: e519b73d
71
+ - SDK version: 0.1.0
72
+
73
+ ## [0.19.31] - 2026-01-09
74
+ - Updated connector definition (YAML version 0.1.2)
75
+ - Source commit: 3c7bfdfd
76
+ - SDK version: 0.1.0
77
+
78
+ ## [0.19.30] - 2026-01-09
79
+ - Updated connector definition (YAML version 0.1.2)
80
+ - Source commit: 3bcb33e8
81
+ - SDK version: 0.1.0
82
+
83
+ ## [0.19.29] - 2026-01-09
84
+ - Updated connector definition (YAML version 0.1.2)
85
+ - Source commit: da9b741b
86
+ - SDK version: 0.1.0
87
+
88
+ ## [0.19.28] - 2026-01-07
89
+ - Updated connector definition (YAML version 0.1.2)
90
+ - Source commit: d023e05f
91
+ - SDK version: 0.1.0
92
+
93
+ ## [0.19.27] - 2026-01-06
94
+ - Updated connector definition (YAML version 0.1.2)
95
+ - Source commit: 0580c727
96
+ - SDK version: 0.1.0
97
+
98
+ ## [0.19.26] - 2026-01-06
99
+ - Updated connector definition (YAML version 0.1.2)
100
+ - Source commit: e0e2f989
101
+ - SDK version: 0.1.0
102
+
103
+ ## [0.19.25] - 2026-01-05
104
+ - Updated connector definition (YAML version 0.1.2)
105
+ - Source commit: 3e274293
106
+ - SDK version: 0.1.0
107
+
108
+ ## [0.19.24] - 2025-12-22
109
+ - Updated connector definition (YAML version 0.1.2)
110
+ - Source commit: 0eb1b1c4
111
+ - SDK version: 0.1.0
112
+
113
+ ## [0.19.23] - 2025-12-19
114
+ - Updated connector definition (YAML version 0.1.1)
115
+ - Source commit: 12f6b994
116
+ - SDK version: 0.1.0
117
+
3
118
  ## [0.19.22] - 2025-12-19
4
119
  - Updated connector definition (YAML version 0.1.1)
5
120
  - Source commit: 5d11bfdf
@@ -1,25 +1,24 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: airbyte-agent-linear
3
- Version: 0.19.22
3
+ Version: 0.19.45
4
4
  Summary: Airbyte Linear Connector for AI platforms
5
- Project-URL: Homepage, https://github.com/airbytehq/airbyte-embedded
6
- Project-URL: Documentation, https://github.com/airbytehq/airbyte-embedded/tree/main/integrations
7
- Project-URL: Repository, https://github.com/airbytehq/airbyte-embedded
8
- Project-URL: Issues, https://github.com/airbytehq/airbyte-embedded/issues
5
+ Project-URL: Homepage, https://github.com/airbytehq/airbyte-agent-connectors
6
+ Project-URL: Documentation, https://docs.airbyte.com/ai-agents/
7
+ Project-URL: Repository, https://github.com/airbytehq/airbyte-agent-connectors
8
+ Project-URL: Issues, https://github.com/airbytehq/airbyte-agent-connectors/issues
9
9
  Author-email: Airbyte <contact@airbyte.io>
10
10
  License: Elastic-2.0
11
- Keywords: airbyte,api,connector,linear
11
+ Keywords: agent,ai,airbyte,api,connector,data-integration,linear,llm,mcp
12
12
  Classifier: Development Status :: 3 - Alpha
13
13
  Classifier: Intended Audience :: Developers
14
14
  Classifier: License :: Other/Proprietary License
15
+ Classifier: Operating System :: OS Independent
15
16
  Classifier: Programming Language :: Python :: 3
16
- Classifier: Programming Language :: Python :: 3.9
17
- Classifier: Programming Language :: Python :: 3.10
18
- Classifier: Programming Language :: Python :: 3.11
19
- Classifier: Programming Language :: Python :: 3.12
20
17
  Classifier: Programming Language :: Python :: 3.13
18
+ Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
21
19
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
22
- Requires-Python: >=3.9
20
+ Classifier: Typing :: Typed
21
+ Requires-Python: >=3.13
23
22
  Requires-Dist: httpx>=0.24.0
24
23
  Requires-Dist: jinja2>=3.0.0
25
24
  Requires-Dist: jsonpath-ng>=1.6.1
@@ -41,18 +40,22 @@ for sprint planning, backlog management, and development workflow analysis.
41
40
 
42
41
  ## Example questions
43
42
 
43
+ The Linear connector is optimized to handle prompts like these.
44
+
44
45
  - Show me the open issues assigned to my team this week
45
46
  - List out all projects I'm currently involved in
46
47
  - Analyze the workload distribution across my development team
47
48
  - What are the top priority issues in our current sprint?
48
49
  - Identify the most active projects in our organization right now
49
- - Summarize the recent issues for [teamMember] in the last two weeks
50
+ - Summarize the recent issues for \{team_member\} in the last two weeks
50
51
  - Compare the issue complexity across different teams
51
52
  - Which projects have the most unresolved issues?
52
53
  - Give me an overview of my team's current project backlog
53
54
 
54
55
  ## Unsupported questions
55
56
 
57
+ The Linear connector isn't currently able to handle prompts like these.
58
+
56
59
  - Create a new issue for the backend team
57
60
  - Update the priority of this specific issue
58
61
  - Assign a team member to this project
@@ -97,6 +100,6 @@ For the service's official API docs, see the [Linear API reference](https://line
97
100
 
98
101
  ## Version information
99
102
 
100
- - **Package version:** 0.19.22
101
- - **Connector version:** 0.1.1
102
- - **Generated with Connector SDK commit SHA:** 5d11bfdff3ffc5c2e0242449d53cb172403e94b6
103
+ - **Package version:** 0.19.45
104
+ - **Connector version:** 0.1.4
105
+ - **Generated with Connector SDK commit SHA:** fa9a3b02522ddc7458721472049976e295a0bd78
@@ -7,18 +7,22 @@ for sprint planning, backlog management, and development workflow analysis.
7
7
 
8
8
  ## Example questions
9
9
 
10
+ The Linear connector is optimized to handle prompts like these.
11
+
10
12
  - Show me the open issues assigned to my team this week
11
13
  - List out all projects I'm currently involved in
12
14
  - Analyze the workload distribution across my development team
13
15
  - What are the top priority issues in our current sprint?
14
16
  - Identify the most active projects in our organization right now
15
- - Summarize the recent issues for [teamMember] in the last two weeks
17
+ - Summarize the recent issues for \{team_member\} in the last two weeks
16
18
  - Compare the issue complexity across different teams
17
19
  - Which projects have the most unresolved issues?
18
20
  - Give me an overview of my team's current project backlog
19
21
 
20
22
  ## Unsupported questions
21
23
 
24
+ The Linear connector isn't currently able to handle prompts like these.
25
+
22
26
  - Create a new issue for the backend team
23
27
  - Update the priority of this specific issue
24
28
  - Assign a team member to this project
@@ -63,6 +67,6 @@ For the service's official API docs, see the [Linear API reference](https://line
63
67
 
64
68
  ## Version information
65
69
 
66
- - **Package version:** 0.19.22
67
- - **Connector version:** 0.1.1
68
- - **Generated with Connector SDK commit SHA:** 5d11bfdff3ffc5c2e0242449d53cb172403e94b6
70
+ - **Package version:** 0.19.45
71
+ - **Connector version:** 0.1.4
72
+ - **Generated with Connector SDK commit SHA:** fa9a3b02522ddc7458721472049976e295a0bd78
@@ -295,11 +295,11 @@ curl --location 'https://api.airbyte.ai/api/v1/connectors/instances/{your_connec
295
295
  The Linear connector supports the following authentication methods.
296
296
 
297
297
 
298
- ### Authentication
298
+ ### Linear API Key Authentication
299
299
 
300
300
  | Field Name | Type | Required | Description |
301
301
  |------------|------|----------|-------------|
302
- | `api_key` | `str` | Yes | API authentication key |
302
+ | `api_key` | `str` | Yes | Your Linear API key from Settings > API > Personal API keys |
303
303
 
304
304
  #### Example
305
305
 
@@ -308,7 +308,7 @@ The Linear connector supports the following authentication methods.
308
308
  ```python
309
309
  LinearConnector(
310
310
  auth_config=LinearAuthConfig(
311
- api_key="<API authentication key>"
311
+ api_key="<Your Linear API key from Settings > API > Personal API keys>"
312
312
  )
313
313
  )
314
314
  ```
@@ -322,7 +322,7 @@ curl --location 'https://api.airbyte.ai/api/v1/connectors/instances' \
322
322
  --data '{
323
323
  "connector_definition_id": "1c5d8316-ed42-4473-8fbc-2626f03f070c",
324
324
  "auth_config": {
325
- "api_key": "<API authentication key>"
325
+ "api_key": "<Your Linear API key from Settings > API > Personal API keys>"
326
326
  },
327
327
  "name": "My Linear Connector"
328
328
  }'
@@ -0,0 +1,81 @@
1
+ """
2
+ Blessed Linear connector for Airbyte SDK.
3
+
4
+ Auto-generated from OpenAPI specification.
5
+ """
6
+
7
+ from .connector import LinearConnector
8
+ from .models import (
9
+ LinearAuthConfig,
10
+ Issue,
11
+ IssuesListResponseDataIssuesPageinfo,
12
+ IssuesListResponseDataIssues,
13
+ IssuesListResponseData,
14
+ IssuesListResponse,
15
+ IssueResponseData,
16
+ IssueResponse,
17
+ Project,
18
+ ProjectsListResponseDataProjectsPageinfo,
19
+ ProjectsListResponseDataProjects,
20
+ ProjectsListResponseData,
21
+ ProjectsListResponse,
22
+ ProjectResponseData,
23
+ ProjectResponse,
24
+ Team,
25
+ TeamsListResponseDataTeamsPageinfo,
26
+ TeamsListResponseDataTeams,
27
+ TeamsListResponseData,
28
+ TeamsListResponse,
29
+ TeamResponseData,
30
+ TeamResponse,
31
+ LinearExecuteResult,
32
+ LinearExecuteResultWithMeta,
33
+ IssuesListResult,
34
+ ProjectsListResult,
35
+ TeamsListResult
36
+ )
37
+ from .types import (
38
+ IssuesListParams,
39
+ IssuesGetParams,
40
+ ProjectsListParams,
41
+ ProjectsGetParams,
42
+ TeamsListParams,
43
+ TeamsGetParams
44
+ )
45
+
46
+ __all__ = [
47
+ "LinearConnector",
48
+ "LinearAuthConfig",
49
+ "Issue",
50
+ "IssuesListResponseDataIssuesPageinfo",
51
+ "IssuesListResponseDataIssues",
52
+ "IssuesListResponseData",
53
+ "IssuesListResponse",
54
+ "IssueResponseData",
55
+ "IssueResponse",
56
+ "Project",
57
+ "ProjectsListResponseDataProjectsPageinfo",
58
+ "ProjectsListResponseDataProjects",
59
+ "ProjectsListResponseData",
60
+ "ProjectsListResponse",
61
+ "ProjectResponseData",
62
+ "ProjectResponse",
63
+ "Team",
64
+ "TeamsListResponseDataTeamsPageinfo",
65
+ "TeamsListResponseDataTeams",
66
+ "TeamsListResponseData",
67
+ "TeamsListResponse",
68
+ "TeamResponseData",
69
+ "TeamResponse",
70
+ "LinearExecuteResult",
71
+ "LinearExecuteResultWithMeta",
72
+ "IssuesListResult",
73
+ "ProjectsListResult",
74
+ "TeamsListResult",
75
+ "IssuesListParams",
76
+ "IssuesGetParams",
77
+ "ProjectsListParams",
78
+ "ProjectsGetParams",
79
+ "TeamsListParams",
80
+ "TeamsGetParams",
81
+ ]
@@ -610,9 +610,7 @@ class OAuth2AuthStrategy(AuthStrategy):
610
610
  has_refresh_token = bool(secrets.get("refresh_token"))
611
611
 
612
612
  if not has_access_token and not has_refresh_token:
613
- raise AuthenticationError(
614
- "Missing OAuth2 credentials. Provide either 'access_token' " "or 'refresh_token' (for refresh-token-only mode)."
615
- )
613
+ raise AuthenticationError("Missing OAuth2 credentials. Provide either 'access_token' or 'refresh_token' (for refresh-token-only mode).")
616
614
 
617
615
  def can_refresh(self, secrets: OAuth2RefreshSecrets) -> bool:
618
616
  """Check if token refresh is possible.
@@ -1106,8 +1104,7 @@ class AuthStrategyFactory:
1106
1104
  strategy = cls._strategies.get(auth_type)
1107
1105
  if strategy is None:
1108
1106
  raise AuthenticationError(
1109
- f"Authentication type '{auth_type.value}' is not implemented. "
1110
- f"Supported types: {', '.join(s.value for s in cls._strategies.keys())}"
1107
+ f"Authentication type '{auth_type.value}' is not implemented. Supported types: {', '.join(s.value for s in cls._strategies.keys())}"
1111
1108
  )
1112
1109
  return strategy
1113
1110
 
@@ -17,7 +17,7 @@ class MissingVariableError(ValueError):
17
17
  def __init__(self, var_name: str, available_fields: list):
18
18
  self.var_name = var_name
19
19
  self.available_fields = available_fields
20
- super().__init__(f"Template variable '${{{var_name}}}' not found in config. " f"Available fields: {available_fields}")
20
+ super().__init__(f"Template variable '${{{var_name}}}' not found in config. Available fields: {available_fields}")
21
21
 
22
22
 
23
23
  def apply_template(template: str, values: Dict[str, str]) -> str:
@@ -13,7 +13,7 @@ class AirbyteCloudClient:
13
13
 
14
14
  Handles authentication, token caching, and API calls to:
15
15
  - Get bearer tokens for authentication
16
- - Look up connector instances for users
16
+ - Look up connectors for users
17
17
  - Execute connectors via the cloud API
18
18
 
19
19
  Example:
@@ -22,15 +22,15 @@ class AirbyteCloudClient:
22
22
  client_secret="your-client-secret"
23
23
  )
24
24
 
25
- # Get a connector instance
26
- instance_id = await client.get_connector_instance_id(
25
+ # Get a connector ID
26
+ connector_id = await client.get_connector_id(
27
27
  external_user_id="user-123",
28
- connector_definition_id="stripe-def-456"
28
+ connector_definition_id="550e8400-e29b-41d4-a716-446655440000"
29
29
  )
30
30
 
31
31
  # Execute the connector
32
32
  result = await client.execute_connector(
33
- instance_id=instance_id,
33
+ connector_id=connector_id,
34
34
  entity="customers",
35
35
  action="list",
36
36
  params={"limit": 10}
@@ -105,37 +105,37 @@ class AirbyteCloudClient:
105
105
 
106
106
  return access_token
107
107
 
108
- async def get_connector_instance_id(
108
+ async def get_connector_id(
109
109
  self,
110
110
  external_user_id: str,
111
111
  connector_definition_id: str,
112
112
  ) -> str:
113
- """Get connector instance ID for a user.
113
+ """Get connector ID for a user.
114
114
 
115
- Looks up the connector instance that belongs to the specified user
116
- and connector definition. Validates that exactly one instance exists.
115
+ Looks up the connector that belongs to the specified user
116
+ and connector definition. Validates that exactly one connector exists.
117
117
 
118
118
  Args:
119
119
  external_user_id: User identifier in the Airbyte system
120
120
  connector_definition_id: UUID of the connector definition
121
121
 
122
122
  Returns:
123
- Connector instance ID (UUID string)
123
+ Connector ID (UUID string)
124
124
 
125
125
  Raises:
126
- ValueError: If 0 or more than 1 instance is found
126
+ ValueError: If 0 or more than 1 connector is found
127
127
  httpx.HTTPStatusError: If API returns 4xx/5xx status code
128
128
  httpx.RequestError: If network request fails
129
129
 
130
130
  Example:
131
- instance_id = await client.get_connector_instance_id(
131
+ connector_id = await client.get_connector_id(
132
132
  external_user_id="user-123",
133
133
  connector_definition_id="550e8400-e29b-41d4-a716-446655440000"
134
134
  )
135
135
  """
136
136
 
137
137
  token = await self.get_bearer_token()
138
- url = f"{self.API_BASE_URL}/api/v1/connectors/instances_for_user"
138
+ url = f"{self.API_BASE_URL}/api/v1/connectors/connectors_for_user"
139
139
  params = {
140
140
  "external_user_id": external_user_id,
141
141
  "definition_id": connector_definition_id,
@@ -146,24 +146,24 @@ class AirbyteCloudClient:
146
146
  response.raise_for_status()
147
147
 
148
148
  data = response.json()
149
- instances = data["instances"]
149
+ connectors = data["connectors"]
150
150
 
151
- if len(instances) == 0:
152
- raise ValueError(f"No connector instance found for user '{external_user_id}' " f"and connector '{connector_definition_id}'")
151
+ if len(connectors) == 0:
152
+ raise ValueError(f"No connector found for user '{external_user_id}' and connector definition '{connector_definition_id}'")
153
153
 
154
- if len(instances) > 1:
154
+ if len(connectors) > 1:
155
155
  raise ValueError(
156
- f"Multiple connector instances found for user '{external_user_id}' "
157
- f"and connector '{connector_definition_id}'. Expected exactly 1, "
158
- f"found {len(instances)}"
156
+ f"Multiple connectors found for user '{external_user_id}' "
157
+ f"and connector definition '{connector_definition_id}'. Expected exactly 1, "
158
+ f"found {len(connectors)}"
159
159
  )
160
160
 
161
- instance_id = instances[0]["id"]
162
- return instance_id
161
+ connector_id = connectors[0]["id"]
162
+ return connector_id
163
163
 
164
164
  async def execute_connector(
165
165
  self,
166
- instance_id: str,
166
+ connector_id: str,
167
167
  entity: str,
168
168
  action: str,
169
169
  params: dict[str, Any] | None,
@@ -171,7 +171,7 @@ class AirbyteCloudClient:
171
171
  """Execute a connector operation.
172
172
 
173
173
  Args:
174
- instance_id: Connector instance UUID
174
+ connector_id: Connector UUID (source ID)
175
175
  entity: Entity name (e.g., "customers", "invoices")
176
176
  action: Operation action (e.g., "list", "get", "create")
177
177
  params: Optional parameters for the operation
@@ -185,14 +185,14 @@ class AirbyteCloudClient:
185
185
 
186
186
  Example:
187
187
  result = await client.execute_connector(
188
- instance_id="inst-123",
188
+ connector_id="550e8400-e29b-41d4-a716-446655440000",
189
189
  entity="customers",
190
190
  action="list",
191
191
  params={"limit": 10}
192
192
  )
193
193
  """
194
194
  token = await self.get_bearer_token()
195
- url = f"{self.API_BASE_URL}/api/v1/connectors/instances/{instance_id}/execute"
195
+ url = f"{self.API_BASE_URL}/api/v1/connectors/sources/{connector_id}/execute"
196
196
  headers = {"Authorization": f"Bearer {token}"}
197
197
  request_body = {
198
198
  "entity": entity,
@@ -2,6 +2,7 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
+ import logging
5
6
  import re
6
7
  from pathlib import Path
7
8
  from typing import Any
@@ -393,16 +394,24 @@ def convert_openapi_to_connector_model(spec: OpenAPIConnector) -> ConnectorModel
393
394
  for entity_name, endpoints_dict in entities_map.items():
394
395
  actions = list(endpoints_dict.keys())
395
396
 
396
- # Get schema from components if available
397
+ # Get schema and stream_name from components if available
397
398
  schema = None
399
+ entity_stream_name = None
398
400
  if spec.components:
399
401
  # Look for a schema matching the entity name
400
402
  for schema_name, schema_def in spec.components.schemas.items():
401
403
  if schema_def.x_airbyte_entity_name == entity_name or schema_name.lower() == entity_name.lower():
402
404
  schema = schema_def.model_dump(by_alias=True)
405
+ entity_stream_name = schema_def.x_airbyte_stream_name
403
406
  break
404
407
 
405
- entity = EntityDefinition(name=entity_name, actions=actions, endpoints=endpoints_dict, schema=schema)
408
+ entity = EntityDefinition(
409
+ name=entity_name,
410
+ stream_name=entity_stream_name,
411
+ actions=actions,
412
+ endpoints=endpoints_dict,
413
+ schema=schema,
414
+ )
406
415
  entities.append(entity)
407
416
 
408
417
  # Extract retry config from x-airbyte-retry-config extension
@@ -510,13 +519,14 @@ def _parse_oauth2_config(scheme: Any) -> dict[str, str]:
510
519
  config["refresh_url"] = refresh_url
511
520
 
512
521
  # Extract custom refresh configuration from x-airbyte-token-refresh extension
522
+ # Note: x_token_refresh is a Dict[str, Any], not a Pydantic model, so use .get()
513
523
  x_token_refresh = getattr(scheme, "x_token_refresh", None)
514
524
  if x_token_refresh:
515
- auth_style = getattr(x_token_refresh, "auth_style", None)
525
+ auth_style = x_token_refresh.get("auth_style")
516
526
  if auth_style:
517
527
  config["auth_style"] = auth_style
518
528
 
519
- body_format = getattr(x_token_refresh, "body_format", None)
529
+ body_format = x_token_refresh.get("body_format")
520
530
  if body_format:
521
531
  config["body_format"] = body_format
522
532
 
@@ -760,8 +770,6 @@ def _parse_auth_from_openapi(spec: OpenAPIConnector) -> AuthConfig:
760
770
  options.append(auth_option)
761
771
  except Exception as e:
762
772
  # Log warning but continue - skip invalid schemes
763
- import logging
764
-
765
773
  logger = logging.getLogger(__name__)
766
774
  logger.warning(f"Skipping invalid security scheme '{scheme_name}': {e}")
767
775
  continue
@@ -74,5 +74,5 @@ except PackageNotFoundError:
74
74
  SDK_VERSION = "0.0.0-dev"
75
75
  """Current version of the Airbyte SDK."""
76
76
 
77
- MINIMUM_PYTHON_VERSION = "3.9"
77
+ MINIMUM_PYTHON_VERSION = "3.13"
78
78
  """Minimum Python version required to run the SDK."""
@@ -21,7 +21,7 @@ class HostedExecutor:
21
21
 
22
22
  The executor takes an external_user_id and uses the AirbyteCloudClient to:
23
23
  1. Authenticate with the Airbyte Platform (bearer token with caching)
24
- 2. Look up the user's connector instance
24
+ 2. Look up the user's connector
25
25
  3. Execute the connector operation via the cloud API
26
26
 
27
27
  Implements ExecutorProtocol.
@@ -63,7 +63,7 @@ class HostedExecutor:
63
63
  airbyte_client_id: Airbyte client ID for authentication
64
64
  airbyte_client_secret: Airbyte client secret for authentication
65
65
  connector_definition_id: Connector definition ID used to look up
66
- the user's connector instance.
66
+ the user's connector.
67
67
 
68
68
  Example:
69
69
  executor = HostedExecutor(
@@ -86,8 +86,8 @@ class HostedExecutor:
86
86
  """Execute connector via cloud API (ExecutorProtocol implementation).
87
87
 
88
88
  Flow:
89
- 1. Get connector id from connector model
90
- 2. Look up the user's connector instance ID
89
+ 1. Get connector definition id from executor config
90
+ 2. Look up the user's connector ID
91
91
  3. Execute the connector operation via the cloud API
92
92
  4. Parse the response into ExecutionResult
93
93
 
@@ -98,7 +98,7 @@ class HostedExecutor:
98
98
  ExecutionResult with success/failure status
99
99
 
100
100
  Raises:
101
- ValueError: If no instance or multiple instances found for user
101
+ ValueError: If no connector or multiple connectors found for user
102
102
  httpx.HTTPStatusError: If API returns 4xx/5xx status code
103
103
  httpx.RequestError: If network request fails
104
104
 
@@ -126,24 +126,23 @@ class HostedExecutor:
126
126
  # Step 1: Get connector definition id
127
127
  connector_definition_id = self._connector_definition_id
128
128
 
129
- # Step 2: Get the connector instance ID for this user
130
- instance_id = await self._cloud_client.get_connector_instance_id(
129
+ # Step 2: Get the connector ID for this user
130
+ connector_id = await self._cloud_client.get_connector_id(
131
131
  external_user_id=self._external_user_id,
132
132
  connector_definition_id=connector_definition_id,
133
133
  )
134
134
 
135
- span.set_attribute("connector.instance_id", instance_id)
135
+ span.set_attribute("connector.connector_id", connector_id)
136
136
 
137
137
  # Step 3: Execute the connector via the cloud API
138
138
  response = await self._cloud_client.execute_connector(
139
- instance_id=instance_id,
139
+ connector_id=connector_id,
140
140
  entity=config.entity,
141
141
  action=config.action,
142
142
  params=config.params,
143
143
  )
144
144
 
145
145
  # Step 4: Parse the response into ExecutionResult
146
- # The response_data is a dict from the API
147
146
  result = self._parse_execution_result(response)
148
147
 
149
148
  # Mark span as successful
@@ -152,7 +151,7 @@ class HostedExecutor:
152
151
  return result
153
152
 
154
153
  except ValueError as e:
155
- # Instance lookup validation error (0 or >1 instances)
154
+ # Connector lookup validation error (0 or >1 connectors)
156
155
  span.set_attribute("connector.success", False)
157
156
  span.set_attribute("connector.error_type", "ValueError")
158
157
  span.record_exception(e)