Commit Graph

156 Commits

Author SHA1 Message Date
Girish Ramakrishnan e48cdc85f7 notifications: subscribe owner and users to all by default 2026-03-27 09:14:18 +01:00
Girish Ramakrishnan f2949c1836 notifications: send email when manual app update is required 2026-03-21 15:59:41 +01:00
Girish Ramakrishnan cd6acfb91d notifications: send email when manual platform update is required 2026-03-21 15:38:12 +01:00
Girish Ramakrishnan 8f1f3645b2 app update: if backup fails, provide a notification
fixes #851
2026-03-15 14:48:07 +05:30
Girish Ramakrishnan f12b4faf34 lint 2026-03-12 23:23:23 +05:30
Girish Ramakrishnan 01d0c738bc replace debug() with our custom logger
mostly we want trace() and log(). trace() can be enabled whenever
we want by flipping a flag and restarting box
2026-03-12 23:08:35 +05:30
Girish Ramakrishnan b5a1554631 Fix various linter errors 2026-02-15 19:37:30 +01:00
Girish Ramakrishnan e9f96593c3 reorder functions for no-use-before-define 2026-02-14 16:34:34 +01:00
Girish Ramakrishnan 36aa641cb9 migrate to "export default"
also, set no-use-before-define in linter
2026-02-14 15:43:24 +01:00
Girish Ramakrishnan 96dc79cfe6 Migrate codebase from CommonJS to ES Modules
- Convert all require()/module.exports to import/export across 260+ files
- Add "type": "module" to package.json to enable ESM by default
- Add migrations/package.json with "type": "commonjs" to keep db-migrate compatible
- Convert eslint.config.js to ESM with sourceType: "module"
- Replace __dirname/__filename with import.meta.dirname/import.meta.filename
- Replace require.main === module with process.argv[1] === import.meta.filename
- Remove 'use strict' directives (implicit in ESM)
- Convert dynamic require() in switch statements to static import lookup maps
  (dns.js, domains.js, backupformats.js, backupsites.js, network.js)
- Extract self-referencing exports.CONSTANT patterns into standalone const
  declarations (apps.js, services.js, locks.js, users.js, mail.js, etc.)
- Lazify SERVICES object in services.js to avoid circular dependency TDZ issues
- Add clearMailQueue() to mailer.js for ESM-safe queue clearing in tests
- Add _setMockApp() to ldapserver.js for ESM-safe test mocking
- Add _setMockResolve() wrapper to dig.js for ESM-safe DNS mocking in tests
- Convert backupupload.js to use dynamic imports so --check exits before
  loading the module graph (which requires BOX_ENV)
- Update check-install to use ESM import for infra_version.js
- Convert scripts/ (hotfix, release, remote_hotfix.js, find-unused-translations)
- All 1315 tests passing

Migration stats (AI-assisted using Cursor with Claude):
- Wall clock time: ~3-4 hours
- Assistant completions: ~80-100
- Estimated token usage: ~1-2M tokens

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-14 15:11:45 +01:00
Girish Ramakrishnan aa362477e8 community: validate the url in the dialog 2026-02-05 22:40:37 +01:00
Johannes Zellner 70a9a66ae9 Do not order notifcations by check/unchecked 2026-01-23 13:03:12 +01:00
Girish Ramakrishnan 4962597f58 Remove forum message from installation notification 2025-09-25 08:31:16 +02:00
Girish Ramakrishnan 12e073e8cf use node: prefix for requires
mostly because code is being autogenerated by all the AI stuff using
this prefix. it's also used in the stack trace.
2025-08-14 12:55:35 +05:30
Girish Ramakrishnan c184f1e42e mailer: handle error at the caller instead
the send test email logic breaks if we disable throwing error in send
2025-08-06 10:18:09 +02:00
Girish Ramakrishnan 0cf0c7a27c notifications: add low disk space notification 2025-05-07 13:19:20 +02:00
Girish Ramakrishnan 12794a499d domains: validate domain configs in a cron
no email notification yet, we have to rework this notifications/eventlog stuff
2025-02-17 19:11:11 +01:00
Girish Ramakrishnan ac0426d97d notification: update failure mail 2025-01-24 18:44:44 +01:00
Girish Ramakrishnan 0280059c13 notifications: server reboot email 2025-01-19 11:18:49 +01:00
Girish Ramakrishnan 8a97b7efa4 notifications: send unacked ones first 2025-01-02 16:50:31 +01:00
Girish Ramakrishnan be340580d4 various notification fixes 2024-12-11 23:58:17 +01:00
Girish Ramakrishnan d0d0913c70 notifications: add context field 2024-12-11 22:29:00 +01:00
Girish Ramakrishnan 701c25d07a notifications: add back app down and app oom mails 2024-12-11 20:56:15 +01:00
Girish Ramakrishnan 6004cd17bf notifications: per user email prefs 2024-12-11 19:12:20 +01:00
Girish Ramakrishnan 746e694d7e notifications: rename alert to pin and unpin 2024-12-11 17:31:32 +01:00
Girish Ramakrishnan ead419003b notifications: rename ALERT_ to TYPE_ 2024-12-11 15:29:20 +01:00
Johannes Zellner 9f06b91399 Merge remaining frontend into dashboard 2024-10-04 21:37:17 +02:00
Johannes Zellner e91536b9e1 Alert() should also update type 2023-09-26 14:14:09 +02:00
Johannes Zellner 8f87070b45 Add color coded indicator to notifications 2023-09-26 12:58:19 +02:00
Johannes Zellner b72a5e9c69 Add notification types 2023-09-22 17:58:13 +02:00
Johannes Zellner 246c45c1bc Fixup logviewer URL for backup failed email 2023-08-26 09:36:17 +02:00
Girish Ramakrishnan eee49a8291 move dashboard setting into dashboard.js 2023-08-11 21:04:10 +05:30
Girish Ramakrishnan 67ee82abb9 remove settings.dashboardOrigin 2023-08-04 22:10:14 +05:30
Girish Ramakrishnan 8205beeabf notifications: make update alerts non-persistent
once acked, they remain acked. no need to keep nagging the user about them.
2023-03-26 15:12:39 +02:00
Girish Ramakrishnan 9182b01fe0 rework notifications.add 2023-03-26 14:43:10 +02:00
Girish Ramakrishnan 61ba3cbfc2 notifications: clearAlert 2023-03-26 14:18:37 +02:00
Johannes Zellner fc8572c2af Raise alert for when an app cannot be autoupdated 2022-08-10 12:19:54 +02:00
Girish Ramakrishnan 1549f6a4d0 fix various terminology in code
subdomain, domain - strings
location - { subdomain, domain }
bundle - { cert, key }
bundlePath - { certFilePath, keyFilePath }

vhost is really just for virtual hosting
fqdn for others
2022-07-13 10:15:09 +05:30
Girish Ramakrishnan d47b39d90b eventlog: distinguish install vs update finish 2022-04-01 14:19:53 -07:00
Girish Ramakrishnan 5ab2d9da8a notifications: remove dead code 2021-11-17 10:26:47 -08:00
Girish Ramakrishnan 445c83c8b9 make auditsource a class
this allows us to use AuditSource for the class and auditSource for
the instances!
2021-09-30 10:13:36 -07:00
Girish Ramakrishnan 50c68cd499 notifications: better oom message for redis
fixes #795
2021-09-19 17:34:41 -07:00
Girish Ramakrishnan dd16866e5a eventlog: getAll -> list 2021-08-20 11:27:35 -07:00
Girish Ramakrishnan 4cd5137292 mailer: fix error handling
previous mailer code has no callback and thus no way to pass back errors.
now with asyncification it passes back the error
2021-08-19 12:40:53 -07:00
Johannes Zellner a6e79c243e Show correct/new app version info in updated finished notification 2021-07-31 14:17:51 +02:00
Girish Ramakrishnan a1c61facdc merge userdb.js into users.js 2021-07-16 22:33:22 -07:00
Girish Ramakrishnan db685d3a56 notification: app updated message shown despite failure 2021-07-13 14:27:53 -07:00
Johannes Zellner cdad2a80d4 Remove unused require 2021-06-30 17:19:30 +02:00
Girish Ramakrishnan 9c0f983ce1 backups: fix failure notitification 2021-06-24 01:44:46 -07:00
Girish Ramakrishnan b24cf78bc0 certs: fix renewal notification 2021-06-24 01:12:33 -07:00