Girish Ramakrishnan
e72622ed4f
Fix crash during auto-update
2020-04-02 19:47:29 -07:00
Girish Ramakrishnan
5b62d63463
clear mailbox on update and restore
...
part of #669
2020-03-31 17:51:27 -07:00
Girish Ramakrishnan
e30ea9f143
make mailbox domain nullable
...
for apps that do not use sendmail/recvmail addon, these are now null.
otherwise, there is no way to edit the mailbox in the UI
part of #669
2020-03-31 11:26:19 -07:00
Girish Ramakrishnan
3e6b66751c
typoe in assert
2020-03-30 15:17:34 -07:00
Johannes Zellner
f78571e46d
Support reserved port ranges
2020-03-30 10:01:52 +02:00
Johannes Zellner
5ac9c6ce02
add turn,stun ports to RESERVED ones
...
We still need to protect the TURN port range
2020-03-30 08:30:06 +02:00
Girish Ramakrishnan
25c000599f
Fix assert (appStoreId is optional)
2020-03-29 19:12:07 -07:00
Girish Ramakrishnan
7110240e73
Only a Cloudron owner can install/update/exec apps with the docker addon
...
this should have been part of f1975d8f2b
2020-03-29 18:52:37 -07:00
Girish Ramakrishnan
1da37b66d8
use resource pattern in apps routes
...
this makes it easy to implement access control in route handlers
2020-03-29 17:11:10 -07:00
Girish Ramakrishnan
f1975d8f2b
only owner can install/repair/update/exec docker addon apps
2020-03-29 16:24:04 -07:00
Girish Ramakrishnan
acc2b5a1a3
remove unused param
2020-03-28 22:05:43 -07:00
Girish Ramakrishnan
1b15d28212
eventlog: add start/stop/restart logs
2020-03-19 17:02:55 -07:00
Girish Ramakrishnan
4e0c15e102
use short form syntax
2020-03-19 16:48:31 -07:00
Girish Ramakrishnan
0e156b9376
migrate permissions and admin flag to user.role
2020-02-21 16:49:20 -08:00
Girish Ramakrishnan
e092074d77
2020 is unused
2020-02-11 22:12:34 -08:00
Girish Ramakrishnan
f80f40cbcd
repair: take optional docker image for re-configure
2020-02-11 21:05:01 -08:00
Girish Ramakrishnan
b8cddf559a
min cpu shares is 2
2020-01-28 22:38:54 -08:00
Girish Ramakrishnan
4ba9f80d44
apps: configure cpuShares
2020-01-28 22:16:25 -08:00
Girish Ramakrishnan
d1d3309e91
Better error message for invalid data directories
2020-01-28 14:12:56 -08:00
Girish Ramakrishnan
7d16396e72
clone: custom mailbox name is not cloned
2020-01-01 23:05:34 -08:00
Girish Ramakrishnan
6cd395d494
Allow restore from error state
2019-12-20 17:58:42 -08:00
Girish Ramakrishnan
681079e01c
repair: reconfigure for all other states
...
the idea was that the failed routes can be called again in other cases
2019-12-20 17:00:53 -08:00
Girish Ramakrishnan
2692f6ef4e
Add restart route for atomicity
2019-12-20 11:15:36 -08:00
Girish Ramakrishnan
4c6566f42f
stopped apps should not be updated or auto-updated
2019-12-16 13:29:15 -08:00
Girish Ramakrishnan
e4dd5d6434
Fix crash when uploading file
2019-12-09 15:02:51 -08:00
Girish Ramakrishnan
837fc27e94
canAutoupdateApp now returns bool
2019-12-08 16:55:56 -08:00
Girish Ramakrishnan
d765e4c619
add a note
2019-12-06 12:39:46 -08:00
Girish Ramakrishnan
16660e083f
Also set overwriteDns when manifest is not provided
2019-12-06 12:21:28 -08:00
Girish Ramakrishnan
4e35020a1c
Set overwriteDns for install task
2019-12-06 12:11:34 -08:00
Girish Ramakrishnan
d7f9a547fc
Disable requiredState check for now
...
there is a race but this is mitigated by the checkAppState non-db logic
for now
2019-12-06 11:29:35 -08:00
Girish Ramakrishnan
6a64f24e98
Fix repair
...
If a task fails, we can either:
* allow other task ops to be called - we cannot do this because the ops are fine-grained. for example,
a restore failure removes many things and calling set-memory or set-location in that state won't
make sense.
* provide a generic repair route - this allows one to override args and call the failed task
again. this is what we have now but has the issue that this repair function has to know about all
the other op functions. for example, for argument validation. we can do some complicated refactoring
to make it work if we want.
* just a generic total re-configure - this does not work because clone/restore/backup/datadir/uninstall/update
failure leaves the app in a state which re-configure cannot do anything about.
* allow the failed op to be called again - this seems the easiest. we just allow the route to be called again
in the error state.
* if we hit a state where even providing extra args, cannot get you out of this "error" state, we have to provide
some repair route. for example, maybe the container disappeared by some docke error. user clicks 'repair' to
recreate the container. this route does not have to take any args.
The final solution is:
* a failed task can be called again via the route. so we can resubmit any args and we get validation
* repair route just re-configures and can be called in any state to just rebuild container. re-configure is also
doing only local changes (docker, nginx)
* install/clone failures are fixed using repair route. updated manifest can be passed in.
* UI shows backup selector for restore failures
* UI shows domain selector for change location failulre
2019-12-06 09:56:09 -08:00
Girish Ramakrishnan
37d7be93b5
Move oldManifest out of restoreConfig
2019-12-06 09:56:03 -08:00
Girish Ramakrishnan
7ab9f3fa2f
re-configure does not require oldConfig
...
this is only needed when changing location now. the configure()
is now entirely local i.e rebuild local container and the reverse
proxy config
2019-12-06 09:23:58 -08:00
Girish Ramakrishnan
ffeb484a10
No need to return args as part of task.get
...
This reverts commit 831e22b4ff .
This reverts commit 6774514bd2 .
2019-12-06 08:42:49 -08:00
Girish Ramakrishnan
3926efd153
restore: only take non-empty backupId
2019-12-05 21:16:35 -08:00
Girish Ramakrishnan
c5e5bb90e3
better error message
2019-12-05 21:16:35 -08:00
Girish Ramakrishnan
a44a82083e
Add backups.testProviderConfig
...
fields like format/retention won't be validated here since it's only
testing the access credentials
2019-12-05 11:55:53 -08:00
Girish Ramakrishnan
c07e215148
Use BoxError in on error cases
2019-12-05 09:54:29 -08:00
Girish Ramakrishnan
1b563854a7
implement in-place import and custom backup config
2019-12-04 19:27:05 -08:00
Girish Ramakrishnan
53e39f571c
Make addons code remove a BoxError
2019-12-04 14:28:42 -08:00
Girish Ramakrishnan
c992853cca
lint
2019-12-04 11:18:39 -08:00
Girish Ramakrishnan
30eccfb54b
Use BoxError instead of Error in all places
...
This moves everything other than the addon code and some 'done' logic
2019-12-04 11:02:54 -08:00
Girish Ramakrishnan
9cc968e790
Pass the new data dir as a task argument
2019-11-25 14:22:27 -08:00
Girish Ramakrishnan
6774514bd2
Return args as part of task.get
...
the ui needs this to repair any failed app task
2019-11-23 18:06:33 -08:00
Girish Ramakrishnan
d255466417
manifest.id is optional for custom apps
2019-11-15 17:28:54 -08:00
Girish Ramakrishnan
5509406395
add mailboxDomain field to apps table
2019-11-15 09:40:35 -08:00
Girish Ramakrishnan
b9d8b5f973
clone: copy reverseProxyConfig
2019-11-05 12:50:30 -08:00
Girish Ramakrishnan
02339d503c
do not re-generate DATABASE_ERROR
2019-10-24 20:31:45 -07:00
Girish Ramakrishnan
ad9097d212
Remove various uses of INTERNAL_ERROR
...
INTERNAL_ERROR now means there really was some internal error
2019-10-24 18:32:36 -07:00
Girish Ramakrishnan
d6365ff27f
Move AppstoreError to BoxError
2019-10-24 17:47:16 -07:00