Files
yakpanel-core/architecture/2026/06-api-structure.yaml
2026-04-07 20:29:49 +05:30

116 lines
2.6 KiB
YAML

openapi: 3.0.3
info:
title: YakPanel Control Plane API
version: 1.0.0
servers:
- url: /api/v1
paths:
/auth/login:
post:
tags: [Auth]
summary: Authenticate user and return token
responses:
"200": { description: OK }
/tenants:
get:
tags: [Tenants]
summary: List tenant memberships
responses:
"200": { description: OK }
/servers:
get:
tags: [Servers]
summary: List managed servers
responses:
"200": { description: OK }
post:
tags: [Servers]
summary: Register server metadata
responses:
"202": { description: Accepted }
/sites:
get:
tags: [Sites]
summary: List sites
responses:
"200": { description: OK }
post:
tags: [Sites]
summary: Create site
responses:
"202": { description: Accepted }
/ssl/issue:
post:
tags: [SSL]
summary: Issue certificate
responses:
"202": { description: Accepted }
/files/list:
post:
tags: [Files]
summary: List files in allowed path scope
responses:
"200": { description: OK }
/cron/jobs:
get:
tags: [Cron]
summary: List cron jobs
responses:
"200": { description: OK }
post:
tags: [Cron]
summary: Create cron job
responses:
"202": { description: Accepted }
/firewall/rules:
get:
tags: [Firewall]
summary: List firewall rules
responses:
"200": { description: OK }
post:
tags: [Firewall]
summary: Add firewall rule
responses:
"202": { description: Accepted }
/backups/policies:
get:
tags: [Backups]
summary: List backup policies
responses:
"200": { description: OK }
post:
tags: [Backups]
summary: Create backup policy
responses:
"201": { description: Created }
/plugins/market:
get:
tags: [Marketplace]
summary: Browse plugin marketplace
responses:
"200": { description: OK }
/plugins/install:
post:
tags: [Marketplace]
summary: Install plugin
responses:
"202": { description: Accepted }
/metrics/servers/{serverId}/live:
get:
tags: [Monitoring]
summary: Get latest real-time server metrics
parameters:
- in: path
name: serverId
required: true
schema: { type: string, format: uuid }
responses:
"200": { description: OK }
components:
securitySchemes:
bearerAuth:
type: http
scheme: bearer
bearerFormat: JWT