delete_task
Remove tasks permanently from FluentBoards project management by specifying board and task IDs with confirmation for safety.
Instructions
Delete a task permanently
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| board_id | Yes | Board ID | |
| task_id | Yes | Task ID | |
| confirm_delete | No | Confirmation required: set to true, 'yes', or 'confirm' to proceed |
Implementation Reference
- src/tools/tasks.ts:149-160 (handler)The handler function that performs safety validation using validateDeleteOperation, calls the API to delete the task if allowed, and formats the response.async (args) => { const { board_id, task_id, confirm_delete } = args; // Validate delete operation safety const safetyCheck = validateDeleteOperation("task", confirm_delete); if (!safetyCheck.allowed) { return formatResponse(createDeleteSafetyError(safetyCheck)); } const response = await api.delete(`/projects/${board_id}/tasks/${task_id}`); return formatResponse(response.data); }
- src/tools/tasks.ts:144-148 (schema)Zod input schema defining required board_id and task_id, optional confirm_delete for safety.{ board_id: z.number().int().positive().describe("Board ID"), task_id: z.number().int().positive().describe("Task ID"), confirm_delete: z.union([z.boolean(), z.string()]).optional().describe("Confirmation required: set to true, 'yes', or 'confirm' to proceed"), },
- src/tools/tasks.ts:140-161 (registration)The server.tool call that registers the delete_task tool, including name, description, schema, and handler function.// Delete a task server.tool( "delete_task", "Delete a task permanently", { board_id: z.number().int().positive().describe("Board ID"), task_id: z.number().int().positive().describe("Task ID"), confirm_delete: z.union([z.boolean(), z.string()]).optional().describe("Confirmation required: set to true, 'yes', or 'confirm' to proceed"), }, async (args) => { const { board_id, task_id, confirm_delete } = args; // Validate delete operation safety const safetyCheck = validateDeleteOperation("task", confirm_delete); if (!safetyCheck.allowed) { return formatResponse(createDeleteSafetyError(safetyCheck)); } const response = await api.delete(`/projects/${board_id}/tasks/${task_id}`); return formatResponse(response.data); } );
- src/utils/index.ts:98-139 (helper)Helper function to validate delete operations based on configuration flags for enabled deletes, allowed types, and confirmation requirement.export function validateDeleteOperation( deleteType: DeleteType, confirmDelete?: boolean | string ): DeleteSafetyResult { const { deleteSafety } = config; // Check if deletes are enabled at all if (!deleteSafety.enableDeletes) { return { allowed: false, reason: `Delete operations are disabled. Set ENABLE_DELETES=true in environment to enable.`, code: "DELETES_DISABLED" }; } // Check if this specific delete type is allowed if (deleteSafety.allowedDeleteTypes.length > 0 && !deleteSafety.allowedDeleteTypes.includes(deleteType)) { return { allowed: false, reason: `Delete operations for '${deleteType}' are not allowed. Allowed types: ${deleteSafety.allowedDeleteTypes.join(', ')}`, code: "DELETE_TYPE_NOT_ALLOWED" }; } // Check confirmation requirement if (deleteSafety.requireConfirmation) { const confirmValue = typeof confirmDelete === "string" ? confirmDelete.toLowerCase() : confirmDelete; if (confirmValue !== true && confirmValue !== "yes" && confirmValue !== "confirm") { return { allowed: false, reason: `Confirmation required for delete operations. Add 'confirm_delete: true' or 'confirm_delete: "yes"' parameter.`, code: "CONFIRMATION_REQUIRED" }; } } return { allowed: true }; }
- src/utils/index.ts:144-151 (helper)Helper function to create a standardized error response for failed delete safety checks.export function createDeleteSafetyError(result: DeleteSafetyError) { return { error: "Delete operation not allowed", reason: result.reason, code: result.code, message: "Delete operation blocked by safety configuration" }; }