feat: add Zammad ticket integration - #238
Conversation
|
Thank you! One issue: The setup guide says to grant only ticket.agent with core/docs/zammad-integration.md Line 43 in 2aeb692 However, virtually every operation calls Client.Groups(), which Zammad officially documents that endpoint as requiring admin.group: Zammad Group API (https://docs.zammad.org/en/latest/api/group.html). Generally: Since we are mapping an entire zammad admin credential to the windshift integration, that means the integration is a bit unbalanced from a scaling perspective. I believe it will work for small teams, so we can merge it with this architecture with one caveat: We should extend the existing integration system to support this instead of building a parallel one |
|
Thanks, you are right on both points. The I propose removing I also agree with extending the existing integration system. The PR already reuses My proposed boundary is a common provider/connection layer supporting both user-owned and system-owned credentials, API tokens and OAuth, workspace scopes and provider capabilities. Zammad-specific ticket policy and synchronization remain a typed provider sidecar. I would also replace the direct Zammad dependencies in deletion, move and offboarding paths with a generic link policy. Since none of this schema has been released yet, I would prefer correcting that structure in this PR instead of shipping parallel lifecycle tables. Does that match what you had in mind? |
2aeb692 to
eb1410f
Compare
|
This PR has merge conflicts that need to be resolved before it can be merged. Please rebase on the latest |
Summary
{id, name}pairs. Runtime operations verify live ticket and group IDs without calling Zammad's admin-only groups endpoint.Safety and recovery
Scope
This implements the core integration proposed in #234. Comment and attachment synchronization, arbitrary field synchronization, webhooks, and the optional workspace dashboard remain out of scope.
Validation
go test ./...npm run check,npm run typecheck,npm run test:run,npm run buildThe integration has only been tested in the lab, not in production. The existing OAuth connection remained operational after the upgrade, but OAuth authorization itself was not repeated in the final pass. Zammad is not yet part of the automated end-to-end suite.