Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Can't delete Organization when organization_api_key is present #4556

Closed
Misterbabou opened this issue May 15, 2024 · 3 comments · Fixed by #4557
Closed

Can't delete Organization when organization_api_key is present #4556

Misterbabou opened this issue May 15, 2024 · 3 comments · Fixed by #4557
Labels
bug Something isn't working

Comments

@Misterbabou
Copy link
Contributor

Subject of the issue

Can't delete Organization when organization_api_key is present

Deployment environment

Your environment (Generated via diagnostics page)

  • Vaultwarden version: v1.30.5

  • Web-vault version: v2024.1.2b

  • Install method: Docker

  • Clients used: web vault, and admin panel

  • Reverse proxy and version: /

  • MySQL/MariaDB or PostgreSQL version: 11.3.2-MariaDB

  • Other relevant details:

Steps to reproduce

  • Create an Organization on the web vault

  • Go to your new organization-> Settings -> Organization Info : ( https://<your_url>/#/organizations/<org_uuid>/settings/account )

  • Generate an api_key by cliking on "VIEW API KEY" (it will generate an entry in the Table : organization_api_key

  • (on the Web-vault) Try to Delete Organisation -> Error message (user is then disconnected and can't show organization but it's still show on admin panel
    image

log:

vaultwarden   | [2024-05-15 12:45:44.310][request][INFO] DELETE /api/organizations/7a711a73-3cfc-45cd-a4b8-7d5dc5d944b3
vaultwarden    | [2024-05-15 12:45:44.646][error][ERROR] Error saving organization.
vaultwarden    | [CAUSE] DatabaseError(
vaultwarden    |     ForeignKeyViolation,
vaultwarden    |     "Cannot delete or update a parent row: a foreign key constraint fails (`vaultwarden`.`organization_api_key`, CONSTRAINT `organization_api_key_ibfk_1` FOREIGN KEY (`org_uuid`) REFERENCES `organizations` (`uuid`))",
vaultwarden    | )

OR

  • (on the admin panel) Try to Delete Organisation ->
Error deleting organization
Error saving organization

log

vaultwarden   | [2024-05-15 12:34:40.819][request][INFO] POST /admin/organizations/0df42829-4957-41c3-8c5b-b50396ceeb81/delete
vaultwarden    | [2024-05-15 12:34:40.846][error][ERROR] Error saving organization.
vaultwarden    | [CAUSE] DatabaseError(
vaultwarden    |     ForeignKeyViolation,
vaultwarden    |     "Cannot delete or update a parent row: a foreign key constraint fails (`vaultwarden`.`organization_api_key`, CONSTRAINT `organization_api_key_ibfk_1` FOREIGN KEY (`org_uuid`) REFERENCES `organizations` (`uuid`))",
vaultwarden    | )

Expected behaviour

Organization should be deleted

Actual behaviour

All entries linked to organization are deleted as usual but the organization_api_key is not that's why it can't be deleted.

To manually resolve this issue on Mariadb :

DELETE FROM organization_api_key where organization_api_key.org_uuid="<org_uuid>"

Then Organization Delete is possible

@stefan0xC
Copy link
Contributor

Thanks. This is probably also the cause for #4540.

@Misterbabou
Copy link
Contributor Author

Thanks for your fix ^^.

I have a question regarding events from table event on organization delete.

For now events linked to the organization are not delete on organization delete.
Will it be better to also clean events linked to this organization ?

Equivalent to :

DELETE FROM event where event.org_uuid="<org_uuid>"

@BlackDex
Copy link
Collaborator

I would rather not delete events during the deletion of an organizations.
The main reason is that it could hold useful information on who deleted the organization for example, and if there were some unwanted actions done.

Logs will be delete automatically if the cleanup job is enabled.

@BlackDex BlackDex added the bug Something isn't working label May 19, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants