cortexdb-connectors 0.2.0__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.
@@ -0,0 +1,207 @@
1
+ Metadata-Version: 2.4
2
+ Name: cortexdb-connectors
3
+ Version: 0.2.0
4
+ Summary: Data connectors for CortexDB — ingest from Slack, GitHub, GitLab, Jira, Linear, Confluence, Notion, PagerDuty, Discord, Teams, Google Workspace, Salesforce, HubSpot, Zendesk, Intercom, and ServiceNow into the v1 memory API.
5
+ Author-email: CortexDB Team <team@cortexdb.ai>
6
+ License-Expression: Apache-2.0
7
+ Project-URL: Homepage, https://cortexdb.ai
8
+ Project-URL: Documentation, https://cortexdb.ai/docs/connectors/slack
9
+ Project-URL: Repository, https://github.com/cortexdb/cortexdb
10
+ Project-URL: Issues, https://github.com/cortexdb/cortexdb/issues
11
+ Keywords: ai,memory,connectors,etl,slack,github,jira,cortexdb
12
+ Classifier: Development Status :: 4 - Beta
13
+ Classifier: Environment :: Console
14
+ Classifier: Intended Audience :: Developers
15
+ Classifier: Programming Language :: Python :: 3
16
+ Classifier: Programming Language :: Python :: 3.10
17
+ Classifier: Programming Language :: Python :: 3.11
18
+ Classifier: Programming Language :: Python :: 3.12
19
+ Classifier: Programming Language :: Python :: 3.13
20
+ Classifier: Topic :: Database
21
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
22
+ Requires-Python: >=3.10
23
+ Description-Content-Type: text/markdown
24
+ Requires-Dist: httpx>=0.27
25
+ Requires-Dist: pydantic>=2.0
26
+ Requires-Dist: croniter>=2.0
27
+ Provides-Extra: slack
28
+ Requires-Dist: slack-sdk>=3.0; extra == "slack"
29
+ Provides-Extra: github
30
+ Requires-Dist: pygithub>=2.0; extra == "github"
31
+ Provides-Extra: pagerduty
32
+ Requires-Dist: pdpyras>=5.0; extra == "pagerduty"
33
+ Provides-Extra: jira
34
+ Requires-Dist: jira>=3.0; extra == "jira"
35
+ Provides-Extra: confluence
36
+ Requires-Dist: atlassian-python-api>=3.0; extra == "confluence"
37
+ Provides-Extra: notion
38
+ Requires-Dist: notion-client>=2.0; extra == "notion"
39
+ Provides-Extra: linear
40
+ Provides-Extra: discord
41
+ Requires-Dist: aiohttp>=3.9; extra == "discord"
42
+ Provides-Extra: teams
43
+ Requires-Dist: msal>=1.28; extra == "teams"
44
+ Provides-Extra: google-workspace
45
+ Requires-Dist: google-api-python-client>=2.0; extra == "google-workspace"
46
+ Requires-Dist: google-auth>=2.0; extra == "google-workspace"
47
+ Provides-Extra: salesforce
48
+ Requires-Dist: simple-salesforce>=1.12; extra == "salesforce"
49
+ Provides-Extra: hubspot
50
+ Requires-Dist: hubspot-api-client>=9.0; extra == "hubspot"
51
+ Provides-Extra: zendesk
52
+ Provides-Extra: intercom
53
+ Provides-Extra: servicenow
54
+ Provides-Extra: gitlab
55
+ Requires-Dist: python-gitlab>=4.0; extra == "gitlab"
56
+ Provides-Extra: webhooks
57
+ Requires-Dist: starlette>=0.37; extra == "webhooks"
58
+ Requires-Dist: uvicorn>=0.29; extra == "webhooks"
59
+ Requires-Dist: python-multipart>=0.0.9; extra == "webhooks"
60
+ Provides-Extra: all
61
+ Requires-Dist: slack-sdk>=3.0; extra == "all"
62
+ Requires-Dist: pygithub>=2.0; extra == "all"
63
+ Requires-Dist: pdpyras>=5.0; extra == "all"
64
+ Requires-Dist: jira>=3.0; extra == "all"
65
+ Requires-Dist: atlassian-python-api>=3.0; extra == "all"
66
+ Requires-Dist: notion-client>=2.0; extra == "all"
67
+ Requires-Dist: aiohttp>=3.9; extra == "all"
68
+ Requires-Dist: msal>=1.28; extra == "all"
69
+ Requires-Dist: google-api-python-client>=2.0; extra == "all"
70
+ Requires-Dist: google-auth>=2.0; extra == "all"
71
+ Requires-Dist: simple-salesforce>=1.12; extra == "all"
72
+ Requires-Dist: hubspot-api-client>=9.0; extra == "all"
73
+ Requires-Dist: python-gitlab>=4.0; extra == "all"
74
+ Requires-Dist: PyYAML>=6.0; extra == "all"
75
+ Requires-Dist: starlette>=0.37; extra == "all"
76
+ Requires-Dist: uvicorn>=0.29; extra == "all"
77
+ Requires-Dist: python-multipart>=0.0.9; extra == "all"
78
+
79
+ # cortexdb-connectors
80
+
81
+ Managed data connectors for [CortexDB](https://cortexdb.ai). Run them yourself, or let CortexDB host them for you on the [Starter tier](https://cortexdb.ai/pricing).
82
+
83
+ Each connector pulls from a third-party system (Slack, GitHub, Jira, …) and writes every event into CortexDB as a v1 experience.
84
+
85
+ ## Install
86
+
87
+ ```bash
88
+ # core only — no third-party SDK dependencies
89
+ pip install cortexdb-connectors
90
+
91
+ # with one source's SDK
92
+ pip install 'cortexdb-connectors[slack]'
93
+
94
+ # everything
95
+ pip install 'cortexdb-connectors[all]'
96
+ ```
97
+
98
+ Requires Python 3.10+.
99
+
100
+ ## Auth
101
+
102
+ The connectors talk to the CortexDB v1 API. Two things you need:
103
+
104
+ - **A PASETO bearer token** (`Authorization: Bearer …`)
105
+ - **An actor id** that matches the token's `sub` claim (`X-Cortex-Actor: …`)
106
+
107
+ The fastest way to get both is to install [`cortexdb-cli`](https://pypi.org/project/cortexdb-cli/) and run `cortexdb init` — anonymous signup, no email or card, 7-day free-tier token. The connectors read `~/.cortexdb/state.json` automatically.
108
+
109
+ Or set env vars:
110
+
111
+ ```bash
112
+ export CORTEXDB_URL=https://api-v1.cortexdb.ai
113
+ export CORTEXDB_API_KEY=v4.public...
114
+ export CORTEXDB_ACTOR=user:u_019e...
115
+ export CORTEXDB_SCOPE_TEMPLATE='org:acme/source:{source}' # optional
116
+ ```
117
+
118
+ `{source}` (and `{tenant}`, `{namespace}`, `{actor}`, `{entity.<type>}`) get filled in per event.
119
+
120
+ ## Run
121
+
122
+ ```bash
123
+ # one shot
124
+ cortexdb-sync sync slack
125
+
126
+ # poll loop, 60s between cycles
127
+ cortexdb-sync watch slack --interval 60
128
+
129
+ # resume from a specific point
130
+ cortexdb-sync sync github --since 2026-05-01T00:00:00Z
131
+
132
+ # see what's available
133
+ cortexdb-sync list
134
+
135
+ # check resolved CortexDB creds
136
+ cortexdb-sync auth
137
+
138
+ # cursor state across every connector
139
+ cortexdb-sync status
140
+ ```
141
+
142
+ ## Available connectors
143
+
144
+ ```
145
+ slack SLACK_BOT_TOKEN
146
+ github GITHUB_TOKEN
147
+ gitlab GITLAB_TOKEN
148
+ jira JIRA_URL, JIRA_EMAIL, JIRA_API_TOKEN
149
+ linear LINEAR_API_KEY
150
+ confluence CONFLUENCE_URL, CONFLUENCE_EMAIL, CONFLUENCE_API_TOKEN
151
+ notion NOTION_TOKEN
152
+ pagerduty PAGERDUTY_API_KEY
153
+ discord DISCORD_BOT_TOKEN
154
+ teams TEAMS_TENANT_ID, TEAMS_CLIENT_ID, TEAMS_CLIENT_SECRET
155
+ google-workspace GW_SERVICE_ACCOUNT_KEY, GW_DELEGATED_USER
156
+ salesforce SF_INSTANCE_URL, SF_CLIENT_ID, SF_CLIENT_SECRET, SF_USERNAME, SF_PASSWORD
157
+ hubspot HUBSPOT_TOKEN
158
+ zendesk ZENDESK_SUBDOMAIN, ZENDESK_EMAIL, ZENDESK_TOKEN
159
+ intercom INTERCOM_TOKEN
160
+ servicenow SNOW_INSTANCE, SNOW_USERNAME, SNOW_PASSWORD
161
+ ```
162
+
163
+ Per-connector setup pages live at https://cortexdb.ai/docs/connectors/ (e.g. [Slack](https://cortexdb.ai/docs/connectors/slack)).
164
+
165
+ ## YAML config
166
+
167
+ If env vars get unwieldy, drop a `cortexdb-connectors.yaml` next to your sync invocation:
168
+
169
+ ```yaml
170
+ slack:
171
+ slack_bot_token: xoxb-...
172
+ channels: [C01ABCDEF, C02GHIJKL]
173
+
174
+ github:
175
+ github_token: ghp_...
176
+ repos: [acme/api, acme/web]
177
+ events: [pull_request, issue_comment]
178
+ ```
179
+
180
+ ## Programmatic use
181
+
182
+ Skip the CLI entirely:
183
+
184
+ ```python
185
+ import asyncio
186
+ from cortexdb_connectors.slack import SlackConnector
187
+
188
+ connector = SlackConnector(
189
+ cortex_url="https://api-v1.cortexdb.ai",
190
+ cortex_api_key="v4.public...",
191
+ actor="user:u_019e...",
192
+ scope_template="org:acme/source:slack/channel:{entity.channel}",
193
+ slack_bot_token="xoxb-...",
194
+ channels=["C01ABC", "C02DEF"],
195
+ )
196
+
197
+ result = asyncio.run(connector.sync())
198
+ print(result.episodes_ingested, "ingested,", len(result.errors), "errors")
199
+ ```
200
+
201
+ ## Webhooks
202
+
203
+ The `cortexdb-connectors[webhooks]` extra ships a Starlette-based webhook receiver for sources that push (Slack Events API, GitHub Apps, Jira webhooks, …) instead of polling. See `cortexdb_connectors/webhooks.py`.
204
+
205
+ ## License
206
+
207
+ Apache-2.0
@@ -0,0 +1,31 @@
1
+ cortexdb_connectors/__init__.py,sha256=nKmSSvacO8h43juTQjRSKdklqf36ejKawtNKEKTjRuc,949
2
+ cortexdb_connectors/base.py,sha256=NcPptyugqwUDkXTsSt2Uu6KBHu7BCDIWcf8ac-sNv7o,12494
3
+ cortexdb_connectors/cli.py,sha256=ZPvnflOmK3O0rOOjQlJAcms2QfdCQQEelaaMiBPi5kY,17109
4
+ cortexdb_connectors/state.py,sha256=fVVFMn_2Hr7zv_LmwLcIhoNYE5GmlMb_oKErCDD4Hgk,5052
5
+ cortexdb_connectors/webhooks.py,sha256=k_jQ8_tZMonH2K-JIaec-ZUg0kZC5pcB5JSNwuyciqs,23564
6
+ cortexdb_connectors/worker.py,sha256=ng64S-NJCyWzws2wC3fZzs8GVgIXzks7BbEicZerFxk,6755
7
+ cortexdb_connectors/confluence/__init__.py,sha256=SU3ecRMgr3ndmHpIm7DQvHLLOw5jcH3_VoEodnwUBMA,12610
8
+ cortexdb_connectors/discord/__init__.py,sha256=amW5XjWo84JmTvLw47i2loOKLQOHmnRNrnsY4CejMCY,22575
9
+ cortexdb_connectors/github/__init__.py,sha256=5XwI1xipXKRQVYZlreQilY4B-iIoYFbd2jTALhh4-gI,10668
10
+ cortexdb_connectors/gitlab/__init__.py,sha256=6HSxis0wPGvq_7ZI-DgVYoV-kiw8fmo3OstVR8Sf370,27769
11
+ cortexdb_connectors/google_workspace/__init__.py,sha256=56kM4D6titIGJMOSEeu_49mbxmDsNjz-dOkPWxRtocs,37546
12
+ cortexdb_connectors/hubspot/__init__.py,sha256=fddGyZX8Hc7Ed5gFSSC5yeNvdtgdmUkT7oO1Y5MJhjA,17401
13
+ cortexdb_connectors/insights/__init__.py,sha256=P4qKzhAFCXizPCNRVTPaVRiBULXzoTEbclCcrXqnlWM,1240
14
+ cortexdb_connectors/insights/api.py,sha256=Sx3OFOkyL_Dc6B81JM9oyZb5YGZiW3abjCqWpzzGvzY,7994
15
+ cortexdb_connectors/insights/detectors.py,sha256=zDKCm5ybQzIH2XPif91YTySNw56V81o_njgIbXrjqYM,28701
16
+ cortexdb_connectors/insights/engine.py,sha256=oA74m_se0VtR93SuExXCVpXLAARPsuZWXLYdZXTvAJQ,10712
17
+ cortexdb_connectors/intercom/__init__.py,sha256=7aX3k_vQnLaa3-Bz1r4rNhhT8BEE5xpkmgwJ6bSxiOg,22262
18
+ cortexdb_connectors/jira/__init__.py,sha256=xLofmiLclTOIciMSwKENwCmlUBGzdg6KSauifgBjXg0,10511
19
+ cortexdb_connectors/linear/__init__.py,sha256=2Wz1a3b1a3nH79dDeDLDsb3nPJ8PyrDR5gWBxYCaTpQ,25439
20
+ cortexdb_connectors/notion/__init__.py,sha256=FPfQsBQuA0rqw0inAVqVtxkQDS_n_0T_EE5u-MIoSYM,25276
21
+ cortexdb_connectors/pagerduty/__init__.py,sha256=DrWrCw7SQ9fqpa_zccsy2cDVu1F1JSdJOMjJJjVOfhs,10337
22
+ cortexdb_connectors/salesforce/__init__.py,sha256=poxl8x6ipXP1BKqokz3-wLgYJbsR3uM3derrDO6bNE8,14121
23
+ cortexdb_connectors/servicenow/__init__.py,sha256=1mXlFTDf4yabiPQcc-wfY2uBT3-WZOMPT8ZZ_C_gQM8,15862
24
+ cortexdb_connectors/slack/__init__.py,sha256=qtmYgaisxctvuEQ-wzWI6soBelz9hCg7boCZQ5UliDA,12218
25
+ cortexdb_connectors/teams/__init__.py,sha256=7gVOgUwW_Z5vc6EfoyXD0ipXIZ-fSl-k0tk8KpnF8mo,23257
26
+ cortexdb_connectors/zendesk/__init__.py,sha256=lyE5XrE_2PLpgZOhbz29xCj_c-Ylwsyonu759Z8yRKY,17273
27
+ cortexdb_connectors-0.2.0.dist-info/METADATA,sha256=9QG_YF8tsfNYwvh61jexu3E6PI6TE6KUmZtDmsQOhhQ,7361
28
+ cortexdb_connectors-0.2.0.dist-info/WHEEL,sha256=aeYiig01lYGDzBgS8HxWXOg3uV61G9ijOsup-k9o1sk,91
29
+ cortexdb_connectors-0.2.0.dist-info/entry_points.txt,sha256=Cy5AC4Ca_eJMJD1C2zpBz3uZD5ITwXVT8YVy63ibshI,63
30
+ cortexdb_connectors-0.2.0.dist-info/top_level.txt,sha256=cPbvL6MMGxs7yif0W0Jzsp4CgoY7jaTa68N8EH9sG4k,20
31
+ cortexdb_connectors-0.2.0.dist-info/RECORD,,
@@ -0,0 +1,5 @@
1
+ Wheel-Version: 1.0
2
+ Generator: setuptools (82.0.1)
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
5
+
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ cortexdb-sync = cortexdb_connectors.cli:main
@@ -0,0 +1 @@
1
+ cortexdb_connectors