Skip to content

ENG-2646: Jira ticket configuration wizard#7740

Merged
jpople merged 23 commits intomainfrom
jpople/eng-2646/jira-config-wizard
Mar 25, 2026
Merged

ENG-2646: Jira ticket configuration wizard#7740
jpople merged 23 commits intomainfrom
jpople/eng-2646/jira-config-wizard

Conversation

@jpople
Copy link
Copy Markdown
Contributor

@jpople jpople commented Mar 24, 2026

Ticket ENG-2646

Description Of Changes

Adds a Jira ticket configuration tab to the integration setup wizard for Jira
connections. After the Jira integration is authorized via the OAuth flow introduced
in ENG-2645, users can configure the project, issue type, and summary/description
templates using dynamic template variables auto-populated from privacy request data.

Note: ENG-2645 must be merged first — this branch is stacked on top of it.

Code Changes

  • New JiraConfigTab component with project and issue type selectors and
    template fields for summary and description
  • New TemplateVariableTextArea component with autocomplete for inserting dynamic
    variables (e.g. __SUBJECT_NAME__, __REQUEST_ID__) — triggered by typing
    __ or / in the field
  • New useConfigureTicketsStep hook wiring the configuration step into the
    integration setup flow
  • RTK Query endpoints in plus.slice.ts for Jira projects, issue types,
    template variables, and ticket preview

Steps to Confirm

  1. Create and authorize a Jira integration
  2. Navigate to the integration and go to the "Ticket setup" tab
  3. Confirm the Project and Issue Type dropdowns populate from the connected Jira account
  4. Type __ or / in the Summary or Description field — verify variable autocomplete appears
  5. Save configuration and confirm it persists on reload

Pre-Merge Checklist

  • Issue requirements met
  • All CI pipelines succeeded
  • CHANGELOG.md updated
    • Updates unreleased work already in Changelog, no new entry necessary
  • UX feedback:
    • All UX related changes have been reviewed by a designer
    • No UX review needed
  • Followup issues:
    • Followup issues created
    • No followup issues
  • Database migrations:
    • No migrations
  • Documentation:
    • No documentation updates required

@vercel
Copy link
Copy Markdown
Contributor

vercel bot commented Mar 24, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
fides-plus-nightly Ready Ready Preview, Comment Mar 24, 2026 11:03pm
1 Skipped Deployment
Project Deployment Actions Updated (UTC)
fides-privacy-center Ignored Ignored Mar 24, 2026 11:03pm

Request Review

@jpople jpople force-pushed the jpople/eng-2646/jira-config-wizard branch from cfa6941 to 216d043 Compare March 24, 2026 06:12
@jpople jpople changed the base branch from main to ENG-2645 March 24, 2026 06:13
@jpople jpople marked this pull request as ready for review March 24, 2026 06:24
@jpople jpople requested a review from a team as a code owner March 24, 2026 06:24
@jpople jpople requested review from gilluminate and removed request for a team March 24, 2026 06:24
@greptile-apps
Copy link
Copy Markdown
Contributor

greptile-apps bot commented Mar 24, 2026

Greptile Summary

This PR adds a Jira ticket configuration wizard, allowing users to select a Jira project and issue type, author summary/description templates with dynamic variable autocomplete, and optionally configure a due-date policy — all persisted via the existing patchDatastoreConnectionSecrets endpoint. The changes integrate cleanly into the existing feature-based tabs and setup-steps patterns.

  • JiraConfigTab: Form-driven config UI; pre-populates from saved secrets. Magic strings "none" and "fixed_days" appear in 3+ places and should be extracted to named constants.
  • TemplateVariableTextArea: Custom autocomplete textarea with solid keyboard and mouse handling. The outer wrapper <div> should be a Flex/semantic element per project style rules, and the / trigger uses lastIndexOf which can spuriously open the autocomplete when a template contains a slash in normal prose (e.g. access/erasure).
  • plus.slice.ts: Four new RTK Query endpoints added correctly; previewJiraTicket is defined and exported but unused by any component in this PR — consider deferring until the preview UI lands.
  • Hook and tab wiring follows existing patterns exactly and looks correct.

Confidence Score: 4/5

  • Safe to merge after addressing the minor style issues; no logic or security problems identified.
  • All functional paths are correct and consistent with existing patterns. The identified issues are P2 style/UX concerns (magic strings, a wrapper div, a / false-positive UX edge-case, and an unused endpoint) with no blocking bugs or data-loss risk.
  • TemplateVariableTextArea.tsx (slash-trigger false positive + div rule) and JiraConfigTab.tsx (magic strings).

Important Files Changed

Filename Overview
clients/admin-ui/src/features/integrations/configure-jira/JiraConfigTab.tsx New component for configuring Jira ticket settings (project, issue type, templates, due-date). Works well overall; the only notable issues are magic strings ("none" / "fixed_days") used in multiple places without named constants.
clients/admin-ui/src/features/integrations/configure-jira/TemplateVariableTextArea.tsx New textarea component with variable autocomplete. Well-implemented keyboard/mouse interaction pattern. Two style concerns: the outer wrapper div should prefer a Flex/semantic element, and the / trigger uses lastIndexOf which can produce false positives for templates containing slashes in natural prose.
clients/admin-ui/src/features/integrations/setup-steps/hooks/useConfigureTicketsStep.tsx New hook that surfaces Jira ticket configuration as a step in the integration setup wizard. Logic is clean and consistent with peer hooks; uses (connection as any)?.secrets which is a pre-existing pattern in this codebase.
clients/admin-ui/src/features/plus/plus.slice.ts Adds four new RTK Query endpoints for Jira (projects, issue types, template variables, preview). The previewJiraTicket mutation is defined and exported but not yet consumed by any component in this PR — minor dead-code concern.
clients/admin-ui/src/features/integrations/hooks/useFeatureBasedTabs.tsx Adds a "Ticket setup" tab gated on IntegrationFeature.DSR_AUTOMATION. Follows the established pattern for conditional tabs exactly.

Reviews (1): Last reviewed commit: "add changelog for PR #7740" | Re-trigger Greptile

Base automatically changed from ENG-2645 to main March 24, 2026 16:14
@jpople jpople requested a review from a team as a code owner March 24, 2026 16:14
@jpople jpople requested review from adamsachs and removed request for a team March 24, 2026 16:14
@gilluminate
Copy link
Copy Markdown
Contributor

I'm not able to access the Vercel build to test this out (I want to look at the custom div with roles to see if that's the best option). There are also some merge conflicts that need to be cleaned up and a rogue changelog. LMK when you think this is in good shape to review again.

@jpople jpople removed the request for review from adamsachs March 24, 2026 20:43
@gilluminate
Copy link
Copy Markdown
Contributor

on a shorter screen the buttons at the bottom of the modal are getting cut off
CleanShot 2026-03-24 at 15 34 33@2x

Copy link
Copy Markdown
Contributor

@gilluminate gilluminate left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ship it!

@jpople jpople added this pull request to the merge queue Mar 25, 2026
Merged via the queue into main with commit 8a54b8e Mar 25, 2026
45 of 46 checks passed
@jpople jpople deleted the jpople/eng-2646/jira-config-wizard branch March 25, 2026 02:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants