Commit Graph

152 Commits

Author SHA1 Message Date
Ace 9ce9506e8e Update on auto setup 2026-06-26 13:07:40 +02:00
Hannah_Bagga ed2e1fc64d Web Background 2026-06-26 13:03:37 +02:00
Ace 5feb95187c adding a wizard for setup 2026-06-26 12:08:32 +02:00
Ace a4d2ad143b Merge branch 'main' of https://git.coastit.co.za/caitlin/CRM_ENVR 2026-06-26 11:48:54 +02:00
Ace da702d6beb Changed from user specific, to open for everyone 2026-06-26 11:48:51 +02:00
caitlin 33a4f9dfa9 Merge branch 'main' of https://git.coastit.co.za/caitlin/CRM_ENVR 2026-06-26 11:48:02 +02:00
Hannah_Bagga 82e8ce8ae9 Merge branch 'main' of https://git.coastit.co.za/caitlin/CRM_ENVR 2026-06-26 11:21:45 +02:00
Hannah_Bagga 343f814569 npm 2026-06-26 11:21:10 +02:00
TroodonEnjoyer 4c09635d30 Merge branch 'main' of https://git.coastit.co.za/caitlin/CRM_ENVR 2026-06-26 11:14:08 +02:00
TroodonEnjoyer 20a1744e7f Security architecture upgrade + bug reporting system
Database & Security:
- Dual password storage: bcrypt (auth) + pgcrypto AES-256 (recovery)
- SUPER_ADMIN master key recovery system (master_keys table)
- Row Level Security on customers, leads, opportunities, communications, tasks
  - SALES_USER: own records only
  - ADMIN: all records
  - SUPER_ADMIN: all records (bypasses RLS)
- Immutable audit logs (DELETE/UPDATE blocked by triggers)
- New audit event types: BUG_CREATED, BUG_UPDATED, BUG_ASSIGNED,
  BUG_RESOLVED, LOGIN, LOGOUT
- Database export logging (database_export_logs table)
- Backup logging with pg_dump script (scripts/backup.ps1)
- Fixed audit constraint to allow new action types

Authentication:
- Random JWT secret generated on every dev server start
  (invalidates all prior sessions after restart)
- Session cookie is now session-only (no maxAge)
- setSessionContext() for RLS integration

Bug Reporting System:
- bug_reports table with RLS (insert by all, select/update by admin only)
- POST /api/bug-reports (any authenticated user)
- GET /api/bug-reports (admin/super_admin only)
- PATCH /api/bug-reports/:id (admin/super_admin only)
- POST /api/auth/recover (super_admin password recovery)
- Audit logging for all bug report actions

Other:
- Added 'dev' to UserRole type
- Bug report modal UI with severity selector
- Added bug report button to topbar
2026-06-26 11:13:28 +02:00
Ace c9df7787d5 Added in loading bot 2026-06-26 11:10:58 +02:00
caitlin fa39f2af9d Merge origin/main into master 2026-06-26 09:48:11 +02:00
Ace 9bbaf70145 Checks done 2026-06-25 16:04:05 +02:00
Hannah_Bagga 5668a63370 Merge branch 'main' of https://git.coastit.co.za/caitlin/CRM_ENVR 2026-06-25 15:50:35 +02:00
Ace 3af622f53d added browser 2026-06-25 15:42:35 +02:00
Hannah_Bagga 1465016b56 ..... 2026-06-25 15:15:35 +02:00
Hannah_Bagga 906e37e845 .... 2026-06-25 15:15:15 +02:00
caitlin 52a489759f Working on the mcp, this helps connect it 2026-06-25 10:25:00 +02:00
Ace 1f032dc098 Added rene changes 2026-06-24 18:43:38 +02:00
Ace 1adb6544c2 Merge branch 'main' of https://git.coastit.co.za/caitlin/CRM_ENVR 2026-06-24 17:35:58 +02:00
Ace 56ff9995a2 Restore file structure to last legit commit b245b35, remove remote CRM_ENVR-main files 2026-06-24 17:35:48 +02:00
TroodonEnjoyer 33753a1291 Merge branch 'main' of https://git.coastit.co.za/caitlin/CRM_ENVR 2026-06-24 17:35:10 +02:00
Ace 06912f3e59 Merge remote changes, keep local project structure 2026-06-24 17:29:07 +02:00
Ace f7258d38f6 Seeing Ai new added 2026-06-24 17:26:32 +02:00
Ace 4c1d994054 fix 2026-06-24 17:21:52 +02:00
Ace b245b352e7 Updated Ai to pull from facebook, added a loading SVG to make user wait for server too boot up, and added commands that can be used to start off the AI exstraction 2026-06-24 17:17:38 +02:00
Rene cd797c5b3c Remove node_modules from tracking 2026-06-24 15:21:57 +02:00
Rene 9d9309833b Add root .gitignore to exclude node_modules and .next 2026-06-24 15:21:49 +02:00
Rene 1e332fb50d Fix JWT_SECRET env var, setup database, update spider web and DAILY BUGLE colors to #e62020 2026-06-24 15:08:48 +02:00
TroodonEnjoyer 9acbbb6a19 Fixed the problem with skipping the login screen and /dashboard 2026-06-24 13:15:04 +02:00
Ace 8a6ad5c6c6 Updated 2026-06-24 12:30:22 +02:00
Ace b2a2f7e40f Ahh fix bloating size upload was to large 2026-06-24 09:54:28 +02:00
Ace 2b4749e5e1 Add rust-ai/target/ to gitignore, remove build artifacts from tracking 2026-06-24 08:58:18 +02:00
Ace e872ab9736 feat: Enhance dashboard UI with Spider-Man theme
- Added Spider-Man themed watermarks and gradients to the dashboard components.
- Updated color scheme for various dashboard elements to match the Spider-Man theme.
- Introduced new styles and animations for loading states and visual elements.
- Refactored existing components to incorporate the new design elements, including charts and cards.
- Updated global styles to support the new theme and added custom fonts.
- Adjusted layout and responsiveness for better user experience.
2026-06-23 20:24:27 +02:00
Hannah_Bagga 4d9a1dc684 Update .gitignore for browser-use-service generated files 2026-06-23 19:57:37 +02:00
Hannah_Bagga 203eac2132 .. 2026-06-23 19:54:46 +02:00
Hannah_Bagga 97e8da3bfd Merge remote changes from origin/main 2026-06-23 19:54:00 +02:00
Hannah_Bagga 3a927b25b6 . 2026-06-23 19:12:10 +02:00
Hannah_Bagga b4be369f25 no clue 2026-06-23 19:11:42 +02:00
Hannah_Bagga 4fd9f7752a spider man theme??? 2026-06-23 19:10:43 +02:00
Hannah_Bagga e78503b5c1 Spider-man theme??? 2026-06-23 19:07:40 +02:00
Ace d51c84997a new changes 2026-06-23 15:29:34 +02:00
Ace c355d0e2e5 Refactor code structure for improved readability and maintainability 2026-06-23 14:25:39 +02:00
Ace ff56cea4b8 feat: add Facebook account tracking and management
- Introduced new migration for `facebook_accounts` and `facebook_scrape_logs` tables.
- Updated the scraping logic to handle Facebook accounts, including success and failure tracking.
- Implemented API endpoints for managing Facebook accounts and their scrape logs.
- Enhanced user permissions to restrict access to Facebook account management to admins and super admins.
- Added a dialog component for displaying and managing Facebook accounts in the UI.
- Updated lead fetching logic to include user role checks for assignment and access.
2026-06-23 14:18:18 +02:00
Hannah_Bagga 7bd9c17b5f Add Node.js AI server, fix dev scripts, ignore rust-ai/target 2026-06-23 11:07:55 +02:00
Hannah_Bagga 1c717ce7ba Merge branch 'main' of https://git.coastit.co.za/caitlin/CRM_ENVR 2026-06-23 10:07:36 +02:00
caitlin cc56fe6286 Merge branch 'main' of https://git.coastit.co.za/caitlin/CRM_ENVR 2026-06-23 10:01:52 +02:00
Hannah_Bagga cf554a70cd Fix dev:rust to use Node.js AI server (Rust build blocked by Defender), fix dev:ollama fallback path 2026-06-23 10:01:33 +02:00
Hannah_Bagga 3061ab111c Merge branch 'main' of https://git.coastit.co.za/caitlin/CRM_ENVR
# Conflicts:
#	package.json
#	rust-ai/target/.rustc_info.json
#	rust-ai/target/debug/.fingerprint/crm-ai-f6bc192b1f678367/bin-crm-ai
#	rust-ai/target/debug/.fingerprint/crm-ai-f6bc192b1f678367/bin-crm-ai.json
#	rust-ai/target/debug/build/crossbeam-utils-8066693d49c7288a/build-script-build.exe
#	rust-ai/target/debug/build/crossbeam-utils-8066693d49c7288a/build_script_build-8066693d49c7288a.exe
#	rust-ai/target/debug/build/crossbeam-utils-8066693d49c7288a/build_script_build-8066693d49c7288a.pdb
#	rust-ai/target/debug/build/crossbeam-utils-8066693d49c7288a/build_script_build.pdb
#	rust-ai/target/debug/build/generic-array-91b16dd255e0db51/build-script-build.exe
#	rust-ai/target/debug/build/generic-array-91b16dd255e0db51/build_script_build-91b16dd255e0db51.exe
#	rust-ai/target/debug/build/generic-array-91b16dd255e0db51/build_script_build-91b16dd255e0db51.pdb
#	rust-ai/target/debug/build/generic-array-91b16dd255e0db51/build_script_build.pdb
#	rust-ai/target/debug/build/getrandom-2c7c133266bf5cf5/build-script-build.exe
#	rust-ai/target/debug/build/getrandom-2c7c133266bf5cf5/build_script_build-2c7c133266bf5cf5.exe
#	rust-ai/target/debug/build/getrandom-2c7c133266bf5cf5/build_script_build-2c7c133266bf5cf5.pdb
#	rust-ai/target/debug/build/getrandom-2c7c133266bf5cf5/build_script_build.pdb
#	rust-ai/target/debug/build/httparse-4dc4630409fa7385/build-script-build.exe
#	rust-ai/target/debug/build/httparse-4dc4630409fa7385/build_script_build-4dc4630409fa7385.exe
#	rust-ai/target/debug/build/httparse-4dc4630409fa7385/build_script_build-4dc4630409fa7385.pdb
#	rust-ai/target/debug/build/httparse-4dc4630409fa7385/build_script_build.pdb
#	rust-ai/target/debug/build/icu_normalizer_data-96a52fd262d0f4c6/build-script-build.exe
#	rust-ai/target/debug/build/icu_normalizer_data-96a52fd262d0f4c6/build_script_build-96a52fd262d0f4c6.exe
#	rust-ai/target/debug/build/icu_normalizer_data-96a52fd262d0f4c6/build_script_build-96a52fd262d0f4c6.pdb
#	rust-ai/target/debug/build/icu_normalizer_data-96a52fd262d0f4c6/build_script_build.pdb
#	rust-ai/target/debug/build/icu_properties_data-cd63a06a3e531c28/build-script-build.exe
#	rust-ai/target/debug/build/icu_properties_data-cd63a06a3e531c28/build_script_build-cd63a06a3e531c28.exe
#	rust-ai/target/debug/build/icu_properties_data-cd63a06a3e531c28/build_script_build-cd63a06a3e531c28.pdb
#	rust-ai/target/debug/build/icu_properties_data-cd63a06a3e531c28/build_script_build.pdb
#	rust-ai/target/debug/build/libc-763fb040b2d663ab/build-script-build.exe
#	rust-ai/target/debug/build/libc-763fb040b2d663ab/build_script_build-763fb040b2d663ab.exe
#	rust-ai/target/debug/build/libc-763fb040b2d663ab/build_script_build-763fb040b2d663ab.pdb
#	rust-ai/target/debug/build/libc-763fb040b2d663ab/build_script_build.pdb
#	rust-ai/target/debug/build/native-tls-33399c41462f9840/build-script-build.exe
#	rust-ai/target/debug/build/native-tls-33399c41462f9840/build_script_build-33399c41462f9840.exe
#	rust-ai/target/debug/build/native-tls-33399c41462f9840/build_script_build-33399c41462f9840.pdb
#	rust-ai/target/debug/build/native-tls-33399c41462f9840/build_script_build.pdb
#	rust-ai/target/debug/build/num-traits-7471ce6e6595e59b/build-script-build.exe
#	rust-ai/target/debug/build/num-traits-7471ce6e6595e59b/build_script_build-7471ce6e6595e59b.exe
#	rust-ai/target/debug/build/num-traits-7471ce6e6595e59b/build_script_build-7471ce6e6595e59b.pdb
#	rust-ai/target/debug/build/num-traits-7471ce6e6595e59b/build_script_build.pdb
#	rust-ai/target/debug/build/parking_lot_core-12fc7eb0299b59cc/build-script-build.exe
#	rust-ai/target/debug/build/parking_lot_core-12fc7eb0299b59cc/build_script_build-12fc7eb0299b59cc.exe
#	rust-ai/target/debug/build/parking_lot_core-12fc7eb0299b59cc/build_script_build-12fc7eb0299b59cc.pdb
#	rust-ai/target/debug/build/parking_lot_core-12fc7eb0299b59cc/build_script_build.pdb
#	rust-ai/target/debug/build/proc-macro2-f29c3a04cd092e27/build-script-build.exe
#	rust-ai/target/debug/build/proc-macro2-f29c3a04cd092e27/build_script_build-f29c3a04cd092e27.exe
#	rust-ai/target/debug/build/proc-macro2-f29c3a04cd092e27/build_script_build-f29c3a04cd092e27.pdb
#	rust-ai/target/debug/build/proc-macro2-f29c3a04cd092e27/build_script_build.pdb
#	rust-ai/target/debug/build/quote-a01905ec43427c6e/build-script-build.exe
#	rust-ai/target/debug/build/quote-a01905ec43427c6e/build_script_build-a01905ec43427c6e.exe
#	rust-ai/target/debug/build/quote-a01905ec43427c6e/build_script_build-a01905ec43427c6e.pdb
#	rust-ai/target/debug/build/quote-a01905ec43427c6e/build_script_build.pdb
#	rust-ai/target/debug/build/rustversion-f8e8dfefa013a996/build-script-build.exe
#	rust-ai/target/debug/build/rustversion-f8e8dfefa013a996/build_script_build-f8e8dfefa013a996.exe
#	rust-ai/target/debug/build/rustversion-f8e8dfefa013a996/build_script_build-f8e8dfefa013a996.pdb
#	rust-ai/target/debug/build/rustversion-f8e8dfefa013a996/build_script_build.pdb
#	rust-ai/target/debug/build/serde-b4e8599ad30d0584/build-script-build.exe
#	rust-ai/target/debug/build/serde-b4e8599ad30d0584/build_script_build-b4e8599ad30d0584.exe
#	rust-ai/target/debug/build/serde-b4e8599ad30d0584/build_script_build-b4e8599ad30d0584.pdb
#	rust-ai/target/debug/build/serde-b4e8599ad30d0584/build_script_build.pdb
#	rust-ai/target/debug/build/serde_core-fdf5f60f2a35bbe7/build-script-build.exe
#	rust-ai/target/debug/build/serde_core-fdf5f60f2a35bbe7/build_script_build-fdf5f60f2a35bbe7.exe
#	rust-ai/target/debug/build/serde_core-fdf5f60f2a35bbe7/build_script_build-fdf5f60f2a35bbe7.pdb
#	rust-ai/target/debug/build/serde_core-fdf5f60f2a35bbe7/build_script_build.pdb
#	rust-ai/target/debug/build/serde_json-257d8c53e770cd03/build-script-build.exe
#	rust-ai/target/debug/build/serde_json-257d8c53e770cd03/build_script_build-257d8c53e770cd03.exe
#	rust-ai/target/debug/build/serde_json-257d8c53e770cd03/build_script_build-257d8c53e770cd03.pdb
#	rust-ai/target/debug/build/serde_json-257d8c53e770cd03/build_script_build.pdb
#	rust-ai/target/debug/build/thiserror-f1e01e19f7ffccfe/build-script-build.exe
#	rust-ai/target/debug/build/thiserror-f1e01e19f7ffccfe/build_script_build-f1e01e19f7ffccfe.exe
#	rust-ai/target/debug/build/thiserror-f1e01e19f7ffccfe/build_script_build-f1e01e19f7ffccfe.pdb
#	rust-ai/target/debug/build/thiserror-f1e01e19f7ffccfe/build_script_build.pdb
#	rust-ai/target/debug/build/zerocopy-c9c41e065706d9f3/build-script-build.exe
#	rust-ai/target/debug/build/zerocopy-c9c41e065706d9f3/build_script_build-c9c41e065706d9f3.exe
#	rust-ai/target/debug/build/zerocopy-c9c41e065706d9f3/build_script_build-c9c41e065706d9f3.pdb
#	rust-ai/target/debug/build/zerocopy-c9c41e065706d9f3/build_script_build.pdb
#	rust-ai/target/debug/build/zmij-bbaef9d295c9b9a4/build-script-build.exe
#	rust-ai/target/debug/build/zmij-bbaef9d295c9b9a4/build_script_build-bbaef9d295c9b9a4.exe
#	rust-ai/target/debug/build/zmij-bbaef9d295c9b9a4/build_script_build-bbaef9d295c9b9a4.pdb
#	rust-ai/target/debug/build/zmij-bbaef9d295c9b9a4/build_script_build.pdb
#	rust-ai/target/debug/crm-ai.exe
#	rust-ai/target/debug/crm_ai.pdb
#	rust-ai/target/debug/deps/async_trait-68aee6d09cf7ad62.dll
#	rust-ai/target/debug/deps/async_trait-68aee6d09cf7ad62.dll.exp
#	rust-ai/target/debug/deps/async_trait-68aee6d09cf7ad62.pdb
#	rust-ai/target/debug/deps/crm_ai.exe
#	rust-ai/target/debug/deps/crm_ai.pdb
#	rust-ai/target/debug/deps/displaydoc-df5efcb720a2661d.dll
#	rust-ai/target/debug/deps/displaydoc-df5efcb720a2661d.dll.exp
#	rust-ai/target/debug/deps/displaydoc-df5efcb720a2661d.pdb
#	rust-ai/target/debug/deps/rustversion-3bff64c9379d1bfc.dll
#	rust-ai/target/debug/deps/rustversion-3bff64c9379d1bfc.dll.exp
#	rust-ai/target/debug/deps/rustversion-3bff64c9379d1bfc.pdb
#	rust-ai/target/debug/deps/serde_derive-5075d2cdf4f787ec.dll
#	rust-ai/target/debug/deps/serde_derive-5075d2cdf4f787ec.dll.exp
#	rust-ai/target/debug/deps/serde_derive-5075d2cdf4f787ec.pdb
#	rust-ai/target/debug/deps/thiserror_impl-d7f41de49f2cc66d.dll
#	rust-ai/target/debug/deps/thiserror_impl-d7f41de49f2cc66d.dll.exp
#	rust-ai/target/debug/deps/thiserror_impl-d7f41de49f2cc66d.pdb
#	rust-ai/target/debug/deps/tokio_macros-afc286fa0daf0a5b.dll
#	rust-ai/target/debug/deps/tokio_macros-afc286fa0daf0a5b.dll.exp
#	rust-ai/target/debug/deps/tokio_macros-afc286fa0daf0a5b.pdb
#	rust-ai/target/debug/deps/tracing_attributes-c958f756e18a5ca5.dll
#	rust-ai/target/debug/deps/tracing_attributes-c958f756e18a5ca5.dll.exp
#	rust-ai/target/debug/deps/tracing_attributes-c958f756e18a5ca5.pdb
#	rust-ai/target/debug/deps/yoke_derive-1ee9709a84873876.dll
#	rust-ai/target/debug/deps/yoke_derive-1ee9709a84873876.dll.exp
#	rust-ai/target/debug/deps/yoke_derive-1ee9709a84873876.pdb
#	rust-ai/target/debug/deps/zerofrom_derive-84258ff2c2774032.dll
#	rust-ai/target/debug/deps/zerofrom_derive-84258ff2c2774032.dll.exp
#	rust-ai/target/debug/deps/zerofrom_derive-84258ff2c2774032.pdb
#	rust-ai/target/debug/deps/zerovec_derive-ca6ec60ddda5cee1.dll
#	rust-ai/target/debug/deps/zerovec_derive-ca6ec60ddda5cee1.dll.exp
#	rust-ai/target/debug/deps/zerovec_derive-ca6ec60ddda5cee1.pdb
2026-06-23 10:00:28 +02:00
caitlin 491ff52b90 Fixed notifications, It shows when you get get a
message and from who
2026-06-23 09:59:53 +02:00