367 Commits

Author SHA1 Message Date
Johannes Zellner
918c2f8587 Move to @cloudron/safetydance 2026-04-01 09:49:34 +02:00
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
f061ee5f88 Update modules 2026-03-02 08:40:19 +05:30
Girish Ramakrishnan
812d471573 add backupCommand, restoreCommand, persistentDirs 2026-02-21 19:42:52 +01:00
Girish Ramakrishnan
95952fae75 update manifestformat 2026-02-19 14:40:29 +01:00
Girish Ramakrishnan
255b1c63d0 Update modules 2026-02-19 13:36:26 +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
03d0e2157e Update modules 2026-02-18 19:59:58 +01:00
Girish Ramakrishnan
b5a1554631 Fix various linter errors 2026-02-15 19:37:30 +01:00
Girish Ramakrishnan
eae86d15ef Update modules 2026-02-14 19:49:42 +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
d4efb63f3d Update packages 2026-02-09 15:51:47 +01:00
Girish Ramakrishnan
2a244bb8d4 Update versions format to have a root 2026-02-06 22:39:29 +01:00
Girish Ramakrishnan
be69f9f8a3 minor package updates 2026-02-06 18:23:30 +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
a7de7fb286 initial implementation of community packages 2026-02-05 14:21:50 +01:00
Girish Ramakrishnan
1608fc3fdc Update packages 2026-01-23 09:13:11 +01:00
Girish Ramakrishnan
03fe72e0b1 services: fix usage of pipework 2026-01-22 18:09:41 +01:00
Girish Ramakrishnan
b238443a9d services: switch to using @cloudron/pipework
also improve the error messages along the way
2026-01-21 21:32:02 +01:00
Girish Ramakrishnan
3daddf2fe6 update superagent 2026-01-17 22:18:27 +01:00
Johannes Zellner
6c0d5cb601 Remove yesno node module 2025-11-24 13:58:03 +01:00
Girish Ramakrishnan
e0b8a2400a Update marked 2025-11-11 08:59:57 +01:00
Girish Ramakrishnan
151ba569a7 Update pankow and friends 2025-11-11 08:59:12 +01:00
Girish Ramakrishnan
286de8cdcb Update manifest format 2025-10-21 14:19:45 +02:00
Girish Ramakrishnan
d6a4dd6965 backup sites: fix listing when status call errors
* fix backend to not retry in status call
* fix frontend to continue loading view if status errors
* fix connect-lastmile to show the exact path that is timing out
2025-10-16 14:13:31 +02:00
Girish Ramakrishnan
92e6e99bb0 Update packages 2025-10-02 08:34:32 +02:00
Girish Ramakrishnan
ea464bdc7d update modules 2025-08-01 12:14:32 +02:00
Girish Ramakrishnan
cbc73f5c9a remove uuid module
built into node.js now
2025-07-28 12:54:09 +02:00
Girish Ramakrishnan
8bf8c278f0 system: add tests for fs usage route 2025-07-17 01:42:28 +02:00
Girish Ramakrishnan
fc9da4756c major upgrade of marked 2025-07-14 10:26:26 +02:00
Girish Ramakrishnan
5c7db14253 Update minor/patch modules 2025-07-14 10:26:13 +02:00
Girish Ramakrishnan
313256adff use @cloudron/manifest-format 2025-07-10 11:17:04 +02:00
Girish Ramakrishnan
bba48f455e use @connect-lastmile 2025-07-10 11:00:31 +02:00
Girish Ramakrishnan
6ac0cd421a use the @cloudron/superagent module 2025-07-10 10:56:05 +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
203ad6b565 major upgrade of express 2025-06-06 08:39:57 +02:00
Girish Ramakrishnan
c6ae7729d1 Fix package.json version 2025-06-06 08:26:21 +02:00
Girish Ramakrishnan
af719dd8c2 major package changes 2025-06-06 08:24:45 +02:00
Girish Ramakrishnan
f87e257233 update modules 2025-06-06 08:16:57 +02:00
Johannes Zellner
38ff515d68 Add 1 hour graph translation 2025-05-26 10:45:23 +02:00
Johannes Zellner
48e2a79d8f Rename npm package name to cloudron-platform to not clash with the cli 2025-05-23 15:49:50 +02:00
Girish Ramakrishnan
a7c6e36ec3 replace ipaddr.js 2025-05-06 16:26:35 +02:00
Girish Ramakrishnan
9168af4850 update modules
fixes crash in safetydance when function returns null
2025-04-29 08:18:00 +02:00
Girish Ramakrishnan
5d88e86462 sendmail: add requiresValidCertificate
some apps really want a valid certificate to send mail and upstream
authors won't add support to skip self-signed certs or skip host name
check in cert. In our case, the issue is that we use 'mail' as the
server name despite having valid certs.

this flag will set the server name to the full mail server fqdn and
also reconfigure the app as needed when the mail server name changes.

we also set up the mail server name to resolve to internal IP because
no mail port is exposed when we are not receiving emails!
2025-03-08 13:15:53 +01:00
Girish Ramakrishnan
f0848e23c7 replace validator module 2025-03-07 12:32:50 +01:00
Girish Ramakrishnan
d75e95a23d superagent: rewrite using native node request
the learning is that fetch() is really meant to be a browser side
XMLHttpRequest replacement. It's complicated to do things like
setting user agent, custom headers like Host, disabling tls validation etc.
2025-02-18 16:23:06 +01:00
Girish Ramakrishnan
b5721fe6f3 inline basic-auth module 2025-02-15 16:56:40 +01:00