ENG-2539b: Slice 0b — JiraTicketTask, pending_external status & polling skeleton#7410
Merged
eastandwestwind merged 16 commits intomainfrom Feb 24, 2026
Merged
Conversation
Contributor
|
The latest updates on your projects. Learn more about Vercel for GitHub. 2 Skipped Deployments
|
Contributor
Greptile SummaryThis PR adds the OSS foundation for Jira ticket lifecycle tracking: a new
Confidence Score: 3/5
Important Files Changed
Last reviewed commit: 7be2b7f |
71ef09e to
3e3ef55
Compare
- Add pending_external to PrivacyRequestStatus enum for requests awaiting external system completion (e.g., Jira) - Create JiraTicketTask model with 1:1 FK to ManualTaskInstance and FK to ConnectionConfig, storing Jira ticket key/URL/status - Add partial index ix_jira_ticket_task_open for efficient polling of non-done tickets - Create poll_jira_tickets Celery task with Redis locking and pluggable service registration for Fidesplus Slice 4 - Add initiate_jira_ticket_polling scheduler job (10-min default, configurable via FIDES__EXECUTION__JIRA_POLLING_INTERVAL_MINUTES) - Wire scheduler init from main.py startup - Alembic migration for jira_ticket_task table and pending_external enum value - Tests for model CRUD, uniqueness, cascade delete, status enum, polling task, and config defaults Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
3e3ef55 to
21708b0
Compare
JadeCara
approved these changes
Feb 23, 2026
Contributor
JadeCara
left a comment
There was a problem hiding this comment.
A few comments and suggestions, but overall looking really good!
...ations/versions/xx_2026_02_18_1200_c69ef1fecb20_add_jira_ticket_task_and_pending_external.py
Outdated
Show resolved
Hide resolved
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description Of Changes
Implements the Fides OSS foundation for Jira ticket lifecycle tracking and status polling, enabling future Jira DSR integration (Slice 4 in Fidesplus).
Code Changes
pending_externaltoPrivacyRequestStatusenum — represents a privacy request awaiting completion by an external system (e.g., Jira)JiraTicketTaskmodel (src/fides/api/models/jira_ticket_task.py) with 1:1 FK toManualTaskInstance, FK toConnectionConfig, and Jira-specific columns (ticket_key,ticket_url,external_status,external_status_category,last_polled_at)ix_jira_ticket_task_openfor efficient polling of non-done ticketspoll_jira_ticketsCelery task skeleton (src/fides/service/jira/polling_task.py) with Redis locking and pluggableregister_poll_service()for Fidesplus Slice 4initiate_jira_ticket_polling()scheduler job wired frommain.pystartup (10-min default interval, configurable viaFIDES__EXECUTION__JIRA_POLLING_INTERVAL_MINUTES)c69ef1fecb20forjira_ticket_tasktable andpending_externalenum valueJiraTicketTaskmodel insrc/fides/api/db/base.pySteps to Confirm
FIDES__EXECUTION__JIRA_POLLING_INTERVAL_MINUTES=5, restart, and confirm the scheduler picks up the new intervalMade with Cursor