Girish Ramakrishnan
3b38440385
apptask: delete app dir files when restoring
...
also, better deleteAppDir logs
2025-08-22 19:37:50 +02:00
Johannes Zellner
bbc5217c81
Remove unused variable
2025-08-22 16:46:45 +02:00
Johannes Zellner
a5515ad08b
Be more explicit on what a backupTarget needs
2025-08-21 11:27:03 +02:00
Johannes Zellner
12e4441227
BoxError always needs a second argument
2025-08-21 11:20:18 +02:00
Johannes Zellner
fdc4ddf316
disk usage update cron job is no more
2025-08-21 11:17:01 +02:00
Johannes Zellner
eb2ebead28
Get the primary backup target during box update
2025-08-21 11:15:42 +02:00
Johannes Zellner
a8ed7eb914
backuptarget.list() needs arguments
2025-08-21 11:10:27 +02:00
Johannes Zellner
fd509a9099
Fix variable shadowing
2025-08-21 11:07:37 +02:00
Johannes Zellner
7bf4b23ee5
Add test to filter out /boot
2025-08-21 10:55:05 +02:00
Johannes Zellner
937dd2be5e
Do not list /boot partition for blockdevices routes
2025-08-21 10:26:46 +02:00
Johannes Zellner
5f9789f99f
Enforce app count limit during installation
2025-08-20 20:03:09 +02:00
Johannes Zellner
d6d70163d5
Do not reregister during activation if already registerd by setupToken
2025-08-20 17:50:43 +02:00
Johannes Zellner
f779957145
Pass only hostPath as string to mounts.remount()
2025-08-18 14:19:55 +02:00
Girish Ramakrishnan
20b75b4065
rsync: integrity check
2025-08-16 19:29:59 +05:30
Girish Ramakrishnan
832a25601d
storage: make listDir return paths relative to the root
...
this seems more natural to work with
2025-08-16 18:13:02 +05:30
Girish Ramakrishnan
19682ec21b
tgz: integrity check
2025-08-15 21:23:39 +05:30
Girish Ramakrishnan
b71e2957d3
backuptask: add progress message for backupinfo
2025-08-15 16:01:59 +05:30
Girish Ramakrishnan
e7fb444bb3
backuptask: save backupinfo in one place
2025-08-15 14:33:31 +05:30
Girish Ramakrishnan
08c2e989fa
syncer: fix test
2025-08-14 16:16:58 +05:30
Girish Ramakrishnan
942e595444
Fix profile test
2025-08-14 16:02:54 +05:30
Girish Ramakrishnan
f2225ff6b6
fs.rmdirSync { recursive: true } is deprecated
2025-08-14 13:43:41 +05:30
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
2607ad2e24
rsync: add fileCount to stats and fix integrity collection
2025-08-14 10:05:13 +05:30
Girish Ramakrishnan
d7b5d1f947
rename .checksum to .backupinfo
2025-08-13 21:29:41 +05:30
Girish Ramakrishnan
39cad02e0d
backup: add a dummy removePrivateFields
2025-08-13 19:56:21 +05:30
Girish Ramakrishnan
0c79dcdf1b
tgz: add fileCount to integrity
2025-08-13 19:56:21 +05:30
Girish Ramakrishnan
cb1bc6cfdf
tgz: add fileCount to stats
2025-08-13 19:56:21 +05:30
Girish Ramakrishnan
b5c9f034ca
Use hash stream instead of crypto.createHash
...
crypto.createHash is a write stream but not a PassThrough stream!
2025-08-13 18:48:22 +05:30
Girish Ramakrishnan
0911de205f
stringify the Map correctly
2025-08-13 17:21:46 +05:30
Girish Ramakrishnan
59b428f24b
decrease the JSON indent
2025-08-13 15:55:00 +05:30
Girish Ramakrishnan
54e8395789
add missing require
2025-08-13 15:25:23 +05:30
Girish Ramakrishnan
2fabfbe8f6
rsync: add integrity information
2025-08-13 14:43:05 +05:30
Girish Ramakrishnan
28ac9e153e
rsync: make processSyncerChange a local function
2025-08-13 09:09:48 +05:30
Girish Ramakrishnan
dadbf1de90
tgz: save integrity information as a Map
...
just for consistency because rsync will use a Map
2025-08-13 08:39:03 +05:30
Girish Ramakrishnan
2e16dd983f
backups: stash the stats to the backups table
2025-08-12 20:21:54 +05:30
Girish Ramakrishnan
847f57855c
Fix test
2025-08-12 20:21:54 +05:30
Girish Ramakrishnan
2d412c019c
Use # for private fields
2025-08-12 19:24:03 +05:30
Girish Ramakrishnan
47fc9561ab
backups (tgz): save integrity information
...
we generate a signing key pair for each target. Initially, I had this
as global. We needed a route to return the public key and putting it
under backup target seemed natural. Since we delete the backups when
we delete a target, we lose all the signing hashes. So, it's fine to lose
the key pair on target delete.
2025-08-12 19:00:29 +05:30
Johannes Zellner
f179d92c9c
Sync email template button colors with pankow colors
2025-08-10 15:30:01 +02:00
Johannes Zellner
3ea9192f79
Validate user account input during account setup
2025-08-08 10:07:14 +02:00
Johannes Zellner
6a5cd698a4
Remove unused requires
2025-08-08 09:58:55 +02:00
Johannes Zellner
8143ef1057
Fix autologin after account creation
2025-08-07 17:16:46 +02:00
Girish Ramakrishnan
e390a56f05
users: ensure all user objects have groupIds
...
this prevents ldap/sftp code from detecting user groups
and thus fails to detect membership of a user via operator groups.
2025-08-07 12:32:21 +02:00
Johannes Zellner
063c272aea
Add language for the setupaccount rendering
2025-08-07 12:15:26 +02:00
Johannes Zellner
98ea5a7b70
Setup backup encryption in extra step
2025-08-06 13:53:06 +02:00
Girish Ramakrishnan
f8d74bbb6d
backuptarget: add default at provisioning time (again)
...
we clear the db in the tests. the tests run the setup again and again.
so, it's easier to add default values in provision time instead of
migration.
2025-08-06 11:11:11 +02:00
Girish Ramakrishnan
c184f1e42e
mailer: handle error at the caller instead
...
the send test email logic breaks if we disable throwing error in send
2025-08-06 10:18:09 +02:00
Girish Ramakrishnan
5c7d19ce13
mailer: set timeouts
2025-08-06 10:00:56 +02:00
Girish Ramakrishnan
3d4b3edc3a
mailer: log error and do not throw
...
this suppresses eventlog exceptions when mail is down or the
mail is rejected because outbound is disabled.
in apphealthmonitor, we hit a case where eventlog entries are
continuously added since mailer was not sending emails. the health
state of the app is never switched because mail sending failed.
2025-08-06 09:59:40 +02:00
Girish Ramakrishnan
a7ffc8a172
mailer: node-mailer supports async natively
2025-08-06 08:26:57 +02:00