Commit Graph

1269 Commits

Author SHA1 Message Date
Girish Ramakrishnan 7047ee9391 shell: add timeout logic and rework error handling
what's important:

* if task code ran, it exits with 0. this code is regardless of (error, result)
  * when it exited cleanly, we will get the values from the database

* if task timed out, the box code kills it and it has a flag tracking timedOut. we can
  ignore exit code in this case.

* if task code was stopped, box code will send SIGTERM which ideally it will handle and end with 70.

* if task code crashed and it caught the exception, it will return 50

* if task code crashed and node nuked us, it will exit with 1

* if task code was killed with some unhandleabe signal, taskworker.sh will return the signal (9=SIGKILL)
2025-07-17 12:44:24 +02:00
Girish Ramakrishnan 8bf8c278f0 system: add tests for fs usage route 2025-07-17 01:42:28 +02:00
Girish Ramakrishnan 5539f74bea system: add disk usage task 2025-07-17 00:09:50 +02:00
Girish Ramakrishnan 989d843fcb shell: make shell.sudo promise based and waitable 2025-07-16 22:04:24 +02:00
Girish Ramakrishnan 4b79881472 system: route to get filesystem 2025-07-16 17:20:28 +02:00
Girish Ramakrishnan 622aecfd6d users: add unset route for avatar
also add missing tests for avatar and profile locking
2025-07-15 10:06:26 +02:00
Girish Ramakrishnan be9adb64bb fix tests 2025-07-15 09:07:23 +02:00
Girish Ramakrishnan 22e23e1e65 auth: add logs when auth fails or succeeds 2025-07-11 18:14:27 +02:00
Girish Ramakrishnan 6ac0cd421a use the @cloudron/superagent module 2025-07-10 10:56:05 +02:00
Girish Ramakrishnan 19c9d7d59d updateInfo: move updateInfo into apps table
this has many advantages:
* easy to deliver the updateInfo via the apps object
* after updating, the task can clear it
* when apps are deleted, the info is automatically gone

otherwise, it's a mess of deps between apps/updater/apptask/rest routes

box update info is still in a file
2025-06-26 15:47:15 +02:00
Girish Ramakrishnan abd640d36b merge updatechecker into updater 2025-06-26 14:00:30 +02:00
Girish Ramakrishnan e0af49f638 appstore: automatic is not stableOnly 2025-06-25 18:17:29 +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 313c90ff85 database: change charset to utf8mb4
part of #836
2025-06-19 10:39:40 +02:00
Girish Ramakrishnan d9c104613c tasks: rework the startTask API
it is now async. change was required to reset the pending flag
2025-06-17 19:32:46 +02:00
Girish Ramakrishnan 11a852d49c test: enablePop3 is now required 2025-06-14 09:17:46 +02:00
Johannes Zellner e6d8115e52 Allow to set enablePop3 when adding a mailbox 2025-06-13 17:38:55 +02:00
Girish Ramakrishnan d112d6308c move tokens.ID_ into oidcClients.ID_ 2025-06-12 00:25:28 +02:00
Girish Ramakrishnan 1ca8eeeb50 split oidc into server and clients 2025-06-11 22:26:23 +02:00
Girish Ramakrishnan 8fc9685a1b test: make it work again 2025-06-11 15:14:15 +02:00
Girish Ramakrishnan a93c85ebc9 profile: drop gravatar support
gravatar is owned by an external entity (Automattic) and we have an
unnecessary dep to this service. users can just upload a profile pic
2025-06-08 18:12:40 +02:00
Girish Ramakrishnan 4ffff84540 test: fix dockerproxy test 2025-06-06 18:07:03 +02:00
Girish Ramakrishnan 5cf266c5be test: fix nock usage
by default, nock intercepts and redirects everything to 127.0.0.1:80
this is regardless of any http request is mocked or not

nock.isActive() - is interceptor active
nock.restore() removes the interceptor
nock.activate() - enables interceptor again

nock.cleanAll() - deletes all mocks. nothing to do with interceptor
nock.activeMock() - to get the active mocks
nock.persist(true/false) - the mock will reply once and set isDone(). but you can persist(true)
2025-06-06 15:49:07 +02:00
Girish Ramakrishnan 0f3eb42332 test: fix provision test 2025-06-06 15:48:21 +02:00
Girish Ramakrishnan 7b9504c5b4 test: add provision test 2025-06-06 13:39:30 +02:00
Girish Ramakrishnan 0969bb9824 test: fix storage test 2025-06-06 08:34:21 +02:00
Johannes Zellner b8dcfcf900 Remove app purchase/unpurchase 2025-05-13 11:46:13 +02:00
Girish Ramakrishnan 1bbdabc42f registry config: create table and migrate existing setting 2025-05-07 15:56:13 +02:00
Girish Ramakrishnan a7c6e36ec3 replace ipaddr.js 2025-05-06 16:26:35 +02:00
Girish Ramakrishnan 5342dae5b3 tokens: add ip restriction 2025-03-07 17:50:50 +01:00
Girish Ramakrishnan f0848e23c7 replace validator module 2025-03-07 12:32:50 +01:00
Girish Ramakrishnan 1197693591 test: add root dn response 2025-02-26 14:14:42 +01:00
Girish Ramakrishnan 81f91f3324 lint 2025-02-26 14:03:30 +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 cceae6770c superagent: multipart requires content-type to be unset 2025-02-15 16:11:55 +01:00
Girish Ramakrishnan 4cfa658fde add some superagent tests 2025-02-15 15:54:39 +01:00
Girish Ramakrishnan 8e58349bfa replace with custom superagent based on fetch API 2025-02-15 15:14:09 +01:00
Girish Ramakrishnan 221181092e tasks -> changes 2025-02-13 17:28:10 +01:00
Girish Ramakrishnan b94ce542c3 syncer: simply return the changes
this is easier to test. the initial code wanted to make the changes a stream.
but this never happenned since the need never arose
2025-02-13 17:06:24 +01:00
Girish Ramakrishnan bd5ecf358a tests: tests for underscore 2025-02-13 14:51:51 +01:00
Girish Ramakrishnan dd5e4adc73 replace underscore with our own
we only need like 5 simple functions
2025-02-13 14:14:34 +01:00
Girish Ramakrishnan a138425298 storage: start migration of s3 api 2025-02-12 23:04:37 +01:00
Girish Ramakrishnan 9888aa8c08 storage: rework listDir api to be a generator (like) function 2025-02-12 19:34:57 +01:00
Girish Ramakrishnan bd44bb4534 groups: add app access tests 2025-02-12 14:21:46 +01:00
Girish Ramakrishnan 7322006455 test: fix route53 tests 2025-02-11 11:29:43 +01:00
Girish Ramakrishnan c6e93b9870 test: enable nock as needed 2025-02-06 15:01:59 +01:00
Girish Ramakrishnan f64297c256 test: readdirp signature has changed 2025-02-06 15:01:41 +01:00
Girish Ramakrishnan fa64191082 assert.strictEqual results in oom, go figure 2025-02-05 19:11:02 +01:00
Girish Ramakrishnan aa54e47029 tests: enable nock when needed
by default, it makes all requests disappear
2025-02-05 18:27:57 +01:00
Girish Ramakrishnan 7bcb6dd7cb unused require 2025-02-05 17:27:07 +01:00