Commit Graph

9646 Commits

Author SHA1 Message Date
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 eae86d15ef Update modules 2026-02-14 19:49:42 +01:00
Girish Ramakrishnan 361d80da17 make tests work again 2026-02-14 19:45:10 +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 b71e503a01 more ESM cleanups 2026-02-14 16:52:16 +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 e0e9f14a5e mail: increase solr timeout 2026-02-14 01:23:23 +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 88a44ee065 oidc: add alg to the jwks keys 2026-02-12 19:42:00 +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
Johannes Zellner a786e6c8f5 Do not crash if we have a new user without a username yet 2026-02-09 20:34:05 +01:00
Girish Ramakrishnan b433191b35 community: skip revoked versions 2026-02-09 16:11:55 +01:00
Girish Ramakrishnan d75ad44315 mail: fix haraka crash 2026-02-09 16:04:13 +01:00
Girish Ramakrishnan c3d3c3a6e9 app: if repo changes, do not autoupdate 2026-02-09 15:51:47 +01:00
Girish Ramakrishnan b9b8ccb8ae community: stable/unstable 2026-02-09 15:51:47 +01:00
Girish Ramakrishnan 5a56a7c8af community: show packager info 2026-02-09 15:51:47 +01:00
Girish Ramakrishnan fa5cbfc304 mail: allow comma in email display name 2026-02-09 11:01:47 +01:00
Girish Ramakrishnan 5276321ade integrity: add integrity check fields and initial UI 2026-02-08 23:26:57 +01:00
Girish Ramakrishnan 6303602323 graphite: update go-carbon to 0.19.1 2026-02-07 12:01:25 +01:00
Girish Ramakrishnan 486fb0d10a collectd is gone 2026-02-07 11:45:12 +01:00
Girish Ramakrishnan 2a244bb8d4 Update versions format to have a root 2026-02-06 22:39:29 +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 4461e7225f validate versions file 2026-02-06 17:35:59 +01:00
Girish Ramakrishnan 3d7a5676d8 lint 2026-02-05 23:22:26 +01:00
Girish Ramakrishnan aa362477e8 community: validate the url in the dialog 2026-02-05 22:40:37 +01:00
Girish Ramakrishnan d6eb6d3e3e community: store versionsUrl in the database 2026-02-05 19:32:29 +01:00
Girish Ramakrishnan 91b8f1a457 oidc: do not fail on notification failure 2026-02-05 18:26:14 +01:00
Girish Ramakrishnan a7de7fb286 initial implementation of community packages 2026-02-05 14:21:50 +01:00
Girish Ramakrishnan 17b0c3e48d services: Graphite -> Metrics 2026-02-04 11:33:40 +01:00
Johannes Zellner b9af8ee6be Send the service name when listing services 2026-02-03 18:32:11 +01:00
Girish Ramakrishnan dfe2d27709 comment out some logs 2026-01-31 12:09:55 +01:00
Girish Ramakrishnan 1594d190eb update: skip backup site check when skipBackup is true 2026-01-30 09:52:52 +01:00
Johannes Zellner 5bd803e6b4 hetznercloud wants name instead of search_name for zones 2026-01-29 15:35:29 +01:00
Girish Ramakrishnan 6533ba4581 appstore: include provider as part of state 2026-01-29 11:46:57 +01:00
Johannes Zellner aa84cb0079 Actually make multiplart also optional 2026-01-28 14:17:22 +01:00
Johannes Zellner 70476bd168 Use jsonOrMultipart instead of jsonOptional and multipart 2026-01-27 22:01:18 +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
Johannes Zellner 713774c03f Attempt to parse formdata fields as json 2026-01-27 22:01:18 +01:00
Johannes Zellner 0889c1531e Optionally allow json middleware to not check the content-type 2026-01-27 22:01:18 +01:00