""" Plugin Distribution System URL Routes """ from django.urls import path from . import views app_name = 'plugins' urlpatterns = [ # ============================================================================ # Public Endpoints (No Auth Required) # ============================================================================ # Download latest version of a plugin path('/download/', views.download_plugin, name='download'), # Check for updates (called by installed plugins) path('/check-update/', views.check_update, name='check-update'), # Get plugin information (WordPress compatible) path('/info/', views.plugin_info, name='info'), # Get latest plugin for a platform path('/latest/', views.get_latest_plugin, name='latest-by-platform'), # ============================================================================ # Authenticated Endpoints # ============================================================================ # Register plugin installation path('/register-installation/', views.register_installation, name='register-installation'), # Report health status path('/health-check/', views.health_check, name='health-check'), # Track download (for analytics) path('/track-download/', views.track_download, name='track-download'), ] # Admin URL patterns (to be included under /api/admin/plugins/) admin_urlpatterns = [ # List all plugins / Create new plugin path('', views.AdminPluginListView.as_view(), name='admin-plugin-list'), # Plugin versions management path('/versions/', views.AdminPluginVersionsView.as_view(), name='admin-versions'), path('/versions//', views.AdminPluginVersionDetailView.as_view(), name='admin-version-detail'), # Release a version path('/versions//release/', views.admin_release_version, name='admin-release'), # Push update to installations path('/versions//push-update/', views.admin_push_update, name='admin-push-update'), # View installations path('installations/', views.AdminPluginInstallationsView.as_view(), name='admin-all-installations'), path('/installations/', views.AdminPluginInstallationsView.as_view(), name='admin-installations'), # Statistics path('stats/', views.AdminPluginStatsView.as_view(), name='admin-all-stats'), path('/stats/', views.AdminPluginStatsView.as_view(), name='admin-stats'), ]