Skip to content
This repository was archived by the owner on Nov 30, 2022. It is now read-only.
This repository was archived by the owner on Nov 30, 2022. It is now read-only.

[Datastore Management] Disable/Delete datastore BACKEND #602

@adriaaaa

Description

@adriaaaa

Is your feature request related to a specific problem?

Organizations must be able to delete a datastore connection (in the event that they stop using a service or deprecate a db) and disable a datastore connection (to allow for SR processing but to temporarily disable for troubleshooting purposes).

Additional Context

  • A datastore consists of dataset config + connection config. Deleting a datastore implies we are deleting both the dataset config and the connection config.
  • Reqs

Requirements/Acceptance Criteria

  1. Confirm that we log when and who deleted or disabled a datastore
  2. Demonstrate that the following behavior occurs when attempting to DELETE a datastore:
Scenario Expected behavior
The Subject Request is in the NEW state, a connected datastore was deleted, then the Subject Request is approved The Subject Request will begin processing and should not try to include the deleted datastore in it’s workflow (since it was deleted).
The Subject Request is in the IN PROGRESS state and then a connected datastore was deleted The Subject Request should continue processing and try to access that datastore. If it cannot, then the request should fail/error and log the reason why it failed. If it was successful, then the information from that datastore should be included (in the event of an access request) or erased (in the event of an erasure request)
The Subject request is in an ERRORED state, the datastore that was previously connected and enabled is now deleted, and then someone went to reprocess the request. If the subject request is reprocessed by a user, then the workflow should not try to connect to the deleted datastore (since it has been deleted and should no longer be part of the workflow)
The Subject Request is in the COMPLETED state, a connected datastore was deleted The Subject Request workflow should have already attempted to connect to that datastore and was either completed successfully or errored in a non-fatal way. The datastore status should remain on the activity timeline (execution logs) for that subject request
The Subject Request is in the DENIED state, a connected datastore was deleted Since the Subject Request was denied, it should not have attempted to reach out to any datastores, so there should be no chance in the functionality here.
  1. Demonstrate that the following behavior occurs when attempting to DISABLE a datastore
Scenario Expected behavior
The Subject Request is in the NEW state, a connected datastore was disabled, then the Subject Request is approved The Subject Request should not attempt to connect to that disabled datastoresThe execution logs should include the datastore in the logs but mention that it was disabled so fidesops did not attempt to connect to it.
The Subject Request is in the IN PROGRESS state and then a connected datastore was disabled The Subject Request should continue processing and should try to continue to access that datastore.
The Subject request is in an ERRORED state, the datastore that was previously connected and enabled is now disabled, and then someone went to reprocess the request. The subject request should start reprocessing the request and SKIP the disabled datastore in it’s workflow.
The Subject Request is in the COMPLETED state, a connected datastore was disabled, then the Subject Request is approved The Subject Request workflow should have already attempted to connect to that datastore and was either completed successfully or errored in a non-fatal way. The datastore should remain on the activity timeline (execution logs) for that subject request with the appropriate datastore status.
The Subject Request is in the DENIED state, a connected datastore was disabled, then the Subject Request is approved Since the Subject Request was denied, it should not have attempted to reach out to any datastores, so there should be no chance in the functionality here.

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions