(pluginId: string)
| 278 | } |
| 279 | |
| 280 | async function applyBlockedShortCircuit(pluginId: string) { |
| 281 | const supabase = await createClient(); |
| 282 | await supabase |
| 283 | .from("plugins") |
| 284 | .update({ |
| 285 | active: false, |
| 286 | scan_status: "flagged", |
| 287 | flag_summary: "Permanently blocked by an admin.", |
| 288 | flag_reasons: ["permanently_blocked"], |
| 289 | flag_severity: "high", |
| 290 | flagged_at: new Date().toISOString(), |
| 291 | last_scanned_at: new Date().toISOString(), |
| 292 | }) |
| 293 | .eq("id", pluginId); |
| 294 | } |
| 295 | |
| 296 | // Cap how much of the repo archive we materialize on the function's tmpfs. |
| 297 | // Plugins are typically rules/.md/.json — kilobytes — but we share /tmp with |
no test coverage detected