Matthieu Jacq
2c7d48cf4e
feat: configure CSP for self-hosting and multiple ports in dev mode ( #1364 )
...
Closes #1358
Closes #1359
⚠️ Need to update the preview and prod environment with a
"NEXT_PUBLIC_FRONTEND_URL" variable before merging.
2023-10-09 17:02:15 +02:00
Mamadou DICKO
77e135fb5b
test: add chat e2e tests ( #1344 )
...
- Brain selection
- Chat deletion
- Unplug chat
- Plug chat
2023-10-09 15:23:24 +02:00
Mamadou DICKO
f13f08c5c5
feat: update onboarding steps ( #1337 )
...
https://github.com/StanGirard/quivr/issues/1331
https://github.com/StanGirard/quivr/assets/63923024/eef62e2a-3c7c-4b08-b69c-2ba4d3b4b1be
2023-10-05 18:03:46 +02:00
Nick Guernsey
253e866a86
feat: enhance user page UI ( #1319 )
...
# Description
Hope ya'll don't mind, I updated the User Profile's UI to be a bit more
readable. Kept the design neutral to not impose styles.
I also kept the original toggle buttons for Theme and Language in case
we still want to use those in other places in the app, where a select
menu isn't necessary.
## Checklist before requesting a review
Please delete options that are not relevant.
- [ ] My code follows the style guidelines of this project
- [ ] I have performed a self-review of my code
- [ ] I have commented hard-to-understand areas
- [ ] I have ideally added tests that prove my fix is effective or that
my feature works
- [ ] New and existing unit tests pass locally with my changes
- [ ] Any dependent changes have been merged
## Screenshots (if appropriate):
https://github.com/StanGirard/quivr/assets/64866427/d0320852-ece1-4002-a180-0005df132e71
https://github.com/StanGirard/quivr/assets/64866427/be3c67ec-8d42-44f9-8131-35a70aec20ef
---------
Co-authored-by: Zineb El Bachiri <100568984+gozineb@users.noreply.github.com>
Co-authored-by: Stan Girard <girard.stanislas@gmail.com>
2023-10-05 17:50:02 +02:00
Matthieu Jacq
d0e363e66e
feat: enable CSP in all environments (local/preview/prod) ( #1334 )
...
# Description
Enable CSP in all environments (local/preview/prod).
Relies on NEXT_PUBLIC_ENV env variable, which should be
`'local'|'preview'|'prod'`
# Comparison of old and new CSP values (tested locally)
## Before
### CSP (for prod only)
```
default-src 'self' https://fonts.googleapis.com https://xxx.supabase.co https://api.june.so https://www.quivr.app/ ; connect-src 'self' https://xxx.supabase.co http://localhost:5050 https://api.june.so https://api.openai.com https://cdn.growthbook.io https://vitals.vercel-insights.com/v1/vitals ; img-src 'self' https://www.gravatar.com data:; media-src 'self' https://user-images.githubusercontent.com https://www.quivr.app/ https://quivr-cms.s3.eu-west-3.amazonaws.com ; script-src 'unsafe-inline' 'unsafe-eval' https://va.vercel-scripts.com/ https://www.quivr.app/ https://www.google-analytics.com/ ; frame-ancestors 'none'; style-src 'unsafe-inline' https://www.quivr.app/ ;
```
## After
### Prod CSP (iso with before)
```
default-src 'self' https://fonts.googleapis.com https://xxx.supabase.co https://api.june.so https://www.quivr.app/ ; connect-src 'self' https://xxx.supabase.co http://localhost:5050 https://api.june.so https://api.openai.com https://cdn.growthbook.io https://vitals.vercel-insights.com/v1/vitals ; img-src 'self' https://www.gravatar.com data:; media-src 'self' https://user-images.githubusercontent.com https://www.quivr.app/ https://quivr-cms.s3.eu-west-3.amazonaws.com ; script-src 'unsafe-inline' 'unsafe-eval' https://va.vercel-scripts.com/ https://www.quivr.app/ https://www.google-analytics.com/ ; frame-ancestors 'none'; style-src 'unsafe-inline' https://www.quivr.app/ ;
```
### Preview CSP
```
default-src 'self' https://fonts.googleapis.com https://xxx.supabase.co https://api.june.so https://preview.quivr.app/ ; connect-src 'self' https://xxx.supabase.co http://localhost:5050 https://api.june.so https://api.openai.com https://cdn.growthbook.io https://vitals.vercel-insights.com/v1/vitals ; img-src 'self' https://www.gravatar.com data:; media-src 'self' https://user-images.githubusercontent.com https://www.quivr.app/ https://quivr-cms.s3.eu-west-3.amazonaws.com ; script-src 'unsafe-inline' 'unsafe-eval' https://va.vercel-scripts.com/ https://preview.quivr.app/ https://www.google-analytics.com/ ; frame-ancestors 'none'; style-src 'unsafe-inline' https://preview.quivr.app/ ;
```
### Local CSP
```
default-src 'self' https://fonts.googleapis.com https://xxx.supabase.co https://api.june.so http://localhost:3000 http://localhost:3001 ; connect-src 'self' https://xxx.supabase.co http://localhost:5050 https://api.june.so https://api.openai.com https://cdn.growthbook.io https://vitals.vercel-insights.com/v1/vitals ; img-src 'self' https://www.gravatar.com data:; media-src 'self' https://user-images.githubusercontent.com https://www.quivr.app/ https://quivr-cms.s3.eu-west-3.amazonaws.com ; script-src 'unsafe-inline' 'unsafe-eval' https://va.vercel-scripts.com/ http://localhost:3000 http://localhost:3001 https://www.google-analytics.com/ ; frame-ancestors 'none'; style-src 'unsafe-inline' http://localhost:3000 http://localhost:3001 ;
```
# 🧪 External checks
Syntax checked with https://csp-evaluator.withgoogle.com/ (for the 3
environments).
---------
Co-authored-by: gozineb <zinebe@theodo.fr>
2023-10-05 17:37:25 +02:00
Mamadou DICKO
28ef515458
feat: update onboarding controller and fix typo ( #1333 )
...
<img width="525" alt="Screenshot 2023-10-05 at 10 55 29"
src="https://github.com/StanGirard/quivr/assets/63923024/d7a4e7ef-e73f-46d0-8499-06c5e951f64a ">
<img width="1207" alt="Screenshot 2023-10-05 at 10 49 45"
src="https://github.com/StanGirard/quivr/assets/63923024/50eba38a-b2cb-4e7d-82b1-ceca60abdad4 ">
https://github.com/StanGirard/quivr/issues/1328
2023-10-05 11:31:26 +02:00
Matthieu Jacq
f030db6952
feat: restructure the sidebar of the brains management page ( #1325 )
...
* 🧩 Possibility to chose which buttons to display in the sidebar
* Button "Back to chat"
* 💄 Remove the frame around the brains library page
* Give a size to the image in the profile button (for performance)
* Optional prop showButtons in the sidebar
* remove duration on waitFor and set sidebar animation duration to 200ms
2023-10-04 18:12:27 +02:00
Mamadou DICKO
85eba3da70
feat: add onboarding step 3 ( #1324 )
...
* feat: add OnboardingContext
* feat: add Step3 boilerplate
* feat: activate step3
* feat: add <Step3/> content
* feat: add shouldStream guard on useStreamText
2023-10-04 16:26:56 +02:00
Matthieu Jacq
945178de39
fix: 🐛 📱 height now matches mobile height ( #1323 )
2023-10-04 12:04:57 +02:00
Mamadou DICKO
bf5b7553d5
fix: wrap parsing with try catch ( #1321 )
2023-10-04 11:26:25 +02:00
Mamadou DICKO
bf7cdae4ab
feat(onboarding): add questions suggestions layout ( #1318 )
...
* refactor: update ChatInput
* feat(chat): add questions suggestion layout
2023-10-03 18:34:28 +02:00
Mamadou DICKO
6d0bc9b6ac
feat(onboarding): add step 2 ( #1314 )
...
* refactor: move onboarding step1 to components folder
* feat(onboarding): add on step2
2023-10-03 18:26:40 +02:00
Matthieu Jacq
403cdaa354
fix: remove undesired outlines around divs ( #1316 )
2023-10-03 18:03:05 +02:00
Matthieu Jacq
a61a18f4f4
fix: replace next/image's layout deprecated attribute ( #1313 )
2023-10-03 16:52:31 +02:00
Matthieu Jacq
ed358c7fa3
refactor: ♻️ ContentSecurityPolicy as an object ( #1312 )
...
* ♻️ ContentSecurityPolicy as an object
* CSP: Remove redundant operation
2023-10-03 16:16:02 +02:00
Matthieu Jacq
958993a960
feat: ↕️ maximize brain management page ( #1308 )
2023-10-03 14:56:31 +02:00
Matthieu Jacq
18f76a5341
feat: ↕️ Maximise chat window ( #1301 )
...
* 🔥 Remove Chat page intro (component and translations)
* Centered full-size chat window (partial)
* fix: gray background when adding a document
* chat window: responsive padding
* cleaner navbar display condition
2023-10-03 12:18:49 +02:00
Mamadou DICKO
808b8ffa12
feat: update chat list on new chat first message ( #1305 )
...
* feat: refecth chats list on first message
* style: change chat items colors
2023-10-03 12:08:14 +02:00
Mamadou DICKO
63e90a317c
feat: add onboarding first step ( #1303 )
...
* refactor: split <MessageRow /> into small components
* feat: add onboarding page first step
2023-10-03 11:25:16 +02:00
Mamadou DICKO
64fbd79b75
feat: allow users to turn private brain to public ( #1300 )
2023-10-02 17:04:05 +02:00
Matthieu Jacq
1e0c0c4a54
fix: 🐛 Sidebar content should not hide the sidebar footer ( #1298 )
2023-10-02 15:36:40 +02:00
Matthieu Jacq
c140b9c517
feat: ✨ responsive sidebar ( #1279 )
...
* 💄 The chat sidebar takes the full height
* 💄 redesign of the action section and buttons in the sidebar
* ✨ Sidebar header
* ♻️ Refact sidebar filesystem structure
* ♻️ Create a separate reusable sidebar component
* 🐛 Fix sidebar quick open/close on mobile
* 💄 New open/close sidebar button
* fix: error message + sidebar height issue + mobile width incoherence
* ♻️ Rename and move the sidebar footer
* 💄 sidebar toggle: color on hover
* apply sidebar to brains-management
* 💄 Larger sidebar
* 🚨 Pass existing tests
* ✅ Test the sidebar
* ✅ Test the open and close buttons in the sidebar
2023-10-02 14:42:23 +02:00
Nick Guernsey
92494aa6c6
fix(Select): fix JSX typo ( #1292 )
...
* fix: fixed clipRule typo
* fix: fill-rule typo
2023-10-02 09:33:18 +02:00
Nick Guernsey
522f2cd79f
fix: prevent fetch when user is not logged in ( #1293 )
2023-10-02 09:27:17 +02:00
Stan Girard
ead1ae86fc
feat(user_settings): increased ( #1291 )
2023-09-30 22:32:53 +02:00
Mamadou DICKO
a1e6d400b2
test: add e2e for crawling ( #1288 )
...
* feat: update translations
* fix: update createBrain tests
* test: add crawl e2e test
2023-09-29 13:15:37 +02:00
Mamadou DICKO
36fd146fed
feat: improve app ux ( #1281 )
...
* style: make FeedItemIcon the same size
* feat: update feed component brain selector label position
* style: change purple to 600
* feat: improve already dropped file message ux
* feat: autoclose feedinput on chatId change
* style: change chat colors
* feat: prevent linebreak in knowledge to upload row
* feat(textFIeld): avoid textfield content going under icon
* feat(knowledgeToUpload): add tooltip on urls and files name
* feat(feedBrain): auto scroll on messages when feed modal get opened
* style: update colors
* refactor: rename uploadCard to FeedCard
2023-09-29 10:24:31 +02:00
Zineb El Bachiri
c215284fe9
🚑 return to old CSP syntax ( #1282 )
2023-09-28 18:24:31 +02:00
Zineb El Bachiri
b64fc044c4
feat: knowledge tab add button ( #1277 )
...
* 🚧 🌐 knowledge traductions
* 🔥 replace useKnowledge hook
* ✨ AddKnowledge in knowledge tab
* 🚧 extract feedBrain in chat hook
* ♻️ use feedBrain method as a prop in KnowledgeToFeedInput
* ✨ custom feedBrain for chat and brain management
* ✨ add loader when deleting
* 🚑 remove chat after auto creation for each feed action
* 🚚 rename KnowledgeProvider into KnowledgeToFeedProvider
2023-09-28 15:39:30 +02:00
Mamadou DICKO
2226eef06b
feat(chatPage): update ui add new feed component ( #1275 )
...
* feat(brains): remove unrelevent buttons on management page
* feat: improve feed input ux
* feat: update brain knowledge context add knowledge to feed logic
* feat: allow to drop files everywhere in the chat section
* style: add slide in effect when opening feed card
* test(chatPage): fix failing tests
2023-09-28 11:29:55 +02:00
Matthieu Jacq
b6f38f7aff
fix: 🔒 ️ add gravatar.com to the content security policy ( #1273 )
...
* fix: 🔒 ️ add gravatar.com to the content security policy
* 🎨 cleaner ContentSecurityPolicy string definition
2023-09-27 15:57:44 +02:00
Mamadou DICKO
ef78dec810
feat: improve knowledge feed process ux ( #1274 )
...
* style(deleteBrainModal): reduce buttons space
* refactor: add KnowledgeToFeedInput
* feat: update translations
* feat: update knowledge feed component
* style: reduce knowledge to upload displayer size
* feat: move KnowledgeToFeedInput to @lib
* refactor: rename useSelectedChatPage to useChatNotificationsSync
* feat: change chatPage bg to gray when feed card is opened
* style: change feed process submit button bg to purple
2023-09-27 15:39:04 +02:00
Matthieu Jacq
7470d389a7
feat: 👤 Implement gravatar ( #1268 )
...
* ✨ Implement gravatar
* ♻️ refact gravatar url generation with a custom hook
* review: do not add a default value to the email if undefined
2023-09-27 14:41:08 +02:00
Mamadou DICKO
ef2bada3a5
style: improve ui ( #1263 )
...
* feat: align brain acces status change confirmation buttons
* style(brainManagement): reduce remove/unsubscribe button margin
* style(brainManagement): align confirmationModal buttons
* feat: update modal display status logic
* feat(BrainsLibrary): add brains management button
* style: improve public brain item ui
* style: make brain library responsive
* feat: auto close subscription modal on subscribe
* feat: add empty brain description message
* test: fix failing linter tests
2023-09-27 09:50:27 +02:00
Rahil Ahmad
a9fdbd51e4
FIX #1220 UX Upload improvement ( #1259 )
...
Co-authored-by: Mamadou DICKO <63923024+mamadoudicko@users.noreply.github.com>
Co-authored-by: Zineb El Bachiri <100568984+gozineb@users.noreply.github.com>
2023-09-27 09:22:22 +02:00
Mamadou DICKO
c8f045dfad
feat: save last chat config and make it default one ( #1266 )
...
* fix(RBAC): skip validation for unplug
* feat(chatSettings): set last config as default
---------
Co-authored-by: Zineb El Bachiri <100568984+gozineb@users.noreply.github.com>
2023-09-26 18:41:02 +02:00
Matthieu Jacq
da6d5b698d
feat(nav): 🚚 Move Brain and User buttons to the sidebar in the chat ( #1262 )
...
* 🚚 Move Brain and User buttons to the sidebar in the chat
* 🚨 fix linter warnings
* 🚚 Move sidebar actions to a dedicated component
* ✅ Fix failing tests
* 💄 Style sidebar buttons
* 🚚 move nav components under ChatsListItem and User components accordingly
* Display email in the user button
* ♻️ use the UserData hook in the UserPage component
* Do not display the top navbar on the chat page
* ⚰️ remove the social icons at the bottom of the chat sidebar
* ⚡ ️UserButton: get email from the Supabase context instead of a call api
* 🚨 Fix unit-tests
* 💄 Crop email in UserButton if necessary
* UserButton: display empty string if the email is undefined
2023-09-26 18:26:19 +02:00
Mamadou DICKO
a4a2d769b3
feat: allow setting public brain status to private ( #1258 )
...
* feat: refetch brains list on when new brain is added
* feat: update BrainConfig type
* feat: update useSettingsTab add usebrainFormState and useSettings tab
* feat: add <PrivateAccessConfirmationModal/> modal
* feat: update translations
* feat: handle brain status change to private
* feat: validate chat access
* test: fix failaing tests and remove deprecated
2023-09-26 10:35:52 +02:00
Riccardo Linares
4b88c89814
Update next.config.js ( #1251 )
...
Removing typo in next.confing.js
2023-09-26 09:36:53 +02:00
Matthieu Jacq
4acdb0ae55
feat(user): 🚚 Move language and theme buttons to the User page ( #1256 )
...
* feat(user): 🚚 Move language and theme buttons in the User page
* ⚰️ Remove obsolete test (DocumentData.test.ts)
* fix(user_settings): ⚰️ remove settings header
2023-09-26 09:29:30 +02:00
Mamadou DICKO
1643b54b7b
feat: allow user to unsubscribe from a brain ( #1254 )
...
* feat: update translations
* feat: add <DeleteOrUnsubscribeConfirmationModal />
* test(DeleteOrUnsubscribeConfirmationModal): update tests
* feat: redirect to /brains-management on invalid brain id
* refactor: move delete_brain_user to delete_brain_users
* feat: add /POST '/brains/{brain_id}/subscribe'
* feat: handle public brain unsubscription
2023-09-25 14:22:59 +02:00
Stan Girard
5e2d8a6b59
fix(preview): import
2023-09-22 18:15:39 +02:00
Stan Girard
c1ec7b8944
fix(preview): fixed a few bugs unchecked ( #1247 )
2023-09-22 18:04:45 +02:00
Zineb El Bachiri
d2b4ef4aff
feat: knowledge tab list ( #1222 )
...
* ✨ get all knowledge utils
* ✨ add remove knowledge and update router
* ✨ new knowledge provider
* 🚨 remove eslint -disable
* ✨ new useKnowledgeApi
* ✨ set up KnowledgeItem
* ✨ add KnowledgeTable component in knowledge tab
* 🔥 remove DocumentData replaced by KnowledgeItem
* 🐛 fix weird characters instead of '/'
* 💄 truncate knowledge name
* ✨ add DownloadUploadedKnowledge component
* ⚰️ unused code
* 🏷️ introduce UploadedKnowledge and CrawledKnowledge types
* 💄 remove thread
* 💄 bin for delete knowledge
* 🌐 update wording for knowledge tab
* 🔇 remove logs and comments
2023-09-22 16:06:04 +02:00
Mamadou DICKO
48bdbbb3e9
feat(publicBrain): disable subscribe button when already subscribed and refetch brains list ( #1246 )
...
* feat(brainSettings): add getBrainPermissions
* feat(publicBrain): disable subscription button when already subscribed
* feat(publicBrains): refecth brains list onSubscribe
2023-09-22 12:37:50 +02:00
Mamadou DICKO
2c9a0c1ed2
feat: activate public brain subscription ( #1241 )
...
* feat: add public brain details modal
* feat(brain): add subscription route
* feat: activate subscription button
* feat: add last_update column to brain table
* feat: display last update on public brain details page
* feat: change RBAC rule for public brains
* feat: maintain brain last_update time
2023-09-22 11:44:09 +02:00
Stan Girard
f1804dec5c
fix: 🐛 blog
...
too many lines
2023-09-21 22:02:50 +02:00
Stan Girard
65de6839fc
docs(blog): updated
2023-09-21 21:14:01 +02:00
Stan Girard
cdc097901e
fix(cms): changed url
2023-09-21 14:31:07 +02:00
Stan Girard
f2937a7eee
feat(cms): added images
2023-09-21 14:23:22 +02:00