Commit Graph

37 Commits

Author SHA1 Message Date
Abhinav Raut
1b2a5e4f36 feat: standardize API requests to use JSON instead of form data 2025-06-18 01:30:38 +05:30
Abhinav Raut
c37258fccb feat: API key management for agents, api keys can now be generated for any agent in libredesk allowing programmatic access.
- Added endpoints to generate and revoke API keys for agents.
- Updated user model to include API key fields.
- Update authentication middleware to support API key validation.
- Modified database schema to accommodate API key fields.
- Updated frontend to manage API keys, including generation and revocation.
- Added localization strings for API key related messages.
2025-06-16 23:45:00 +05:30
Abhinav Raut
d95a5f40cf feat: add agent cache in user package
- use cached agent in all middlewares
- fix: race in casbin that gave permission denied error.
- stop loading permissions into casbin on every `Enforce` function call instead cache user permissions in authz package and when permissions change only the load permission as policies atomically.
- sort permissions in get-agents to make the permissions slice comparsion using slices.Equal work
2025-06-07 23:43:21 +05:30
Abhinav Raut
d69a8c58d1 feat: custom attributes for contacts and conversations 2025-04-15 02:23:47 +05:30
Abhinav Raut
9bfe014d1e WIP: manage contacts page 2025-04-09 16:52:25 +05:30
Abhinav Raut
2a382d6036 feat: Toggle button for user to reassign replies to conversations if they are away, user status now actually affects the conversation workflow.
Online: Conversations are auto-assigned.
Auto-away (inactivity in browser): Marks agent as away without stopping assignment (nothing changes for agent).
Manual away: Prevents new conversations from being assigned. (option available in the sidebar)
Reassign replies: Customer replies unassigns the conversation, returning it to the team inbox / unassigned inbox.
2025-04-04 03:29:16 +05:30
Abhinav Raut
6b6549cb03 standardize i18n keys for consistency rename keys
fix: avatar url `null` console warnings.
2025-04-03 01:21:12 +05:30
Abhinav Raut
4361250c73 feat: backend api response translations 2025-04-03 01:21:12 +05:30
Abhinav Raut
4b8a954043 fix: update error message for invalid session to suggest clearing cookies 2025-03-25 02:01:08 +05:30
Abhinav Raut
494bc15b0a feat: Enable agents to create conversations from the UI
Before this feature the only way to create a conversation was by adding inbox and sending an email.

Agents first search contacts by email, see a dropdown select an existing contact or fill a new email for new contact.

The backend creates contact if it does not exist, creates a conversation, sends a reply to the conversation.
Optinally assigns conversation to a user / team.

fix: Replies to emails create a new conversation instead of attaching to the previous one.

Was not happening in gmail, as gmail was sending the references headers in all replies and I missed this completely. So when libredesk searches a conversation by references headers it worked!

Instead the right way is to generate the outgoing email message id and saving it in DB. This commit fixes that.

There could be more backup strategies like putting reference number in the subject but that can be explored later.

chore: new role `conversatons:write` that enables the create conversations feature for an agent.

chore: migrations for v0.4.0.
2025-03-05 01:17:42 +05:30
Abhinav Raut
8f6295542e fix: destroy user session when user account is disabled. 2025-03-02 19:17:42 +05:30
Abhinav Raut
58825c3de9 fix: handle invalid sessions by destroying them and redirecting to login 2025-03-02 16:31:00 +05:30
Abhinav Raut
67e1230485 feat: agent availability status
New columns in users table to store user availability status.

Websocket pings sets the last active at timestamp, once user stops sending pings (on disconnect) after 5 minutes the user availalbility status changes to offline.

Detects auto away by checking for mouse, keyboard events and sets user status to away.

User can also set their status to away manually from the sidebar.

Migrations for v0.3.0

Minor visual fixes.

Bump version in package.json
2025-02-26 04:34:30 +05:30
Abhinav Raut
0c54abbbad refactor: rename modules and imports to reflect project name 2025-01-11 21:46:29 +05:30
Abhinav Raut
f30a7f07d0 feat: keyboard shortcuts to send message in a conversations (CTRL + Enter) to send, enter for newline.
- feat: button to show/hide quoted text of incoming emails.
- fix: logout redirect
- remove hardcoded user login info.
- add libredesk.io to webtemplate footer
2025-01-10 02:46:14 +05:30
Abhinav Raut
7f4f8ecf66 fix[frontend]: sidebar active state
- replace conversation sidebar with shadcn sidebar
- refactor: rename and simplify permissions for better clarity and usability
- WIP - Snoozing of conversations and UI.
2025-01-07 04:23:27 +05:30
Abhinav Raut
caf8e7d34d WIP: MVP with shadcn sidebar
- csat
- SLA
- email notification templates
2025-01-06 02:39:44 +05:30
Abhinav Raut
ed314eb1a5 feat: reset password flow
- feat: notification emails including - welcome email, assigned conversation email, reset password email.
- feat: adds outer app component which does not have a navbar
- feat: improve email templating, adds contact and conversations fields to email template
- fix: evaluator - ensure "contains" checks evaluate individual tokens in the string rather than the entire string.
- feat: logo URL for the app in general settings.
- General fixes and refactors.
- fix: hide trailing prose mirror line breaks.
2024-11-03 00:40:51 +05:30
Abhinav Raut
4932fa058a WIP: Multi tag select rule evaluator for contains operator
- rename middlewares
- Update config.sample.toml
2024-10-22 04:12:13 +05:30
Abhinav Raut
2b25ce32b6 feat: adds nonce check for oidc token exchange
- feat: adds filters support on conversations list
- refactor middlewares.go
- Adds new paginate.go for generating filtered paginated SQL queries this removes sql generation code from the conversations package.
- rename some components
- removes hardcoded `/uploads/`
2024-10-17 04:21:22 +05:30
Abhinav Raut
98df9efd63 feat: adds dropdown to automation form fields
- feat: adds csrf token check
- feat: adds conversation sub and unsub for WS updates.
- Clean up and remove unncessary code
- refactor and simplify auth middlewares
- fix: automation rules
- Update schema.sql
2024-10-14 01:50:08 +05:30
Abhinav Raut
844dbf1e9d fix: auth
- fix: null attachments in get message api.
2024-10-09 04:42:15 +05:30
Abhinav Raut
671b2371b5 feat: attachment download / view button on preview
- adds /compact apis for fetching teams and users
- adds form field to allow admin to set user password.
- fix: inline images for incoming email.
- save content id & disposition for each media.
- Update to schema.sql
2024-10-09 03:50:53 +05:30
Abhinav Raut
e246bd335a fix: redirect on successful login from / 2024-10-07 04:32:53 +05:30
Abhinav Raut
4f9118d675 feat: new install & set-system-user-password flags for setting up DB schema and setting system user password
- fixes issues in auth redirect to login, by making simple session cookie auto create = true.
- fixes issues with conversation tab filters WS subscription.
- fixes nulls returned for empty team list in handlers
- fixes logout btn not working.
- fixes charts error when there's no data returned from the API.
- Updates schema.sql
2024-10-07 04:26:10 +05:30
Abhinav Raut
0e84fac099 feat: ACL and ABAC
- Simplify ws package.
2024-09-19 04:17:03 +05:30
Abhinav Raut
4c52af8f62 feat: dashboard. 2024-08-02 04:50:47 +05:30
Abhinav Raut
ead54665fb wip: oidc 2024-07-31 04:02:34 +05:30
Abhinav Raut
79db632c3a refactor before merging conversations / messages pkg. 2024-07-29 02:00:10 +05:30
Abhinav Raut
8b763fb167 refactor. 2024-07-24 03:00:54 +05:30
Abhinav Raut
5e00558e9b feat: updates to admin page.
- role page.
2024-07-22 03:05:30 +05:30
Abhinav Raut
f86077f944 refactor. 2024-07-15 02:55:27 +05:30
Abhinav Raut
78a4caba3b more commits. 2024-07-10 05:17:07 +05:30
Abhinav Raut
e1c32afcf2 more. 2024-07-05 02:54:57 +05:30
Abhinav Raut
2bbb161593 chore: seperate frontend into differenet directories. 2024-06-23 23:24:43 +05:30
Abhinav Raut
6a27b2fa4b refactor 2024-06-10 03:45:48 +05:30
Abhinav Raut
edab73a8fa starting again 2024-05-25 11:49:41 +05:30