Commit graph

932 commits

Author SHA1 Message Date
Saqib Ansari
a8c373a2f4
Merge pull request #38576 from nextchamp-saqib/concurrent_limit
feat: add `@frappe.concurrent_limit()` decorator
2026-04-23 22:55:59 +05:30
Saqib Ansari
53e7e34948 refactor: make token initialization simple 2026-04-22 16:20:54 +05:30
Sabu Siyad
ec9a60172f
feat: security.txt (#38530)
* feat: `security.txt`

* fix(security-settings): public_policy must start be https

* feat(security-settings): preview `security.txt`

* refactor(security-settings): security_txt logic

* feat(security-settings): security_txt expires

* refactor(security-txt): get content from security settings

* fix(security-txt): serve only over https

* fix(security-settings): change labels (plural)

- contacts
- languages

* refactor(security-settings): move to website module

* feat(security-settings): banner/alert on security.txt with link to RFC

* feat(security-txt): expiry alert emails

* fix(security-settings): banner gets duplicated on save

* refactor(security-settings): move to `Core` module

* test(security-settings): add unit tests

* fix(security-settings): translatable strings on throw
2026-04-14 17:22:22 +05:30
RitvikSardana
5168c52ebe
refactor: add queue for indexing docs in sqlite search (#37840) 2026-03-10 16:03:27 +05:30
sokumon
7933a201dd fix: move logout from user avatar to sidebar dropdown 2026-03-05 10:58:57 +05:30
Clayton
2aaf66a420
fix: remove banner image field (#37217)
* fix: remove banner image field

* fix: remove from user doctype only

* fix: migration

* fix: remove patch
2026-02-20 15:16:28 +05:30
Aarol D'Souza
68727cbd61
fix: add type hints to whitelisted methods 4 (#37204)
* fix(utils): add type hints to whitelisted methods

* fix(desktop): add type hints to whitelisted methods

* fix(listview): add type hints to whitelisted methods

* fix(access_log): add type hints to whitelisted methods

* fix(setup_wizard): add type hints to whitelisted methods

* fix(notification_settings): add type hints to whitelisted methods

* fix(calendar): add type hints to whitelisted methods

* fix(notifications): add type hints to whitelisted methods

* fix(query_report): add type hints to whitelisted methods

* fix(load): add type hints to whitelisted methods

* fix(save): add type hints to whitelisted methods

* fix(user): add type hints to whitelisted methods

* fix: correct Document import

* fix(list_view_settings): add type hints to whitelisted methods

* fix(reportview): add type hints to whitelisted methods

* fix(treeview): add type hints to whitelisted methods

* fix(linked_with): add type hints to whitelisted methods

* fix(bulk_update): add type hints to whitelisted methods

* fix(assign_to): add type hints to whitelisted methods

* fix(workspace): add type hints to whitelisted methods

* fix(kanban_board): add type hints to whitelisted methods

* fix(event): add type hints to whitelisted methods

* fix(email): add type hints to whitelisted methods

* fix(exporter): add type hints to whitelisted methods

* fix(permission_manager): add type hints to whitelisted methods

* fix(dashboard_chart): add type hints to whitelisted methods

* fix(number_card): add type hints to whitelisted methods

* fix(tag): add type hints to whitelisted methods

* fix: add hook to force type hints on all whitelisted endpoints

* fix: target_doc can be dict/json string

* fix: doc can be dict/json string

* fix(tests): add type hints to whitelisted methods in test

* fix: tree method is optional

* test: Fix test api types

* chore: drop dead code

* fix: document can be int

* fix: Number card input can be document

As utils in some other API calls

* fix: Always use session user

The only usage of this API that makes sense.

---------

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Co-authored-by: Ankush Menat <ankush@frappe.io>
2026-02-20 14:53:08 +05:30
sokumon
c1585018d6 refactor: billing components 2026-02-19 13:08:12 +05:30
Ritvik Sardana
6f88468d68 refactor: resumable indexing without max_runtime 2026-02-06 15:05:52 +05:30
diptanilsaha
ed48aa9b60 chore(hooks): develop_version bump 2026-01-15 15:15:22 +05:30
Saqib Ansari
ee7c91599d refactor: telemetry with posthog and pulse providers 2026-01-03 16:21:49 +05:30
sokumon
9327732b4c fix: move dropdown options to sidebar dropdown 2025-12-30 17:58:00 +05:30
Saqib Ansari
036c6d3459 refactor: move lucide icons.svg to icons/lucide folder 2025-12-23 14:11:53 +05:30
sokumon
bb081a16ce feat: generate desktop icon using the first letter of the label 2025-12-23 12:34:06 +05:30
sokumon
dd2dc053ca chore: more renames to /desk 2025-12-18 20:45:04 +05:30
Ejaaz Khan
5386cba461
Merge pull request #35126 from iamejaaz/new-navbar-design
feat: new navbar design
2025-12-10 11:27:01 +05:30
Ejaaz Khan
6a45fde134 feat: show title text on breadcrumb 2025-12-09 16:13:31 +05:30
sokumon
17de031475 fix: use forward_query_parameters instead 2025-12-08 11:54:18 +05:30
sokumon
d038cdec5c fix: redirect with query 2025-12-08 11:26:00 +05:30
sokumon
34b221d097 fix: delete sidebars when app is deleted 2025-12-02 13:50:29 +05:30
Akhil Narang
f13ba0bc38
Merge pull request #34786 from phot0n/del-def-log
fix: consider default_log_clearing_doctypes as well for clear_log_table
2025-11-21 17:05:12 +05:30
phot0n
a316f288df chore: add Email Queue Recipient as a dummy placeholder in default_log_clearing_doctypes 2025-11-21 15:32:11 +05:30
sokumon
6b3fe39a1a fix: add a seperate redirect for app to desk 2025-11-21 12:58:22 +05:30
sokumon
63a29b8536 fix: add correct redirects 2025-11-20 11:26:02 +05:30
sokumon
a0edd3e3f2 fix: delete desktop icons when app is uninstalled 2025-11-19 12:30:15 +05:30
sokumon
a0caf8e320 refactor: add auto-creation of icons 2025-11-14 23:05:14 +05:30
sokumon
86db71f8fa feat: move /app to /desk 2025-11-14 23:05:13 +05:30
sokumon
f6819fa6e9 chore: added a icons file from lucide static 2025-11-14 23:05:12 +05:30
sokumon
7cdfb60797 feat: desktop screen wth new design 2025-11-14 23:05:11 +05:30
sokumon
1e1455d373 refactor: move desktop inside desk 2025-11-14 23:05:10 +05:30
sokumon
b4f5a63ebd fix: allow /desktop 2025-11-14 23:05:10 +05:30
Ejaaz Khan
964dd6c034 feat: Chrome PDF generator
Co-authored-by: maharshivpatel <maharshivpatel@users.noreply.github.com>
2025-09-29 12:15:51 +05:30
Saqib Ansari
391f08e63b
feat: active app telemetry (#33755) 2025-09-17 17:30:06 +05:30
Rahul Agrawal
c52e5157b4
feat: allow users to export report in background (#33861)
* feat: allow users to email prepared report

* fix: add export in background checkbox in export dialog

* chore: use a common function to send report email

* feat: delete generated files from system after user defined duration

* feat: add exported reports in a folder and periodically clean it

* test: add test for export via report

* fix: add exported folder path as constant

* chore: un-edit report.json

* refactor: for readability

* chore: type hint

* refactor: let the BG job fail if email fails

* refactor: consistent `report_name`

* it reads better now, e.g. attached_to_name=report_name instead of attached_to_name=title

* refactor: `return_file` to its inverse `populate_response`

* chore: more specific error message

---------

Co-authored-by: Rahul Agrawal <deathstarconsole@Rahuls-MacBook-Air.local>
Co-authored-by: Hussain Nagaria <hussainbhaitech@gmail.com>
2025-09-05 14:34:55 +00:00
Saqib Ansari
6ebe7fc26e refactor: pulse client 2025-08-30 20:11:57 +05:30
Saqib Ansari
7f0765fc9e refactor: rename app_activity to app_heartbeat 2025-08-30 13:31:01 +05:30
Elton Lobo
d930335161
fix: role based invite restriction (#33806)
* refactor(user-invitation): validate invite role based on user's roles

* refactor(user-invitation): start error msgs with a capital letter

* docs(user-invitation): update the hooks structure
2025-08-28 12:02:54 +05:30
Saqib Ansari
cf884f2b7b chore: fix formatting 2025-08-22 19:04:55 +05:30
Saqib Ansari
9699bca095 feat: active app telemetry 2025-08-22 18:38:55 +05:30
Faris Ansari
2676c9c2ec
feat: SQLite FTS5 search framework for Frappe apps (#33359)
- Abstract SQLiteSearch base class with full-text search
- Spelling correction, recency boosting, and custom scoring
- Supports search filtering and configurable document indexing
- hooks for auto-indexing
  - build index after migrate
  - build index (if not exists) every 15 mins
  - update doc index on_update
  - remove doc index on_trash
2025-07-29 11:18:56 +05:30
Elton Lobo
6d1008933f
feat: add user invitation doctype & related public methods (#33308)
* feat: add user invitation doctype & related public methods

* style(user-invitation): execute formatters & add semgrep comments

* refactor(user-invitation): use `is` to compare `None` values

* fix(user-invitation): skip fetching `after_accept` for default app

* fix(user-invitation): translate email templates

* fix(user-invitaton): return pending invites from invite by email api

* refactor(user-invitation): improve code quality

* fix(user-invitation): translate all error messages

* refactor(user-invitation): improve security & readability

Improvements:
- move invite expiration check to `daily_maintenance`
- explicitly import all of the used packages
- specify methods for all security-critical endpoints
- improve error messages and give them suitable titles
- remove unnecessary utility functions
- make invitation key management secure
- translate all of the subjects of the sent emails
- use the `app_title` hook to create email titles
- commit the work done after each iteration of the background invitation
  expiry checker
- restructure code to improve readability
- use `user.reset_password` to generate the target link
- use clear long names to name identifiers
- add document states with relevant colors (User Invitation doctype)
- differ `sendmail` emails whenever possible
- send an email to the invitation creator instead of the invitee after
  the invite has expired
- remove `User Invitation Manager` role

* fix(user-invitation): use valid emails to test doctype & related code

* feat(user-invitation): support adding multiple roles

* refactor(user-invitation): mark relevant fields `set only once`

* feat(user-invitation): add `Cancelled` status

* test(user-invitation): correct broken tests

* test(user-invitation): form valid f-strings & run code formatter

* feat(user-invitation): make doctype usable from desk

* fix(user-invitation): remove delete permission from invitation doctype

* feat(user-invitation): pass user inserted info to `after_accept` hook

* refactor(user-invitation): improve custom action methods & errors

Improvements:
- trigger actions only when the invitation is in the `Pending` state
- use lowercase letters to start error messages
- handle cases where `user_invitation_hook` is not defined

* refactor(user-invitation): remove site name from email templates

* docs(user-invitation): add internal documentation

* feat(user-invitation): add 'get pending' & cancel invites apis

* fix(user-invitation): make invitation app specific

* refactor(user-invitation): avoid mixing function programming

* fix(user-invitation): make apis usable for app specific valid users

* fix(user-invitation): allow app specific invites

* feat(user-invitation): make list view & permission checks app specific

* refactor(user-invitation): convert class methods to static when possible

* feat(user-invitation): add `app_only_for` method to the doc

* fix(user-invitation): f-string syntax error in `get_permission_query_conditions`

* docs(user-invitation): add examples & improve the internal doc

* refactor: rename method name

static_ is unnecessary
only_for doesn't make sense in this context when arguments are not roles

* fix: Support POST request too

We dont follow REST semantics 100%, anything that modifies something
should ideally be doable with POST too.

* chore: cap

* fix: Avoid ignore_permissions as user arg

---------

Co-authored-by: Ankush Menat <ankush@frappe.io>
2025-07-28 16:25:53 +05:30
Soham Kulkarni
64db88228f
refactor: seperate blogs into a seperate app (#32737)
* fix: remove doctypes,workspace blocks, files

* fix: minor python tests and UI tests

* fix: remove blog post from tests

* fix: remove blogger as role for tests

* fix: add check for if doctype exists

* fix: ui test

* fix: more cleanup

* fix: cleanup comments and fix test_query

* fix: resolve conflicts

* fix: add warning and handle comments
2025-07-28 14:35:02 +05:30
Soham Kulkarni
db5433a98d
Merge pull request #33323 from sokumon/email-queue-sending-issue
fix: dont let email queue stay in Sending status
2025-07-15 19:03:06 +05:30
Ankush Menat
ef30873fe8
chore: update title in hooks.py (#33341) 2025-07-15 18:55:38 +05:30
sokumon
74b4acacd4 fix: better name for the retry job 2025-07-14 18:30:37 +05:30
sokumon
2bbf72061c fix: dont let email queue stay in Sending status 2025-07-14 18:10:43 +05:30
18alantom
db4a7504e5
fix: add hooks to handle cors 2025-07-04 13:18:43 +05:30
18alantom
4cd8115c4c
refactor: unify how .well-known routes are handled 2025-07-02 15:17:42 +05:30
sokumon
39c554d100 fix: more cleanup 2025-06-27 02:34:29 +05:30
sokumon
793bd6387f fix: global search text, remove hooks 2025-06-18 16:23:36 +05:30