lthn.io/app/Core/Bouncer/Gate/CLAUDE.md
Claude 41a90cbff8
feat: lthn.io API serving live chain data
Fixed: basePath self→static binding, namespace detection, event wiring,
SQLite cache, file cache driver. All Mod Boot classes converted to
$listens pattern for lifecycle event discovery.

Working endpoints:
- /v1/explorer/info — live chain height, difficulty, aliases
- /v1/explorer/stats — formatted chain statistics
- /v1/names/directory — alias directory grouped by type
- /v1/names/available/{name} — name availability check
- /v1/names/lookup/{name} — name details

Co-Authored-By: Charon <charon@lethean.io>
2026-04-03 17:17:42 +01:00

944 B

Bouncer/Gate/ — Action Gate Authorisation

Whitelist-based request authorisation system. Philosophy: "If it wasn't trained, it doesn't exist."

Files

File Purpose
Boot.php ServiceProvider — registers middleware, configures action gate.
ActionGateMiddleware.php Intercepts requests, checks if the target action is permitted. Production mode blocks unknown actions (403). Training mode prompts for approval.
ActionGateService.php Core service — resolves action names from routes/controllers, checks ActionPermission records. Supports #[Action] attribute, auto-resolution from controller names, and training mode.
RouteActionMacro.php Adds ->action('name') and ->bypassGate() macros to Laravel routes for fluent action naming.

Integration Flow

Request -> ActionGateMiddleware -> ActionGateService::check() -> ActionPermission (allowed/denied) -> Controller