new changes

This commit is contained in:
Niranjan
2026-04-07 20:29:49 +05:30
parent 8fe63c7cf4
commit 31fe556bb0
79 changed files with 2917 additions and 0 deletions

View File

@@ -0,0 +1,20 @@
<?php
use Illuminate\Support\Facades\Route;
use App\Modules\Site\SiteController;
use App\Modules\Ssl\SslController;
Route::prefix('v1')->middleware(['auth:sanctum'])->group(function (): void {
Route::get('/sites', [SiteController::class, 'index']);
Route::post('/sites', [SiteController::class, 'store']);
Route::get('/sites/{site}', [SiteController::class, 'show']);
Route::patch('/sites/{site}', [SiteController::class, 'update']);
Route::delete('/sites/{site}', [SiteController::class, 'destroy']);
Route::post('/sites/{site}/domains', [SiteController::class, 'addDomain']);
Route::delete('/sites/{site}/domains/{domain}', [SiteController::class, 'removeDomain']);
Route::post('/ssl/issue', [SslController::class, 'issue']);
Route::post('/ssl/apply', [SslController::class, 'apply']);
Route::post('/ssl/renew', [SslController::class, 'renew']);
});

View File

@@ -0,0 +1,26 @@
<?php
use Illuminate\Support\Facades\Route;
use App\Modules\Auth\AuthController;
use App\Modules\Tenant\TenantController;
use App\Modules\Rbac\RbacController;
Route::prefix('v1')->group(function (): void {
Route::post('/auth/login', [AuthController::class, 'login']);
Route::post('/auth/refresh', [AuthController::class, 'refresh']);
Route::middleware(['auth:sanctum'])->group(function (): void {
Route::get('/auth/me', [AuthController::class, 'me']);
Route::post('/auth/logout', [AuthController::class, 'logout']);
Route::get('/tenants', [TenantController::class, 'index']);
Route::post('/tenants', [TenantController::class, 'store']);
Route::get('/tenants/{tenant}', [TenantController::class, 'show']);
Route::get('/rbac/roles', [RbacController::class, 'roles']);
Route::post('/rbac/roles', [RbacController::class, 'createRole']);
Route::post('/rbac/roles/{role}/permissions', [RbacController::class, 'attachPermissions']);
Route::post('/rbac/users/{user}/roles', [RbacController::class, 'assignRoles']);
Route::post('/rbac/check', [RbacController::class, 'checkAccess']);
});
});

View File

@@ -0,0 +1,8 @@
<?php
use Illuminate\Support\Facades\Route;
use App\Modules\Jobs\JobController;
Route::prefix('v1')->middleware(['auth:sanctum'])->group(function (): void {
Route::post('/jobs/dispatch', [JobController::class, 'dispatch']);
});

View File

@@ -0,0 +1,11 @@
<?php
use Illuminate\Support\Facades\Route;
use App\Modules\Marketplace\MarketplaceController;
Route::prefix('v1')->middleware(['auth:sanctum'])->group(function (): void {
Route::get('/plugin-market', [MarketplaceController::class, 'catalog']);
Route::post('/plugins/install', [MarketplaceController::class, 'install']);
Route::post('/plugins/update', [MarketplaceController::class, 'update']);
Route::post('/plugins/remove', [MarketplaceController::class, 'remove']);
});

View File

@@ -0,0 +1,15 @@
<?php
use Illuminate\Support\Facades\Route;
use App\Modules\Monitoring\MonitoringController;
use App\Modules\Monitoring\MetricsIngestController;
Route::prefix('v1')->middleware(['auth:sanctum'])->group(function (): void {
Route::get('/metrics/servers/{serverId}/live', [MonitoringController::class, 'liveServerMetrics']);
Route::post('/alerts/rules', [MonitoringController::class, 'createAlertRule']);
Route::get('/alerts', [MonitoringController::class, 'listAlerts']);
});
Route::prefix('v1')->group(function (): void {
Route::post('/metrics/ingest', [MetricsIngestController::class, 'ingest']);
});

View File

@@ -0,0 +1,24 @@
<?php
use Illuminate\Support\Facades\Route;
use App\Modules\Ops\FileOpsController;
use App\Modules\Ops\CronController;
use App\Modules\Ops\FirewallController;
use App\Modules\Ops\BackupController;
Route::prefix('v1')->middleware(['auth:sanctum'])->group(function (): void {
Route::post('/files/list', [FileOpsController::class, 'list']);
Route::post('/files/read', [FileOpsController::class, 'read']);
Route::post('/files/write', [FileOpsController::class, 'write']);
Route::get('/cron/jobs', [CronController::class, 'index']);
Route::post('/cron/jobs', [CronController::class, 'store']);
Route::delete('/cron/jobs', [CronController::class, 'destroy']);
Route::get('/firewall/rules', [FirewallController::class, 'index']);
Route::post('/firewall/rules', [FirewallController::class, 'store']);
Route::delete('/firewall/rules', [FirewallController::class, 'destroy']);
Route::post('/backups/run', [BackupController::class, 'run']);
Route::post('/backups/restore', [BackupController::class, 'restore']);
});

View File

@@ -0,0 +1,9 @@
<?php
use Illuminate\Support\Facades\Route;
use App\Modules\PublicApi\PublicApiController;
Route::prefix('v1/public')->group(function (): void {
Route::post('/tokens', [PublicApiController::class, 'issueToken']);
Route::post('/tokens/introspect', [PublicApiController::class, 'introspect']);
});

View File

@@ -0,0 +1,9 @@
<?php
use Illuminate\Support\Facades\Route;
use App\Modules\SaaS\SaaSController;
Route::prefix('v1')->middleware(['auth:sanctum'])->group(function (): void {
Route::post('/saas/quotas/check', [SaaSController::class, 'checkQuota']);
Route::post('/saas/usage-events', [SaaSController::class, 'usageEvent']);
});

View File

@@ -0,0 +1,18 @@
<?php
use Illuminate\Support\Facades\Route;
use App\Modules\Server\ServerController;
use App\Modules\Agents\AgentController;
Route::prefix('v1')->middleware(['auth:sanctum'])->group(function (): void {
Route::get('/servers', [ServerController::class, 'index']);
Route::post('/servers', [ServerController::class, 'store']);
Route::get('/servers/{server}', [ServerController::class, 'show']);
Route::patch('/servers/{server}', [ServerController::class, 'update']);
Route::delete('/servers/{server}', [ServerController::class, 'destroy']);
Route::post('/servers/{server}/enrollment-token', [AgentController::class, 'issueEnrollmentToken']);
Route::get('/servers/{server}/capabilities', [AgentController::class, 'capabilities']);
Route::get('/servers/{server}/sessions', [AgentController::class, 'sessions']);
Route::post('/servers/{server}/heartbeat', [AgentController::class, 'heartbeat']);
});

View File

@@ -0,0 +1,10 @@
<?php
use Illuminate\Support\Facades\Route;
use App\Modules\Webhook\WebhookController;
Route::prefix('v1')->middleware(['auth:sanctum'])->group(function (): void {
Route::get('/webhooks', [WebhookController::class, 'index']);
Route::post('/webhooks', [WebhookController::class, 'store']);
Route::post('/webhooks/test', [WebhookController::class, 'testDelivery']);
});