feat: trash (soft delete) with admin tool management
Build & Push Docker Image / build (push) Successful in 2m15s
Build & Push Docker Image / build (push) Successful in 2m15s
- tools: add deletedAt/deletedBy, soft delete via DELETE /tools/:id when actor has trash entitlement, else immediate hard delete - trash endpoints: GET /tools/trash, POST /tools/trash (admin bulk), POST /tools/trash/restore, DELETE /tools/trash, POST /tools/trash/empty - trash feature for premium/enterprise; exclude trashed from all public surfaces (browse, categories, features, tags, similar, ratings, costs, analytics, redundancy) - TRASH_RETENTION_DAYS env (0 = keep forever) with hourly purge job - frontend: /trash page (premium+, restore for all, permanent delete + empty for admin), admin Tools tab with multi-select bulk trash, sidebar Trash link, tool-detail delete hint
This commit is contained in:
@@ -12,6 +12,7 @@ import ToolEdit from "@/pages/tool-edit";
|
||||
import Analytics from "@/pages/analytics";
|
||||
import Admin from "@/pages/admin";
|
||||
import Redundancy from "@/pages/redundancy";
|
||||
import Trash from "@/pages/trash";
|
||||
import Login from "@/pages/login";
|
||||
import NotFound from "@/pages/not-found";
|
||||
|
||||
@@ -36,6 +37,7 @@ function Router() {
|
||||
<Route path="/analytics" component={Analytics} />
|
||||
<Route path="/admin" component={Admin} />
|
||||
<Route path="/admin/redundancy" component={Redundancy} />
|
||||
<Route path="/trash" component={Trash} />
|
||||
<Route component={NotFound} />
|
||||
</Switch>
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user