913 Commits

Author SHA1 Message Date
GL.iNet-Yongping.Xie be821d46f6 chore: bump version to v2.8.0
Signed-off-by: GL.iNet-Yongping.Xie <yongping.xie@gl-inet.com>
v2.8.0
2026-08-20 00:39:29 -07:00
GL.iNet-Yongping.Xie 8648908793 fix(cmd): fix execute-command execution and result display
- address the live device by ddns and call /cmd via bare axios
- write the response body once on timeout (was written twice)
- group results by outcome and show stderr in the detail dialog
- default user to root, minimum wait 1s, warn on long/streaming commands

Signed-off-by: GL.iNet-Yongping.Xie <yongping.xie@gl-inet.com>
2026-08-20 00:39:17 -07:00
pengyu.lu afe4cb9370 fix(ui): fix execute command feature 2026-08-20 11:40:13 +08:00
GL.iNet-Yongping.Xie ce05341dae fix(coturn): run as root and remove invalid allowed-peer-ip
Coturn image defaults to nobody and cannot read the bind-mounted
entrypoint on stricter hosts (e.g. NAS), causing Permission denied.
The allowed-peer-ip=0.0.0.0/0 CIDR is rejected by coturn as well.

Signed-off-by: GL.iNet-Yongping.Xie <yongping.xie@gl-inet.com>
2026-08-18 02:41:19 -07:00
GL.iNet-Yongping.Xie 57da780653 test(qa): add group/RBAC visibility, event-log, and device CRUD e2e cases
Signed-off-by: GL.iNet-Yongping.Xie <yongping.xie@gl-inet.com>
v2.7.0
2026-06-24 02:57:44 -07:00
GL.iNet-Yongping.Xie 07609164ef test(qa): add repeatable live e2e/regression suite (API + device protocol + real device)
Signed-off-by: GL.iNet-Yongping.Xie <yongping.xie@gl-inet.com>
2026-06-24 02:48:14 -07:00
GL.iNet-Yongping.Xie c6c57e450c feat(devices): add online/offline status filter to device list
Signed-off-by: GL.iNet-Yongping.Xie <yongping.xie@gl-inet.com>
2026-06-24 02:05:28 -07:00
GL.iNet-Yongping.Xie 428d296881 fix(devices): show total device count in header, not current page
Signed-off-by: GL.iNet-Yongping.Xie <yongping.xie@gl-inet.com>
2026-06-24 01:42:53 -07:00
GL.iNet-Yongping.Xie 34c3bb4e68 perf(devices): drop unused status/last_seen_at indexes (write churn)
Signed-off-by: GL.iNet-Yongping.Xie <yongping.xie@gl-inet.com>
2026-06-24 00:07:50 -07:00
GL.iNet-Yongping.Xie 3b41b0b41d perf(devices): minimal write on reconnect, skip unchanged client
Signed-off-by: GL.iNet-Yongping.Xie <yongping.xie@gl-inet.com>
2026-06-24 00:07:50 -07:00
GL.iNet-Yongping.Xie bf96173777 perf(devices): push list filter/sort/pagination to SQL
Signed-off-by: GL.iNet-Yongping.Xie <yongping.xie@gl-inet.com>
2026-06-23 23:22:54 -07:00
GL.iNet-Yongping.Xie 2abb1cff9a feat(devices): server-side pagination & search for device list (50/page)
Signed-off-by: GL.iNet-Yongping.Xie <yongping.xie@gl-inet.com>
2026-06-23 23:22:54 -07:00
GL.iNet-Yongping.Xie dce404e593 perf(sqlite): enable WAL and widen connection pool
Signed-off-by: GL.iNet-Yongping.Xie <yongping.xie@gl-inet.com>
2026-06-23 23:22:54 -07:00
GL.iNet-Yongping.Xie f291671d9d chore: bump version to v2.7.0
Signed-off-by: GL.iNet-Yongping.Xie <yongping.xie@gl-inet.com>
2026-06-23 23:22:54 -07:00
GL.iNet-Yongping.Xie e98d46850b fix(devicelog): pair online/offline events and damp flapping
Only emit offline for devices that came online, debounce online/offline
per device within 30s, and drop the INFO log that printed the server token.

Signed-off-by: GL.iNet-Yongping.Xie <yongping.xie@gl-inet.com>
2026-06-22 21:32:00 -07:00
GL.iNet-Yongping.Xie b871dda40c fix(device): guard against empty token/MAC on registration
Quote $TOKEN in the rtty watchdog so an empty token no longer consumes -d
(empty MAC), and reject empty-MAC registrations before the devices upsert
to avoid the UNIQUE constraint failure.

Signed-off-by: GL.iNet-Yongping.Xie <yongping.xie@gl-inet.com>
2026-06-22 21:31:33 -07:00
GL.iNet-Yongping.Xie 8f21589239 fix(script-info): let GLKVM_ACCESS_IP take priority over the web host
Use the configured IP whenever it is set, regardless of how the UI was
reached, so the device script no longer falls back to HOSTNAME="localhost".

Signed-off-by: GL.iNet-Yongping.Xie <yongping.xie@gl-inet.com>
2026-06-22 21:30:55 -07:00
GL.iNet-Yongping.Xie cbe724f425 fix: keep i18n messages reactive after language switch
Form validation messages and imperative t() toasts (e.g. delete-user
success) no longer stay stuck in the previous language.

Signed-off-by: GL.iNet-Yongping.Xie <yongping.xie@gl-inet.com>
v2.6.0
2026-04-23 00:05:19 -07:00
GL.iNet-Yongping.Xie 53b7ee4e9e fix: render modal Confirm/Cancel buttons in all locales
Route button labels through the project's vue-i18n; the upstream
fallback only knew en/zh and crashed the footer in de/es/fr/ja/ko.

Signed-off-by: GL.iNet-Yongping.Xie <yongping.xie@gl-inet.com>
2026-04-22 21:01:27 -07:00
GL.iNet-Yongping.Xie 6e85756350 fix: suppress notification emails during server restart
Skip device online/offline email notifications for 60s after startup
to prevent inbox flooding from reconnect storms. Mirrors the existing
device-log grace window. Remote access notifications are unaffected.

Signed-off-by: GL.iNet-Yongping.Xie <yongping.xie@gl-inet.com>
v2.5.0
2026-04-08 02:41:23 -07:00
GL.iNet-Yongping.Xie c973b41a36 fix: enforce route permission guard and await user info on login
- Add beforeEach route guard to block access to permission-restricted pages
- Await fetchUserInfo() in login flow to ensure permissions load before navigation

Signed-off-by: GL.iNet-Yongping.Xie <yongping.xie@gl-inet.com>
2026-04-08 01:25:52 -07:00
GL.iNet-Yongping.Xie e4d5e0baec docs: clean up README and remove verbose auth sections
- Remove detailed LDAP and OIDC configuration sections (refer to docker-compose README)
- Remove excessive emojis from section headings
- Simplify web proxy feature description

Signed-off-by: GL.iNet-Yongping.Xie <yongping.xie@gl-inet.com>
2026-04-08 00:12:23 -07:00
GL.iNet-Yongping.Xie 5c7ff5531b refactor: replace hardcoded IP with env variable in Makefile debug target
- Rename debug-cn to debug-dev-server for generic naming
- Use DEBUG_DEV_SERVER_IP environment variable instead of hardcoded IP
- Derive host, path, and dir from IP and user variables

Signed-off-by: GL.iNet-Yongping.Xie <yongping.xie@gl-inet.com>
2026-04-07 23:30:02 -07:00
GL.iNet-Yongping.Xie fbc269c63a fix: register Popconfirm component and adjust trusted device column width
- Add Popconfirm to ant-design-vue component registration to fix recipient removal
- Set device name column width to 200px for balanced table layout

Signed-off-by: GL.iNet-Yongping.Xie <yongping.xie@gl-inet.com>
2026-04-07 23:22:56 -07:00
GL.iNet-Yongping.Xie 9459b4709c feat: add email notification for device events
- SMTP config with TLS/STARTTLS/plain support and test email
- Notification rules for device online, offline, and remote access
- Recipient management with add/remove endpoints
- Async email sending via goroutines to avoid blocking device runtime
- Admin settings page with SMTP, rules, and recipients sections
- Bell icon added to sidebar menu
- i18n support for all 7 languages

Signed-off-by: GL.iNet-Yongping.Xie <yongping.xie@gl-inet.com>
2026-04-07 21:02:24 -07:00
GL.iNet-Yongping.Xie f5a8a6ddb6 feat: add multi-language support (ja, ko, de, fr, es)
- Add locale files for Japanese, Korean, German, French, and Spanish
- Extend language enum and options beyond gl-web-main's zh/en
- Register all locales in i18n and ant-design-vue config
- Auto-detect browser language for all supported locales
- Add language switcher to header after login

Signed-off-by: GL.iNet-Yongping.Xie <yongping.xie@gl-inet.com>
2026-04-07 20:08:38 -07:00
GL.iNet-Yongping.Xie 53b95b71e6 feat: add device event logging with admin log viewer
- Record device online/offline, remote SSH, Web and Control sessions
- Add device_event_logs table with MAC, event type and time range indexes
- Distinguish remote_control vs remote_web by device client type
- Admin-only log page with device/access tabs, duration column and filters
- Permission-gated sidebar entry (device_log.read)

Signed-off-by: GL.iNet-Yongping.Xie <yongping.xie@gl-inet.com>
2026-04-07 19:41:33 -07:00
GL.iNet-Yongping.Xie f49525ee9c feat: add personal center with TOTP 2FA and trusted devices
- Personal Center page with profile editing and last-login info
- TOTP-based two-factor authentication with QR code setup
- 30-day trusted-device cookie to skip 2FA on familiar browsers
- Friendly browser/OS labels for the trusted device list

Signed-off-by: GL.iNet-Yongping.Xie <yongping.xie@gl-inet.com>
2026-04-06 21:17:44 -07:00
GL.iNet-Yongping.Xie 40a1d23ea2 feat: support self-hosted firmware WebUI interface
Add support for the self-hosted firmware WebUI interface.

Signed-off-by: GL.iNet-Yongping.Xie <yongping.xie@gl-inet.com>
2026-03-30 00:12:20 -07:00
GL.iNet-Yongping.Xie 80112c7978 fix: resolve incorrect conflicts when merging dev v2.4.0
Fix incorrect merge conflicts in the dev v2.4.0 branch.

Signed-off-by: GL.iNet-Yongping.Xie <yongping.xie@gl-inet.com>
v2.4.0
2026-03-25 01:06:33 -07:00
GL.iNet-Yongping.Xie b943a18959 fix: test device group sorting and LDAP/OIDC user creation
Verify device group sorting.
Test automatic user creation for LDAP and OIDC login.

Signed-off-by: GL.iNet-Yongping.Xie <yongping.xie@gl-inet.com>
2026-03-25 01:03:56 -07:00
pengyu.lu ea37a171e9 Merge branch 'main' into dev-ui-0129 2026-03-25 11:45:00 +08:00
pengyu.lu 689793d47f feat: Some UI experiences have been optimized 2026-03-25 11:44:22 +08:00
GL.iNet-Yongping.Xie 55854afba8 feat: add device group sorting and auto-create LDAP/OIDC users
- support device group sorting
- auto-create local users for LDAP and OIDC login

Signed-off-by: GL.iNet-Yongping.Xie <yongping.xie@gl-inet.com>
2026-03-24 02:00:09 -07:00
iclannad c8c67d5f0e Merge pull request #34 from PiexlPuck/Docker-compose-file-fixes
chore: remove unused service and update env template
2026-03-18 19:30:49 +08:00
Brayden 66566e74a8 chore: remove unused service and update env template
- Commented out the deprecated configuration line in `docker-compose/.env.example`
- Removed the associated service from Docker Compose files as it is no longer required
2026-03-18 21:28:00 +11:00
pengyu.lu 30a132cb4e Merge branch 'dev-ui-0129' v2.3.0 2026-03-10 11:56:20 +08:00
pengyu.lu 52117f044b feat: Optimize the logic for storing data on the front end 2026-03-10 11:56:03 +08:00
pengyu.lu 884f537ae8 Merge branch 'dev-ui-0129' 2026-03-10 10:46:19 +08:00
pengyu.lu 807bab3e2a fix: Fix the issue where the version number is displayed with double quotes 2026-03-10 10:45:56 +08:00
GL.iNet-Yongping.Xie a1823096cc Merge branch 'feature/devicetable-order' 2026-03-09 19:22:38 -07:00
GL.iNet-Yongping.Xie b1aa8e3cae feat: bump version to v2.3.0
- Update project version to v2.3.0.

Signed-off-by: GL.iNet-Yongping.Xie <yongping.xie@gl-inet.com>
2026-03-09 19:20:30 -07:00
pengyu.lu 3d75a87140 Merge branch 'dev-ui-0129' 2026-03-10 10:17:54 +08:00
pengyu.lu d237847f0d feat: Some UI issues have been optimized to enhance user experience 2026-03-10 10:17:26 +08:00
GL.iNet-Yongping.Xie 59021535b7 feat: add sorting support for the device list
Implemented multi-column sorting (ascending and descending) for the device list, supporting ID, IP, MAC, connectedTime, description, and DDNS.

Signed-off-by: GL.iNet-Yongping.Xie <yongping.xie@gl-inet.com>
2026-03-08 19:37:01 -07:00
GL.iNet-Yongping.Xie 133f344713 Merge branch 'bugfix/v2.1.0' v2.2.0 2026-02-27 18:28:24 -08:00
GL.iNet-Yongping.Xie 7fd9c39ffb fix: resolve issues in v2.1.0
Fix reported bugs and stability issues in v2.1.0.

Signed-off-by: GL.iNet-Yongping.Xie <yongping.xie@gl-inet.com>
2026-02-27 18:27:43 -08:00
pengyu.lu 96936ecdd8 Merge branch 'dev-ui-0129' 2026-02-28 10:10:40 +08:00
pengyu.lu a44c9a4833 fix: Fix some UI issues 2026-02-28 10:10:11 +08:00
GL.iNet-Yongping.Xie e6da02f711 feat: allow customizing system admin username
Add support to change the default system admin login name via config file.

Signed-off-by: GL.iNet-Yongping.Xie <yongping.xie@gl-inet.com>
v2.1.0
2026-02-25 18:23:43 -08:00