Models\Allocation::class, 'api_key' => Models\ApiKey::class, 'backup' => Models\Backup::class, 'database' => Models\Database::class, 'egg' => Models\Egg::class, 'egg_variable' => Models\EggVariable::class, 'schedule' => Models\Schedule::class, 'server' => Models\Server::class, 'ssh_key' => Models\UserSSHKey::class, 'task' => Models\Task::class, 'user' => Models\User::class, ]); Http::macro( 'daemon', fn (Node $node, array $headers = []) => Http::acceptJson() ->asJson() ->withToken($node->daemon_token) ->withHeaders($headers) ->withOptions(['verify' => (bool) $app->environment('production')]) ->timeout(config('panel.guzzle.timeout')) ->connectTimeout(config('panel.guzzle.connect_timeout')) ->baseUrl($node->getConnectionAddress()) ); Sanctum::usePersonalAccessTokenModel(ApiKey::class); $bearerTokens = fn (OpenApi $openApi) => $openApi->secure(SecurityScheme::http('bearer')); Gate::define('viewApiDocs', fn () => true); Scramble::registerApi('application', ['api_path' => 'api/application', 'info' => ['version' => '1.0']]); Scramble::registerApi('client', ['api_path' => 'api/client', 'info' => ['version' => '1.0']])->afterOpenApiGenerated($bearerTokens); Scramble::registerApi('remote', ['api_path' => 'api/remote', 'info' => ['version' => '1.0']])->afterOpenApiGenerated($bearerTokens); $oauthProviders = []; foreach (config('auth.oauth') as $name => $data) { config()->set("services.$name", array_merge($data['service'], ['redirect' => "/auth/oauth/callback/$name"])); if (isset($data['provider'])) { $oauthProviders[$name] = $data['provider']; } } Event::listen(function (SocialiteWasCalled $event) use ($oauthProviders) { foreach ($oauthProviders as $name => $provider) { $event->extendSocialite($name, $provider); } }); FilamentColor::register([ 'danger' => Color::Red, 'gray' => Color::Zinc, 'info' => Color::Sky, 'primary' => Color::Blue, 'success' => Color::Green, 'warning' => Color::Amber, ]); FilamentView::registerRenderHook( PanelsRenderHook::CONTENT_START, fn () => view('filament.server-conflict-banner'), scopes: Console::class, ); Gate::before(function (User $user, $ability) { return $user->isRootAdmin() ? true : null; }); } /** * Register application service providers. */ public function register(): void { Scramble::extendOpenApi(fn (OpenApi $openApi) => $openApi->secure(SecurityScheme::http('bearer'))); Scramble::ignoreDefaultRoutes(); } }