Curated catalog apps could be installed, stopped, and force-reinstalled, but never removed — the only path off a device was manual docker + DB surgery. Custom apps already had delete; this adds the equivalent for curated apps. POST /api/system/services/uninstall stops and removes the app's container (optionally its image, same best-effort semantics as custom app delete) and flips the record back to not-installed so the card returns to the available catalog. Host bind-mount data is deliberately left on disk, so a later reinstall picks the app back up where it left off — unlike force-reinstall, which clears volumes. Guards: custom apps are rejected (use delete), dependency services are rejected, and uninstalling a not-installed app is a 409. UI: installed curated cards get an Uninstall action in the card menu, with a confirm modal that explains data is preserved and offers the same remove-image checkbox as custom app delete. |
||
|---|---|---|
| .. | ||
| api.ts | ||
| builderTagWords.ts | ||
| classNames.ts | ||
| collections.ts | ||
| global_map_banner.ts | ||
| icons.ts | ||
| kb_file_grouping.ts | ||
| kb_guardrail.ts | ||
| kb_job_health_display.ts | ||
| navigation.ts | ||
| util.ts | ||