Skip to content

Add the API-key-protected /admin/dbpool endpoint (6.1.9 worksheet) - #216

Merged
QuickMythril merged 1 commit into
mainfrom
feat/admin-dbpool-endpoint
Aug 13, 2026
Merged

Add the API-key-protected /admin/dbpool endpoint (6.1.9 worksheet)#216
QuickMythril merged 1 commit into
mainfrom
feat/admin-dbpool-endpoint

Conversation

@QuickMythril

Copy link
Copy Markdown
Member

Executes the accepted Qortal 6.1.9 triage worksheet (docs/upstream/qortal-6.1.9-comparison.md, merged in #215).

A line-by-line residual-delta verification (dual-model, natively spot-checked) confirmed every other 6.1.9 change is already present in Qortium — the denormalized created_when column/index/write path, the two-step latest query (where Qortium additionally guards the empty IN () case upstream lacks), the no-join lite query, the 6-hour cleanup throttle, and the cache-configured DB URL without JMX. The single portable delta was the /admin/dbpool monitoring endpoint: Qortium already had the DbConnectionInfo DTO, the opt-in pool-monitoring setting, and the factory accessor, but no HTTP surface.

Ported with one deliberate hardening: upstream ships the endpoint with no auth; ours sits in the restricted AdminResource beside /admin/enginestats with @SecurityRequirement(name = "apiKey") + Security.checkApiCallAllowed(request), since the response reveals connection allocation state, owning-thread identity, and timestamps. Returns an empty list when monitoring is off or the factory is not HSQLDB.

Compile clean. Note for the Node QDN app (recorded separately): this endpoint, like /data/storage/info, stays invisible to the dashboard until its request catalogue adds it.

🤖 Generated with Claude Code

Completes the accepted 6.1.9 triage worksheet: the only portable delta.
Returns the tracked pooled-connection states from
HSQLDBRepositoryFactory.getDbConnectionsStates() when connection-pool
monitoring is enabled, or an empty list otherwise (and for non-HSQLDB
factories). Placed beside /admin/enginestats in the restricted
AdminResource with @securityrequirement(name = "apiKey") and
Security.checkApiCallAllowed(request) - upstream Qortal ships this
endpoint with no auth at all; ours requires the key because it reveals
connection allocation state, owning-thread identity, and timestamps.

All other 6.1.9 changes were verified already present line by line
(denormalized created_when column/index/write path, two-step latest
query with Qortium's extra empty-IN guard, no-join lite query, cleanup
throttle, cache-configured DB URL without JMX).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@QuickMythril
QuickMythril merged commit 8e8d2a2 into main Aug 13, 2026
9 checks passed
@QuickMythril
QuickMythril deleted the feat/admin-dbpool-endpoint branch August 13, 2026 01:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant