fix: filter inactive extensions from dashboard API responses
/api/extensions and customer extension list now only return is_active extensions, preventing deleted extensions from showing in the dashboard and causing deploy errors with null versions. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -788,7 +788,7 @@ class APIHandler(BaseHTTPRequestHandler):
|
|||||||
self._respond(200, query("""
|
self._respond(200, query("""
|
||||||
SELECT e.*, (SELECT COUNT(*) FROM extension_versions ev WHERE ev.extension_id = e.id) as version_count,
|
SELECT e.*, (SELECT COUNT(*) FROM extension_versions ev WHERE ev.extension_id = e.id) as version_count,
|
||||||
(SELECT COUNT(*) FROM customer_extensions ce WHERE ce.extension_id = e.id AND ce.license_status = 'active') as customer_count
|
(SELECT COUNT(*) FROM customer_extensions ce WHERE ce.extension_id = e.id AND ce.license_status = 'active') as customer_count
|
||||||
FROM extensions e ORDER BY e.name"""))
|
FROM extensions e WHERE e.is_active ORDER BY e.name"""))
|
||||||
|
|
||||||
def _get_extension_versions(self, ext_id):
|
def _get_extension_versions(self, ext_id):
|
||||||
self._respond(200, query("SELECT * FROM extension_versions WHERE extension_id = %s ORDER BY released_at DESC", (ext_id,)))
|
self._respond(200, query("SELECT * FROM extension_versions WHERE extension_id = %s ORDER BY released_at DESC", (ext_id,)))
|
||||||
@@ -808,7 +808,7 @@ class APIHandler(BaseHTTPRequestHandler):
|
|||||||
self._respond(404, {'error': 'Not found'}); return
|
self._respond(404, {'error': 'Not found'}); return
|
||||||
customer['extensions'] = query("""
|
customer['extensions'] = query("""
|
||||||
SELECT e.id, e.name, e.composer_name, e.latest_version, ce.installed_version, ce.license_status, ce.auto_update, ce.installed_at
|
SELECT e.id, e.name, e.composer_name, e.latest_version, ce.installed_version, ce.license_status, ce.auto_update, ce.installed_at
|
||||||
FROM customer_extensions ce JOIN extensions e ON ce.extension_id = e.id WHERE ce.customer_id = %s ORDER BY e.name""", (cid,))
|
FROM customer_extensions ce JOIN extensions e ON ce.extension_id = e.id WHERE ce.customer_id = %s AND e.is_active ORDER BY e.name""", (cid,))
|
||||||
customer['dependencies'] = DEPENDENCIES
|
customer['dependencies'] = DEPENDENCIES
|
||||||
customer['install_order'] = _compute_install_order()
|
customer['install_order'] = _compute_install_order()
|
||||||
self._respond(200, customer)
|
self._respond(200, customer)
|
||||||
|
|||||||
Reference in New Issue
Block a user