[PR #1318] [MERGED] feat: Implement generic rule engine #1800

Closed
opened 2026-03-02 11:59:14 +03:00 by kerem · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/karakeep-app/karakeep/pull/1318
Author: @MohamedBassem
Created: 4/26/2025
Status: Merged
Merged: 4/26/2025
Merged by: @MohamedBassem

Base: mainHead: rule-engine


📝 Commits (8)

  • 4a02333 Add schema for the new rule engine
  • 818b826 Add rule engine backend logic
  • 2654def Implement the worker logic and event firing
  • b44f83b Implement the UI changesfor the rule engine
  • 285fda4 Ensure that when a referenced list or tag are deleted, the corresponding event/action is
  • 11f1dbd Dont show smart lists in rule engine events
  • b97ef88 Add privacy validations for attached tag and list ids
  • df8762e Move the rules logic into a models

📊 Changes

42 files changed (+5787 additions, -40 deletions)

View changed files

📝 apps/web/app/layout.tsx (+5 -1)
📝 apps/web/app/settings/layout.tsx (+6 -0)
apps/web/app/settings/rules/page.tsx (+89 -0)
apps/web/components/dashboard/feeds/FeedSelector.tsx (+53 -0)
📝 apps/web/components/dashboard/lists/BookmarkListSelector.tsx (+10 -1)
apps/web/components/dashboard/rules/RuleEngineActionBuilder.tsx (+216 -0)
apps/web/components/dashboard/rules/RuleEngineConditionBuilder.tsx (+322 -0)
apps/web/components/dashboard/rules/RuleEngineEventSelector.tsx (+107 -0)
apps/web/components/dashboard/rules/RuleEngineRuleEditor.tsx (+203 -0)
apps/web/components/dashboard/rules/RuleEngineRuleList.tsx (+166 -0)
apps/web/components/dashboard/tags/TagAutocomplete.tsx (+126 -0)
📝 apps/web/components/dashboard/tags/TagSelector.tsx (+4 -1)
📝 apps/web/components/settings/AddApiKey.tsx (+5 -1)
📝 apps/web/components/settings/FeedSettings.tsx (+2 -1)
📝 apps/web/components/settings/WebhookSettings.tsx (+10 -2)
📝 apps/web/components/shared/sidebar/MobileSidebar.tsx (+1 -1)
📝 apps/web/lib/i18n/locales/en/translation.json (+48 -0)
📝 apps/workers/index.ts (+6 -1)
📝 apps/workers/openaiWorker.ts (+18 -4)
apps/workers/ruleEngineWorker.ts (+86 -0)

...and 22 more files

📄 Description

Fixes: #1130 #1204


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/karakeep-app/karakeep/pull/1318 **Author:** [@MohamedBassem](https://github.com/MohamedBassem) **Created:** 4/26/2025 **Status:** ✅ Merged **Merged:** 4/26/2025 **Merged by:** [@MohamedBassem](https://github.com/MohamedBassem) **Base:** `main` ← **Head:** `rule-engine` --- ### 📝 Commits (8) - [`4a02333`](https://github.com/karakeep-app/karakeep/commit/4a02333d7e4c7f6ca09d48a671d047f983f8f613) Add schema for the new rule engine - [`818b826`](https://github.com/karakeep-app/karakeep/commit/818b8260d5a419240fed4b67bbe894f3eb01990c) Add rule engine backend logic - [`2654def`](https://github.com/karakeep-app/karakeep/commit/2654def093bde5e0400f48daad836850c16c5b9b) Implement the worker logic and event firing - [`b44f83b`](https://github.com/karakeep-app/karakeep/commit/b44f83b089651adaaa23b1148dfb838377a5b2cd) Implement the UI changesfor the rule engine - [`285fda4`](https://github.com/karakeep-app/karakeep/commit/285fda44c72ecd59ed7849c95cc48b2e3eb5c21b) Ensure that when a referenced list or tag are deleted, the corresponding event/action is - [`11f1dbd`](https://github.com/karakeep-app/karakeep/commit/11f1dbdcf93cba4cf9138b7ca4d88ff8fba7e136) Dont show smart lists in rule engine events - [`b97ef88`](https://github.com/karakeep-app/karakeep/commit/b97ef8821e48b1da796051ae5a0a2b9f62656efd) Add privacy validations for attached tag and list ids - [`df8762e`](https://github.com/karakeep-app/karakeep/commit/df8762e1a84745a1b26294012103f87d829e2fa5) Move the rules logic into a models ### 📊 Changes **42 files changed** (+5787 additions, -40 deletions) <details> <summary>View changed files</summary> 📝 `apps/web/app/layout.tsx` (+5 -1) 📝 `apps/web/app/settings/layout.tsx` (+6 -0) ➕ `apps/web/app/settings/rules/page.tsx` (+89 -0) ➕ `apps/web/components/dashboard/feeds/FeedSelector.tsx` (+53 -0) 📝 `apps/web/components/dashboard/lists/BookmarkListSelector.tsx` (+10 -1) ➕ `apps/web/components/dashboard/rules/RuleEngineActionBuilder.tsx` (+216 -0) ➕ `apps/web/components/dashboard/rules/RuleEngineConditionBuilder.tsx` (+322 -0) ➕ `apps/web/components/dashboard/rules/RuleEngineEventSelector.tsx` (+107 -0) ➕ `apps/web/components/dashboard/rules/RuleEngineRuleEditor.tsx` (+203 -0) ➕ `apps/web/components/dashboard/rules/RuleEngineRuleList.tsx` (+166 -0) ➕ `apps/web/components/dashboard/tags/TagAutocomplete.tsx` (+126 -0) 📝 `apps/web/components/dashboard/tags/TagSelector.tsx` (+4 -1) 📝 `apps/web/components/settings/AddApiKey.tsx` (+5 -1) 📝 `apps/web/components/settings/FeedSettings.tsx` (+2 -1) 📝 `apps/web/components/settings/WebhookSettings.tsx` (+10 -2) 📝 `apps/web/components/shared/sidebar/MobileSidebar.tsx` (+1 -1) 📝 `apps/web/lib/i18n/locales/en/translation.json` (+48 -0) 📝 `apps/workers/index.ts` (+6 -1) 📝 `apps/workers/openaiWorker.ts` (+18 -4) ➕ `apps/workers/ruleEngineWorker.ts` (+86 -0) _...and 22 more files_ </details> ### 📄 Description Fixes: #1130 #1204 --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
kerem 2026-03-02 11:59:14 +03:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/karakeep#1800
No description provided.