From e0fcb31251da6fb14696adc349a83495f99ba65a Mon Sep 17 00:00:00 2001 From: Vishal Rana Date: Tue, 3 Nov 2026 12:05:55 -0800 Subject: [PATCH] site: describe what the Echo Pro admin console does Export labstack/echo-pro#173: the admin page lists each panel, the optional views and opt-in actions, and how reads, writes, masking and themes behave, with a new search description. --- site/pro-source/pages/admin.mdx | 24 +++++++++++++++++++++++- site/pro-source/pro-source.json | 4 ++-- 2 files changed, 25 insertions(+), 3 deletions(-) diff --git a/site/pro-source/pages/admin.mdx b/site/pro-source/pages/admin.mdx index 17bec66d..4e218f1d 100644 --- a/site/pro-source/pages/admin.mdx +++ b/site/pro-source/pages/admin.mdx @@ -1,6 +1,6 @@ --- title: Admin console -description: An operator console served by your Echo application. It checks access on every request, and writes are opt-in and audited. +description: "An operator console inside your Echo v5 app: quota usage and credits, execution records, audit evidence, webhook inbox and outbox, Stripe export status and OpenAPI coverage, with opt-in writes." sidebar: order: 9 --- @@ -13,6 +13,28 @@ Use it when operators need to inspect usage, stuck operations or failed deliveri Register panels for your quota, execution, audit, webhook, OpenAPI and Stripe data. You do not need a frontend build or a separate console service. +## What operators can do + +The overview shows summary tiles, items that need attention and, when execution or webhook panels are mounted, a pipeline; missing data shows as unknown. +Each package below adds one panel; mount only the ones your application uses. + +- **Quotas** (`quota/quotaadmin`): plans and usage with credit balances and debt, plus optional top-consumer, denial and outbox views. Opt-in actions top up or correct credits and reset a partition's usage. +- **Stripe** (`quota/quotastripe/stripeadmin`): export backlog status; batches, unresolved items and decisions when inspection is enabled. Opt-in actions compare local exports with Stripe's aggregates and flush the exporter. +- **Executions** (`execution/executionadmin`): the uncertain queue, records, capacity, lookup by key and JSON export. Opt-in reconcile and resolve actions recover uncertain operations. +- **Audit** (`audit/auditadmin`): search audit evidence by tenant, actor, target, action, outcome, IP and time, with an optional, reasoned reveal of masked values. +- **Webhooks** (`webhook/webhookadmin`): inbox and outbox by state, including dead and uncertain deliveries, with each record's attempt and replay history. An opt-in action replays a delivery. +- **OpenAPI** (`openapi/openapiadmin`): the startup coverage report: each operation's policy, quota costs and security scopes, routes outside the spec, and advisories. + +With PostgreSQL stores, the execution, webhook and audit panels also chart counts of retained records for any window up to 30 days (the last 24 hours by default). + +## How it behaves + +- Every request runs your authentication, and every record read checks tenant or global access. Links and bookmarks grant nothing. +- Writes are off until you enable them per panel. Each shows a preview and needs confirmation; most also need a reason, and destructive ones need typed confirmation. With an audit sink configured, the intent is recorded before the write runs, then its outcome. +- IP addresses, API-key identifiers and Stripe customer IDs are masked unless the operator has reveal access. Secrets, raw API keys and payloads are never shown. Sensitive filters stay out of URLs and browser history. +- Operators can switch between light and dark themes, use a narrow-screen layout, share deep links, and copy or download a view's data as JSON. You can set the accent color. +- It ships inside your binary under a strict Content Security Policy with Trusted Types, with no CDN or login page of its own. + This mounts a read-only quota panel. `operatorKey` is a disposable fixture credential; `panel` uses the application's limiter. ```go file=site/pro-source/examples/source/admin/quickstart_example_test.go#site-anchor diff --git a/site/pro-source/pro-source.json b/site/pro-source/pro-source.json index 164cac38..291c2c27 100644 --- a/site/pro-source/pro-source.json +++ b/site/pro-source/pro-source.json @@ -1,7 +1,7 @@ { "module": "echo.labstack.com/pro", "version": "v0.2.0", - "commit": "cff49e6f4e402d78d5e54a0b17a42ce58ccd5b84", + "commit": "739488b482e43de26862020fee64fd7742e60383", "hashes": { "config-fields.json": "0b54cb3291832384f3f9cd5c269151b2c6a0a96acd734ed42feba6324bc76e99", "examples/admin-demo/audit.go": "e332591665875ea7a9d36e756089cf34c8eca947ded969bac6014472c0d206a3", @@ -163,7 +163,7 @@ "examples/source/webhook/webhookpg/recipe_example_test.go": "c8913d7f1fa8855da4111f94bcedd53f4b41290c8c661eef46fdac613ee6615d", "examples/stripe/main.go": "9a276a754e25ce92c5ac9aa7b56bf99a7bdaaa9e9e5aa720dbd96a8172cabb4b", "go.mod": "a15972f4fabcb3e4bb557961a5871308b5716a0d84c0520daeb7d093e5a06c22", - "pages/admin.mdx": "4d54be230046665206d032d6f8b8b5e52dd2f7383880c788559ac9292bf58302", + "pages/admin.mdx": "188b9eb152b20df32d6912918fecfd1ee12c08166b3714062fd41636dbd6c792", "pages/audit.mdx": "b4c0ea5522c0f15e2e54d4940d0441d2a8e8085b1c6d1fab0d06f8be3bdb7c95", "pages/auth.mdx": "8a7e7da5255e3dcd6e86236eb236474a0b9334bb1e6bc82edf03c34cecf5dc6e", "pages/examples/admin-demo.mdx": "1adb231b07a6d09d39bdca05d83621005f598d201b2943ee1a0fe7e461b23497",