Johannes Zellner
cb5ccd8166
Also auth against mailPasswords in ldapserver.js
2026-02-18 10:12:34 +01:00
Girish Ramakrishnan
4ed6fbbd74
eslint: add no-shadow
2026-02-18 08:18:37 +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
f714cd66f7
rework mail domain stats
...
We can now show list count, alias count as well in the mail domains UI
2025-12-05 13:32:07 +01:00
Girish Ramakrishnan
b467b58ee7
disable directoryserver logs by default
2025-11-19 17:17:41 +01:00
Girish Ramakrishnan
3364e5c876
ldapserver: fix crash when app not found
2025-10-03 11:55:20 +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
22e23e1e65
auth: add logs when auth fails or succeeds
2025-07-11 18:14:27 +02:00
Girish Ramakrishnan
28eee609de
ldap: add pagination to supportedControl
2025-02-26 12:05:20 +01:00
Girish Ramakrishnan
43950fc398
ldap: fix crash. function was renamed
2024-12-16 20:29:28 +01:00
Girish Ramakrishnan
61341b8380
boxerror: always pass second error string
2024-10-30 17:32:12 +01:00
Girish Ramakrishnan
8a63f0368e
Fix parsing of displayName
...
Currently, we only have one field for the name. The first part is
first name. The rest is last name. Obviously, this won't work in all
cases but is the best we can do for the moment.
2024-02-06 16:53:03 +01:00
Girish Ramakrishnan
c95bb248fb
typo: invoke the function
2024-01-23 11:45:25 +01:00
Girish Ramakrishnan
d2c21627de
ldap: server.close has a callback after all
2024-01-23 10:47:09 +01:00
Girish Ramakrishnan
5b9700e099
ldapserver: remove totp logic
...
none of the apps send totptoken and it's dead code
2024-01-22 14:12:40 +01:00
Girish Ramakrishnan
053f81a53e
externalldap: add tests
2024-01-07 22:04:22 +01:00
Girish Ramakrishnan
7bb68ea6b5
rename ldap.js to ldapserver.js
...
this makes it clearer it is server module and not some generic ldap thing
2024-01-06 13:31:32 +01:00