Skip to content

Version 0.31➧

Release date: 2026-10-15

Single Sign-On (OpenID Connect) 🔐➧

  • Sign in with your corporate identity provider. WildcoreDMS can now sign users in through any OpenID Connect provider: Keycloak, Authentik, Google Workspace, Microsoft Entra ID (Azure AD), Auth0, Authelia and others. The login page shows a "Sign in with ..." button with a name you choose.
  • Automatic user provisioning. On first sign-in an existing user is found by email or login and linked to the provider account; if there is none, the user is created automatically.
  • Roles from provider groups. Role settings have a new "SSO groups mapping" field: users from the listed provider groups/roles get this role automatically. The role can be recalculated on every sign-in or assigned only once. For providers without groups (Google) a default role is used.
  • Flexible sign-in methods. Keep password sign-in alongside SSO, use SSO only (with automatic redirect to the provider), or forbid password sign-in for users created via SSO. Two-factor authentication and IP restrictions apply to SSO too.
  • Setup wizard. The wca auth:configure command sets up SSO step by step: checks that the provider is reachable, prints the redirect URI and provider-specific hints, and helps map roles. For Keycloak it generates an import file that creates the client, mapper and roles in one go.
  • The user card and account settings have a new Email field (used to link users to SSO).
  • Guides: Single Sign-On, step by step for Keycloak, Authentik, Google Workspace, Microsoft Entra ID, Auth0, Authelia.

Dark theme and look & feel 🌙➧

  • Dark theme. The web panel now has a dark theme. The switch is in the user menu (profile icon, top right) → "Dark theme" / "Light theme"; it's available in the mobile layout too. Until a theme is chosen manually, the panel automatically follows the operating system/browser theme (and switches along with it). A manual choice is remembered in the browser, applied instantly to all open tabs, and there's no light "flash" on load.
  • Tables, date pickers, topology, map, console, event logs, port and cable-diagnostics blocks, ONU statuses, charts and dashboard widgets are adapted for the dark theme.
  • Refreshed design. Consistent colors, spacing and pagination across all pages; updated sidebar, top bar, breadcrumbs and login page; more compact tables and pagination.
  • Field hints. Device, OLT and ONU cards now have "?" hints explaining each field. They can be turned off with the "Disable tooltips" switch in account settings.
  • Long tab bars (device, OLT, macros, ONU registration, system settings, events, notifications) scroll with the mouse wheel; OLT pages also get arrow buttons.
  • Long modal windows scroll inside instead of overflowing the screen.
  • Instead of a full-screen loader, the loading indicator is shown inside the table or block — the rest of the page stays usable; table loading errors are displayed properly.
  • Counters on device tabs (ports, events, BGP sessions, etc.) are highlighted with colors readable in both themes.
  • Faster initial load of the web panel — pages are loaded on demand.
  • Removed the outdated "agent version mismatch" popup.

PWA and web panel stability 📱➧

  • Fixed "endless loading" of the installed app (PWA): a new version is picked up right after an update, and the cache is used only as an offline fallback.
  • The app checks for a new version by itself (when you return to the window, on reconnect and every 30 minutes) and updates.
  • Fixed opening the web console in the installed app and the app icon.

ONU and OLT 📡➧

  • ONU signal history. The system remembers the minimum and maximum RX level (ONU side and OLT side), the time of the last change and the deviation from the current value. Limits can be reset with the "Reset signal limits" button (the "Historical signal limits" block).
  • ONU list: new sortable "Optical RX delta" column (difference between ONU RX and OLT RX), sorting by OLT-side RX, description filter works again.
  • ONU blacklist. OLT pages get a tab with the ONU blacklist (and whether it's enabled), and the dashboard gets an "ONU blacklist" widget. Supported: C-Data EPON FD1204SN/FD1208S/FD1216S-R1 (by MAC) and FD16xx FW3 GPON (by serial number); the list is refreshed on schedule.
  • ONU registration:
    • ZTE C600 — unregistered ONUs show the speed mode (GPON / XG-PON / XGS-PON);
    • BDcom GP3600 — fixed ONU registration (Error find interface by ident error);
    • C-Data FD16xxV3 — fixed the serial number format that caused a parse error during registration.
  • Huawei MA56xx/MA58xx: more reliable ONT deletion — both confirmation dialog variants of different firmware are handled; fixed the serial list failing on ONTs with an empty serial; fixed LLDP and console commands (also for BDcom).
  • BDcom: OLT-side RX is now collected in bulk polling, only online ONUs are polled, a zero value is shown as empty; fixed empty or garbled ONU vendor/model names.
  • Fixed cable diagnostics display.

DHCP Snooping 🔎➧

  • Switch, OLT and ONU pages get a DHCP Snooping card with the MAC / IP / VLAN / port / lease binding table. In the ONU card the table is requested with the "Get info" button; automatic loading together with the rest of ONU information is enabled by the load_snooping_info parameter. See DHCP Snooping.
  • D-Link (DES-3200, DES-30xx, DES-1228/ME, DGS-3000, DGS-3100, DGS-3120, DGS-3420) — binding table and DHCP relay mode.
  • BDcom EPON/GPON (including P3608B, GP3600) — bindings are read over SNMP with console fallback and matched precisely to a specific ONU; filtering by port includes its ONUs.
  • C-Data FD-EPON — fixed on newer firmware (the old command is no longer supported), bindings are matched to ONUs.
  • C-Data FD11xx, FD16xxV3, FD17xxV3 — fixed shifted fields in the table, added ONU number and ONU filter.
  • The table is also available on ZTE C600/C610, V-Solution V1600, Raisecom ISCOM and Alcatel — full list in DHCP Snooping.

Routers and BGP 🌐➧

  • BGP sessions on routers. The router page has a new "BGP sessions" tab: local AS, Router ID, number of established sessions, and for each peer — remote address and AS, IPv4/IPv6, local address, state, time in current state and the last error with a readable description (e.g. "Hold timer expired", "Cease / Max prefixes reached"). The number of established sessions is shown as a counter on the tab. See BGP sessions.
  • Supported on Juniper (JNP204, MX80, QFX5100 — IPv4 and IPv6 peers), Extreme XOS and Mikrotik RouterOS (v6 and v7, including multiple BGP instances). The Mikrotik "BGP sessions" tab now has the same look.
  • Background BGP polling. For Juniper and Extreme the BGP sessions poller is enabled by default (every 5 minutes): session state and uptime metrics for Prometheus, events on state change, flapping, session update and removal. Events are no longer raised on every reconnect attempt of a down session (idle/connect/active) — only on transitions between "established", "not established" and "disabled".
  • Juniper MX80 — new model: ports, counters, SFP optics, LLDP, ARP, direct routes, BGP, resources (CPU/RAM), port control, console and configuration backups. CPU and memory utilization is now collected for Juniper JNP204. Juniper routers without L2 configuration no longer show errors on the FDB and VLAN tabs.

Working with hardware 🛠️➧

  • SSH: added modern host key and key exchange algorithms (ssh-ed25519, rsa-sha2-256/512, curve25519-sha256, etc.) — WildcoreDMS connects to new firmware and devices that reject legacy ssh-rsa/SHA1. Legacy algorithms are still supported.
  • Disabled devices are no longer processed by background tasks and are excluded from autotopology.
  • The device management list has a new status column (enabled/disabled) with filtering and sorting.

Macros ⚡➧

  • The macro run dialog opens instantly with a loading indicator; run buttons are enabled only after variables are loaded; parameter forms no longer break on missing options.
  • Parameter dropdowns are positioned correctly inside modal windows.
  • The ONU registration template preview no longer shows stale results.
  • Compact parameter editor. Parameter cards on the "Parameters" tab are collapsed: only key, name, "Required" and type are visible, the rest of the settings expands with the arrow button. New parameters and parameters whose type was changed open expanded; "Required" is now a toggle. See Creating a macro.

Console commands 🖥️➧

  • Device export — new wca device:export command: exports devices to CSV (with group and disabled-device filters) in a format compatible with import.
  • Import via standard input — wca device:import accepts CSV through |, no need to copy the file into the container. See Import and export devices.

Backend and stability ⚙️➧

  • Fixed a memory leak in the WebSocket service; the service is now disabled by default.
  • Updated the SSH library in containers.
  • Permission to generate API keys. Creating API keys is now a separate "Generate API keys" permission (User management group). On upgrade it is granted automatically to roles that had user management; without it the "Create API key" button is hidden. See API key generation.
  • The event name filter in the event log now lists all events, not only those with an Alertmanager rule.
  • Fixed a rare hardware-access error right after an upgrade (a corrupted model configuration cache is now rebuilt automatically).
  • Sensor charts are labeled with the sensor name again.
  • API documentation (OpenAPI/Swagger) updated for the new features.