@hasna/connectors 0.4.0 → 0.4.2
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/bin/index.js +189 -2
- package/bin/mcp.js +176 -1
- package/bin/serve.js +175 -0
- package/connectors/connect-airtable/.env.example +11 -0
- package/connectors/connect-airtable/CLAUDE.md +121 -0
- package/connectors/connect-airtable/README.md +193 -0
- package/connectors/connect-airtable/package.json +50 -0
- package/connectors/connect-airtable/src/api/client.ts +139 -0
- package/connectors/connect-airtable/src/api/index.ts +405 -0
- package/connectors/connect-airtable/src/cli/index.ts +637 -0
- package/connectors/connect-airtable/src/index.ts +20 -0
- package/connectors/connect-airtable/src/types/index.ts +349 -0
- package/connectors/connect-airtable/src/utils/config.ts +197 -0
- package/connectors/connect-airtable/tsconfig.json +16 -0
- package/connectors/connect-amplitude/.env.example +11 -0
- package/connectors/connect-amplitude/CLAUDE.md +121 -0
- package/connectors/connect-amplitude/README.md +193 -0
- package/connectors/connect-amplitude/package.json +51 -0
- package/connectors/connect-amplitude/src/api/client.ts +144 -0
- package/connectors/connect-amplitude/src/api/index.ts +215 -0
- package/connectors/connect-amplitude/src/cli/index.ts +532 -0
- package/connectors/connect-amplitude/src/index.ts +22 -0
- package/connectors/connect-amplitude/src/types/index.ts +329 -0
- package/connectors/connect-amplitude/src/utils/config.ts +208 -0
- package/connectors/connect-amplitude/tsconfig.json +16 -0
- package/connectors/connect-calendly/.env.example +11 -0
- package/connectors/connect-calendly/CLAUDE.md +272 -0
- package/connectors/connect-calendly/README.md +193 -0
- package/connectors/connect-calendly/package.json +51 -0
- package/connectors/connect-calendly/scripts/release.ts +179 -0
- package/connectors/connect-calendly/src/api/client.ts +213 -0
- package/connectors/connect-calendly/src/api/example.ts +48 -0
- package/connectors/connect-calendly/src/api/index.ts +51 -0
- package/connectors/connect-calendly/src/cli/index.ts +254 -0
- package/connectors/connect-calendly/src/index.ts +103 -0
- package/connectors/connect-calendly/src/types/index.ts +237 -0
- package/connectors/connect-calendly/src/utils/auth.ts +274 -0
- package/connectors/connect-calendly/src/utils/bulk.ts +212 -0
- package/connectors/connect-calendly/src/utils/config.ts +326 -0
- package/connectors/connect-calendly/src/utils/output.ts +175 -0
- package/connectors/connect-calendly/src/utils/settings.ts +114 -0
- package/connectors/connect-calendly/src/utils/storage.ts +198 -0
- package/connectors/connect-calendly/tsconfig.json +16 -0
- package/connectors/connect-convertkit/.env.example +11 -0
- package/connectors/connect-convertkit/CLAUDE.md +272 -0
- package/connectors/connect-convertkit/README.md +193 -0
- package/connectors/connect-convertkit/package.json +51 -0
- package/connectors/connect-convertkit/scripts/release.ts +179 -0
- package/connectors/connect-convertkit/src/api/client.ts +213 -0
- package/connectors/connect-convertkit/src/api/example.ts +48 -0
- package/connectors/connect-convertkit/src/api/index.ts +51 -0
- package/connectors/connect-convertkit/src/cli/index.ts +254 -0
- package/connectors/connect-convertkit/src/index.ts +103 -0
- package/connectors/connect-convertkit/src/types/index.ts +237 -0
- package/connectors/connect-convertkit/src/utils/auth.ts +274 -0
- package/connectors/connect-convertkit/src/utils/bulk.ts +212 -0
- package/connectors/connect-convertkit/src/utils/config.ts +326 -0
- package/connectors/connect-convertkit/src/utils/output.ts +175 -0
- package/connectors/connect-convertkit/src/utils/settings.ts +114 -0
- package/connectors/connect-convertkit/src/utils/storage.ts +198 -0
- package/connectors/connect-convertkit/tsconfig.json +16 -0
- package/connectors/connect-crisp/.env.example +11 -0
- package/connectors/connect-crisp/CLAUDE.md +272 -0
- package/connectors/connect-crisp/README.md +193 -0
- package/connectors/connect-crisp/package.json +51 -0
- package/connectors/connect-crisp/scripts/release.ts +179 -0
- package/connectors/connect-crisp/src/api/client.ts +213 -0
- package/connectors/connect-crisp/src/api/example.ts +48 -0
- package/connectors/connect-crisp/src/api/index.ts +51 -0
- package/connectors/connect-crisp/src/cli/index.ts +254 -0
- package/connectors/connect-crisp/src/index.ts +103 -0
- package/connectors/connect-crisp/src/types/index.ts +237 -0
- package/connectors/connect-crisp/src/utils/auth.ts +274 -0
- package/connectors/connect-crisp/src/utils/bulk.ts +212 -0
- package/connectors/connect-crisp/src/utils/config.ts +326 -0
- package/connectors/connect-crisp/src/utils/output.ts +175 -0
- package/connectors/connect-crisp/src/utils/settings.ts +114 -0
- package/connectors/connect-crisp/src/utils/storage.ts +198 -0
- package/connectors/connect-crisp/tsconfig.json +16 -0
- package/connectors/connect-docusign/.env.example +11 -0
- package/connectors/connect-docusign/CLAUDE.md +128 -0
- package/connectors/connect-docusign/README.md +193 -0
- package/connectors/connect-docusign/package.json +52 -0
- package/connectors/connect-docusign/src/api/client.ts +133 -0
- package/connectors/connect-docusign/src/api/index.ts +178 -0
- package/connectors/connect-docusign/src/cli/index.ts +381 -0
- package/connectors/connect-docusign/src/index.ts +23 -0
- package/connectors/connect-docusign/src/types/index.ts +208 -0
- package/connectors/connect-docusign/src/utils/config.ts +125 -0
- package/connectors/connect-docusign/src/utils/output.ts +119 -0
- package/connectors/connect-docusign/tsconfig.json +16 -0
- package/connectors/connect-drift/.env.example +11 -0
- package/connectors/connect-drift/CLAUDE.md +272 -0
- package/connectors/connect-drift/README.md +193 -0
- package/connectors/connect-drift/package.json +51 -0
- package/connectors/connect-drift/scripts/release.ts +179 -0
- package/connectors/connect-drift/src/api/client.ts +213 -0
- package/connectors/connect-drift/src/api/example.ts +48 -0
- package/connectors/connect-drift/src/api/index.ts +51 -0
- package/connectors/connect-drift/src/cli/index.ts +254 -0
- package/connectors/connect-drift/src/index.ts +103 -0
- package/connectors/connect-drift/src/types/index.ts +237 -0
- package/connectors/connect-drift/src/utils/auth.ts +274 -0
- package/connectors/connect-drift/src/utils/bulk.ts +212 -0
- package/connectors/connect-drift/src/utils/config.ts +326 -0
- package/connectors/connect-drift/src/utils/output.ts +175 -0
- package/connectors/connect-drift/src/utils/settings.ts +114 -0
- package/connectors/connect-drift/src/utils/storage.ts +198 -0
- package/connectors/connect-drift/tsconfig.json +16 -0
- package/connectors/connect-freshdesk/.env.example +11 -0
- package/connectors/connect-freshdesk/CLAUDE.md +272 -0
- package/connectors/connect-freshdesk/README.md +193 -0
- package/connectors/connect-freshdesk/package.json +51 -0
- package/connectors/connect-freshdesk/scripts/release.ts +179 -0
- package/connectors/connect-freshdesk/src/api/client.ts +213 -0
- package/connectors/connect-freshdesk/src/api/example.ts +48 -0
- package/connectors/connect-freshdesk/src/api/index.ts +51 -0
- package/connectors/connect-freshdesk/src/cli/index.ts +254 -0
- package/connectors/connect-freshdesk/src/index.ts +103 -0
- package/connectors/connect-freshdesk/src/types/index.ts +237 -0
- package/connectors/connect-freshdesk/src/utils/auth.ts +274 -0
- package/connectors/connect-freshdesk/src/utils/bulk.ts +212 -0
- package/connectors/connect-freshdesk/src/utils/config.ts +326 -0
- package/connectors/connect-freshdesk/src/utils/output.ts +175 -0
- package/connectors/connect-freshdesk/src/utils/settings.ts +114 -0
- package/connectors/connect-freshdesk/src/utils/storage.ts +198 -0
- package/connectors/connect-freshdesk/tsconfig.json +16 -0
- package/connectors/connect-gumroad/.env.example +11 -0
- package/connectors/connect-gumroad/CLAUDE.md +272 -0
- package/connectors/connect-gumroad/README.md +193 -0
- package/connectors/connect-gumroad/package.json +51 -0
- package/connectors/connect-gumroad/scripts/release.ts +179 -0
- package/connectors/connect-gumroad/src/api/client.ts +213 -0
- package/connectors/connect-gumroad/src/api/example.ts +48 -0
- package/connectors/connect-gumroad/src/api/index.ts +51 -0
- package/connectors/connect-gumroad/src/cli/index.ts +254 -0
- package/connectors/connect-gumroad/src/index.ts +103 -0
- package/connectors/connect-gumroad/src/types/index.ts +237 -0
- package/connectors/connect-gumroad/src/utils/auth.ts +274 -0
- package/connectors/connect-gumroad/src/utils/bulk.ts +212 -0
- package/connectors/connect-gumroad/src/utils/config.ts +326 -0
- package/connectors/connect-gumroad/src/utils/output.ts +175 -0
- package/connectors/connect-gumroad/src/utils/settings.ts +114 -0
- package/connectors/connect-gumroad/src/utils/storage.ts +198 -0
- package/connectors/connect-gumroad/tsconfig.json +16 -0
- package/connectors/connect-hubspot/.env.example +11 -0
- package/connectors/connect-hubspot/CLAUDE.md +128 -0
- package/connectors/connect-hubspot/README.md +193 -0
- package/connectors/connect-hubspot/package.json +52 -0
- package/connectors/connect-hubspot/src/api/client.ts +136 -0
- package/connectors/connect-hubspot/src/api/index.ts +379 -0
- package/connectors/connect-hubspot/src/cli/index.ts +589 -0
- package/connectors/connect-hubspot/src/index.ts +21 -0
- package/connectors/connect-hubspot/src/types/index.ts +285 -0
- package/connectors/connect-hubspot/src/utils/config.ts +205 -0
- package/connectors/connect-hubspot/src/utils/output.ts +119 -0
- package/connectors/connect-hubspot/tsconfig.json +16 -0
- package/connectors/connect-intercom/.env.example +11 -0
- package/connectors/connect-intercom/CLAUDE.md +131 -0
- package/connectors/connect-intercom/README.md +193 -0
- package/connectors/connect-intercom/package.json +52 -0
- package/connectors/connect-intercom/src/api/client.ts +132 -0
- package/connectors/connect-intercom/src/api/index.ts +366 -0
- package/connectors/connect-intercom/src/cli/index.ts +831 -0
- package/connectors/connect-intercom/src/index.ts +21 -0
- package/connectors/connect-intercom/src/types/index.ts +650 -0
- package/connectors/connect-intercom/src/utils/config.ts +157 -0
- package/connectors/connect-intercom/src/utils/output.ts +119 -0
- package/connectors/connect-intercom/tsconfig.json +16 -0
- package/connectors/connect-lemonsqueezy/.env.example +11 -0
- package/connectors/connect-lemonsqueezy/CLAUDE.md +128 -0
- package/connectors/connect-lemonsqueezy/README.md +193 -0
- package/connectors/connect-lemonsqueezy/package.json +52 -0
- package/connectors/connect-lemonsqueezy/src/api/client.ts +133 -0
- package/connectors/connect-lemonsqueezy/src/api/index.ts +502 -0
- package/connectors/connect-lemonsqueezy/src/cli/index.ts +723 -0
- package/connectors/connect-lemonsqueezy/src/index.ts +21 -0
- package/connectors/connect-lemonsqueezy/src/types/index.ts +353 -0
- package/connectors/connect-lemonsqueezy/src/utils/config.ts +205 -0
- package/connectors/connect-lemonsqueezy/src/utils/output.ts +119 -0
- package/connectors/connect-lemonsqueezy/tsconfig.json +16 -0
- package/connectors/connect-linkedin/.env.example +11 -0
- package/connectors/connect-linkedin/CLAUDE.md +124 -0
- package/connectors/connect-linkedin/README.md +193 -0
- package/connectors/connect-linkedin/package.json +52 -0
- package/connectors/connect-linkedin/src/api/client.ts +132 -0
- package/connectors/connect-linkedin/src/api/index.ts +313 -0
- package/connectors/connect-linkedin/src/cli/index.ts +548 -0
- package/connectors/connect-linkedin/src/index.ts +21 -0
- package/connectors/connect-linkedin/src/types/index.ts +472 -0
- package/connectors/connect-linkedin/src/utils/config.ts +157 -0
- package/connectors/connect-linkedin/src/utils/output.ts +119 -0
- package/connectors/connect-linkedin/tsconfig.json +16 -0
- package/connectors/connect-mailchimp/.env.example +11 -0
- package/connectors/connect-mailchimp/CLAUDE.md +127 -0
- package/connectors/connect-mailchimp/README.md +193 -0
- package/connectors/connect-mailchimp/package.json +52 -0
- package/connectors/connect-mailchimp/src/api/client.ts +162 -0
- package/connectors/connect-mailchimp/src/api/index.ts +580 -0
- package/connectors/connect-mailchimp/src/cli/index.ts +822 -0
- package/connectors/connect-mailchimp/src/index.ts +23 -0
- package/connectors/connect-mailchimp/src/types/index.ts +585 -0
- package/connectors/connect-mailchimp/src/utils/config.ts +208 -0
- package/connectors/connect-mailchimp/src/utils/output.ts +119 -0
- package/connectors/connect-mailchimp/tsconfig.json +16 -0
- package/connectors/connect-mongodb/.env.example +11 -0
- package/connectors/connect-mongodb/CLAUDE.md +272 -0
- package/connectors/connect-mongodb/README.md +193 -0
- package/connectors/connect-mongodb/package.json +51 -0
- package/connectors/connect-mongodb/scripts/release.ts +179 -0
- package/connectors/connect-mongodb/src/api/client.ts +213 -0
- package/connectors/connect-mongodb/src/api/example.ts +48 -0
- package/connectors/connect-mongodb/src/api/index.ts +51 -0
- package/connectors/connect-mongodb/src/cli/index.ts +254 -0
- package/connectors/connect-mongodb/src/index.ts +103 -0
- package/connectors/connect-mongodb/src/types/index.ts +237 -0
- package/connectors/connect-mongodb/src/utils/auth.ts +274 -0
- package/connectors/connect-mongodb/src/utils/bulk.ts +212 -0
- package/connectors/connect-mongodb/src/utils/config.ts +326 -0
- package/connectors/connect-mongodb/src/utils/output.ts +175 -0
- package/connectors/connect-mongodb/src/utils/settings.ts +114 -0
- package/connectors/connect-mongodb/src/utils/storage.ts +198 -0
- package/connectors/connect-mongodb/tsconfig.json +16 -0
- package/connectors/connect-netlify/.env.example +11 -0
- package/connectors/connect-netlify/CLAUDE.md +170 -0
- package/connectors/connect-netlify/README.md +193 -0
- package/connectors/connect-netlify/package.json +53 -0
- package/connectors/connect-netlify/src/api/client.ts +132 -0
- package/connectors/connect-netlify/src/api/index.ts +533 -0
- package/connectors/connect-netlify/src/cli/index.ts +985 -0
- package/connectors/connect-netlify/src/index.ts +22 -0
- package/connectors/connect-netlify/src/types/index.ts +423 -0
- package/connectors/connect-netlify/src/utils/config.ts +171 -0
- package/connectors/connect-netlify/src/utils/output.ts +119 -0
- package/connectors/connect-netlify/tsconfig.json +16 -0
- package/connectors/connect-paypal/.env.example +11 -0
- package/connectors/connect-paypal/CLAUDE.md +128 -0
- package/connectors/connect-paypal/README.md +193 -0
- package/connectors/connect-paypal/package.json +51 -0
- package/connectors/connect-paypal/src/api/client.ts +182 -0
- package/connectors/connect-paypal/src/api/index.ts +235 -0
- package/connectors/connect-paypal/src/cli/index.ts +559 -0
- package/connectors/connect-paypal/src/index.ts +23 -0
- package/connectors/connect-paypal/src/types/index.ts +377 -0
- package/connectors/connect-paypal/src/utils/config.ts +125 -0
- package/connectors/connect-paypal/src/utils/output.ts +119 -0
- package/connectors/connect-paypal/tsconfig.json +16 -0
- package/connectors/connect-pinterest/.env.example +11 -0
- package/connectors/connect-pinterest/CLAUDE.md +115 -0
- package/connectors/connect-pinterest/README.md +193 -0
- package/connectors/connect-pinterest/package.json +52 -0
- package/connectors/connect-pinterest/src/api/client.ts +125 -0
- package/connectors/connect-pinterest/src/api/index.ts +203 -0
- package/connectors/connect-pinterest/src/cli/index.ts +653 -0
- package/connectors/connect-pinterest/src/index.ts +21 -0
- package/connectors/connect-pinterest/src/types/index.ts +268 -0
- package/connectors/connect-pinterest/src/utils/config.ts +157 -0
- package/connectors/connect-pinterest/src/utils/output.ts +119 -0
- package/connectors/connect-pinterest/tsconfig.json +16 -0
- package/connectors/connect-posthog/.env.example +11 -0
- package/connectors/connect-posthog/CLAUDE.md +272 -0
- package/connectors/connect-posthog/README.md +193 -0
- package/connectors/connect-posthog/package.json +51 -0
- package/connectors/connect-posthog/scripts/release.ts +179 -0
- package/connectors/connect-posthog/src/api/client.ts +213 -0
- package/connectors/connect-posthog/src/api/example.ts +48 -0
- package/connectors/connect-posthog/src/api/index.ts +51 -0
- package/connectors/connect-posthog/src/cli/index.ts +254 -0
- package/connectors/connect-posthog/src/index.ts +103 -0
- package/connectors/connect-posthog/src/types/index.ts +237 -0
- package/connectors/connect-posthog/src/utils/auth.ts +274 -0
- package/connectors/connect-posthog/src/utils/bulk.ts +212 -0
- package/connectors/connect-posthog/src/utils/config.ts +326 -0
- package/connectors/connect-posthog/src/utils/output.ts +175 -0
- package/connectors/connect-posthog/src/utils/settings.ts +114 -0
- package/connectors/connect-posthog/src/utils/storage.ts +198 -0
- package/connectors/connect-posthog/tsconfig.json +16 -0
- package/connectors/connect-salesforce/.env.example +11 -0
- package/connectors/connect-salesforce/CLAUDE.md +128 -0
- package/connectors/connect-salesforce/README.md +193 -0
- package/connectors/connect-salesforce/package.json +53 -0
- package/connectors/connect-salesforce/src/api/client.ts +150 -0
- package/connectors/connect-salesforce/src/api/index.ts +367 -0
- package/connectors/connect-salesforce/src/cli/index.ts +594 -0
- package/connectors/connect-salesforce/src/index.ts +21 -0
- package/connectors/connect-salesforce/src/types/index.ts +292 -0
- package/connectors/connect-salesforce/src/utils/config.ts +208 -0
- package/connectors/connect-salesforce/src/utils/output.ts +119 -0
- package/connectors/connect-salesforce/tsconfig.json +16 -0
- package/connectors/connect-segment/.env.example +11 -0
- package/connectors/connect-segment/CLAUDE.md +272 -0
- package/connectors/connect-segment/README.md +193 -0
- package/connectors/connect-segment/package.json +51 -0
- package/connectors/connect-segment/scripts/release.ts +179 -0
- package/connectors/connect-segment/src/api/client.ts +213 -0
- package/connectors/connect-segment/src/api/example.ts +48 -0
- package/connectors/connect-segment/src/api/index.ts +51 -0
- package/connectors/connect-segment/src/cli/index.ts +254 -0
- package/connectors/connect-segment/src/index.ts +103 -0
- package/connectors/connect-segment/src/types/index.ts +237 -0
- package/connectors/connect-segment/src/utils/auth.ts +274 -0
- package/connectors/connect-segment/src/utils/bulk.ts +212 -0
- package/connectors/connect-segment/src/utils/config.ts +326 -0
- package/connectors/connect-segment/src/utils/output.ts +175 -0
- package/connectors/connect-segment/src/utils/settings.ts +114 -0
- package/connectors/connect-segment/src/utils/storage.ts +198 -0
- package/connectors/connect-segment/tsconfig.json +16 -0
- package/connectors/connect-sendgrid/.env.example +11 -0
- package/connectors/connect-sendgrid/CLAUDE.md +125 -0
- package/connectors/connect-sendgrid/README.md +193 -0
- package/connectors/connect-sendgrid/package.json +53 -0
- package/connectors/connect-sendgrid/src/api/client.ts +137 -0
- package/connectors/connect-sendgrid/src/api/index.ts +588 -0
- package/connectors/connect-sendgrid/src/cli/index.ts +764 -0
- package/connectors/connect-sendgrid/src/index.ts +21 -0
- package/connectors/connect-sendgrid/src/types/index.ts +403 -0
- package/connectors/connect-sendgrid/src/utils/config.ts +197 -0
- package/connectors/connect-sendgrid/src/utils/output.ts +119 -0
- package/connectors/connect-sendgrid/tsconfig.json +16 -0
- package/connectors/connect-supabase/.env.example +11 -0
- package/connectors/connect-supabase/CLAUDE.md +132 -0
- package/connectors/connect-supabase/README.md +193 -0
- package/connectors/connect-supabase/package.json +52 -0
- package/connectors/connect-supabase/src/api/client.ts +231 -0
- package/connectors/connect-supabase/src/api/index.ts +439 -0
- package/connectors/connect-supabase/src/cli/index.ts +691 -0
- package/connectors/connect-supabase/src/index.ts +24 -0
- package/connectors/connect-supabase/src/types/index.ts +215 -0
- package/connectors/connect-supabase/src/utils/config.ts +219 -0
- package/connectors/connect-supabase/tsconfig.json +16 -0
- package/connectors/connect-vercel/.env.example +11 -0
- package/connectors/connect-vercel/CLAUDE.md +142 -0
- package/connectors/connect-vercel/README.md +193 -0
- package/connectors/connect-vercel/package.json +52 -0
- package/connectors/connect-vercel/src/api/client.ts +139 -0
- package/connectors/connect-vercel/src/api/index.ts +384 -0
- package/connectors/connect-vercel/src/cli/index.ts +740 -0
- package/connectors/connect-vercel/src/index.ts +24 -0
- package/connectors/connect-vercel/src/types/index.ts +350 -0
- package/connectors/connect-vercel/src/utils/config.ts +182 -0
- package/connectors/connect-vercel/src/utils/output.ts +119 -0
- package/connectors/connect-vercel/tsconfig.json +16 -0
- package/connectors/connect-zendesk/.env.example +10 -0
- package/connectors/connect-zendesk/.github/workflows/deploy.yml +51 -0
- package/connectors/connect-zendesk/CLAUDE.md +78 -0
- package/connectors/connect-zendesk/Makefile +129 -0
- package/connectors/connect-zendesk/README.md +295 -0
- package/connectors/connect-zendesk/SCAFFOLD.md +178 -0
- package/connectors/connect-zendesk/nginx-connector.conf +218 -0
- package/connectors/connect-zendesk/nginx.conf +61 -0
- package/connectors/connect-zendesk/package.json +71 -0
- package/connectors/connect-zendesk/scripts/init.sh +62 -0
- package/connectors/connect-zendesk/scripts/publish.ts +210 -0
- package/connectors/connect-zendesk/server/index.js +142 -0
- package/connectors/connect-zendesk/src/api/automations.ts +95 -0
- package/connectors/connect-zendesk/src/api/brands.ts +80 -0
- package/connectors/connect-zendesk/src/api/bulk.ts +838 -0
- package/connectors/connect-zendesk/src/api/client.test.ts +315 -0
- package/connectors/connect-zendesk/src/api/client.ts +173 -0
- package/connectors/connect-zendesk/src/api/example.ts +59 -0
- package/connectors/connect-zendesk/src/api/groups.ts +60 -0
- package/connectors/connect-zendesk/src/api/index.test.ts +111 -0
- package/connectors/connect-zendesk/src/api/index.ts +131 -0
- package/connectors/connect-zendesk/src/api/macros.ts +124 -0
- package/connectors/connect-zendesk/src/api/organizations.ts +85 -0
- package/connectors/connect-zendesk/src/api/slas.ts +80 -0
- package/connectors/connect-zendesk/src/api/ticket-fields.ts +98 -0
- package/connectors/connect-zendesk/src/api/tickets.test.ts +215 -0
- package/connectors/connect-zendesk/src/api/tickets.ts +103 -0
- package/connectors/connect-zendesk/src/api/triggers.test.ts +204 -0
- package/connectors/connect-zendesk/src/api/triggers.ts +125 -0
- package/connectors/connect-zendesk/src/api/users.test.ts +180 -0
- package/connectors/connect-zendesk/src/api/users.ts +108 -0
- package/connectors/connect-zendesk/src/api/views.test.ts +223 -0
- package/connectors/connect-zendesk/src/api/views.ts +145 -0
- package/connectors/connect-zendesk/src/api/webhooks.test.ts +208 -0
- package/connectors/connect-zendesk/src/api/webhooks.ts +118 -0
- package/connectors/connect-zendesk/src/cli/index.ts +1478 -0
- package/connectors/connect-zendesk/src/index.ts +36 -0
- package/connectors/connect-zendesk/src/server/index.ts +204 -0
- package/connectors/connect-zendesk/src/types/index.ts +910 -0
- package/connectors/connect-zendesk/src/utils/config.test.ts +193 -0
- package/connectors/connect-zendesk/src/utils/config.ts +526 -0
- package/connectors/connect-zendesk/src/utils/export.ts +338 -0
- package/connectors/connect-zendesk/src/utils/logger.ts +105 -0
- package/connectors/connect-zendesk/src/utils/output.test.ts +137 -0
- package/connectors/connect-zendesk/src/utils/output.ts +119 -0
- package/connectors/connect-zendesk/tsconfig.json +31 -0
- package/dist/index.js +175 -0
- package/package.json +1 -1
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
name: Deploy to EC2
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [main]
|
|
6
|
+
workflow_dispatch:
|
|
7
|
+
|
|
8
|
+
jobs:
|
|
9
|
+
deploy:
|
|
10
|
+
runs-on: ubuntu-latest
|
|
11
|
+
|
|
12
|
+
steps:
|
|
13
|
+
- name: Checkout code
|
|
14
|
+
uses: actions/checkout@v4
|
|
15
|
+
|
|
16
|
+
- name: Setup Bun
|
|
17
|
+
uses: oven-sh/setup-bun@v2
|
|
18
|
+
with:
|
|
19
|
+
bun-version: latest
|
|
20
|
+
|
|
21
|
+
- name: Install dependencies
|
|
22
|
+
run: bun install
|
|
23
|
+
|
|
24
|
+
- name: Run tests
|
|
25
|
+
run: bun test
|
|
26
|
+
|
|
27
|
+
- name: Build
|
|
28
|
+
run: bun run build
|
|
29
|
+
|
|
30
|
+
- name: Deploy to EC2
|
|
31
|
+
uses: appleboy/ssh-action@v1.0.3
|
|
32
|
+
with:
|
|
33
|
+
host: ${{ secrets.EC2_HOST }}
|
|
34
|
+
username: ec2-user
|
|
35
|
+
key: ${{ secrets.EC2_SSH_KEY }}
|
|
36
|
+
script: |
|
|
37
|
+
cd /home/ec2-user/connectors/connect-zendesk
|
|
38
|
+
git pull origin main
|
|
39
|
+
~/.bun/bin/bun install
|
|
40
|
+
~/.bun/bin/bun run build
|
|
41
|
+
sudo systemctl restart connect-zendesk
|
|
42
|
+
echo "Deployment complete"
|
|
43
|
+
|
|
44
|
+
- name: Verify deployment
|
|
45
|
+
uses: appleboy/ssh-action@v1.0.3
|
|
46
|
+
with:
|
|
47
|
+
host: ${{ secrets.EC2_HOST }}
|
|
48
|
+
username: ec2-user
|
|
49
|
+
key: ${{ secrets.EC2_SSH_KEY }}
|
|
50
|
+
script: |
|
|
51
|
+
curl -sf http://localhost:21010/zendesk/health && echo "Health check passed"
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Use Bun instead of Node.js, npm, pnpm, or vite.
|
|
3
|
+
globs: "*.ts, *.tsx, *.html, *.css, *.js, *.jsx, package.json"
|
|
4
|
+
alwaysApply: false
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
Default to using Bun instead of Node.js.
|
|
8
|
+
|
|
9
|
+
- Use `bun <file>` instead of `node <file>` or `ts-node <file>`
|
|
10
|
+
- Use `bun test` instead of `jest` or `vitest`
|
|
11
|
+
- Use `bun build <file.html|file.ts|file.css>` instead of `webpack` or `esbuild`
|
|
12
|
+
- Use `bun install` instead of `npm install` or `yarn install` or `pnpm install`
|
|
13
|
+
- Use `bun run <script>` instead of `npm run <script>` or `yarn run <script>` or `pnpm run <script>`
|
|
14
|
+
- Use `bunx <package> <command>` instead of `npx <package> <command>`
|
|
15
|
+
- Bun automatically loads .env, so don't use dotenv.
|
|
16
|
+
|
|
17
|
+
## Project Structure
|
|
18
|
+
|
|
19
|
+
This is a **connector** project for Zendesk that follows the Beep Media connector pattern:
|
|
20
|
+
|
|
21
|
+
```
|
|
22
|
+
connect-zendesk/
|
|
23
|
+
├── src/
|
|
24
|
+
│ ├── api/ # API client modules
|
|
25
|
+
│ │ ├── client.ts # Base HTTP client
|
|
26
|
+
│ │ ├── index.ts # Main connector class
|
|
27
|
+
│ │ └── *.ts # Resource-specific APIs
|
|
28
|
+
│ ├── cli/ # CLI commands
|
|
29
|
+
│ │ └── index.ts # Commander-based CLI
|
|
30
|
+
│ ├── types/ # TypeScript types
|
|
31
|
+
│ │ └── index.ts # All type definitions
|
|
32
|
+
│ ├── utils/ # Utilities
|
|
33
|
+
│ │ ├── config.ts # CLI configuration storage
|
|
34
|
+
│ │ └── output.ts # Output formatting
|
|
35
|
+
│ └── index.ts # SDK entry point
|
|
36
|
+
├── package.json
|
|
37
|
+
└── tsconfig.json
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## Infrastructure
|
|
41
|
+
|
|
42
|
+
- **CLI Name**: `connect-zendesk`
|
|
43
|
+
- **EC2 Instance**: `hasna-prod-connect-zendesk`
|
|
44
|
+
- **RDS Database**: `hasna-prod-connect-zendesk`
|
|
45
|
+
- **S3 Bucket**: `hasna-prod-connect-zendesk`
|
|
46
|
+
- **Remote API**: `https://connect.hasna.com/zendesk`
|
|
47
|
+
|
|
48
|
+
## Key Patterns
|
|
49
|
+
|
|
50
|
+
1. **API Client**: All API calls go through `ZendeskClient` which handles auth and request formatting
|
|
51
|
+
2. **Resource APIs**: Each resource type gets its own API class (e.g., `UsersApi`, `OrdersApi`)
|
|
52
|
+
3. **CLI Commands**: Commander-based with subcommands for each resource
|
|
53
|
+
4. **Configuration**: Stored in `~/.connect-zendesk/config.json`
|
|
54
|
+
5. **Environment Variables**: `ZENDESK_API_KEY` for API authentication
|
|
55
|
+
|
|
56
|
+
## APIs
|
|
57
|
+
|
|
58
|
+
- `Bun.serve()` supports WebSockets, HTTPS, and routes. Don't use `express`.
|
|
59
|
+
- `bun:sqlite` for SQLite. Don't use `better-sqlite3`.
|
|
60
|
+
- `Bun.redis` for Redis. Don't use `ioredis`.
|
|
61
|
+
- `Bun.sql` for Postgres. Don't use `pg` or `postgres.js`.
|
|
62
|
+
- `WebSocket` is built-in. Don't use `ws`.
|
|
63
|
+
- Prefer `Bun.file` over `node:fs`'s readFile/writeFile
|
|
64
|
+
- Bun.$`ls` instead of execa.
|
|
65
|
+
|
|
66
|
+
## Testing
|
|
67
|
+
|
|
68
|
+
Use `bun test` to run tests.
|
|
69
|
+
|
|
70
|
+
```ts#index.test.ts
|
|
71
|
+
import { test, expect } from "bun:test";
|
|
72
|
+
|
|
73
|
+
test("hello world", () => {
|
|
74
|
+
expect(1).toBe(1);
|
|
75
|
+
});
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
For more information, read the Bun API docs in `node_modules/bun-types/docs/**.mdx`.
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
# Makefile for connect-zendesk
|
|
2
|
+
#
|
|
3
|
+
# Common commands:
|
|
4
|
+
# make install - Install dependencies
|
|
5
|
+
# make dev - Run CLI in development mode
|
|
6
|
+
# make server - Run server in development mode
|
|
7
|
+
# make build - Build for production
|
|
8
|
+
# make deploy - Deploy to EC2 instance
|
|
9
|
+
# make typecheck - Run TypeScript type checking
|
|
10
|
+
# make clean - Remove build artifacts
|
|
11
|
+
|
|
12
|
+
.PHONY: install dev server server-prod build typecheck test clean help link unlink deploy deploy-ec2 deploy-sync logs ssh npm-publish
|
|
13
|
+
|
|
14
|
+
# Configuration
|
|
15
|
+
EC2_HOST ?= hasna-prod-connect-zendesk
|
|
16
|
+
EC2_USER ?= ec2-user
|
|
17
|
+
DEPLOY_PATH ?= /home/ec2-user/connectors/connect-zendesk
|
|
18
|
+
SERVICE_NAME ?= connect-zendesk
|
|
19
|
+
PORT ?= 21010
|
|
20
|
+
|
|
21
|
+
# Default target
|
|
22
|
+
help:
|
|
23
|
+
@echo "Available commands:"
|
|
24
|
+
@echo " make install - Install dependencies"
|
|
25
|
+
@echo " make dev - Run CLI in development mode"
|
|
26
|
+
@echo " make server - Run server in development mode"
|
|
27
|
+
@echo " make server-prod - Run server in production mode"
|
|
28
|
+
@echo " make build - Build for production"
|
|
29
|
+
@echo " make test - Run tests"
|
|
30
|
+
@echo " make typecheck - Run TypeScript type checking"
|
|
31
|
+
@echo " make clean - Remove build artifacts"
|
|
32
|
+
@echo " make link - Link CLI globally for development"
|
|
33
|
+
@echo " make unlink - Unlink CLI"
|
|
34
|
+
@echo ""
|
|
35
|
+
@echo "Deployment:"
|
|
36
|
+
@echo " make deploy - Deploy to EC2 instance (build + sync + restart)"
|
|
37
|
+
@echo " make deploy-sync - Sync files to EC2 (without restart)"
|
|
38
|
+
@echo " make logs - View server logs on EC2"
|
|
39
|
+
@echo " make ssh - SSH into EC2 instance"
|
|
40
|
+
@echo ""
|
|
41
|
+
@echo "Publishing:"
|
|
42
|
+
@echo " make npm-publish - Publish to npm"
|
|
43
|
+
|
|
44
|
+
install:
|
|
45
|
+
bun install
|
|
46
|
+
|
|
47
|
+
dev:
|
|
48
|
+
bun run dev
|
|
49
|
+
|
|
50
|
+
server:
|
|
51
|
+
PORT=$(PORT) bun run server
|
|
52
|
+
|
|
53
|
+
server-prod:
|
|
54
|
+
PORT=$(PORT) NODE_ENV=production bun run server
|
|
55
|
+
|
|
56
|
+
build:
|
|
57
|
+
bun run build
|
|
58
|
+
|
|
59
|
+
test:
|
|
60
|
+
bun test
|
|
61
|
+
|
|
62
|
+
typecheck:
|
|
63
|
+
bun run typecheck
|
|
64
|
+
|
|
65
|
+
clean:
|
|
66
|
+
rm -rf dist bin server node_modules/.cache
|
|
67
|
+
|
|
68
|
+
link:
|
|
69
|
+
bun link
|
|
70
|
+
|
|
71
|
+
unlink:
|
|
72
|
+
bun unlink @hasna/connect-zendesk
|
|
73
|
+
|
|
74
|
+
# Deployment targets
|
|
75
|
+
deploy-sync:
|
|
76
|
+
@echo "Syncing to $(EC2_HOST):$(DEPLOY_PATH)..."
|
|
77
|
+
rsync -avz --delete \
|
|
78
|
+
--exclude='.git' \
|
|
79
|
+
--exclude='node_modules' \
|
|
80
|
+
--exclude='.env.local' \
|
|
81
|
+
. $(EC2_USER)@$(EC2_HOST):$(DEPLOY_PATH)/
|
|
82
|
+
|
|
83
|
+
deploy-ec2: deploy-sync
|
|
84
|
+
@echo "Installing dependencies on EC2..."
|
|
85
|
+
ssh $(EC2_USER)@$(EC2_HOST) "cd $(DEPLOY_PATH) && bun install --production"
|
|
86
|
+
@echo "Building on EC2..."
|
|
87
|
+
ssh $(EC2_USER)@$(EC2_HOST) "cd $(DEPLOY_PATH) && bun run build"
|
|
88
|
+
@echo "Restarting service..."
|
|
89
|
+
ssh $(EC2_USER)@$(EC2_HOST) "sudo systemctl restart $(SERVICE_NAME) || sudo systemctl start $(SERVICE_NAME)"
|
|
90
|
+
@echo "Checking service status..."
|
|
91
|
+
ssh $(EC2_USER)@$(EC2_HOST) "sudo systemctl status $(SERVICE_NAME) --no-pager"
|
|
92
|
+
|
|
93
|
+
deploy: build deploy-ec2
|
|
94
|
+
@echo "✅ Deployment complete"
|
|
95
|
+
@echo "Server running at https://connect.hasna.com/zendesk"
|
|
96
|
+
|
|
97
|
+
logs:
|
|
98
|
+
ssh $(EC2_USER)@$(EC2_HOST) "sudo journalctl -u $(SERVICE_NAME) -f"
|
|
99
|
+
|
|
100
|
+
ssh:
|
|
101
|
+
ssh $(EC2_USER)@$(EC2_HOST)
|
|
102
|
+
|
|
103
|
+
# NPM publishing
|
|
104
|
+
npm-publish: build test
|
|
105
|
+
@echo "Publishing to npm..."
|
|
106
|
+
npm publish --access public
|
|
107
|
+
@echo "✅ Published to npm"
|
|
108
|
+
|
|
109
|
+
# Create systemd service file
|
|
110
|
+
systemd-service:
|
|
111
|
+
@echo "[Unit]" > connect-zendesk.service
|
|
112
|
+
@echo "Description=connect-zendesk API Server" >> connect-zendesk.service
|
|
113
|
+
@echo "After=network.target" >> connect-zendesk.service
|
|
114
|
+
@echo "" >> connect-zendesk.service
|
|
115
|
+
@echo "[Service]" >> connect-zendesk.service
|
|
116
|
+
@echo "Type=simple" >> connect-zendesk.service
|
|
117
|
+
@echo "User=ec2-user" >> connect-zendesk.service
|
|
118
|
+
@echo "WorkingDirectory=$(DEPLOY_PATH)" >> connect-zendesk.service
|
|
119
|
+
@echo "ExecStart=/home/ec2-user/.bun/bin/bun run $(DEPLOY_PATH)/server/index.js" >> connect-zendesk.service
|
|
120
|
+
@echo "Restart=always" >> connect-zendesk.service
|
|
121
|
+
@echo "RestartSec=10" >> connect-zendesk.service
|
|
122
|
+
@echo "Environment=NODE_ENV=production" >> connect-zendesk.service
|
|
123
|
+
@echo "Environment=PORT=$(PORT)" >> connect-zendesk.service
|
|
124
|
+
@echo "" >> connect-zendesk.service
|
|
125
|
+
@echo "[Install]" >> connect-zendesk.service
|
|
126
|
+
@echo "WantedBy=multi-user.target" >> connect-zendesk.service
|
|
127
|
+
@echo "Created connect-zendesk.service"
|
|
128
|
+
@echo "Copy to EC2: scp connect-zendesk.service $(EC2_USER)@$(EC2_HOST):/tmp/"
|
|
129
|
+
@echo "Then run: sudo mv /tmp/connect-zendesk.service /etc/systemd/system/ && sudo systemctl daemon-reload && sudo systemctl enable connect-zendesk"
|
|
@@ -0,0 +1,295 @@
|
|
|
1
|
+
# connect-zendesk
|
|
2
|
+
|
|
3
|
+
A TypeScript CLI and SDK for the Zendesk API. Built with Bun.
|
|
4
|
+
|
|
5
|
+
This connector provides programmatic access to Zendesk's Support API, including tickets, users, organizations, and groups.
|
|
6
|
+
|
|
7
|
+
## Infrastructure
|
|
8
|
+
|
|
9
|
+
| Resource | Name |
|
|
10
|
+
|----------|------|
|
|
11
|
+
| EC2 Instance | `hasna-prod-connect-zendesk` |
|
|
12
|
+
| RDS Database | `hasna-prod-connect-zendesk` |
|
|
13
|
+
| S3 Bucket | `hasna-prod-connect-zendesk` |
|
|
14
|
+
| Remote API | `https://connect.hasna.com/zendesk` |
|
|
15
|
+
|
|
16
|
+
## Installation
|
|
17
|
+
|
|
18
|
+
### From npm (recommended)
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
# Install globally
|
|
22
|
+
npm install -g @hasna/connect-zendesk
|
|
23
|
+
# or
|
|
24
|
+
bun add -g @hasna/connect-zendesk
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
### From source
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
# Clone and install globally
|
|
31
|
+
git clone https://github.com/hasna/connect-zendesk.git
|
|
32
|
+
cd connect-zendesk
|
|
33
|
+
bun install -g .
|
|
34
|
+
|
|
35
|
+
# Or link for development
|
|
36
|
+
bun link
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
### As a Dependency
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
bun add @hasna/connect-zendesk
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
## Quick Start
|
|
46
|
+
|
|
47
|
+
### CLI Usage
|
|
48
|
+
|
|
49
|
+
```bash
|
|
50
|
+
# Configure authentication
|
|
51
|
+
connect-zendesk config set-email your-email@company.com
|
|
52
|
+
connect-zendesk config set-token YOUR_API_TOKEN
|
|
53
|
+
connect-zendesk config set-base-url https://your-subdomain.zendesk.com/api/v2
|
|
54
|
+
|
|
55
|
+
# Or use environment variables
|
|
56
|
+
export ZENDESK_EMAIL=your-email@company.com
|
|
57
|
+
export ZENDESK_API_TOKEN=YOUR_API_TOKEN
|
|
58
|
+
export ZENDESK_BASE_URL=https://your-subdomain.zendesk.com/api/v2
|
|
59
|
+
|
|
60
|
+
# List tickets
|
|
61
|
+
connect-zendesk tickets list
|
|
62
|
+
|
|
63
|
+
# Get a specific ticket
|
|
64
|
+
connect-zendesk tickets get 12345
|
|
65
|
+
|
|
66
|
+
# Create a ticket
|
|
67
|
+
connect-zendesk tickets create -s "Issue Subject" -b "Issue description"
|
|
68
|
+
|
|
69
|
+
# List users
|
|
70
|
+
connect-zendesk users list
|
|
71
|
+
|
|
72
|
+
# Get current user
|
|
73
|
+
connect-zendesk users me
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
### SDK Usage
|
|
77
|
+
|
|
78
|
+
```typescript
|
|
79
|
+
import { Zendesk } from 'connect-zendesk';
|
|
80
|
+
|
|
81
|
+
// Initialize with credentials
|
|
82
|
+
const client = new Zendesk({
|
|
83
|
+
email: 'your-email@company.com',
|
|
84
|
+
apiToken: 'YOUR_API_TOKEN',
|
|
85
|
+
baseUrl: 'https://your-subdomain.zendesk.com/api/v2'
|
|
86
|
+
});
|
|
87
|
+
|
|
88
|
+
// Or use environment variables
|
|
89
|
+
const client = Zendesk.fromEnv();
|
|
90
|
+
|
|
91
|
+
// Work with tickets
|
|
92
|
+
const tickets = await client.tickets.list();
|
|
93
|
+
const ticket = await client.tickets.get(12345);
|
|
94
|
+
const newTicket = await client.tickets.create({
|
|
95
|
+
ticket: {
|
|
96
|
+
subject: 'Help needed',
|
|
97
|
+
comment: { body: 'Description of the issue' }
|
|
98
|
+
}
|
|
99
|
+
});
|
|
100
|
+
|
|
101
|
+
// Work with users
|
|
102
|
+
const users = await client.users.list();
|
|
103
|
+
const currentUser = await client.users.me();
|
|
104
|
+
|
|
105
|
+
// Work with organizations
|
|
106
|
+
const orgs = await client.organizations.list();
|
|
107
|
+
const org = await client.organizations.get(123);
|
|
108
|
+
|
|
109
|
+
// Work with groups
|
|
110
|
+
const groups = await client.groups.list();
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
## CLI Commands
|
|
114
|
+
|
|
115
|
+
### Configuration
|
|
116
|
+
|
|
117
|
+
```bash
|
|
118
|
+
connect-zendesk config set-email <email> # Set Zendesk email
|
|
119
|
+
connect-zendesk config set-token <token> # Set API token
|
|
120
|
+
connect-zendesk config set-base-url <url> # Set base URL
|
|
121
|
+
connect-zendesk config set-account <name> # Set default account
|
|
122
|
+
connect-zendesk config show # Show configuration
|
|
123
|
+
connect-zendesk config clear # Clear configuration
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
### Tickets
|
|
127
|
+
|
|
128
|
+
```bash
|
|
129
|
+
connect-zendesk tickets list # List all tickets
|
|
130
|
+
connect-zendesk tickets list -p 2 -l 50 # List with pagination
|
|
131
|
+
connect-zendesk tickets get <id> # Get ticket by ID
|
|
132
|
+
connect-zendesk tickets create -s "Subject" -b "Body" # Create ticket
|
|
133
|
+
connect-zendesk tickets update <id> -s "New Subject" # Update ticket
|
|
134
|
+
connect-zendesk tickets delete <id> # Delete ticket
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
### Users
|
|
138
|
+
|
|
139
|
+
```bash
|
|
140
|
+
connect-zendesk users list # List all users
|
|
141
|
+
connect-zendesk users list -r agent # List users by role
|
|
142
|
+
connect-zendesk users get <id> # Get user by ID
|
|
143
|
+
connect-zendesk users me # Get current user
|
|
144
|
+
connect-zendesk users create -n "Name" -e "email@example.com" # Create user
|
|
145
|
+
connect-zendesk users search -q "email@example.com" # Search users
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
### Organizations
|
|
149
|
+
|
|
150
|
+
```bash
|
|
151
|
+
connect-zendesk organizations list # List all organizations
|
|
152
|
+
connect-zendesk orgs get <id> # Get organization by ID
|
|
153
|
+
connect-zendesk orgs create -n "Company Name" # Create organization
|
|
154
|
+
connect-zendesk orgs search -q "Company" # Search organizations
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
### Groups
|
|
158
|
+
|
|
159
|
+
```bash
|
|
160
|
+
connect-zendesk groups list # List all groups
|
|
161
|
+
connect-zendesk groups get <id> # Get group by ID
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
### Remote API
|
|
165
|
+
|
|
166
|
+
```bash
|
|
167
|
+
connect-zendesk remote status # Check remote API status
|
|
168
|
+
connect-zendesk remote health # Check remote API health
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
## Output Formats
|
|
172
|
+
|
|
173
|
+
Use the `-f` or `--format` flag to change output format:
|
|
174
|
+
|
|
175
|
+
```bash
|
|
176
|
+
connect-zendesk remote status -f json # JSON output
|
|
177
|
+
connect-zendesk remote status -f table # Table output
|
|
178
|
+
connect-zendesk remote status -f pretty # Pretty output (default)
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
## API Reference
|
|
182
|
+
|
|
183
|
+
### Zendesk Class
|
|
184
|
+
|
|
185
|
+
```typescript
|
|
186
|
+
import { Zendesk } from 'connect-zendesk';
|
|
187
|
+
|
|
188
|
+
const client = new Zendesk({
|
|
189
|
+
email: 'your-email@company.com',
|
|
190
|
+
apiToken: 'YOUR_API_TOKEN',
|
|
191
|
+
baseUrl: 'https://your-subdomain.zendesk.com/api/v2'
|
|
192
|
+
});
|
|
193
|
+
|
|
194
|
+
// Available APIs
|
|
195
|
+
client.tickets // Tickets API
|
|
196
|
+
client.users // Users API
|
|
197
|
+
client.organizations // Organizations API
|
|
198
|
+
client.groups // Groups API
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
### Authentication
|
|
202
|
+
|
|
203
|
+
Zendesk uses Basic Authentication with the following format:
|
|
204
|
+
- Email: Your Zendesk account email
|
|
205
|
+
- API Token: Generated in Zendesk Admin Center > Apps and integrations > APIs > Zendesk API > Settings
|
|
206
|
+
- Base64 encode: `{email}/token:{api_token}`
|
|
207
|
+
|
|
208
|
+
The connector handles this authentication automatically.
|
|
209
|
+
|
|
210
|
+
## Environment Variables
|
|
211
|
+
|
|
212
|
+
| Variable | Description |
|
|
213
|
+
|----------|-------------|
|
|
214
|
+
| `ZENDESK_EMAIL` | Your Zendesk email address |
|
|
215
|
+
| `ZENDESK_API_TOKEN` | Your Zendesk API token |
|
|
216
|
+
| `ZENDESK_BASE_URL` | Your Zendesk base URL (e.g., https://your-subdomain.zendesk.com/api/v2) |
|
|
217
|
+
|
|
218
|
+
## Development
|
|
219
|
+
|
|
220
|
+
```bash
|
|
221
|
+
# Install dependencies
|
|
222
|
+
bun install
|
|
223
|
+
|
|
224
|
+
# Run CLI in development mode
|
|
225
|
+
bun run dev
|
|
226
|
+
|
|
227
|
+
# Build for production
|
|
228
|
+
bun run build
|
|
229
|
+
|
|
230
|
+
# Type check
|
|
231
|
+
bun run typecheck
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
## API Modules
|
|
235
|
+
|
|
236
|
+
This connector implements the following Zendesk API modules:
|
|
237
|
+
|
|
238
|
+
### Tickets API (`client.tickets`)
|
|
239
|
+
- `list(params?)` - List all tickets
|
|
240
|
+
- `get(ticketId)` - Get a ticket by ID
|
|
241
|
+
- `create(data)` - Create a new ticket
|
|
242
|
+
- `update(ticketId, data)` - Update a ticket
|
|
243
|
+
- `delete(ticketId)` - Delete a ticket
|
|
244
|
+
- `listByUser(userId, params?)` - List tickets for a user
|
|
245
|
+
- `listByOrganization(orgId, params?)` - List tickets for an organization
|
|
246
|
+
- `search(query, params?)` - Search tickets
|
|
247
|
+
|
|
248
|
+
### Users API (`client.users`)
|
|
249
|
+
- `list(params?)` - List all users
|
|
250
|
+
- `get(userId)` - Get a user by ID
|
|
251
|
+
- `create(data)` - Create a new user
|
|
252
|
+
- `update(userId, data)` - Update a user
|
|
253
|
+
- `delete(userId)` - Delete a user
|
|
254
|
+
- `me()` - Get current authenticated user
|
|
255
|
+
- `searchByEmail(email)` - Search users by email
|
|
256
|
+
- `searchByName(name)` - Search users by name
|
|
257
|
+
- `listByOrganization(orgId, params?)` - List users in an organization
|
|
258
|
+
|
|
259
|
+
### Organizations API (`client.organizations`)
|
|
260
|
+
- `list(params?)` - List all organizations
|
|
261
|
+
- `get(orgId)` - Get an organization by ID
|
|
262
|
+
- `create(data)` - Create a new organization
|
|
263
|
+
- `update(orgId, data)` - Update an organization
|
|
264
|
+
- `delete(orgId)` - Delete an organization
|
|
265
|
+
- `search(name)` - Search organizations by name
|
|
266
|
+
- `getByExternalId(externalId)` - Get organization by external ID
|
|
267
|
+
|
|
268
|
+
### Groups API (`client.groups`)
|
|
269
|
+
- `list(params?)` - List all groups
|
|
270
|
+
- `get(groupId)` - Get a group by ID
|
|
271
|
+
- `listAssignable(params?)` - List assignable groups
|
|
272
|
+
- `listByUser(userId, params?)` - List groups for a user
|
|
273
|
+
|
|
274
|
+
## Deployment
|
|
275
|
+
|
|
276
|
+
This connector is deployed to:
|
|
277
|
+
|
|
278
|
+
- **EC2**: `hasna-prod-connect-zendesk`
|
|
279
|
+
- **Database**: `hasna-prod-connect-zendesk`
|
|
280
|
+
- **S3**: `hasna-prod-connect-zendesk`
|
|
281
|
+
|
|
282
|
+
The remote API is accessible at `https://connect.hasna.com/zendesk`
|
|
283
|
+
|
|
284
|
+
## License
|
|
285
|
+
|
|
286
|
+
MIT
|
|
287
|
+
|
|
288
|
+
## Resources
|
|
289
|
+
|
|
290
|
+
- [Zendesk API Documentation](https://developer.zendesk.com/api-reference/)
|
|
291
|
+
- [Zendesk API Authentication](https://developer.zendesk.com/api-reference/introduction/security-and-auth/)
|
|
292
|
+
- [Zendesk Tickets API](https://developer.zendesk.com/api-reference/ticketing/tickets/tickets/)
|
|
293
|
+
- [Zendesk Users API](https://developer.zendesk.com/api-reference/ticketing/users/users/)
|
|
294
|
+
- [Zendesk Organizations API](https://developer.zendesk.com/api-reference/ticketing/organizations/organizations/)
|
|
295
|
+
- [Zendesk Groups API](https://developer.zendesk.com/api-reference/ticketing/groups/groups/)
|