Deduplicate IOC identities and enforce uniqueness. Closes #1240#1344
Merged
regulartim merged 5 commits intoMay 25, 2026
Merged
Conversation
Contributor
Author
|
Would appreciate a review when you have a chance @regulartim |
regulartim
reviewed
May 21, 2026
Member
regulartim
left a comment
There was a problem hiding this comment.
Hey @cclts ! Yeah, I saw that the PR was ready but did not find time to review yesterday.
regulartim
approved these changes
May 25, 2026
Member
regulartim
left a comment
There was a problem hiding this comment.
Looks good, thanks! :) I'll make a small simplification to models.py before merging.
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
Deduplicate existing
IOCrows by(name, type)before enforcing uniqueness at the database level.This change updates the
IOCmodel to declare a unique constraint on("name", "type")and adds migration0053to safely prepare existing data first. The migration keeps the IOC with the highestattack_countfor each duplicate group, breaks ties by keeping the row with the latestid, deletes the remaining duplicates, and then applies the unique constraint in a separate migration step.Related issues
Closes #1240
Context:
(name, type)pair.Type of change
Checklist
Please complete this checklist carefully. It helps guide your contribution and lets maintainers verify that all requirements are met.
Formalities
<feature name>. Closes #999develop.develop.Docs and tests
Ruff) gave 0 errors. If you have correctly installed pre-commit, it does these checks and adjustments on your behalf.