Some checks failed
Backend Tests / pytest (Python 3.12) (push) Has been cancelled
Deploy to Production / backend-tests (push) Has been cancelled
Deploy to Production / frontend-build (push) Has been cancelled
Frontend Checks / Build & typecheck (push) Has been cancelled
SonarCloud / SonarCloud Analysis (push) Has been cancelled
Deploy to Production / Trigger production update (push) Has been cancelled
Security - Enforce guest ownership and server assignment across Proxmox endpoints (VM/LXC actions, firewall, backups, tasks, bulk operations, deploy, LXC/ISO creation, golden template) and WebSocket channels - Keep the panel's PVE root ticket server-side for consoles; single-use WebSocket tickets instead of the JWT in URLs; re-check access on open WebSocket bridges - Validate identifiers that reach Proxmox API paths and node shell commands; reject backup archives / foreign volumes in create requests - Close privilege escalation in user management, TOTP replay, reset-link poisoning, X-Forwarded-For spoofing, stored XSS (group icons, SVG logos) - SSH host key pinning (TOFU), encrypted 2FA seeds and notification secrets, password changes end other sessions, redact secrets in logs - Quotas count in-flight creations; 2FA failures count toward lockout Fixes - Consoles on non-default API ports, large App Store/script files, interrupted tasks after restart, impersonation lost on token refresh, HTTPExceptions swallowed into 500s, WebSocket client reconnects Performance and process - Fewer DB writes and queries on hot paths, lazy-loaded locales and heavy pages, off-loop blocking work, indexes (migrations 44-46) - Deploy waits for backend tests and frontend build; frontend checks workflow; API bound to loopback without the SSL profile
41 lines
1.7 KiB
Python
41 lines
1.7 KiB
Python
from fastapi import APIRouter, Depends
|
|
from .servers import router as servers_router
|
|
from .sdn import router as sdn_router
|
|
from .snapshots import router as snapshots_router
|
|
from .vms import router as vms_router
|
|
from .tasks import router as tasks_router
|
|
from .backup import router as backup_router
|
|
from .cluster import router as cluster_router
|
|
from .networks import router as networks_router
|
|
from .lxc import router as lxc_router
|
|
from .iso_vm import router as iso_vm_router
|
|
from .images import router as images_router
|
|
from .firewall import router as firewall_router
|
|
from .pools import router as pools_router
|
|
from .disks import router as disks_router
|
|
from .access import router as access_router
|
|
from .node_admin import router as node_admin_router
|
|
from .topology import router as topology_router
|
|
from ._helpers import get_next_vmid, save_vm_instance, get_vm_instance, validate_pve_identifiers
|
|
|
|
# Applies to every included route, WebSockets too: path segments / node names
|
|
# go into Proxmox API URLs (see validate_pve_identifiers).
|
|
router = APIRouter(dependencies=[Depends(validate_pve_identifiers)])
|
|
router.include_router(servers_router)
|
|
router.include_router(sdn_router)
|
|
router.include_router(snapshots_router)
|
|
router.include_router(vms_router)
|
|
router.include_router(tasks_router)
|
|
router.include_router(backup_router)
|
|
router.include_router(cluster_router)
|
|
router.include_router(networks_router)
|
|
router.include_router(lxc_router)
|
|
router.include_router(iso_vm_router)
|
|
router.include_router(images_router)
|
|
router.include_router(firewall_router)
|
|
router.include_router(pools_router)
|
|
router.include_router(disks_router)
|
|
router.include_router(access_router)
|
|
router.include_router(node_admin_router)
|
|
router.include_router(topology_router)
|