Johannes Zellner
918c2f8587
Move to @cloudron/safetydance
2026-04-01 09:49:34 +02:00
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
81659d4bf2
eventlog: add params for from and to date
2026-02-16 20:52:02 +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
5276321ade
integrity: add integrity check fields and initial UI
2026-02-08 23:26:57 +01:00
Girish Ramakrishnan
e6024ac85b
eventlog: rename backup site logs and fix eventlog summar
2025-10-09 17:24:33 +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
cbc73f5c9a
remove uuid module
...
built into node.js now
2025-07-28 12:54:09 +02:00
Girish Ramakrishnan
83ab701d02
eventlog: add backup target eventlog
2025-07-25 12:23:41 +02:00
Girish Ramakrishnan
1672217dd9
replace mysql module with mysql2
...
mysql is deprecated since years now
2025-06-19 12:41:49 +02:00
Girish Ramakrishnan
1bbdabc42f
registry config: create table and migrate existing setting
2025-05-07 15:56:13 +02:00
Girish Ramakrishnan
f973536f7f
archives: add eventlog
2024-12-10 11:10:35 +01:00
Girish Ramakrishnan
3b9d617e37
groups: add events to eventlog
2024-12-04 11:30:30 +01:00
Girish Ramakrishnan
0a4aede3a8
eventlog: branding events
2024-12-02 12:18:09 +01:00
Girish Ramakrishnan
b570f2f77d
userdirectory: add eventlog entry
2024-06-12 10:52:10 +02:00
Girish Ramakrishnan
4136272382
externalldap: add eventlog
2024-01-13 13:22:26 +01:00
Girish Ramakrishnan
a389b863f9
directory server: add eventlog entry
2024-01-13 12:24:28 +01:00
Girish Ramakrishnan
44be454a1e
system: return activation time if we have it
2023-12-04 01:41:56 +01:00
Girish Ramakrishnan
d2c702f890
eventlog: always use AuditSource objects as source field
2023-08-28 08:13:56 +05:30
Girish Ramakrishnan
ff539e2669
remove crashnotifier
...
it's not really used
2023-05-15 11:08:00 +02:00
Girish Ramakrishnan
edf87739fc
eventlog: only prune login and logout events
2023-02-25 01:20:43 +01:00
Girish Ramakrishnan
89127e1df7
reverseproxy: rework cert logic
...
9c8f78a059 already fixed many of the cert issues.
However, some issues were caught in the CI:
* The TLS addon has to be rebuilt and not just restarted. For this reason, we now
move things to a directory instead of mounting files. This way the container is just restarted.
* Cleanups must be driven by the database and not the filesystem . Deleting files on disk or after a restore,
the certs are left dangling forever in the db.
* Separate the db cert logic and disk cert logic. This way we can sync as many times as we want and whenever we want.
2022-11-29 11:07:23 +01:00
Johannes Zellner
6715efca50
Distinguish ghost/impersonate logins from others
2022-07-29 20:39:18 +02:00
Girish Ramakrishnan
d47b39d90b
eventlog: distinguish install vs update finish
2022-04-01 14:19:53 -07:00
Girish Ramakrishnan
a662a60332
eventlog: add event for certificate cleanup
2022-02-24 19:55:43 -08:00
Girish Ramakrishnan
e71d932de0
eventlog: add Json suffix to json fields
2021-11-17 12:31:46 -08:00
Johannes Zellner
9eed3af8b6
add volume remount
2021-10-11 16:22:56 +02:00
Girish Ramakrishnan
092b55d6ca
apps: add backup start and finish events
...
these can then be used by the UI to show errors
fixes #797
2021-09-30 11:44:11 -07:00
Girish Ramakrishnan
d90beb18d4
eventlog: add service rebuild/restart/configure events
2021-09-24 10:22:45 -07:00
Girish Ramakrishnan
167eae5b81
Use safe instead of try/catch
2021-09-01 15:37:04 -07:00
Girish Ramakrishnan
dd16866e5a
eventlog: getAll -> list
2021-08-20 11:27:35 -07:00
Girish Ramakrishnan
eb16e8a8ee
eventlog: fix cleanup
2021-06-05 21:20:32 -07:00
Girish Ramakrishnan
7aac4455a9
eventlog: async'ify
2021-06-01 16:37:32 -07:00
Girish Ramakrishnan
73917e95c9
rework notifications
...
notifications are now system level instead of user level.
To clarify the use events/notifications/email:
* eventlog - everything that is happenning on server
* notifications - specific important events (alerts)
* email - these are really urgent things that require immediate attention. this is for
the case where an admin does not visit the dashboard often. can also be alerts like
bad backup config or reboot required which are not events per-se.
Notes on notifications
* oom - notification only
* appUpdated - notification only
* cert renewal failure - only raise when < 10 days to go. also send email thereafter (todo).
* Backup failure - only if last 5 backups failed (todo).
* Box update - notification only. we anyway send newsletter.
* box update available - we raise a notification. no email.
* app update available - we already have update indicator on dashboard. so, no notification or email.
Alerts:
* backup config
* disk space
* mail status
* reboot
* box updated
* ubuntu update required
2021-05-28 15:29:53 -07:00
Girish Ramakrishnan
098cff08f7
make import a task of it's own
...
this allows us to distinguish it in the eventlog and apptask logic
2021-05-26 09:27:15 -07:00
Girish Ramakrishnan
199eda82d1
Use Array.isArray instead
2021-05-02 11:26:47 -07:00
Girish Ramakrishnan
d15aa68bd7
eventlog: only merge ldap login events (and not dashboard)
...
fixes #758
2021-01-06 22:09:37 -08:00
Girish Ramakrishnan
624e34d02d
eventlog: add logout
...
fixes #757
2021-01-06 21:57:56 -08:00
Girish Ramakrishnan
6a3df679fa
Add volume management
...
the volumes table can later have backup flag, mount options etc
2020-10-28 15:31:21 -07:00
Girish Ramakrishnan
08f33f0e78
Add mail location audit log
2020-09-09 22:31:50 -07:00
Girish Ramakrishnan
2cdf68379b
Revert "add volume support"
...
This reverts commit b8bb69f730 .
Revert this for now, we will try a simpler non-object volume first
2020-04-27 22:55:43 -07:00
Girish Ramakrishnan
b8bb69f730
add volume support
...
part of #668 , #569
2020-04-24 22:09:07 -07:00
Girish Ramakrishnan
1b15d28212
eventlog: add start/stop/restart logs
2020-03-19 17:02:55 -07:00
Girish Ramakrishnan
0e156b9376
migrate permissions and admin flag to user.role
2020-02-21 16:49:20 -08:00
Girish Ramakrishnan
cda649884e
eventlog: add mailbox and list update events
2020-01-24 17:18:34 -08:00
Girish Ramakrishnan
93199c7f5b
eventlog: support ticket and ssh
2019-12-16 14:06:55 -08:00
Girish Ramakrishnan
02339d503c
do not re-generate DATABASE_ERROR
2019-10-24 20:31:45 -07:00
Girish Ramakrishnan
a017af41c5
Start moving db code to use BoxError as well
2019-10-24 14:09:53 -07:00