New to Kestra?
Use blueprints to kickstart your first workflows.
Handle right-to-erasure for vector stores with Kestra. Verify Pinecone vectors exist, delete them by id, prove absence, and post an audit trail to Slack.
Embeddings are personal data too. A vector computed from a user's support tickets or documents falls under the right to erasure just like the source text, and a RAG index that keeps serving it after a deletion request is a compliance incident. This blueprint executes the erasure with evidence: io.kestra.plugin.pinecone.FetchVectors records which of the requested ids exist, io.kestra.plugin.pinecone.DeleteVectors removes them, a second fetch proves they are gone, and Slack receives a before-and-after audit message tied to the execution id.
verify_presence (io.kestra.plugin.pinecone.FetchVectors) fetches the ids parsed from the comma-separated user_ids input and returns the found vectors keyed by id, establishing what exists before deletion.erase_vectors (io.kestra.plugin.pinecone.DeleteVectors) deletes exactly those ids. The deletion is permanent.verify_absence fetches the same ids again; after a successful erasure the result is empty.notify posts the before count, the after count, and the requested ids to Slack, using the length of each fetch result as plain scalars.errors block escalates to Discord when any step fails, flagging that the requested ids may still exist and the erasure deadline still applies.The hard part of right-to-erasure is not the delete call, it is proving the delete happened everywhere, on time, every time. Kestra chains the verification around the deletion so the proof is generated by the same execution that erased the data, stores the whole run in an auditable history, and separates the audit trail in Slack from failure escalation in Discord. When a regulator asks how vector data is erased, the answer is a flow definition and a list of executions.
namespace property to all three Pinecone tasks.PINECONE_API_KEY: Pinecone API key with read and delete permission on the index.SLACK_WEBHOOK_URL: Slack incoming webhook URL for the audit messages.DISCORD_WEBHOOK_URL: Discord incoming webhook URL for failure escalation.user_ids.user_ids from an upstream ticketing or DSAR system so requests flow in without manual input.