Skip to content

Create a means of easily deleting mirror site committee account data #1643

Closed

Description

@exalate-issue-sync

Create tool to delete all committee account data on the load test mirror site that is faster than replacing the database.

Note: this must be a restricted_command so that it cannot be run on PROD. Additional safeguards to only allow this running on the load test site if it’s an easy win (like adding a required environment variable for it to be run)

QA Notes

null

DEV Notes

null

Design

null

See full ticket and images here: FECFILE-2421

Pull Request: #2292

Activity

  1. changed the title [-]Add bulk delete command, backup committee administrator for locust[/-] [+]Create a means of deleting only committee accounts created for load testing[/+] on Oct 23, 2025
  2. exalate-issue-sync commented on Oct 23, 2025

    @exalate-issue-sync
    Author

    Todd Lees commented: Recording original body for posterity

    {quote}* New bulk delete load testing committee data command - all committees where committee administrator and only user is [test@test.com|mailto:test@test.com]. Note that locally this means you’ll need to spin up fresh to run e2e tests and local manual testing with the data. Delete user too.

    • Creating backup administrator, adding it to committees? Will need to delete it at the end as well….unless you want to add yourself to be able to check the data when [login.gov|http://login.gov/] is turned back on?

    This got messy - here’s a branch to demonstrate. [https://github.com/fecgov/fecfile-web-api/compare/feature/2384-locust-changes...feature/2384-locust-changes-with-delete?expand=1|https://github.com/fecgov/fecfile-web-api/compare/feature/2384-locust-changes...feature/2384-locust-changes-with-delete?expand=1|smart-link]

    We should probably isolate bulk created committees so we don’t inadvertently delete user-created committee accounts.{quote}

  3. changed the title [-]Create a means of deleting only committee accounts created for load testing[/-] [+][E2E] Create a means of deleting only committee accounts created for load testing[/+] on Nov 21, 2025
  4. changed the title [-][E2E] Create a means of deleting only committee accounts created for load testing[/-] [+]Create a means of deleting only committee accounts created for load testing[/+] on Nov 21, 2025
  5. changed the title [-]Create a means of deleting only committee accounts created for load testing[/-] [+]Create a means of easily deleting mirror site committee account data[/+] on Jan 12, 2026
  6. exalate-issue-sync commented on Sep 9, 2026

    @exalate-issue-sync
    Author

    Dan Fowlkes commented: Logs everything deleted like:

    {noformat}...
    {"event": "Schedule.B Transaction: 04e8825e-beb0-4a3f-84a8-88ad3fd36941 (ACBAB8718D8EC1B83BF4) was deleted", "pathname": "/home/vcap/app/django-backend/fecfiler/transactions/signals.py", "lineno": 35, "level": "info"}
    {"event": "Schedule.B Transaction: 04b93ae1-b880-44a5-bf16-34a790e110b6 (023BB7E53221D433B9A4) was deleted", "pathname": "/home/vcap/app/django-backend/fecfiler/transactions/signals.py", "lineno": 35, "level": "info"}
    {"event": "Schedule.A Transaction: 0463e579-a32f-47a4-b5b7-cbae3601729f (B68AB15C7E407C505EA6) was deleted", "pathname": "/home/vcap/app/django-backend/fecfiler/transactions/signals.py", "lineno": 35, "level": "info"}
    {"event": "Schedule.A Transaction: 0452d777-f67d-41c3-b3a4-0fdd3d3042e0 (AE4A9AB8846199F0C47F) was deleted", "pathname": "/home/vcap/app/django-backend/fecfiler/transactions/signals.py", "lineno": 35, "level": "info"}
    {"event": "Schedule.B Transaction: 036c7b7d-5c2d-4409-b3e5-d3d8a78392d1 (A5028E52F9D236140015) was deleted", "pathname": "/home/vcap/app/django-backend/fecfiler/transactions/signals.py", "lineno": 35, "level": "info"}
    {"event": "Schedule.B Transaction: 0330e2ed-f1b6-4ff3-ac58-f0ba947c1237 (B720AA41E3FE59B9FB61) was deleted", "pathname": "/home/vcap/app/django-backend/fecfiler/transactions/signals.py", "lineno": 35, "level": "info"}
    {"event": "Schedule.B Transaction: 0286ab7e-71ff-43ee-8417-3396b3ddd392 (338A817D6E27E9A5F243) was deleted", "pathname": "/home/vcap/app/django-backend/fecfiler/transactions/signals.py", "lineno": 35, "level": "info"}
    {"event": "Schedule.A Transaction: 0216d384-31e0-49f4-a151-96bf13d20a54 (D965B835DE8517F28E23) was deleted", "pathname": "/home/vcap/app/django-backend/fecfiler/transactions/signals.py", "lineno": 35, "level": "info"}
    {"event": "Schedule.A Transaction: 020c9312-e053-4e57-a5f6-3e855afc3b70 (D4A98EB8DDEEDDD6D4BE) was deleted", "pathname": "/home/vcap/app/django-backend/fecfiler/transactions/signals.py", "lineno": 35, "level": "info"}
    {"event": "Schedule.B Transaction: 00e10791-f6ee-4785-8bd0-f891b290fcf1 (FAC4B16EEA35E4724FCF) was deleted", "pathname": "/home/vcap/app/django-backend/fecfiler/transactions/signals.py", "lineno": 35, "level": "info"}
    {"event": "Schedule.A Transaction: 00a01e5d-1ae9-4642-8a99-5e02661b3389 (13228465D5B5FDED5426) was deleted", "pathname": "/home/vcap/app/django-backend/fecfiler/transactions/signals.py", "lineno": 35, "level": "info"}
    {"contact_id": "UUID('fde63b05-1bcd-4e37-8f53-330772e5fb4a')", "event": "Contact deleted", "pathname": "/home/vcap/app/django-backend/fecfiler/contacts/signals.py", "lineno": 32, "level": "info"}
    {"contact_id": "UUID('f8ffa511-b7e1-41de-900c-efe3261a38be')", "event": "Contact deleted", "pathname": "/home/vcap/app/django-backend/fecfiler/contacts/signals.py", "lineno": 32, "level": "info"}
    {"contact_id": "UUID('f7f4636b-4636-41ea-8d60-251ae5482125')", "event": "Contact deleted", "pathname": "/home/vcap/app/django-backend/fecfiler/contacts/signals.py", "lineno": 32, "level": "info"}
    {"contact_id": "UUID('e7938635-c62b-4217-9f52-1e0a1bc579f0')", "event": "Contact deleted", "pathname": "/home/vcap/app/django-backend/fecfiler/contacts/signals.py", "lineno": 32, "level": "info"}
    {"contact_id": "UUID('e534dcad-74aa-485e-bd70-8e19777e5da0')", "event": "Contact deleted", "pathname": "/home/vcap/app/django-backend/fecfiler/contacts/signals.py", "lineno": 32, "level": "info"}
    {"contact_id": "UUID('e529ef17-d7c0-49c1-ba1e-af53b20b61b1')", "event": "Contact deleted", "pathname": "/home/vcap/app/django-backend/fecfiler/contacts/signals.py", "lineno": 32, "level": "info"}
    {"contact_id": "UUID('e151c120-a450-4b85-919b-68d3ead6b479')", "event": "Contact deleted", "pathname": "/home/vcap/app/django-backend/fecfiler/contacts/signals.py", "lineno": 32, "level": "info"}
    {"contact_id": "UUID('dcd2ef44-da79-45df-af04-c4916523c329')", "event": "Contact deleted", "pathname": "/home/vcap/app/django-backend/fecfiler/contacts/signals.py", "lineno": 32, "level": "info"}
    {"contact_id": "UUID('dbc77714-071e-4dc9-a63b-0aebf6411689')", "event": "Contact deleted", "pathname": "/home/vcap/app/django-backend/fecfiler/contacts/signals.py", "lineno": 32, "level": "info"}
    {"contact_id": "UUID('d522ca73-ecfc-4dec-9eb4-28f35b873cb8')", "event": "Contact deleted", "pathname": "/home/vcap/app/django-backend/fecfiler/contacts/signals.py", "lineno": 32, "level": "info"}
    {"contact_id": "UUID('d3ab4d1c-68be-4850-8d6b-041dc2d5734a')", "event": "Contact deleted", "pathname": "/home/vcap/app/django-backend/fecfiler/contacts/signals.py", "lineno": 32, "level": "info"}
    {"contact_id": "UUID('d33fa580-0b14-49c4-ba08-6d0e21a168e3')", "event": "Contact deleted", "pathname": "/home/vcap/app/django-backend/fecfiler/contacts/signals.py", "lineno": 32, "level": "info"}
    {"contact_id": "UUID('ceba4f4c-dfcb-4081-a6be-81d738f60145')", "event": "Contact deleted", "pathname": "/home/vcap/app/django-backend/fecfiler/contacts/signals.py", "lineno": 32, "level": "info"}
    {"contact_id": "UUID('cdd90dbf-5b57-4e82-b606-a7731e55c5a0')", "event": "Contact deleted", "pathname": "/home/vcap/app/django-backend/fecfiler/contacts/signals.py", "lineno": 32, "level": "info"}
    {"contact_id": "UUID('cbbb030b-6616-48b7-9dac-207586bc94aa')", "event": "Contact deleted", "pathname": "/home/vcap/app/django-backend/fecfiler/contacts/signals.py", "lineno": 32, "level": "info"}
    {"contact_id": "UUID('c7b04e88-e4ac-4228-a471-0dd9dac7104e')", "event": "Contact deleted", "pathname": "/home/vcap/app/django-backend/fecfiler/contacts/signals.py", "lineno": 32, "level": "info"}
    {"contact_id": "UUID('c686e8c1-fa86-43ee-8b45-bf2611319180')", "event": "Contact deleted", "pathname": "/home/vcap/app/django-backend/fecfiler/contacts/signals.py", "lineno": 32, "level": "info"}
    {"contact_id": "UUID('be2d09c7-387e-4984-bcff-90c15b848d25')", "event": "Contact deleted", "pathname": "/home/vcap/app/django-backend/fecfiler/contacts/signals.py", "lineno": 32, "level": "info"}
    ...{noformat}

  7. exalate-issue-sync commented on Sep 16, 2026

    @exalate-issue-sync
    Author

    Todd Lees commented: tests in comments below

  8. exalate-issue-sync commented on Sep 17, 2026

    @exalate-issue-sync
    Author

    Shelly Wise commented: No QA needed on this ticket per DEV.

    Moved to Stage Ready.

  9. exalate-issue-sync commented on Sep 25, 2026

    @exalate-issue-sync
    Author

    Automation for Jira commented: Sprint accepted by FEC on date of this comment.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions