Trash and restore#
Deleting a ticket, a comment, a wiki page or an attachment does not destroy it immediately. It goes to the workspace trash, where it can be put back for 30 days. After that a sweep destroys it permanently, including the stored bytes of any attachment.
This replaces the older behaviour, where a delete was immediate and final from the user's point of view.
What the trash holds#
| Kind | What it was |
|---|---|
ticket |
A deleted ticket |
comment |
A deleted comment |
wiki_page |
A deleted wiki page |
attachment |
A file removed from a ticket |
The trash is per workspace and lists only what is still recoverable — anything already past its 30 days is left out, even if the sweep has not run yet. Offering a restore button for something about to be destroyed is worse than not offering one.
Using it#
Trash is in the sidebar, below your boards. It lists what has been deleted in this workspace, filtered by kind — tickets, wiki pages, comments and attachments — with how long ago each one went and how long it has left. Each row has Restore, which puts it back where it was, and Delete permanently, which destroys it now rather than waiting out the window.
Several at once. Every row has a checkbox and Select all sits above the list, on each tab rather than only on the archived boards. With a selection, Restore selected puts them all back and Delete permanently destroys them all, asking once for the group and naming how many are going. The tick belongs to the tab you made it on: moving to another tab clears it, so nothing you cannot see is ever in the selection. If a row has already been dealt with by somebody else, or its board has since been deleted so it cannot go back, the rest still go through and the result says how many did.
The screen shows only the most recent deletions of each kind, and says so when there are more; anything older is still kept for the full 30 days and can still be restored through the API. Archived boards are the last tab, alongside the kinds — they are not on a clock, so they are kept until you either restore one or delete it for good.
The same three calls are available to an agent or a script:
# What can still be put back
curl https://api.laver.app/workspaces/$WORKSPACE/trash \
-H "Authorization: Bearer $TOKEN"
# Put one back
curl -X POST https://api.laver.app/workspaces/$WORKSPACE/trash/ticket/$UUID/restore \
-H "Authorization: Bearer $TOKEN"
# Destroy one now, without waiting out the 30 days
curl -X DELETE https://api.laver.app/workspaces/$WORKSPACE/trash/ticket/$UUID \
-H "Authorization: Bearer $TOKEN"
Who can do what. Anyone who can read the workspace can see the trash. Restoring and destroying are writes, so a viewer cannot do either, and neither can anyone in a workspace that is read-only because of billing.
After 30 days#
An hourly sweep destroys anything past the window. For an attachment this also deletes the file from object storage — until this existed, the bytes of a deleted attachment stayed in the bucket indefinitely.
Destroying something from the trash yourself is immediate and is not recoverable.
Deleting an archived board for good#
A board is not one of the kinds above, so it is never touched by the 30-day sweep: it sits in the Archived boards tab of this page until somebody decides otherwise. Restoring it is one of the two ways to decide.
The other is Delete permanently on the same row. That destroys the board, its tickets, their comments and their attachments — including the stored files — and there is no way back, so it asks first. A board has to be archived before it can be deleted this way, which is why there is no one-click delete anywhere else in the app.
Only a workspace owner or admin sees that button. Archiving is a member's gesture because it can be undone; this cannot be.
Several at once. Each row has a checkbox, and Select all above the list ticks every archived board. With a selection, Restore selected puts them all back and Delete permanently destroys them all — one question for the group, naming how many are going, rather than one per board. If a board in the selection has already been restored or deleted by somebody else, the rest still go through and the result says how many did.
If the board was the source of a sprint project, the project goes with it — the boards its earlier sprints produced are kept and become ordinary boards.
# Delete an archived board and everything on it
curl -X DELETE https://api.laver.app/boards/$BOARD/permanent \
-H "Authorization: Bearer $TOKEN"
What this does not cover#
- A deleted workspace. That is a separate, older path — see Export and deletion.
- Ticket history. Restoring a ticket brings back the ticket, its comments and its attachments; it does not reconstruct anything that was edited rather than deleted.