# Security and operational boundaries

## Implemented safeguards
- HTTPS-only application, secure HttpOnly SameSite cookies, CSRF on mutating forms, escaped output and restrictive CSP.
- Prepared SQL statements and company membership checks on router/incident/proposal/artifact access.
- AES-256-GCM for stored router passwords and snapshot content; key outside public/.
- Router requests use a fixed GET menu catalog, explicit fields, TLS validation, exact pinned IPv4 allow-list, no redirects/proxy and bounded response size/time.
- No router write adapter exists. A Web approval is a record only.
- Single-stage maker-checker, conditional pending-state update and duplicate decision protection.
- CLI worker lock and per-router operation locks.

## Important limitations
This is not a security-audited production release. MFA/SSO, immutable external audit storage, per-company Telegram destinations, device/group-level authorization, remote collectors, external secrets vault, multi-node locking and penetration testing are absent.

The application administrator can access all companies and can create administrators. Use admin only for trusted platform operators. Non-admin company membership is enforced; roles are fixed. Company/group creation and router onboarding are admin-only. Existing user role editing and administrator deactivation are intentionally absent; create test users carefully. No password-reset email workflow exists.

Router names, interface names and addressing are operationally sensitive even when passwords are absent. JSON diagnostic snapshots contain selected configuration/state fields, not all configuration and not necessarily all information needed for diagnosis. Do not distribute them publicly.

Do not grant RouterOS sensitive/write/reboot permissions merely to satisfy this app. A read-only account should have only the required REST and read permissions for the selected menus. Validate permissions on a lab device. API exposure and firewall configuration remain the operator's responsibility.

Snapshot checksum validates stored plaintext integrity after decryption, not recoverability. There is no binary backup, RSC export, restore, automatic rollback or automatic remediation in this build.

Do not place credentials in proposal text. AI output is untrusted advisory text rendered escaped; it cannot invoke the router. The AI provider receives selected resource evidence when explicitly requested; approve that data transfer before enabling it.

Protect cPanel itself with MFA and separate account credentials. Back up the database, application key and artifact repository using your existing secure hosting backup process. This product does not yet provide application disaster recovery.
