| Metric | Before | After | Change |
| --- | --- | --- | --- |
| app.html first response size | 421kb | 106kb | -75% (!) |
| First response duration | 60ms | 40ms | -33% |
huge thanks to @cogk for doing most of the work for this PR on this issue: https://github.com/frappe/frappe/issues/17449#issuecomment-1728328726
Co-authored-by: Corentin Flr <10946971+cogk@users.noreply.github.com>
* feat: Add custom icons with the `app_include_icons` hook
These custom icons are available on the desk only. They can be picked in the `ControlIcon` picker.
Co-authored-by: Abraham Kalungi <85731451+kalungia@users.noreply.github.com>
* fix: skip conf for including icons
* test: Fix test_include_icons
---------
Co-authored-by: Abraham Kalungi <85731451+kalungia@users.noreply.github.com>
Co-authored-by: Ankush Menat <ankushmenat@gmail.com>
Right now if you have if-owner rule on doctype then whatever you change
will only apply to last inserted rule because we don't check if-owner
value
Long term better fix: Identify with perm rule name instead of arbitrary
"primary keys" defined in code.
* reafctor: force ipv4 localhost
Replacing "localhost" with "127.0.0.1" in the codebase; sometimes the name localhost force-resolves to ipv6
* revert: leave localhost usage in oauth tests
Change not required.
---------
Co-authored-by: Ankush Menat <ankush@frappe.io>
* Revert "chore: move function to correct file"
This reverts commit ebfdfa283b.
* Revert "refactor!: merge get_site_url into get_url (#22308)"
This reverts commit 2001bc278f.
* fix: limit job count in RQ failed registry
* chore: remove unnecessary test
This just checks if func is called with right values, which keep
changing as things evolve.
Everything is individually tested now so need for this test.
- Move the config to bench level and not site level because, server
script "threat model" requires consent from a bench owner and not
individual site.
- While this is a breaking change which people may not like, we believe
it's essential to improve security model of Frappe.
We are dropping some keys which are hardcoded in function.
- this over time might be out of sync with rest of the code.
- other apps cache stuff too.
Best fix: just clear everything.