Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
243 commits
Select commit Hold shift + click to select a range
b455c53
#RI-5418 backend initial implementation
Feb 19, 2024
06cea1b
#RI-5419 - initial fe implementation for ai assistant
rsergeenko Feb 21, 2024
ffe2a55
fix ITests
Feb 21, 2024
a9ea79a
Merge pull request #3058 from RedisInsight/be/feature/RI-5402-ai-assi…
Feb 22, 2024
d45c459
Merge pull request #3066 from RedisInsight/fe/feature/RI-5402-ai-assi…
rsergeenko Feb 22, 2024
caa2dd8
#RI-5456 initial BE implementation
Feb 26, 2024
9246ac8
#RI-5422 - add sign in
rsergeenko Feb 26, 2024
37d8b47
#RI-5422 - fix request, update styles
rsergeenko Feb 26, 2024
d5a65f0
Merge pull request #3086 from RedisInsight/fe/feature/RI-5422_sign-in
rsergeenko Feb 26, 2024
68a8607
Merge branch 'feature/RI-5402-ai-assistant' into be/feature/RI-5446-a…
rsergeenko Feb 26, 2024
4816849
prepare to merge from wrapper
Feb 27, 2024
86e3a1e
Merge branch 'main' into feature/RI-5402-ai-assistant
Feb 27, 2024
4c27f93
Merge branch 'feature/RI-5446-ai-expert' into be/feature/RI-5446-ai-e…
Feb 27, 2024
335ee31
Merge branch 'main' into feature/RI-5402-ai-assistant
Feb 27, 2024
0ccd1d4
Merge branch 'feature/RI-5446-ai-expert' into be/feature/RI-5446-ai-e…
Feb 27, 2024
f466b9a
create proper context for query
Feb 27, 2024
380004e
Merge pull request #3083 from RedisInsight/be/feature/RI-5446-ai-expert
Feb 27, 2024
04e69d8
#RI-5448 - expert implementation
rsergeenko Feb 27, 2024
fda6649
#RI-5448 - fixes
rsergeenko Feb 27, 2024
bd0bc85
#RI-5448 - add interfaces
rsergeenko Feb 27, 2024
2e343fe
add electron envs
Feb 28, 2024
b6c5024
Merge pull request #3097 from RedisInsight/fe/feature/RI-5446-ai-expert
rsergeenko Feb 28, 2024
338fa47
Merge pull request #3093 from RedisInsight/feature/RI-5446-ai-expert
Feb 28, 2024
3b762a4
Merge branch 'main' into feature/RI-5402-ai-assistant
Feb 28, 2024
5fcb1b6
add electron envs
Feb 28, 2024
f9b9839
Merge branch 'main' into feature/RI-5402-ai-assistant
Feb 28, 2024
ffb4272
#RI-5446 - fix bugs
rsergeenko Feb 28, 2024
0550949
Merge pull request #3113 from RedisInsight/fe/bugfix/ai-fix-bugs
rsergeenko Feb 28, 2024
915d3a3
Merge branch 'main' into feature/RI-5402-ai-assistant
rsergeenko Feb 28, 2024
c37f5d4
fix type
rsergeenko Feb 28, 2024
bcebcb4
#RI-5484 - add tests, refactoring
rsergeenko Mar 4, 2024
27527d8
#RI-5511 - merge changes, refactor
rsergeenko Mar 6, 2024
143883b
#RI-5511 - fix paddings
rsergeenko Mar 7, 2024
3904812
remove console.log
rsergeenko Mar 7, 2024
4ae45ad
Merge pull request #3140 from RedisInsight/fe/feature/RI-5511
rsergeenko Mar 7, 2024
7357ee6
Merge pull request #3131 from RedisInsight/fe/feature/RI-5484-tests
rsergeenko Mar 7, 2024
21fc3ec
long-term cloud sessions
Mar 8, 2024
2627649
fix tests
Mar 10, 2024
fc6f842
Merge pull request #3144 from RedisInsight/be/feature/RI-5457-improve…
rsergeenko Mar 13, 2024
73886ef
#RI-5454 - display user profile
rsergeenko Mar 14, 2024
bc9a482
#RI-5454 - fix dialogs
rsergeenko Mar 15, 2024
d0edd0f
#RI-5554 - fix focus effect
rsergeenko Mar 15, 2024
b6e4676
Merge pull request #3161 from RedisInsight/fe/feature/RI-5454-display…
rsergeenko Mar 19, 2024
0db0bb0
#RI-5428 - autodiscovery for signed users
rsergeenko Mar 19, 2024
9b02a12
#RI-5522 - add insights and user profile for autodiscovery flow
rsergeenko Mar 20, 2024
cfbda7c
#RI-5522 - fix test
rsergeenko Mar 20, 2024
b01bd99
#RI-5522 - fix tests, update test utils store
rsergeenko Mar 20, 2024
79e0f2a
#RI-5562 - fix spinner
rsergeenko Mar 20, 2024
81ad28f
#RI-5428 - fix loading
rsergeenko Mar 20, 2024
409f82a
Merge pull request #3167 from RedisInsight/fe/feature/RI-5428-autodis…
rsergeenko Mar 25, 2024
d5aa016
#RI-5427 - change popovers for sso
rsergeenko Mar 25, 2024
ae881aa
Merge branch 'feature/RI-5402-ai-assistant' into fe/feature/RI-5522-i…
rsergeenko Mar 25, 2024
c6efbf1
#RI-5427 - rename, fix tests
rsergeenko Mar 25, 2024
a75a0a2
rework context util
Mar 26, 2024
0d6c14c
#RI-5426, RI-5576 - add languages highlighting, run button for redis …
rsergeenko Mar 27, 2024
711799f
Merge branch 'main' into feature/RI-5402-ai-assistant
rsergeenko Mar 27, 2024
ebc1ed1
Merge branch 'feature/RI-5402-ai-assistant' into fe/feature/RI-5522-i…
rsergeenko Mar 27, 2024
7523bda
Merge pull request #3171 from RedisInsight/fe/feature/RI-5522-insight…
rsergeenko Mar 27, 2024
9ebce94
Merge pull request #3180 from RedisInsight/fe/feature/RI-5427_change-…
rsergeenko Mar 27, 2024
95da467
Merge branch 'feature/RI-5402-ai-assistant' into fe/feature/RI-5426-e…
rsergeenko Mar 27, 2024
b9de395
#RI-5426, RI-5576 - fix tests
rsergeenko Mar 27, 2024
ffd4dd2
add cloud feature configs
Mar 28, 2024
87ce501
#RI-5450 - update colors for the light theme
rsergeenko Mar 28, 2024
cdae5c7
#RI-5544 - cover chats by feature flags
rsergeenko Mar 28, 2024
a9e0844
#RI-5586 - fix events
rsergeenko Mar 29, 2024
ea07e88
partial rollout by control group
Mar 29, 2024
782dfe4
change CG range to 0-25
Mar 29, 2024
836bd9c
Merge pull request #3200 from RedisInsight/fe/feature/RI-5427_change-…
rsergeenko Mar 29, 2024
4399d4c
Merge pull request #3193 from RedisInsight/be/feature/RI-5583-add-ai-…
Mar 29, 2024
6a14d0c
#RI-5546 - message to promote chats
rsergeenko Apr 1, 2024
c108f6b
#RI-5546 - refactor
rsergeenko Apr 1, 2024
f4eaec8
Merge pull request #3194 from RedisInsight/fe/feature/RI-5450
mariasergeenko Apr 1, 2024
daaa0d6
unit tests
Apr 1, 2024
bdb9b51
Merge branch 'main' into feature/RI-5402-ai-assistant
rsergeenko Apr 1, 2024
51a0155
update home header after merge
rsergeenko Apr 1, 2024
eeff2dc
Merge remote-tracking branch 'origin/feature/RI-5402-ai-assistant' in…
rsergeenko Apr 1, 2024
32abb99
Merge branch 'feature/RI-5402-ai-assistant' into fe/feature/RI-5544-a…
rsergeenko Apr 1, 2024
a09b8c6
#RI-5593 - fix sign in flow
rsergeenko Apr 1, 2024
17c76b1
Merge pull request #3207 from RedisInsight/fe/bugfix/RI_5593-RI-5595
mariasergeenko Apr 1, 2024
a40c5fb
Merge pull request #3198 from RedisInsight/fe/feature/RI-5544-add-ai-…
vlad-dargel Apr 1, 2024
abf4094
Merge pull request #3189 from RedisInsight/fe/feature/RI-5426-enhance…
rsergeenko Apr 2, 2024
8a5d738
Merge pull request #3211 from RedisInsight/feature/RI-5544-add-ai-fea…
rsergeenko Apr 2, 2024
3a8a870
Merge branch 'feature/RI-5402-ai-assistant' into fe/feature/RI-5546-h…
rsergeenko Apr 2, 2024
54680be
Merge pull request #3203 from RedisInsight/fe/feature/RI-5546-highlig…
rsergeenko Apr 2, 2024
9b9df47
integration tests
Apr 2, 2024
dba5a17
#RI-5598 - fix dialog
rsergeenko Apr 2, 2024
c7f8e44
Merge pull request #3206 from RedisInsight/be/feature/RI-5520-documen…
Apr 2, 2024
07c00f0
#RI-5570 - handle 401 auth error
rsergeenko Apr 2, 2024
d0f34a5
fix ensure mechanism for capi keys
Apr 2, 2024
198dd53
Merge pull request #3213 from RedisInsight/be/bugfix/RI-5571-fix-ensu…
Apr 2, 2024
824a932
fix feature flags strategies
Apr 2, 2024
052b8a9
Merge pull request #3215 from RedisInsight/be/bugfix/RI-5600-fix-new-…
Apr 2, 2024
304a743
change perc for chatbot feature flag
vlad-dargel Apr 2, 2024
2a74202
#RI-5573 - redirect to home after user logout or switch account on au…
rsergeenko Apr 3, 2024
349dcd7
Merge pull request #3220 from RedisInsight/fe/bugfix/RI-5573
rsergeenko Apr 3, 2024
f1f56fa
#RI-5452 - update telemetry, add tests
rsergeenko Apr 5, 2024
7493966
update context util
Apr 11, 2024
1f0c358
create full context for query builder
Apr 12, 2024
e1abd39
Merge branch 'main' into feature/RI-5402-ai-assistant
rsergeenko Apr 16, 2024
44aa540
#RI-5452 - update source for event
rsergeenko Apr 16, 2024
2a9142c
Merge pull request #3227 from RedisInsight/fe/feature/RI-5452-update-…
mariasergeenko Apr 16, 2024
a9368c8
#RI-5587 - base implementation for saving history for database chatbot
rsergeenko Apr 17, 2024
0712020
#RI-5641 - fix telemetry event
rsergeenko Apr 17, 2024
49de6c4
Merge pull request #3275 from RedisInsight/fe/bugfix/RI-5641
rsergeenko Apr 17, 2024
72aebc8
Merge pull request #3212 from RedisInsight/fe/feature/RI-5570-handle-401
rsergeenko Apr 17, 2024
f24225f
#RI-5587 - update endpoints
rsergeenko Apr 17, 2024
9d3a452
Merge branch 'feature/RI-5402-ai-assistant' into feature/RI-5542-sm-a…
rsergeenko Apr 17, 2024
0788b8e
change history response
Apr 17, 2024
32a0ec5
#RI-5622 - update logic to work with cloud authorization
rsergeenko Apr 19, 2024
01e34b8
BE base implementation
Apr 19, 2024
4e20fd6
add typeorm migrations
Apr 19, 2024
d7fcc28
#RI-5587 - fix tests, fix some issues
rsergeenko Apr 19, 2024
a04e9a6
#RI-5526 - disable chat form
rsergeenko Apr 19, 2024
3c6dc10
#5526 - update docker link
rsergeenko Apr 19, 2024
1aeaea9
Merge pull request #3274 from RedisInsight/fe/feature/RI-5587_save-hi…
rsergeenko Apr 19, 2024
d63c4bd
add components for chat bot
mariasergeenko Apr 19, 2024
08c4b09
Merge pull request #3285 from RedisInsight/fe/feature/RI-5526_disable…
rsergeenko Apr 22, 2024
416127d
#RI-5588 - add initial chat messages
rsergeenko Apr 22, 2024
8137f47
Merge pull request #3284 from RedisInsight/be/feature/RI-5587_save-hi…
rsergeenko Apr 22, 2024
2dc6303
Merge pull request #3292 from RedisInsight/fe/feature/RI-5588-initial…
rsergeenko Apr 22, 2024
9d3ee3d
Merge branch 'feature/RI-5402-ai-assistant' into feature/RI-5587_save…
rsergeenko Apr 22, 2024
b81de8f
fix comment
mariasergeenko Apr 22, 2024
f4dd17f
do initialMessage for chat as required
rsergeenko Apr 22, 2024
2c2808f
Merge pull request #3293 from RedisInsight/feature/RI-5587_save-history
rsergeenko Apr 22, 2024
9d854d7
Merge branch 'main' into feature/RI-5402-ai-assistant
egor-zalenski Apr 22, 2024
8fbb857
#CR-10 - Move to vite
egor-zalenski Apr 22, 2024
c35e466
Merge pull request #3286 from RedisInsight/e2e/feature/RI-5402-ai-ass…
mariasergeenko Apr 22, 2024
72e71e9
#CR-10 - Move to vite
egor-zalenski Apr 22, 2024
1cc5cd7
Merge pull request #3294 from RedisInsight/feature/RI-5402-ai-assista…
egor-zalenski Apr 22, 2024
6842636
Merge pull request #3300 from RedisInsight/main
egor-zalenski Apr 23, 2024
99fc2c8
Merge pull request #3306 from RedisInsight/main
egor-zalenski Apr 24, 2024
a90ecef
#RI-5553 - move copilot outside insights panel
rsergeenko Apr 24, 2024
ef51efe
#RI-5553 - fix typo
rsergeenko Apr 24, 2024
3e47934
Merge pull request #3311 from RedisInsight/fe/feature/RI-5553-move-co…
rsergeenko Apr 25, 2024
d24ca84
#RI-5670 - fix loading history after changing account
rsergeenko Apr 26, 2024
a0bc7e5
revert features
rsergeenko Apr 26, 2024
ca4ab62
Merge pull request #3317 from RedisInsight/fe/bugfix/RI-5402-ai-assis…
rsergeenko Apr 26, 2024
edf1f95
Merge branch 'feature/RI-5402-ai-assistant' into fe/feature/RI-5622-a…
rsergeenko Apr 26, 2024
afc96ca
#RI-5622 - add loading, tests, change auth error
rsergeenko Apr 26, 2024
d187bb5
#RI-5622 - fix tests
rsergeenko Apr 26, 2024
232df0e
add retry for needed sm api calls
Apr 28, 2024
04f3bc1
Merge pull request #3283 from RedisInsight/fe/feature/RI-5622-auth-steps
rsergeenko Apr 29, 2024
00d1bb6
Merge branch 'main' into feature/RI-5402-ai-assistant
rsergeenko Apr 29, 2024
b85ffe5
Merge pull request #3320 from RedisInsight/be/feature/RI-5569-improve…
Apr 30, 2024
d9749b4
#RI-5650 - chatbot enhancements
rsergeenko Apr 30, 2024
e14ae58
#RI-5696 - fix log out on autodiscovery
rsergeenko Apr 30, 2024
f803f77
enhance ai history
Apr 30, 2024
f4d88f4
Merge pull request #3325 from RedisInsight/fe/feature/RI-5650_chatbot…
rsergeenko Apr 30, 2024
3548f36
Merge branch 'refs/heads/feature/RI-5402-ai-assistant' into build/be/…
Apr 30, 2024
ab737cd
fix conf for ai chatbots
Apr 30, 2024
03fd599
Merge pull request #3328 from RedisInsight/build/be/feature/RI-5402-e…
Apr 30, 2024
ccf531a
Merge pull request #3326 from RedisInsight/bugfix/RI-5402-ai-assistant
rsergeenko May 1, 2024
a856858
Merge pull request #3327 from RedisInsight/be/feature/RI-5402-enhance…
mariasergeenko May 1, 2024
9a5d89f
#RI-5559 - update onboarding
rsergeenko May 1, 2024
289b39b
#RI-5696 - fix error message showing after logout
rsergeenko May 1, 2024
177b238
#RI-5550 - update texts
rsergeenko May 1, 2024
6122948
Merge pull request #3332 from RedisInsight/fe/feature/RI-5550-update-…
rsergeenko May 2, 2024
934c373
Merge pull request #3331 from RedisInsight/fe/feature/RI-5559-update-…
rsergeenko May 2, 2024
87f67f2
#RI-5645 - handle chatbot errors
rsergeenko May 6, 2024
b4aed31
rollback features
rsergeenko May 6, 2024
0900488
always use ws
May 6, 2024
3cdd49f
#5645 - fix tests
rsergeenko May 6, 2024
4a87961
#5713 - fix tutorial button
rsergeenko May 6, 2024
a24efcb
remove console.log
rsergeenko May 6, 2024
da1667f
Merge pull request #3341 from RedisInsight/fe/feature/RI-5645-handle-…
rsergeenko May 6, 2024
034263f
Merge branch 'main' into feature/RI-5402-ai-assistant
rsergeenko May 6, 2024
0c70fb3
Merge branch 'feature/RI-5402-ai-assistant' into bugfix/RI-5402-ai-as…
rsergeenko May 7, 2024
760cafd
resolve merge conflicts
rsergeenko May 7, 2024
a1fe477
Merge pull request #3342 from RedisInsight/bugfix/RI-5402-ai-assistant
rsergeenko May 7, 2024
2a8057c
#RI-5537 - update tutorials section
rsergeenko May 7, 2024
3c86cc2
#RI-5718 - add telemetry event when message fails
rsergeenko May 7, 2024
5a4d5c1
enhance app config
May 7, 2024
77d1d4d
Merge pull request #3343 from RedisInsight/fe/feature/RI-5537-update-…
rsergeenko May 7, 2024
ba8abd7
Merge pull request #3344 from RedisInsight/fe/bugfix/RI-5718-add-tele…
rsergeenko May 7, 2024
b22f7b5
add cache for context
May 7, 2024
f659c8a
align with new history response
May 7, 2024
dbb43ed
fix ITests
May 7, 2024
40290c7
Merge pull request #3351 from RedisInsight/be/bugfix/RI-5717-align-wi…
ArtemHoruzhenko May 8, 2024
4187c79
fix ITests
May 8, 2024
eb89795
Merge branch 'refs/heads/be/feature/RI-5649-custom-feature-config' in…
May 8, 2024
4d49e37
Merge pull request #3346 from RedisInsight/be/feature/RI-5649-custom-…
ArtemHoruzhenko May 8, 2024
a989d62
Merge pull request #3350 from RedisInsight/be/feature/RI-5711-context…
ArtemHoruzhenko May 8, 2024
61d37ca
#RI-5647 - suggest to import data when there are no indexes
rsergeenko May 8, 2024
b6edfbd
fix tests
rsergeenko May 8, 2024
d8f73c0
bugfix, fix tests
rsergeenko May 9, 2024
2e8c52f
fix tests
rsergeenko May 9, 2024
3628c3d
Merge pull request #3355 from RedisInsight/fe/feature/RI-5647-suggest…
rsergeenko May 9, 2024
9dc0b86
Merge branch 'main' into feature/RI-5402-ai-assistant
vlad-dargel May 9, 2024
e952e7a
#RI-5701, #RI-5730 - chatbot enhancements
rsergeenko May 10, 2024
0d78a00
#RI-5733 - fix logout on switch account
rsergeenko May 10, 2024
f29fdaa
Merge pull request #3364 from RedisInsight/fe/bugfix/RI-5733
rsergeenko May 13, 2024
97eb271
Merge pull request #3363 from RedisInsight/fe/feature/RI-5701_chatbot
rsergeenko May 13, 2024
0852f77
#RI-5617 - add legal terms for chatbots
rsergeenko May 14, 2024
64f6aeb
#RI-5617 - update telemetry
rsergeenko May 15, 2024
64a86f5
Merge pull request #3375 from RedisInsight/fe/feature/RI-5617-legal-t…
rsergeenko May 15, 2024
b40db05
Merge branch 'main' into feature/RI-5402-ai-assistant
rsergeenko May 15, 2024
b874200
fix retries
ArtemHoruzhenko May 15, 2024
cefeaef
#RI-5719 - fix oauth callback
rsergeenko May 15, 2024
bb32e52
Merge pull request #3382 from RedisInsight/bugfix/RI-5402-ai-assistant
mariasergeenko May 16, 2024
1343cee
#RI-5746 - add text to chatbot form, fix styles
rsergeenko May 16, 2024
31fac86
Merge pull request #3385 from RedisInsight/fe/bugfix/RI-5746
mariasergeenko May 16, 2024
3cceea2
add auth retry for data chatbot
ArtemHoruzhenko May 16, 2024
41ca2e3
Merge branch 'main' into feature/RI-5402-ai-assistant
vlad-dargel May 16, 2024
266e6a5
#RI-5739 - change behaviour to unblock chatbot input
rsergeenko May 16, 2024
9862c3e
fix tests
rsergeenko May 16, 2024
d97b9f2
Merge pull request #3387 from RedisInsight/fe/bugfix/RI-5402-ai-assis…
rsergeenko May 16, 2024
0a86eda
add utm_amp parameter
ArtemHoruzhenko May 17, 2024
39709db
#RI-5719 - handle double callback
rsergeenko May 17, 2024
5f4407c
Merge pull request #3389 from RedisInsight/fe/bugfix/RI-5402-ai-assis…
rsergeenko May 17, 2024
9471f80
#RI-5754 - update terms
rsergeenko May 17, 2024
e2a369e
#RI-5724 - handle 401 error on my data chat
rsergeenko May 20, 2024
b641c1e
Merge pull request #3390 from RedisInsight/fe/feature/RI-5754_5755
rsergeenko May 20, 2024
5613013
#RI-5724 add retries for data chatbot + disable flags + small fixes
ArtemHoruzhenko May 20, 2024
9db4eda
#RI-5763 - add possibility for tutorials to open current page with tu…
rsergeenko May 20, 2024
3ea1de2
Merge pull request #3395 from RedisInsight/fe/feature/RI-5724-enhanse…
rsergeenko May 20, 2024
7036927
#RI-5731 fix docker
ArtemHoruzhenko May 20, 2024
1e95d53
#RI-5724 - cover errors on get/remove history for my data chat
rsergeenko May 21, 2024
2b4524e
#RI-5724 - fix tests
rsergeenko May 21, 2024
1a974c7
fix chat retries
ArtemHoruzhenko May 21, 2024
8c53dfd
Merge branch 'feature/RI-5402-ai-assistant' into be/feature/RI-5724-e…
vlad-dargel May 21, 2024
f0db5e5
Merge branch 'main' into feature/RI-5402-ai-assistant
rsergeenko May 22, 2024
0236ac6
Merge branch 'feature/RI-5402-ai-assistant' into fe/feature/RI-5763
rsergeenko May 22, 2024
6b19e23
Merge pull request #3380 from RedisInsight/be/feature/RI-5724-enhanse…
vlad-dargel May 22, 2024
a94e56d
#RI-5766 - fix pathname
rsergeenko May 22, 2024
2b58f49
Merge branch 'feature/RI-5402-ai-assistant' into fe/feature/RI-5763
vlad-dargel May 22, 2024
bcdb165
remove only
mariasergeenko May 22, 2024
8a091ec
add rate limits
ArtemHoruzhenko May 22, 2024
46d2007
#RI-5759 - open tutorials after load sample data, add links to tutorial
rsergeenko May 22, 2024
237ffb8
fix tests
mariasergeenko May 22, 2024
943729e
#RI-5759 - fux test
rsergeenko May 22, 2024
cd45f98
#RI-5759 - remove commented code
rsergeenko May 22, 2024
e80426c
Merge pull request #3402 from RedisInsight/fe/feature/RI-5759
rsergeenko May 22, 2024
21c327b
e2e/feature/RI-5763_open_tutorials_from_other_tutorials
vlad-dargel May 22, 2024
eedf19c
Merge pull request #3403 from RedisInsight/e2e/feature/RI-5763_open_t…
vlad-dargel May 22, 2024
ecd467c
Merge pull request #3396 from RedisInsight/fe/feature/RI-5763
vlad-dargel May 22, 2024
e3f3cf7
Merge pull request #3404 from RedisInsight/e2e/feature/RI-5402-ai-ass…
mariasergeenko May 22, 2024
5b24cb1
add comment for skipped test
vlad-dargel May 22, 2024
9bc39a2
disable flaky test
ArtemHoruzhenko May 22, 2024
25d513c
Merge pull request #3401 from RedisInsight/be/feature/RI-5758-rate-li…
ArtemHoruzhenko May 22, 2024
003d25e
#RI-5758 - handle limit errors
rsergeenko May 22, 2024
0386cff
#RI-5758 - do not show report issue for limit errors
rsergeenko May 22, 2024
924ad60
skip Verify that user can not see the import Cloud databases on the W…
vlad-dargel May 22, 2024
a32d900
Merge pull request #3405 from RedisInsight/fe/feature/RI-5758
vlad-dargel May 22, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
4 changes: 4 additions & 0 deletions configs/webpack.config.main.prod.ts
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,7 @@ export default merge(baseConfig, {
// cloud auth
RI_CLOUD_IDP_AUTHORIZE_URL: 'RI_CLOUD_IDP_AUTHORIZE_URL' in process.env ? process.env.RI_CLOUD_IDP_AUTHORIZE_URL: '',
RI_CLOUD_IDP_TOKEN_URL: 'RI_CLOUD_IDP_TOKEN_URL' in process.env ? process.env.RI_CLOUD_IDP_TOKEN_URL: '',
RI_CLOUD_IDP_REVOKE_TOKEN_URL: 'RI_CLOUD_IDP_REVOKE_TOKEN_URL' in process.env ? process.env.RI_CLOUD_IDP_REVOKE_TOKEN_URL: '',
RI_CLOUD_IDP_ISSUER: 'RI_CLOUD_IDP_ISSUER' in process.env ? process.env.RI_CLOUD_IDP_ISSUER: '',
RI_CLOUD_IDP_CLIENT_ID: 'RI_CLOUD_IDP_CLIENT_ID' in process.env ? process.env.RI_CLOUD_IDP_CLIENT_ID: '',
RI_CLOUD_IDP_REDIRECT_URI: 'RI_CLOUD_IDP_REDIRECT_URI' in process.env ? process.env.RI_CLOUD_IDP_REDIRECT_URI: '',
Expand All @@ -79,6 +80,9 @@ export default merge(baseConfig, {
RI_CLOUD_API_URL: 'RI_CLOUD_API_URL' in process.env ? process.env.RI_CLOUD_API_URL: '',
RI_CLOUD_CAPI_URL: 'RI_CLOUD_CAPI_URL' in process.env ? process.env.RI_CLOUD_CAPI_URL: '',
RI_CLOUD_API_TOKEN: 'RI_CLOUD_API_TOKEN' in process.env ? process.env.RI_CLOUD_API_TOKEN: '',
RI_AI_CONVAI_TOKEN: 'RI_AI_CONVAI_TOKEN' in process.env ? process.env.RI_AI_CONVAI_TOKEN: '',
RI_AI_QUERY_USER: 'RI_AI_QUERY_USER' in process.env ? process.env.RI_AI_QUERY_USER: '',
RI_AI_QUERY_PASS: 'RI_AI_QUERY_PASS' in process.env ? process.env.RI_AI_QUERY_PASS: '',
}),

new webpack.DefinePlugin({
Expand Down
11 changes: 11 additions & 0 deletions redisinsight/api/config/default.ts
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ export default {
staticDir,
defaultsDir,
logs: join(homedir, 'logs'),
customConfig: join(homedir, 'config.json'),
defaultPlugins: join(staticDir, 'plugins'),
customPlugins: join(homedir, 'plugins'),
customTutorials: join(homedir, 'custom-tutorials'),
Expand Down Expand Up @@ -236,10 +237,12 @@ export default {
jobIterationInterval: parseInt(process.env.RI_CLOUD_JOB_ITERATION_INTERVAL, 10) || 10_000, // 10 sec
discoveryTimeout: parseInt(process.env.RI_CLOUD_DISCOVERY_TIMEOUT, 10) || 60 * 1000, // 1 min
databaseConnectionTimeout: parseInt(process.env.RI_CLOUD_DATABASE_CONNECTION_TIMEOUT, 10) || 30 * 1000,
renewTokensBeforeExpire: parseInt(process.env.RI_CLOUD_DATABASE_CONNECTION_TIMEOUT, 10) || 2 * 60_000, // 2min
idp: {
google: {
authorizeUrl: process.env.RI_CLOUD_IDP_GOOGLE_AUTHORIZE_URL || process.env.RI_CLOUD_IDP_AUTHORIZE_URL,
tokenUrl: process.env.RI_CLOUD_IDP_GOOGLE_TOKEN_URL || process.env.RI_CLOUD_IDP_TOKEN_URL,
revokeTokenUrl: process.env.RI_CLOUD_IDP_GOOGLE_REVOKE_TOKEN_URL || process.env.RI_CLOUD_IDP_REVOKE_TOKEN_URL,
issuer: process.env.RI_CLOUD_IDP_GOOGLE_ISSUER || process.env.RI_CLOUD_IDP_ISSUER,
clientId: process.env.RI_CLOUD_IDP_GOOGLE_CLIENT_ID || process.env.RI_CLOUD_IDP_CLIENT_ID,
redirectUri: process.env.RI_CLOUD_IDP_GOOGLE_REDIRECT_URI || process.env.RI_CLOUD_IDP_REDIRECT_URI,
Expand All @@ -248,11 +251,19 @@ export default {
github: {
authorizeUrl: process.env.RI_CLOUD_IDP_GH_AUTHORIZE_URL || process.env.RI_CLOUD_IDP_AUTHORIZE_URL,
tokenUrl: process.env.RI_CLOUD_IDP_GH_TOKEN_URL || process.env.RI_CLOUD_IDP_TOKEN_URL,
revokeTokenUrl: process.env.RI_CLOUD_IDP_GH_REVOKE_TOKEN_URL || process.env.RI_CLOUD_IDP_REVOKE_TOKEN_URL,
issuer: process.env.RI_CLOUD_IDP_GH_ISSUER || process.env.RI_CLOUD_IDP_ISSUER,
clientId: process.env.RI_CLOUD_IDP_GH_CLIENT_ID || process.env.RI_CLOUD_IDP_CLIENT_ID,
redirectUri: process.env.RI_CLOUD_IDP_GH_REDIRECT_URI || process.env.RI_CLOUD_IDP_REDIRECT_URI,
idp: process.env.RI_CLOUD_IDP_GH_ID,
},
},
},
ai: {
convAiApiUrl: process.env.RI_AI_CONVAI_API_URL || 'https://staging.redis.io/convai/api',
convAiToken: process.env.RI_AI_CONVAI_TOKEN,
querySocketUrl: process.env.RI_AI_QUERY_SOCKET_URL || 'https://app-sm.k8s-cloudapi.sm-qa.qa.redislabs.com',
querySocketPath: process.env.RI_AI_QUERY_SOCKET_PATH || '/api/v1/cloud-copilot-service/socket.io/',
queryHistoryLimit: parseInt(process.env.RI_AI_QUERY_HISTORY_LIMIT, 10) || 20,
},
};
2 changes: 1 addition & 1 deletion redisinsight/api/config/features-config.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"version": 2.46,
"version": 2.4603,
"features": {
"insightsRecommendations": {
"flag": true,
Expand Down
2 changes: 2 additions & 0 deletions redisinsight/api/config/ormconfig.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ import { FeatureEntity } from 'src/modules/feature/entities/feature.entity';
import { FeaturesConfigEntity } from 'src/modules/feature/entities/features-config.entity';
import { CloudDatabaseDetailsEntity } from 'src/modules/cloud/database/entities/cloud-database-details.entity';
import { CloudCapiKeyEntity } from 'src/modules/cloud/capi-key/entity/cloud-capi-key.entity';
import { AiQueryMessageEntity } from 'src/modules/ai/query/entities/ai-query.message.entity';
import migrations from '../migration';
import * as config from '../src/utils/config';

Expand Down Expand Up @@ -48,6 +49,7 @@ const ormConfig = {
FeaturesConfigEntity,
CloudDatabaseDetailsEntity,
CloudCapiKeyEntity,
AiQueryMessageEntity,
],
migrations,
};
Expand Down
4 changes: 4 additions & 0 deletions redisinsight/api/config/production.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ export default {
homedir,
prevHomedir,
logs: join(homedir, 'logs'),
customConfig: join(homedir, 'config.json'),
customPlugins: join(homedir, 'plugins'),
customTutorials: join(homedir, 'custom-tutorials'),
commands: join(homedir, 'commands'),
Expand All @@ -37,4 +38,7 @@ export default {
cloud: {
cApiUrl: process.env.RI_CLOUD_CAPI_URL || 'https://api.redislabs.com/v1',
},
ai: {
convAiApiUrl: process.env.RI_AI_CONVAI_API_URL || 'https://redis.io/convai/api',
},
};
1 change: 1 addition & 0 deletions redisinsight/api/config/staging.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ export default {
homedir,
prevHomedir,
logs: join(homedir, 'logs'),
customConfig: join(homedir, 'config.json'),
customPlugins: join(homedir, 'plugins'),
customTutorials: join(homedir, 'custom-tutorials'),
commands: join(homedir, 'commands'),
Expand Down
33 changes: 33 additions & 0 deletions redisinsight/api/config/test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -21,4 +21,37 @@ export default {
url: process.env.RI_FEATURES_CONFIG_URL
|| 'http://localhost:5551/remote/features-config.json',
},
cloud: {
apiUrl: process.env.RI_CLOUD_API_URL || 'https://app-sm.k8s-cloudapi.sm-qa.qa.redislabs.com/api/v1',
apiToken: process.env.RI_CLOUD_API_TOKEN || 'token',
capiUrl: process.env.RI_CLOUD_CAPI_URL || 'https://api-k8s-cloudapi.qa.redislabs.com/v1',
capiKeyName: process.env.RI_CLOUD_CAPI_KEY_NAME || 'RedisInsight',
freeSubscriptionName: process.env.RI_CLOUD_FREE_SUBSCRIPTION_NAME || 'My free subscription',
freeDatabaseName: process.env.RI_CLOUD_FREE_DATABASE_NAME || 'Redis-Stack-in-Redis-Enterprise-Cloud',
defaultPlanRegion: process.env.RI_CLOUD_DEFAULT_PLAN_REGION || 'eu-west-1',
jobIterationInterval: parseInt(process.env.RI_CLOUD_JOB_ITERATION_INTERVAL, 10) || 10_000, // 10 sec
discoveryTimeout: parseInt(process.env.RI_CLOUD_DISCOVERY_TIMEOUT, 10) || 60 * 1000, // 1 min
databaseConnectionTimeout: parseInt(process.env.RI_CLOUD_DATABASE_CONNECTION_TIMEOUT, 10) || 30 * 1000,
renewTokensBeforeExpire: parseInt(process.env.RI_CLOUD_DATABASE_CONNECTION_TIMEOUT, 10) || 2 * 60_000, // 2min
idp: {
google: {
authorizeUrl: 'oauth2/authorize',
tokenUrl: 'oauth2/token',
revokeTokenUrl: 'oauth2/revoke',
issuer: 'https://authorization.server.com',
clientId: 'cid_p6vA6A5tF36Jf6twH2cBOqtt7n',
redirectUri: 'redisinsight:/cloud/oauth/callback',
idp: 'test-google-idp',
},
github: {
authorizeUrl: 'oauth2/authorize',
tokenUrl: 'oauth2/token',
revokeTokenUrl: 'oauth2/revoke',
issuer: 'https://authorization.server.com',
clientId: 'cid_p6vA6A5tF36Jf6twH2cBOqtt7n',
redirectUri: 'redisinsight:/cloud/oauth/callback',
idp: 'test-github-idp',
},
},
},
};
20 changes: 20 additions & 0 deletions redisinsight/api/migration/1713515657364-ai-history.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
import { MigrationInterface, QueryRunner } from "typeorm";

export class AiHistory1713515657364 implements MigrationInterface {
name = 'AiHistory1713515657364'

public async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`CREATE TABLE "ai_query_message" ("id" varchar PRIMARY KEY NOT NULL, "databaseId" varchar NOT NULL, "accountId" varchar NOT NULL, "type" varchar NOT NULL, "content" blob NOT NULL, "createdAt" datetime NOT NULL DEFAULT (datetime('now')), "encryption" varchar)`);
await queryRunner.query(`CREATE INDEX "IDX_51d5d60bfc249e9a20443376e1" ON "ai_query_message" ("databaseId") `);
await queryRunner.query(`CREATE INDEX "IDX_f0a6e0873ac71f323e9880b4a8" ON "ai_query_message" ("accountId") `);
await queryRunner.query(`CREATE INDEX "IDX_5c051504f4efe6f20c5a7f64f6" ON "ai_query_message" ("createdAt") `);
}

public async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`DROP INDEX "IDX_5c051504f4efe6f20c5a7f64f6"`);
await queryRunner.query(`DROP INDEX "IDX_f0a6e0873ac71f323e9880b4a8"`);
await queryRunner.query(`DROP INDEX "IDX_51d5d60bfc249e9a20443376e1"`);
await queryRunner.query(`DROP TABLE "ai_query_message"`);
}

}
32 changes: 32 additions & 0 deletions redisinsight/api/migration/1714501203616-ai-history-steps.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
import { MigrationInterface, QueryRunner } from "typeorm";

export class AiHistorySteps1714501203616 implements MigrationInterface {
name = 'Migration1714501203616'

public async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`DROP INDEX "IDX_5c051504f4efe6f20c5a7f64f6"`);
await queryRunner.query(`DROP INDEX "IDX_f0a6e0873ac71f323e9880b4a8"`);
await queryRunner.query(`DROP INDEX "IDX_51d5d60bfc249e9a20443376e1"`);
await queryRunner.query(`CREATE TABLE "temporary_ai_query_message" ("id" varchar PRIMARY KEY NOT NULL, "databaseId" varchar NOT NULL, "accountId" varchar NOT NULL, "type" varchar NOT NULL, "content" blob NOT NULL, "createdAt" datetime NOT NULL DEFAULT (datetime('now')), "encryption" varchar, "steps" blob)`);
await queryRunner.query(`INSERT INTO "temporary_ai_query_message"("id", "databaseId", "accountId", "type", "content", "createdAt", "encryption") SELECT "id", "databaseId", "accountId", "type", "content", "createdAt", "encryption" FROM "ai_query_message"`);
await queryRunner.query(`DROP TABLE "ai_query_message"`);
await queryRunner.query(`ALTER TABLE "temporary_ai_query_message" RENAME TO "ai_query_message"`);
await queryRunner.query(`CREATE INDEX "IDX_5c051504f4efe6f20c5a7f64f6" ON "ai_query_message" ("createdAt") `);
await queryRunner.query(`CREATE INDEX "IDX_f0a6e0873ac71f323e9880b4a8" ON "ai_query_message" ("accountId") `);
await queryRunner.query(`CREATE INDEX "IDX_51d5d60bfc249e9a20443376e1" ON "ai_query_message" ("databaseId") `);
}

public async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`DROP INDEX "IDX_51d5d60bfc249e9a20443376e1"`);
await queryRunner.query(`DROP INDEX "IDX_f0a6e0873ac71f323e9880b4a8"`);
await queryRunner.query(`DROP INDEX "IDX_5c051504f4efe6f20c5a7f64f6"`);
await queryRunner.query(`ALTER TABLE "ai_query_message" RENAME TO "temporary_ai_query_message"`);
await queryRunner.query(`CREATE TABLE "ai_query_message" ("id" varchar PRIMARY KEY NOT NULL, "databaseId" varchar NOT NULL, "accountId" varchar NOT NULL, "type" varchar NOT NULL, "content" blob NOT NULL, "createdAt" datetime NOT NULL DEFAULT (datetime('now')), "encryption" varchar)`);
await queryRunner.query(`INSERT INTO "ai_query_message"("id", "databaseId", "accountId", "type", "content", "createdAt", "encryption") SELECT "id", "databaseId", "accountId", "type", "content", "createdAt", "encryption" FROM "temporary_ai_query_message"`);
await queryRunner.query(`DROP TABLE "temporary_ai_query_message"`);
await queryRunner.query(`CREATE INDEX "IDX_51d5d60bfc249e9a20443376e1" ON "ai_query_message" ("databaseId") `);
await queryRunner.query(`CREATE INDEX "IDX_f0a6e0873ac71f323e9880b4a8" ON "ai_query_message" ("accountId") `);
await queryRunner.query(`CREATE INDEX "IDX_5c051504f4efe6f20c5a7f64f6" ON "ai_query_message" ("createdAt") `);
}

}
4 changes: 4 additions & 0 deletions redisinsight/api/migration/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,8 @@ import { CloudDatabaseDetails1687166457712 } from './1687166457712-cloud-databas
import { FreeCloudDatabase1688989337247 } from './1688989337247-freeCloudDatabase';
import { CloudCapiKeys1691061058385 } from './1691061058385-cloud-capi-keys';
import { FeatureSso1691476419592 } from './1691476419592-feature-sso';
import { AiHistory1713515657364 } from './1713515657364-ai-history';
import { AiHistorySteps1714501203616 } from './1714501203616-ai-history-steps';

export default [
initialMigration1614164490968,
Expand Down Expand Up @@ -80,4 +82,6 @@ export default [
FreeCloudDatabase1688989337247,
CloudCapiKeys1691061058385,
FeatureSso1691476419592,
AiHistory1713515657364,
AiHistorySteps1714501203616,
];
4 changes: 3 additions & 1 deletion redisinsight/api/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -71,15 +71,18 @@
"fs-extra": "^10.0.0",
"ioredis": "^5.2.2",
"is-glob": "^4.0.1",
"jsonwebtoken": "^9.0.2",
"keytar": "^7.9.0",
"lodash": "^4.17.20",
"nest-winston": "^1.4.0",
"nestjs-form-data": "^1.8.7",
"node-version-compare": "^1.0.3",
"quicktype-core": "^23.0.116",
"redis": "^4.6.10",
"reflect-metadata": "^0.1.13",
"rxjs": "^7.5.6",
"socket.io": "^4.6.2",
"socket.io-client": "^4.7.5",
"source-map-support": "^0.5.19",
"sqlite3": "5.1.6",
"swagger-ui-express": "^4.1.4",
Expand Down Expand Up @@ -123,7 +126,6 @@
"nyc": "^15.1.0",
"object-diff": "^0.0.4",
"rimraf": "^3.0.2",
"socket.io-client": "^4.4.1",
"socket.io-mock": "^1.3.2",
"supertest": "^4.0.2",
"ts-jest": "^26.1.0",
Expand Down
90 changes: 90 additions & 0 deletions redisinsight/api/src/__mocks__/ai.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
import { AiChat, AiChatMessage, AiChatMessageType } from 'src/modules/ai/chat/models';
import { Readable } from 'stream';
import { AxiosError } from 'axios';
import { SendAiChatMessageDto } from 'src/modules/ai/chat/dto/send.ai-chat.message.dto';

export const mockAiChatId = '0539879dc020add5abb33f6f60a07fe8d5a0b9d61c81c9d79d77f9b1b2f2e239';

export const mockAiChatBadRequestError = {
message: 'Bad request',
response: {
status: 400,
},
} as AxiosError;

export const mockAiChatUnauthorizedError = {
message: 'Request failed with status code 401',
response: {
status: 401,
},
} as AxiosError;

export const mockAiChatAccessDeniedError = {
message: 'Access denied',
response: {
status: 403,
},
} as AxiosError;

export const mockAiChatNotFoundError = {
message: 'Requested resource was not found',
response: {
status: 404,
},
} as AxiosError;

export const mockAiChatInternalServerError = {
message: 'Server error',
response: {
status: 500,
},
} as AxiosError;

export const mockHumanMessage1Response = {
type: AiChatMessageType.HumanMessage,
content: 'Question 1',
};

export const mockHumanMessage2Response = {
type: AiChatMessageType.HumanMessage,
content: 'Question 2',
};

export const mockAiMessage1Response = {
type: AiChatMessageType.AiMessage,
content: 'Answer 1',
};
export const mockAiMessage2Response = {
type: AiChatMessageType.AiMessage,
content: 'Answer 2',
};

export const mockAiHistoryApiResponse = [
mockHumanMessage1Response,
mockAiMessage1Response,
mockHumanMessage2Response,
mockAiMessage2Response,
];

export const mockAiChat = Object.assign(new AiChat(), {
id: mockAiChatId,
messages: [
Object.assign(new AiChatMessage(), mockHumanMessage1Response),
Object.assign(new AiChatMessage(), mockAiMessage1Response),
Object.assign(new AiChatMessage(), mockHumanMessage2Response),
Object.assign(new AiChatMessage(), mockAiMessage2Response),
],
});
export const getMockedReadableStream = () => new Readable();
export const mockAiResponseStream = getMockedReadableStream();

export const mockSendAiChatMessageDto = Object.assign(new SendAiChatMessageDto(), {
content: mockHumanMessage1Response.content,
});

export const mockConvAiProvider = jest.fn(() => ({
auth: jest.fn().mockResolvedValue(mockAiChatId),
postMessage: jest.fn().mockResolvedValue(mockAiResponseStream),
getHistory: jest.fn().mockResolvedValue(mockAiHistoryApiResponse),
reset: jest.fn(),
}));
Loading