Routen
Alle Routen sind auf fuenf Dateien verteilt. Admin-Routen erfordern das admin-Gate, authentifizierte Routen die auth-Middleware plus WorkOS-Session-Validierung.
Location: routes/web.php, routes/api.php, routes/auth.php, routes/settings.php, routes/channels.php
Public Routes
Ohne Authentifizierung erreichbare Routen.
| Method | URL | Handler | Beschreibung |
|---|---|---|---|
| GET | / | Closure | Oeffentliche Homepage (Hero, Features, App-Screenshot). Layout: x-layouts.public :wide="true". |
| GET | /up | Laravel Health | Standard Laravel Health Check |
| GET | /up_system | SystemHealthController | Erweiterter Health Check (DB, Cache, Reverb, Queue, API). Geschuetzt via VerifyHealthToken. |
| GET | /{path} | PageController | CMS-Seiten (Pattern: slug_p{id}). 301-Redirect bei Slug-Aenderung. |
| GET | /notification/unsubscribe | NotificationUnsubscribeController | One-Click E-Mail-Unsubscribe via Signed URL. |
Auth Routes (WorkOS SSO)
Location: routes/auth.php
| Method | URL | Name | Handler | Middleware |
|---|---|---|---|---|
| GET | /login | login | AuthKitLoginRequest->redirect() | guest |
| GET | /authenticate | -- | AuthKitAuthenticationRequest->authenticate() | throttle:auth-kit |
| POST | /logout | logout | AuthKitLogoutRequest->logout() | auth |
Settings Routes
Location: routes/settings.php -- alle mit auth + ValidateSessionWithWorkOS.
| Method | URL | Name | Handler | Beschreibung |
|---|---|---|---|---|
| GET | /settings | -- | Redirect zu /settings/profile | -- |
| GET | /settings/profile | settings.profile | Volt: settings.profile | Profil-Einstellungen |
| GET | /settings/appearance | settings.appearance | Volt: settings.appearance | Darstellung (Theme) |
| GET | /settings/notifications | settings.notifications | Settings\Notifications (Livewire) | Benachrichtigungs-Praeferenzen |
Authenticated User Routes
Location: routes/web.php -- alle mit auth + ValidateSessionWithWorkOS, sofern nicht anders angegeben.
Dashboard und Explore
| Method | URL | Name | Handler | Beschreibung |
|---|---|---|---|---|
| GET | /dashboard | dashboard | Dashboard\Index | Haupt-Dashboard mit Charts und Leaderboards |
| GET | /tops-flops | tops-flops | TopsFlops\Index | Globale Top/Flop Wachstums-Rankings |
| GET | /video-trends | video-trends | VideoTrends\Index | Video Trends Leaderboards (Score, Growth, Trending) |
| GET | /explore | explore | Explore\Index | Explore-Startseite (Trending, Tags, Kategorien) |
| GET | /explore/browse | explore.browse | Explore\Browse | Profil-Browser mit Filtern |
| GET | /explore/trending-videos | explore.trending-videos | Explore\TrendingVideos | Trending YouTube Videos |
| GET | /notifications | notifications.index | Notifications\Index | Vollstaendige Benachrichtigungsliste |
Workspaces
| Method | URL | Name | Handler | Middleware |
|---|---|---|---|---|
| GET | /workspaces | workspaces.index | Workspaces\Index | auth (ohne WorkOS-Validierung) |
| GET | /workspace/{workspace} | workspaces.show | Watchers\Index | auth, EnsureWorkspaceFromRoute |
Watchers
Alle mit zusaetzlicher EnsureCurrentWorkspace-Middleware (ausser watchers.legacy.show).
| Method | URL | Name | Handler | Beschreibung |
|---|---|---|---|---|
| GET | /watchers | watchers.index | Watchers\Index | Watcher-Liste des aktuellen Workspace |
| GET | /watchers/create | watchers.create.legacy | Redirect | Legacy-Redirect |
| GET | /watchers/{watcher} | watchers.legacy.show | Redirect | Legacy-Redirect |
| GET | /watcher/{watcher} | watchers.show | Watchers\Show | Watcher-Detailseite |
| DELETE | /watcher/{watcher} | watchers.delete | DeleteWatcherController | Watcher loeschen |
| POST | /watcher/{watcher}/sources/{source}/favorite | watchers.favorite.toggle | ToggleFavoriteController | Favoriten-Toggle |
| POST | /watcher/{watcher}/move | watchers.move | MoveWatcherController | Watcher verschieben |
| GET | /dashboard/watchers/{watcher} | dashboard.watchers.show | Closure | Workspace setzen + Redirect zu Watcher |
Watcher Admin-Aktionen
Erfordern zusaetzlich can:admin.
| Method | URL | Name | Handler | Beschreibung |
|---|---|---|---|---|
| POST | /watcher/{watcher}/rescrape | watchers.rescrape | RescrapeWatcherController | Manueller Rescrape aller Sources |
| POST | /watcher/{watcher}/youtube-video-stats | watchers.youtube-video-stats | RequestYouTubeVideoStatsController | YouTube Video-Stats Sync starten |
| POST | /watcher/{watcher}/youtube-video-auto-sync/enable | watchers.youtube-video-auto-sync.enable | EnableYouTubeVideoAutoSyncController | Auto-Sync aktivieren |
| POST | /watcher/{watcher}/youtube-video-auto-sync/disable | watchers.youtube-video-auto-sync.disable | DisableYouTubeVideoAutoSyncController | Auto-Sync deaktivieren |
| POST | /watcher/{watcher}/ai-enhancement | watchers.ai-enhancement | QueueAiEnhancementController | AI-Enhancement queuen |
Sonstige
| Method | URL | Name | Handler | Beschreibung |
|---|---|---|---|---|
| POST | /api/user/timezone | user.timezone.update | UpdateTimezoneController | Browser-Timezone aktualisieren |
Admin Routes
Location: routes/web.php -- alle mit auth + can:admin.
| Method | URL | Name | Handler | Beschreibung |
|---|---|---|---|---|
| GET | /admin/social-profiles | admin.social-profiles.index | Admin\SocialProfiles\Index | Profil-Verwaltung (Health-Stats, Filter, Aktionen) |
| GET | /admin/users | admin.users.index | Admin\Users\Index | User-Verwaltung |
| GET | /admin/statistics | admin.statistics.index | Admin\Statistics\Index | Charts (Plattformen, Users, Blocked, Sanitized) |
| GET | /admin/log-queue | admin.log-queue.index | Admin\LogQueue\Index | Log Viewer + Queue Status |
| GET | /admin/update-status | admin.update-status.index | Admin\UpdateStatus\Index | YouTube/Instagram Update-Status |
| GET | /admin/google-api-usage | admin.google-api-usage.index | Admin\GoogleApiUsage\Index | Google API Quota Monitoring |
| GET | /admin/youtube-research | admin.youtube-research.index | Admin\YouTubeResearch\Index | YouTube Research Tool |
| GET | /admin/ai-enhancements | admin.ai-enhancements.index | Admin\AiEnhancements\Index | AI Detection Logs |
| GET | /admin/tag-management | admin.tag-management.index | Admin\TagManagement\Index | Tag-Verwaltung |
| GET | /admin/related-channels | admin.related-channels.index | Admin\RelatedChannels\Index | Related Channels Status |
| GET | /admin/server | admin.server-dashboard.index | Admin\ServerDashboard | Live Server-Monitoring |
| GET | /admin/reverb-test | admin.reverb-test.index | Admin\ReverbTest\Index | WebSocket-Test-Seite |
| GET | /admin/pages | admin.pages.index | Admin\Pages\Index | CMS-Seiten-Uebersicht |
| GET | /admin/pages/create | admin.pages.create | Admin\Pages\Edit | CMS-Seite erstellen |
| GET | /admin/pages/{page}/edit | admin.pages.edit | Admin\Pages\Edit | CMS-Seite bearbeiten |
| GET | /admin/pulse | admin.pulse | Closure (View) | Laravel Pulse Dashboard |
| GET | /admin/vantage | admin.vantage | Closure (View) | Vantage Queue Dashboard |
| GET | /admin/logs | admin.logs | Closure (View) | Log Viewer |
API Routes (Collector)
Location: routes/api.php -- alle mit auth:sanctum + throttle:collector.
| Method | URL | Handler | Beschreibung |
|---|---|---|---|
| POST | /api/collector/jobs/lease | CollectorJobController@lease | Naechsten verfuegbaren Job leasen |
| GET | /api/collector/jobs/stats | CollectorJobController@stats | Job-Statistiken abrufen |
| POST | /api/collector/jobs/{job}/complete | CollectorJobController@complete | Job als erfolgreich melden |
| POST | /api/collector/jobs/{job}/fail | CollectorJobController@fail | Job als fehlgeschlagen melden |
| POST | /api/collectors/heartbeat | CollectorClientController@heartbeat | Collector-Client Heartbeat |
Broadcast Channels
Location: routes/channels.php
| Channel | Typ | Autorisierung | Verwendung |
|---|---|---|---|
App.Models.User.{id} | Private | User-ID Match | Laravel Standard Notification Channel |
user.{userId} | Private | User-ID Match | YouTube Sync, Daily Scrape, Profile Events |
workspace.{workspaceId} | Private | User ist Workspace-Mitglied | Import Progress |
profile.{profileId} | Private | User hat Watcher mit diesem Profil | Related Profiles Calculated |
admin | Private | $user->isAdmin() | User Registrations, Server Alerts |