Girish Ramakrishnan
04de621e37
Fix crash when req.query handling
...
https://expressjs.com/en/5x/api.html#req.query
"As req.query’s shape is based on user-controlled input, all properties and values in this object
are untrusted and should be validated before trusting"
In essence, req.query.xx can be an array OR an array of strings.
2025-07-13 13:21:38 +02:00
Girish Ramakrishnan
22e23e1e65
auth: add logs when auth fails or succeeds
2025-07-11 18:14:27 +02:00
Johannes Zellner
83b056738f
Always use name for ejs template title
2025-07-11 16:56:20 +02:00
Johannes Zellner
e1433cbf2a
Always share the same meta info headers in dashboard views
2025-07-11 15:29:46 +02:00
Johannes Zellner
8b9017224f
Only load dashboard templates once on startup
2025-07-11 12:45:30 +02:00
Johannes Zellner
3b50a732b5
Replace branding route calling for name and footer in views
2025-07-11 12:42:21 +02:00
Johannes Zellner
66d1de0821
Add initial dashboard entrypoint server side rendering routes
2025-07-11 12:28:02 +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
6b2e98b9be
metrics: fix up app graphs after api changes
2025-07-07 20:09:09 +02:00
Girish Ramakrishnan
4cf1739604
metrics: overlay app metrics over system metrics
2025-07-07 19:12:57 +02:00
Girish Ramakrishnan
369474a0bc
metrics: add route to query app metrics with the system
2025-07-07 19:12:57 +02:00
Girish Ramakrishnan
2317c17b4b
metrics: interval is not configurable, unnecessary
2025-07-04 23:20:38 +02:00
Girish Ramakrishnan
53d85ac7a2
metrics: set objectMode to avoid lots of JSON
2025-07-04 22:42:05 +02:00
Girish Ramakrishnan
813409a8fb
graphs: directly stream docker stats
...
docker stats API caches the stat and reading it frequently gives back the same value.
this trips our "rate" code into thinking rate is 0.
one approach was to persist polling like we do now and ignore entries based on stats.read.
this works fine but the streaming approach seems better since we don't need to poll anymore.
2025-07-04 00:03:43 +02:00
Johannes Zellner
846986987d
the oidc module expect accountId and sub to be the same
...
in our case sub is the username exposed to the app, not the userId
internal to Cloudron
Upstream behavior change https://github.com/panva/node-oidc-provider/commit/9b89153c0ea2f2280a26e35f3b66d1900aed7c79
2025-07-02 00:38:11 +02:00
Girish Ramakrishnan
24d93ea87d
test: fix status code
2025-07-01 13:04:21 +02:00
Girish Ramakrishnan
93aa4f086e
test: dns. is gone
2025-07-01 12:41:52 +02:00
Girish Ramakrishnan
a357f5a1b8
apps: add live metrics route
2025-07-01 12:23:38 +02:00
Girish Ramakrishnan
6b8b69d324
metrics: rename functions
2025-07-01 11:10:21 +02:00
Johannes Zellner
713f1239c6
Allow admins to set users avatars
2025-06-30 22:44:59 +02:00
Girish Ramakrishnan
9428cf0d06
mail: make status a tristate
...
status can be 'passed', 'failed' or 'skipped'. The motivation for this
change is that when using a relay, we can provide a message indicating
why the check was skipped.
2025-06-28 12:20:25 +02:00
Girish Ramakrishnan
2486aee24d
AppsView: updateInfo is now part of app object
2025-06-26 16:57:55 +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
2db99e7807
refactor: rename updater functions to have box in them
2025-06-20 19:04:55 +02:00
Girish Ramakrishnan
227da8dce4
test: remove double uninit of db
2025-06-19 10:24:17 +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
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
Johannes Zellner
e6d8115e52
Allow to set enablePop3 when adding a mailbox
2025-06-13 17:38:55 +02:00
Girish Ramakrishnan
a07d7ffdec
profile: do not crash on invalid avatar id
2025-06-12 01:23:17 +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
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
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
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
40631a753f
Fix express 5 crashes
2025-06-06 16:23:07 +02:00
Girish Ramakrishnan
0f3eb42332
test: fix provision test
2025-06-06 15:48:21 +02:00
Girish Ramakrishnan
1fa8395847
test: remove support ticket test
2025-06-06 15:45:43 +02:00
Girish Ramakrishnan
7b9504c5b4
test: add provision test
2025-06-06 13:39:30 +02:00
Girish Ramakrishnan
2b52e21ccf
test: fix appstore test
2025-06-06 13:39:30 +02:00
Girish Ramakrishnan
c49050ea69
appstore: removed old route and rename to reset_cloudron_id
2025-06-06 13:39:30 +02:00
Girish Ramakrishnan
3ccad9ada9
cloudron-setup: remove --generate-setup-token
...
this code path is hardly ever tested and seems unnecesary
2025-06-06 10:22:06 +02:00
Girish Ramakrishnan
2c2a24c31b
support: remove createTicket
...
there is no form to create tickets anymore since a while
2025-06-06 09:51:07 +02:00