/claim #2281
Adds a new Jira Service Management (JSM) connector as a thin subclass of the existing Jira connector, addressing Issue #2281.
After reviewing the feedback on PR #7008 and PR #9121, I chose the thin subclass approach — no code duplication, no copy-paste. The JSM connector inherits all logic from JiraConnector and overrides only what differs:
document_source property → returns DocumentSource.JIRA_SERVICE_MANAGEMENTjira_service_management_base_url instead of jira_base_urlThis is possible because JSM uses the same underlying Jira APIs and authentication.
| File | Change |
|---|---|
backend/onyx/configs/constants.py |
Add JIRA_SERVICE_MANAGEMENT to DocumentSource enum + description |
backend/onyx/connectors/jira/connector.py |
Add document_source property to JiraConnector; add source param to process_jira_issue() |
backend/onyx/connectors/jira_service_management/__init__.py |
New module |
backend/onyx/connectors/jira_service_management/connector.py |
JiraServiceManagementConnector — thin subclass of JiraConnector |
backend/onyx/connectors/registry.py |
Register JSM connector in CONNECTOR_CLASS_MAP |
backend/ee/onyx/external_permissions/sync_params.py |
Add JSM to permission sync config (reuses Jira sync functions) |
| File | Change |
|---|---|
web/src/lib/types.ts |
Add JiraServiceManagement to ValidSources enum + auto-sync sources |
web/src/lib/sources.ts |
Add JSM source metadata (uses JiraIcon) |
web/src/lib/connectors/connectors.tsx |
Add JSM connector form config + JiraServiceManagementConfig interface |
web/src/lib/connectors/credentials.ts |
Add JSM credential defaults (reuses JiraCredentialJson) |
web/src/lib/connectors/AutoSyncOptionFields.tsx |
Add JSM auto-sync entry |
web/src/components/admin/connectors/ConnectorTitle.tsx |
Add JSM connector title handling |
jira/ConnectorMapping not ConnectorDescriptor (P0 from #7008 review)DocumentSource.JIRA_SERVICE_MANAGEMENT properly added to enum (P0 from #7008 review)jira_service_management_base_url only, no stale jira_base_url (P2 from #7008 review)list not List (P2 from #9121 review)The JSM connector inherits all behavior from the Jira connector. It can be tested by:
Closes #2281
Adds a Jira Service Management connector as a thin subclass of the Jira connector to index service requests, incidents, problems, and changes while reusing Jira auth, JQL, and UI. Includes JSM-specific permission sync and prefixing so groups and docs are tagged with jira_service_management. Closes #2281.
New Features
JiraServiceManagementConnector (uses jira_service_management_base_url) with DocumentSource.JIRA_SERVICE_MANAGEMENT; registered in backend mapping and UI with form (incl. scoped_token), credential defaults, auto-sync, and Admin title.JiraConnector.document_source, process_jira_issue(source); permission helpers accept source for correct group prefixing.doc_sync and group_sync that instantiate the JSM connector and read jira_service_management_base_url; wired in EE sync_params.Bug Fixes
document_source through Jira access and EE page access, so JSM groups/docs use jira_service_management.jira_group_sync_impl shared by Jira/JSM; JSM syncs read explicit config keys and use the JIRA_CONNECTOR_LABELS_TO_SKIP fallback; corrected JSM docs link to /jira_service_management; added missing scoped_token to the JSM TS interface.Written for commit 50d12a9497f6ae1e4a8932da778e73efe8d29836. Summary will update on new commits.
Zoro
@godlymane
Onyx (YC W24)
@onyx-dot-app