Girish Ramakrishnan
ead58bd6f6
test: use profile to check for passkey
2026-03-18 15:00:45 +05:30
Girish Ramakrishnan
f62df52c1d
passkey: disallow in demo mode
2026-03-18 12:28:57 +05:30
Girish Ramakrishnan
67500a7689
profile: hasPasskey
2026-03-16 17:20:22 +05:30
Girish Ramakrishnan
009d0b39f9
rename twoFactor* to totp
2026-03-16 16:38:42 +05:30
Girish Ramakrishnan
f334c696cb
update: add policy to update apps separately from platform
2026-03-16 10:19:18 +05:30
Girish Ramakrishnan
7afec06d4c
apps: operators can now view backup logs and manage the backup task
...
we spun off the app backup as a separate task and this is not tracked
by app.taskId .
fixes #856
2026-03-15 10:18:31 +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
d377d1e1cf
remove deprecated url
2026-03-10 15:15:17 +05:30
Johannes Zellner
4b6b18c182
Try to detect and set the content type of app icons
2026-03-03 22:06:50 +01:00
Girish Ramakrishnan
23c3263562
integrity: show log link
...
in the previous approach, we used to clear the taskId after
the integrity check completes. for one, we lose track of the
task (to show the logs). for another, we have to clear these
taskId on platform startup to handle crashes.
in the new approach, we keep the taskId and use the task's
active flag to determine if task is active.
2026-03-03 18:41:57 +05:30
Girish Ramakrishnan
d0f0bb799e
2fa: refactor into separate dialog
...
also rename routes to totp
2026-02-22 10:43:15 +01:00
Girish Ramakrishnan
ea5953a397
Fix test
2026-02-21 20:27:55 +01:00
Johannes Zellner
2f951dc272
Support card/cal dav well-known endpoints
2026-02-20 15:46:43 +01:00
Girish Ramakrishnan
461a5a780d
community: resolve user provided url
2026-02-19 22:25:43 +01:00
Girish Ramakrishnan
207260821b
reverseproxy: add forceRenewal check if only for completeness
2026-02-19 22:25:43 +01:00
Girish Ramakrishnan
d0a66f1701
Back to mocha!
...
sorry i ever left you dear mocha
node:test has two major issues:
* --bail does not work and requires strange modules and incantations.
I was able to work around this with a custom module.
* the test reporter reports _after_ the suite is run. this makes debugging
really hard. the debugs that we print all happen before the test suite summary.
poor design overall.
2026-02-19 13:24:14 +01:00
Girish Ramakrishnan
c176ac600b
migrate tests to node:test
2026-02-19 10:13:22 +01:00
Girish Ramakrishnan
4ed6fbbd74
eslint: add no-shadow
2026-02-18 08:18:37 +01:00
Girish Ramakrishnan
319360f8d0
lint
2026-02-17 19:51:09 +01:00
Girish Ramakrishnan
b8ae46b6df
add passkey tests
2026-02-17 18:05:14 +01:00
Girish Ramakrishnan
81659d4bf2
eventlog: add params for from and to date
2026-02-16 20:52:02 +01:00
Girish Ramakrishnan
b5a1554631
Fix various linter errors
2026-02-15 19:37:30 +01:00
Girish Ramakrishnan
c7b321315c
integrity: add stats
2026-02-15 14:41:10 +01:00
Girish Ramakrishnan
9f2eefcbb3
embed integrity check task in backup API responses
...
The UI is polling for the taskId, might as well attach it
2026-02-15 14:11:56 +01:00
Girish Ramakrishnan
fc2e39f41b
Rename getByIdentifierAndStatePaged to listByIdentifierAndStatePaged
2026-02-15 12:22:43 +01:00
Girish Ramakrishnan
2597402496
make build work across server restart
...
tmp files disappear on server restart
2026-02-14 19:37:14 +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
Johannes Zellner
5724ca73b4
Add passkey support
2026-02-13 17:18:56 +01:00
Girish Ramakrishnan
ae09c19b69
filemanager: open terminal in cwd
2026-02-12 20:30:57 +01:00
Girish Ramakrishnan
e76d4b3474
tests: fix app passwords test
2026-02-12 19:57:34 +01:00
Girish Ramakrishnan
e9c3e42aa6
appPassword: add expiry
2026-02-12 16:23:31 +01:00
Girish Ramakrishnan
93a0063941
backups: add stop_integrity_check route
2026-02-09 22:00:40 +01:00
Girish Ramakrishnan
5276321ade
integrity: add integrity check fields and initial UI
2026-02-08 23:26:57 +01:00
Girish Ramakrishnan
a9ae34b149
community: download iconUrl
...
also rename existing db field appStoreIcon to packageIcon
2026-02-06 19:13:55 +01:00
Girish Ramakrishnan
5ca2078461
add iconUrl to manifest
2026-02-06 18:04:47 +01:00
Girish Ramakrishnan
d6eb6d3e3e
community: store versionsUrl in the database
2026-02-05 19:32:29 +01:00
Girish Ramakrishnan
a7de7fb286
initial implementation of community packages
2026-02-05 14:21:50 +01:00
Girish Ramakrishnan
dfe2d27709
comment out some logs
2026-01-31 12:09:55 +01:00
Johannes Zellner
aa84cb0079
Actually make multiplart also optional
2026-01-28 14:17:22 +01:00
Johannes Zellner
a7929e142f
Build local image for updates in apptask
2026-01-27 22:01:18 +01:00
Johannes Zellner
fd0d65b8ce
Keep the app source archive with the app instance data dir
2026-01-27 22:01:18 +01:00
Johannes Zellner
ef2a94c2c8
use local/id:version-ts as docker image tag for locally built apps
2026-01-27 22:01:18 +01:00
Johannes Zellner
b43daf2f08
Use the uploaded app source tarball to build a local docker image
2026-01-27 22:01:18 +01:00
Johannes Zellner
280f628746
Accept json body or formdata in app install route
2026-01-27 22:01:18 +01:00
Girish Ramakrishnan
c0ad75cc4d
mailserver: typo where port was not used
2025-12-16 11:48:34 +01:00
Girish Ramakrishnan
bbefca71e5
profile: add hasAvatar
2025-12-10 18:57:02 +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
964fb5d251
typo
2025-12-02 15:16:26 +01:00