Girish Ramakrishnan
73a56830b0
apps: do not start redis when app is stopped
...
stopped apps stop the container and the services. a good reason to
not delete them is to keep the image around and it's quick to start up again.
only update is not allowed during the app is stopped (because the start.sh
cannot be run).
all other operations like cpu/memory/device/service changes/data dir/location change
are all allowed.
2025-06-14 21:03:10 +02:00
Girish Ramakrishnan
d924f73ceb
services: change restart policy to unless-stopped
...
when we stop an app, the service containers are stopped. they
start running again on reboot.
correct restart policy is "unless-stopped" for all the containers.
2025-06-14 17:51:35 +02:00
Girish Ramakrishnan
c44926c2cd
redis: disable by default when optional
...
this simply increases complexity of local setups since redis is
only used as a cache and not for persistent data
2025-06-14 10:40:48 +02:00
Girish Ramakrishnan
11a852d49c
test: enablePop3 is now required
2025-06-14 09:17:46 +02:00
Girish Ramakrishnan
2b30f5591c
docker: allow requests via libpod and skopeo
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
Johannes Zellner
e898639168
Use error message from DigitalOcean if available
2025-06-13 16:02:27 +02:00
Girish Ramakrishnan
ef9a17a28a
appstore: make the features file readable
2025-06-13 10:50:04 +02:00
Johannes Zellner
e496f4f3e2
Bring back demo login info
2025-06-13 09:35:16 +02:00
Girish Ramakrishnan
5d42439bf4
proxyauth: fix install
2025-06-13 02:05:04 +02:00
Girish Ramakrishnan
b60681e9bd
oidc: refactor the StorageAdapter
2025-06-13 02:05:01 +02:00
Girish Ramakrishnan
25684bf4f6
oidc: reload the login form if the interaction expires
...
use the error status which the oidc provider module returns
2025-06-13 00:47:45 +02:00
Girish Ramakrishnan
f0c5b603ee
oidc: some comments
2025-06-12 22:58:29 +02:00
Johannes Zellner
b61b45177a
Only access lastSubmission if it exists
2025-06-12 22:33:57 +02:00
Johannes Zellner
afd19a7307
Optionally take id from data when adding an oidcClient
...
clients for apps use the app.id as the client id
2025-06-12 22:29:11 +02:00
Girish Ramakrishnan
155a348802
mongodb: reduce verbosity of logs
2025-06-12 22:27:57 +02:00
Girish Ramakrishnan
a07d7ffdec
profile: do not crash on invalid avatar id
2025-06-12 01:23:17 +02:00
Girish Ramakrishnan
f48231e309
oidc: do not notify login of ghost users
2025-06-12 00:25:28 +02:00
Girish Ramakrishnan
d24189e8aa
oidc: refactor
2025-06-12 00:25:28 +02:00
Girish Ramakrishnan
5baa08eb0c
oidc: use safe instead
2025-06-12 00:25:28 +02:00
Girish Ramakrishnan
95eb310a7f
oidc: add notes on the flow
2025-06-12 00:25:28 +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
5824c8ffd0
oidc: inline the findAccount
2025-06-11 21:23:37 +02:00
Girish Ramakrishnan
8788867572
oidc: simplify revoke function
2025-06-11 21:23:37 +02:00
Girish Ramakrishnan
f2193ff45c
oidc: rename CloudronAdapter to StorageAdapter
2025-06-11 21:23:37 +02:00
Girish Ramakrishnan
1091142614
oidc: remove one level of indent by making provider global
2025-06-11 21:23:37 +02:00
Girish Ramakrishnan
059547e37c
test: set FOREIGN_KEY_CHECKS=1 after clearing
2025-06-11 15:35:00 +02:00
Girish Ramakrishnan
6dc0e4f5c3
oidc: remove many of the comments
...
it's just distracting
2025-06-11 15:18:35 +02:00
Girish Ramakrishnan
8fc9685a1b
test: make it work again
2025-06-11 15:14:15 +02:00
Girish Ramakrishnan
7744568eb8
apptask: rename command functions
2025-06-11 14:19:31 +02:00
Johannes Zellner
af75060001
Reimplement fallback email dialog
2025-06-11 10:22:09 +02:00
Girish Ramakrishnan
7e036cc65f
typo
2025-06-10 13:01:40 +02:00
Girish Ramakrishnan
7a083e7ce4
dashboard: check if new location conflicts with all possible app locations
2025-06-10 12:54:08 +02:00
Johannes Zellner
c6aef98361
Use SQL commands instead of mysql cli to clear tables for test
2025-06-10 11:47:05 +02:00
Girish Ramakrishnan
639b7d9374
test: set req.resources earlier
2025-06-10 11:27:32 +02:00
Johannes Zellner
23f7c1522e
Always start with default features
2025-06-10 11:08:17 +02:00
Johannes Zellner
2e4bc5e218
Start using req.resources = { app, volume, ...} pattern
...
Reason was that req.app was clashing with expressjs v5 which
stores the main expressjs app object there
2025-06-10 11:02:43 +02:00
Johannes Zellner
a556237963
Ensure we start with a default features set if features file cannot be loaded/parsed
2025-06-10 09:34:15 +02:00
Girish Ramakrishnan
ad4c88b535
Fix missing usage of safe()
2025-06-09 10:18:01 +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
cd45046724
test: fix tasks test
2025-06-08 15:55:00 +02:00
Girish Ramakrishnan
344782099f
add explicit unset for the image routes
...
the initial motivation was to fix up the profile avatar rule which
had a mix of json or multipart. this style does not work well with
express 5
2025-06-06 18:58:49 +02:00
Girish Ramakrishnan
4ffff84540
test: fix dockerproxy test
2025-06-06 18:07:03 +02:00
Girish Ramakrishnan
dffa3b7986
do not mix multipart and json
2025-06-06 17:18:39 +02:00
Girish Ramakrishnan
0f7bc9be52
GET requests should not use json middleware
2025-06-06 17:18:39 +02:00
Girish Ramakrishnan
05fc8ed5db
Fix crash with express 5
...
express.json does not enforce json. this means it will pass it through
but let req.body be undefined. this causes all our asserts to crash
2025-06-06 16:30:43 +02:00
Girish Ramakrishnan
74a8779c49
Fix oidc upgrade crash
...
they keys object format has changed
2025-06-06 16:23:11 +02:00
Girish Ramakrishnan
40631a753f
Fix express 5 crashes
2025-06-06 16:23:07 +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