mirror of
https://github.com/simonw/datasette.git
synced 2026-06-06 00:56:57 +02:00
Add /-/debug hub page with debug_menu() plugin hook
Replace the scattered debug tool links in the app menu with a single "Debug" link to a new /-/debug page. This page aggregates all debug tools using a new debug_menu() plugin hook, which plugins can implement to contribute DebugItem(title, description, path) entries. Hook implementations are responsible for their own permission checks, so the page only shows items the current actor can access. Core debug items (databases, plugins, versions, settings, permissions, etc.) are registered via default_debug_menu.py. https://claude.ai/code/session_01QE3BkTNRLvLEpLXy7ZDCeU
This commit is contained in:
parent
8a315f3d7d
commit
4c635a1d99
15 changed files with 238 additions and 32 deletions
|
|
@ -2,7 +2,7 @@ import asyncio
|
|||
from datasette import hookimpl
|
||||
from datasette.facets import Facet
|
||||
from datasette import tracer
|
||||
from datasette.permissions import Action
|
||||
from datasette.permissions import Action, DebugItem
|
||||
from datasette.resources import DatabaseResource
|
||||
from datasette.utils import path_with_added_args
|
||||
from datasette.utils.asgi import asgi_send_json, Response
|
||||
|
|
@ -354,6 +354,18 @@ def forbidden(datasette, request, message):
|
|||
return Response.redirect("/login?message=" + message)
|
||||
|
||||
|
||||
@hookimpl
|
||||
def debug_menu(datasette, actor, request):
|
||||
if actor:
|
||||
return [
|
||||
DebugItem(
|
||||
title="Test debug item",
|
||||
description="From test plugin",
|
||||
path="/-/plugins",
|
||||
)
|
||||
]
|
||||
|
||||
|
||||
@hookimpl
|
||||
def menu_links(datasette, actor, request):
|
||||
if actor:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue