plugin distribution system
This commit is contained in:
62
backend/igny8_core/plugins/urls.py
Normal file
62
backend/igny8_core/plugins/urls.py
Normal file
@@ -0,0 +1,62 @@
|
||||
"""
|
||||
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('<slug:slug>/download/', views.download_plugin, name='download'),
|
||||
|
||||
# Check for updates (called by installed plugins)
|
||||
path('<slug:slug>/check-update/', views.check_update, name='check-update'),
|
||||
|
||||
# Get plugin information (WordPress compatible)
|
||||
path('<slug:slug>/info/', views.plugin_info, name='info'),
|
||||
|
||||
# Get latest plugin for a platform
|
||||
path('<str:platform>/latest/', views.get_latest_plugin, name='latest-by-platform'),
|
||||
|
||||
# ============================================================================
|
||||
# Authenticated Endpoints
|
||||
# ============================================================================
|
||||
|
||||
# Register plugin installation
|
||||
path('<slug:slug>/register-installation/', views.register_installation, name='register-installation'),
|
||||
|
||||
# Report health status
|
||||
path('<slug:slug>/health-check/', views.health_check, name='health-check'),
|
||||
|
||||
# Track download (for analytics)
|
||||
path('<slug:slug>/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('<slug:slug>/versions/', views.AdminPluginVersionsView.as_view(), name='admin-versions'),
|
||||
path('<slug:slug>/versions/<str:version>/', views.AdminPluginVersionDetailView.as_view(), name='admin-version-detail'),
|
||||
|
||||
# Release a version
|
||||
path('<slug:slug>/versions/<str:version>/release/', views.admin_release_version, name='admin-release'),
|
||||
|
||||
# Push update to installations
|
||||
path('<slug:slug>/versions/<str:version>/push-update/', views.admin_push_update, name='admin-push-update'),
|
||||
|
||||
# View installations
|
||||
path('installations/', views.AdminPluginInstallationsView.as_view(), name='admin-all-installations'),
|
||||
path('<slug:slug>/installations/', views.AdminPluginInstallationsView.as_view(), name='admin-installations'),
|
||||
|
||||
# Statistics
|
||||
path('stats/', views.AdminPluginStatsView.as_view(), name='admin-all-stats'),
|
||||
path('<slug:slug>/stats/', views.AdminPluginStatsView.as_view(), name='admin-stats'),
|
||||
]
|
||||
Reference in New Issue
Block a user