Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
157 commits
Select commit Hold shift + click to select a range
8478e40
RI-4592 - add triggered functions endpoint
AmirAllayarovSofteq Jun 7, 2023
e0a9f56
RI-4592 - add triggered functions endpoint
AmirAllayarovSofteq Jun 7, 2023
9eadbd4
#RI-4592 - add code field
AmirAllayarovSofteq Jun 8, 2023
ff5217a
#RI-4592 - add code field
AmirAllayarovSofteq Jun 8, 2023
e528e11
#RI-4592 - add stream triggers
AmirAllayarovSofteq Jun 8, 2023
ebcf5b7
#RI-4592 - update endpoints
AmirAllayarovSofteq Jun 9, 2023
487dcc1
#RI-4592 - update get library endpoint
AmirAllayarovSofteq Jun 9, 2023
e142127
#RI-4593 - add triggers & functions libraries list
rsergeenko Jun 9, 2023
e0f1c8e
Be/feature ri 4592 triggered functions (#2185)
AmirAllayarovSofteq Jun 12, 2023
6091d99
#RI-4593 - add tests for libraries list
rsergeenko Jun 12, 2023
f21304c
Merge branch 'feature/RI-4502_triggered_functions' into fe/feature/RI…
rsergeenko Jun 12, 2023
21b7053
add rte redisgears 2.0
vlad-dargel Jun 12, 2023
d229b45
Merge pull request #2183 from RedisInsight/fe/feature/RI-4593_trigger…
rsergeenko Jun 13, 2023
9d4fe07
Merge pull request #2187 from RedisInsight/e2e/feature/rte-redisgears…
vlad-dargel Jun 13, 2023
6a52cab
test#1 for triggered functions
mariasergeenko Jun 13, 2023
b78320d
#RI-4635 - add spinner
rsergeenko Jun 14, 2023
7f53094
Merge pull request #2190 from RedisInsight/e2e/feature/RI-4502_trigge…
mariasergeenko Jun 14, 2023
095a736
Merge pull request #2195 from RedisInsight/fe/bugfix/RI-4502_triggere…
rsergeenko Jun 14, 2023
68d7fb9
#RI-4646 - add upload and replace library endpoints (#2206)
AmirAllayarovSofteq Jun 19, 2023
4fe2abe
#RI-4646 - replace config with configuration (#2208)
AmirAllayarovSofteq Jun 19, 2023
ef10ced
#RI-4591 - add NotFoundException error (#2212)
AmirAllayarovSofteq Jun 20, 2023
609411c
#RI-4591 - add library details for triggered functions
rsergeenko Jun 20, 2023
765d723
#RI-4591 - change logic to clear selection
rsergeenko Jun 20, 2023
da77848
Merge pull request #2214 from RedisInsight/fe/feature/RI-4591-trigger…
rsergeenko Jun 21, 2023
1526c91
Merge branch 'main' into feature/RI-4502_triggered_functions
rsergeenko Jun 21, 2023
13fcf09
#RI-4663 - fix scroll
rsergeenko Jun 21, 2023
0f590d6
Merge pull request #2219 from RedisInsight/fe/bugfix/RI-4663_RI-4664
rsergeenko Jun 21, 2023
ea468bc
#RI-4581 - add functions page to triggers & functions
rsergeenko Jun 26, 2023
4b596ae
#RI-4581 - add unit tests
rsergeenko Jun 27, 2023
8d32c58
add tests for RI-4591
mariasergeenko Jun 27, 2023
78e9702
Merge pull request #2247 from RedisInsight/fe/feature/RI-4581-trigger…
rsergeenko Jun 28, 2023
e775ea8
add tests for RI-4591 - comments fix
mariasergeenko Jun 28, 2023
765b03f
Merge pull request #2253 from RedisInsight/e2e/feature/RI-4502_trigge…
mariasergeenko Jun 28, 2023
c31fba1
#RI-4581 - add context for last viewed page for triggers & functions …
rsergeenko Jun 28, 2023
725b5bb
Merge pull request #2257 from RedisInsight/fe/feature/RI-4581-trigger…
rsergeenko Jun 28, 2023
8d90ac7
#RI-4685 - fix updating selected function
rsergeenko Jun 28, 2023
51b2539
Merge branch 'main' into feature/RI-4502_triggered_functions
rsergeenko Jun 28, 2023
17c75c2
update languages for monaco
rsergeenko Jun 28, 2023
ba49960
Merge pull request #2259 from RedisInsight/fe/bugfix/RI-4685
rsergeenko Jun 28, 2023
e00582c
Feature/ri 4583 delete library (#2256)
AmirAllayarovSofteq Jun 28, 2023
9a946cd
add tests for RI-4581
mariasergeenko Jun 29, 2023
c912e36
add tests for RI-4581
mariasergeenko Jun 29, 2023
33d15d7
add tests for RI-4581 #2
mariasergeenko Jun 29, 2023
975ae17
add tests for RI-4581 #3
mariasergeenko Jun 29, 2023
fc9a9e1
add tests for RI-4581 #4
mariasergeenko Jun 29, 2023
b318a49
add tests for RI-4581 - comments fix
mariasergeenko Jun 29, 2023
c956038
Merge pull request #2261 from RedisInsight/e2e/feature/RI-4502_trigge…
mariasergeenko Jun 29, 2023
86ce285
Merge pull request #2264 from RedisInsight/latest
vlad-dargel Jun 30, 2023
3fa55b4
Merge pull request #2265 from RedisInsight/release/2.28.0
vlad-dargel Jun 30, 2023
2b8fde2
add tests for RI-4583
mariasergeenko Jun 30, 2023
0cf1245
Merge pull request #2269 from RedisInsight/e2e/feature/RI-4502_trigge…
mariasergeenko Jul 3, 2023
ecc8781
Fe/feature/ri 4587 upload library (#2273)
AmirAllayarovSofteq Jul 3, 2023
b89c1e6
#RI-4698 - reset input value (#2275)
AmirAllayarovSofteq Jul 4, 2023
0258320
improve .dockerignore
Jul 4, 2023
9c37388
Merge pull request #2276 from RedisInsight/dockerignore-improvements
Jul 4, 2023
0ca3ebd
test run with skipped
vlad-dargel Jul 4, 2023
3a76873
#RI-4594 - Invoke function
rsergeenko Jul 5, 2023
4d90b3a
Merge pull request #2279 from RedisInsight/fe/feature/RI-4594-invoke-…
rsergeenko Jul 5, 2023
d4d2419
add test for file uploading
mariasergeenko Jul 6, 2023
8c6630a
remove only
mariasergeenko Jul 6, 2023
b8a800f
comment fix
mariasergeenko Jul 6, 2023
56064db
Merge pull request #2281 from RedisInsight/e2e/feature/RI-4502_trigge…
mariasergeenko Jul 6, 2023
52118a9
upgrade linux executor machine
Jul 6, 2023
7028811
fix docker network name
Jul 6, 2023
8d46f4a
#RI-4595 - add invoke stream functions
rsergeenko Jul 6, 2023
1ddedea
Merge pull request #2284 from RedisInsight/fe/feature/RI-4595-open-st…
rsergeenko Jul 6, 2023
8b42287
comment fix
mariasergeenko Jul 7, 2023
ff2c1b8
#RI-4596 - add recommendations for triggered and functions (#2283)
AmirAllayarovSofteq Jul 7, 2023
e309e7e
api tests refactoring
vlad-dargel Jul 7, 2023
cd5fd90
fix for ts compilation failure
vlad-dargel Jul 7, 2023
fcace21
Merge pull request #2286 from RedisInsight/e2e/feature/RI-4502_trigge…
mariasergeenko Jul 7, 2023
4841c7a
#RI-4608 - remove GRAPH commands from command helper
AmirAllayarovSofteq Jul 10, 2023
8aa08a4
update text
AmirAllayarovSofteq Jul 10, 2023
234f297
#RI-4586 - add redisgears 2 icon and text
AmirAllayarovSofteq Jul 10, 2023
3a3f76f
#RI-4586 - resolve comments
AmirAllayarovSofteq Jul 10, 2023
b9f78c0
#RI-4586 - resolve comments
AmirAllayarovSofteq Jul 10, 2023
4a42e42
#RI-4586 - resolve comments
AmirAllayarovSofteq Jul 10, 2023
b830c6c
#RI-4608 - remove deprecated command groups
AmirAllayarovSofteq Jul 10, 2023
723c89e
#RI-4608 - remove deprecated command groups
AmirAllayarovSofteq Jul 10, 2023
4e7d3a5
add test for Open a Stream function
mariasergeenko Jul 10, 2023
189270e
fixes by pr comments
vlad-dargel Jul 10, 2023
baede93
removed tests for graph in workbench as outdated
vlad-dargel Jul 10, 2023
121066f
#RI-4599 - add triggers and functions to onboarding
rsergeenko Jul 10, 2023
12c1af0
fix
vlad-dargel Jul 10, 2023
c22de91
fix of test
vlad-dargel Jul 10, 2023
a334c31
Merge pull request #2288 from RedisInsight/e2e/bugfix/failing-contain…
vlad-dargel Jul 10, 2023
9a3a795
#RI-4596 - update condition for luaToFunctions recommendation (#2303)
AmirAllayarovSofteq Jul 10, 2023
595f0c0
fix foc comments
mariasergeenko Jul 10, 2023
43d60d9
skip outdated test on graph in command helper
vlad-dargel Jul 10, 2023
fd75f61
Merge pull request #2294 from RedisInsight/feature/RI-4608_redisgraph…
vlad-dargel Jul 10, 2023
1b68a9f
#RI-4599 - update text
rsergeenko Jul 11, 2023
5a1d8b1
fix for comments#2
mariasergeenko Jul 11, 2023
20885e7
#RI-4726, 4727 - fix utm in the links (#2307)
AmirAllayarovSofteq Jul 11, 2023
39be4b7
Merge pull request #2297 from RedisInsight/e2e/feature/RI-4502_trigge…
mariasergeenko Jul 11, 2023
2cead75
Merge branch 'main' into feature/RI-4502_triggered_functions
vlad-dargel Jul 11, 2023
47446ae
#RI-4727 - update recommendation links
AmirAllayarovSofteq Jul 11, 2023
b3e7e86
Merge pull request #2302 from RedisInsight/fe/feature/RI-4599_add-onb…
rsergeenko Jul 11, 2023
7edfa15
#RI-4600 - add highlighting for triggers & functions page
rsergeenko Jul 11, 2023
0db15a2
Merge pull request #2309 from RedisInsight/fe/feature/RI-4600_highlig…
rsergeenko Jul 11, 2023
30de45e
Merge pull request #2308 from RedisInsight/fe/bugfix/RI-4727_update_l…
mariasergeenko Jul 11, 2023
2c66392
fix tests for 4502
mariasergeenko Jul 11, 2023
ae18987
#RI-4586 - align BE and FE getModules summary (#2313)
AmirAllayarovSofteq Jul 11, 2023
2f5efe2
Merge pull request #2312 from RedisInsight/e2e/feature/RI-4502_trigge…
mariasergeenko Jul 11, 2023
b24e1f1
#RI-4632 - add cluster refresh in triggers and functions
AmirAllayarovSofteq Jul 12, 2023
cb11166
onboarding
mariasergeenko Jul 12, 2023
509906e
comments fix
mariasergeenko Jul 12, 2023
711a62a
Merge pull request #2317 from RedisInsight/e2e/feature/RI-4502_trigge…
mariasergeenko Jul 12, 2023
f1917bb
#RI-4737 - add uppercase
AmirAllayarovSofteq Jul 12, 2023
25c007c
#RI-4737 - add uppercase
AmirAllayarovSofteq Jul 12, 2023
f451ba0
#RI-4715 - update styles for insight panel
rsergeenko Jul 12, 2023
407257e
#RI-4624 - change learn more link
AmirAllayarovSofteq Jul 13, 2023
a26987b
Merge pull request #2327 from RedisInsight/fe/bugfix/RI-4737_graph_co…
vlad-dargel Jul 13, 2023
9b7c6c9
#RI-4739 - update icon
rsergeenko Jul 17, 2023
291aafb
Merge pull request #2295 from RedisInsight/fe/feature/RI-4586_trigger…
rsergeenko Jul 17, 2023
5b3b36d
Merge branch 'main' into feature/RI-4502_triggered_functions
rsergeenko Jul 17, 2023
8225eec
#RI-4758 - update triggers & functions icon for sidebar
rsergeenko Jul 17, 2023
c95dde4
Merge pull request #2328 from RedisInsight/fe/feature/RI-4715-update-…
mariasergeenko Jul 17, 2023
9ef1730
Merge pull request #2316 from RedisInsight/be/feature/RI-4632_cluster…
mariasergeenko Jul 17, 2023
700c957
#RI-4718 - fix unhandled error issue in recommendations
Jul 18, 2023
f6bb7e5
Merge pull request #2351 from RedisInsight/be/bugfix/RI-4718-handle-r…
vlad-dargel Jul 18, 2023
0193b63
#RI-4601 - add list of commands for triggers and functions
rsergeenko Jul 19, 2023
9d7475c
#RI-4721 - [Prod][BE] Index creation error for redis 7.1+
egor-zalenski Jul 19, 2023
1e62023
Merge pull request #2363 from RedisInsight/be/feature/RI-4721_Index_c…
vlad-dargel Jul 19, 2023
c968889
Merge pull request #2360 from RedisInsight/feature/RI-4601_triggers_a…
rsergeenko Jul 19, 2023
549f16e
#RI-4768 - Change design for recommendations
egor-zalenski Jul 19, 2023
4d06c9c
#RI-4768 - fix tests
egor-zalenski Jul 19, 2023
5c3b0d2
#RI-4679 - add hello 3 to unsupport commands and add custom error mes…
AmirAllayarovSofteq Jul 20, 2023
ed783a6
Fe/feature/ri 4579 module not loaded (#2349)
AmirAllayarovSofteq Jul 20, 2023
aab7151
#RI-4770 - add icons and update text (#2370)
AmirAllayarovSofteq Jul 20, 2023
1c64269
Merge pull request #2369 from RedisInsight/feature/RI-4679_hello_3_co…
vlad-dargel Jul 20, 2023
3e4b06f
#RI-4768 - fix color
egor-zalenski Jul 20, 2023
3cbf887
fixes for unstable tests
vlad-dargel Jul 20, 2023
70380c7
#RI-4771 - New recommendation is not highlighted
egor-zalenski Jul 20, 2023
1b1fa2f
#RI-4771 - New recommendation is not highlighted
egor-zalenski Jul 20, 2023
e776726
#RI-4772 - DB recommendation has unexpected background for white theme
egor-zalenski Jul 20, 2023
20e531c
#RI-4579 - update icons (#2372)
AmirAllayarovSofteq Jul 20, 2023
f4283c8
#RI-4626 - remove text
rsergeenko Jul 20, 2023
5244420
Merge pull request #2375 from RedisInsight/fe/feature/RI-4626-remove-…
mariasergeenko Jul 20, 2023
12f5e19
Merge pull request #2336 from RedisInsight/fe/feature/RI-4624_change_…
vlad-dargel Jul 20, 2023
a94dc8d
Merge pull request #2374 from RedisInsight/e2e/bugfix/e2e-unstable-te…
vlad-dargel Jul 20, 2023
2a930db
Merge pull request #2368 from RedisInsight/fe/feature/RI-4768_Change_…
mariasergeenko Jul 20, 2023
9a636c2
Merge pull request #2188 from RedisInsight/feature/RI-4502_triggered_…
mariasergeenko Jul 20, 2023
ca73ba3
release 2.30.0 candidate
vlad-dargel Jul 20, 2023
c0613d9
updates after RI-4601
vlad-dargel Jul 20, 2023
ff85235
Merge pull request #2378 from RedisInsight/e2e/bugfix/updates-for-fai…
vlad-dargel Jul 20, 2023
5fa9a2e
store docker artifacts
Jul 24, 2023
919907c
rename destination
Jul 24, 2023
90c9fe0
Merge pull request #2381 from RedisInsight/store_docker_artifacts
Jul 24, 2023
b791f99
#RI-4778 - fix loading functions and libraries list
AmirAllayarovSofteq Jul 24, 2023
d38258b
#RI-4778 - fix loading and image
AmirAllayarovSofteq Jul 24, 2023
355796d
update bundle version
vlad-dargel Jul 24, 2023
09dd28a
Merge pull request #2383 from RedisInsight/fe/bugfix/RI-4776-4778_ico…
vlad-dargel Jul 24, 2023
16dfe19
Merge pull request #2385 from RedisInsight/e2e/bugfix/updates-for-fai…
vlad-dargel Jul 25, 2023
edf4162
#RI-4780 - update links
AmirAllayarovSofteq Jul 25, 2023
a0a6823
fix
vlad-dargel Jul 25, 2023
1036071
Merge pull request #2389 from RedisInsight/bugfix/RI-4785
vlad-dargel Jul 25, 2023
be2a9bd
Merge pull request #2388 from RedisInsight/fe/bugfix/RI-4780_update_l…
mariasergeenko Jul 25, 2023
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
  •  
  •  
  •  
7 changes: 5 additions & 2 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -173,10 +173,10 @@ orbs:
executors:
linux-executor:
machine:
image: ubuntu-2004:202010-01
image: ubuntu-2004:2023.04.2
linux-executor-dlc:
machine:
image: ubuntu-2004:202010-01
image: ubuntu-2004:2023.04.2
docker_layer_caching: true

jobs:
Expand Down Expand Up @@ -790,6 +790,9 @@ jobs:
root: .
paths:
- ./docker-release
- store_artifacts:
path: docker-release
destination: docker-release

# Release jobs
store-build-artifacts:
Expand Down
19 changes: 8 additions & 11 deletions .dockerignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,18 +4,15 @@
.circleci
.docker

coverage
dll
**/node_modules
release

redisinsight/dist
redisinsight/node_modules
redisinsight/main.prod.js

redisinsight/api/.nyc_output
redisinsight/api/coverage
redisinsight/api/dist
redisinsight/api/node_modules
**/dist
**/coverage
**/dll
**/.issues
**/.parcel-cache
**/.temp_cache
**/.nyc_output

redisinsight/ui/dist
redisinsight/main.prod.js
2 changes: 1 addition & 1 deletion configs/webpack.config.renderer.dev.ts
Original file line number Diff line number Diff line change
Expand Up @@ -232,7 +232,7 @@ const configuration: webpack.Configuration = {

new ReactRefreshWebpackPlugin(),

new MonacoWebpackPlugin({ languages: ['json'], features: ['!rename'] }),
new MonacoWebpackPlugin({ languages: ['json', 'javascript', 'typescript'], features: ['!rename'] }),

...htmlPagesNames.map((htmlPageName) => (
new HtmlWebpackPlugin({
Expand Down
2 changes: 1 addition & 1 deletion configs/webpack.config.renderer.prod.ts
Original file line number Diff line number Diff line change
Expand Up @@ -180,7 +180,7 @@ const configuration: webpack.Configuration = {
},

plugins: [
new MonacoWebpackPlugin({ languages: ['json'], features: ['!rename'] }),
new MonacoWebpackPlugin({ languages: ['json', 'javascript', 'typescript'], features: ['!rename'] }),

new webpack.EnvironmentPlugin({
NODE_ENV: 'production',
Expand Down
2 changes: 1 addition & 1 deletion configs/webpack.config.web.common.ts
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ export default {

new HtmlWebpackPlugin({ template: 'index.html.ejs' }),

new MonacoWebpackPlugin({ languages: ['json'], features: ['!rename'] }),
new MonacoWebpackPlugin({ languages: ['json', 'javascript', 'typescript'], features: ['!rename'] }),

new webpack.IgnorePlugin({
checkResource(resource) {
Expand Down
2 changes: 1 addition & 1 deletion electron-builder.json
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@
"type": "distribution",
"hardenedRuntime": true,
"darkModeSupport": true,
"bundleVersion": "50",
"bundleVersion": "70",
"icon": "resources/icon.icns",
"artifactName": "${productName}-${os}-${arch}.${ext}",
"entitlements": "resources/entitlements.mac.plist",
Expand Down
8 changes: 7 additions & 1 deletion redisinsight/__mocks__/monacoMock.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,10 @@ export default function MonacoEditor(props) {
createContextKey: jest.fn(),
focus: jest.fn(),
onDidChangeCursorPosition: jest.fn(),
onDidAttemptReadOnlyEdit: jest.fn(),
executeEdits: jest.fn(),
updateOptions: jest.fn()
updateOptions: jest.fn(),
setSelection: jest.fn(),
},
// monaco
{
Expand Down Expand Up @@ -57,3 +59,7 @@ export const languages = {
InsertAsSnippet: 4
}
}

export const monaco = {
Selection: jest.fn().mockImplementation(() => { return {} })
}
9 changes: 8 additions & 1 deletion redisinsight/api/config/default.ts
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ export default {
tlsKey: process.env.SERVER_TLS_KEY,
staticContent: !!process.env.SERVER_STATIC_CONTENT || false,
buildType: process.env.BUILD_TYPE || 'ELECTRON',
appVersion: process.env.APP_VERSION || '2.28.1',
appVersion: process.env.APP_VERSION || '2.30.0',
requestTimeout: parseInt(process.env.REQUEST_TIMEOUT, 10) || 25000,
excludeRoutes: [],
excludeAuthRoutes: [],
Expand Down Expand Up @@ -195,6 +195,13 @@ export default {
url: process.env.COMMANDS_REDISBLOOM_URL
|| 'https://raw.githubusercontent.com/RedisBloom/RedisBloom/master/commands.json',
},
{
name: 'triggers_and_functions',
url: process.env.COMMANDS_TRIGGERS_AND_FUNCTIONS_URL
|| 'https://raw.githubusercontent.com/RedisGears/RedisGears/master/commands.json',
defaultUrl: process.env.COMMANDS_TRIGGERS_AND_FUNCTIONS_DEFAULT_URL
|| 'https://s3.amazonaws.com/redisinsight.download/public/commands/triggers_and_functions.json',
},
],
connections: {
timeout: parseInt(process.env.CONNECTIONS_TIMEOUT_DEFAULT, 10) || 30 * 1_000, // 30 sec
Expand Down
2 changes: 1 addition & 1 deletion redisinsight/api/config/swagger.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ const SWAGGER_CONFIG: Omit<OpenAPIObject, 'paths'> = {
info: {
title: 'RedisInsight Backend API',
description: 'RedisInsight Backend API',
version: '2.28.1',
version: '2.30.0',
},
tags: [],
};
Expand Down
4 changes: 2 additions & 2 deletions redisinsight/api/scripts/default-commands.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,10 @@ const COMMANDS_CONFIG = get('commands');

async function init() {
try {
await Promise.all(COMMANDS_CONFIG.map(async ({ name, url }) => {
await Promise.all(COMMANDS_CONFIG.map(async ({ name, url, defaultUrl }) => {
try {
console.log(`Trying to get ${name} commands...`);
const { data } = await axios.get(url, {
const { data } = await axios.get(defaultUrl || url, {
responseType: 'text',
transformResponse: [(raw) => raw],
});
Expand Down
1 change: 1 addition & 0 deletions redisinsight/api/src/__mocks__/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -24,3 +24,4 @@ export * from './browser-history';
export * from './database-recommendation';
export * from './feature';
export * from './cloud-autodiscovery';
export * from './triggered-functions';
36 changes: 36 additions & 0 deletions redisinsight/api/src/__mocks__/triggered-functions.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
export const mockCommonLibraryReply = [
'api_version', '1.0',
'engine', 'js',
'configuration', null,
'name', 'libraryName',
'pending_jobs', 0,
'user', 'default',
];

export const mockSimpleLibraryReply = [
'api_version', '1.0',
'engine', 'js',
'configuration', null,
'functions', ['foo'],
'keyspace_triggers', ['keyspace'],
'cluster_functions', ['cluster'],
'stream_triggers', ['stream'],
'name', 'libraryName',
'pending_jobs', 0,
'user', 'default',
];

export const mockVerboseLibraryReply = [
'api_version', '1.0',
'engine', 'js',
'configuration', null,
'name', 'libraryName',
'pending_jobs', 0,
'user', 'default',
'functions', [['name', 'function', 'description', 'description', 'is_async', 1, 'flags', ['flag1']]],
'keyspace_triggers', [],
'cluster_functions', ['foo', 'bar'],
'stream_triggers', [[
'name', 'stream', 'description', 'description', 'prefix', 'prefix', 'trim', 0, 'window', 1, 'streams', [['key', 'value']],
]],
];
2 changes: 2 additions & 0 deletions redisinsight/api/src/app.module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ import { NotificationModule } from 'src/modules/notification/notification.module
import { BulkActionsModule } from 'src/modules/bulk-actions/bulk-actions.module';
import { ClusterMonitorModule } from 'src/modules/cluster-monitor/cluster-monitor.module';
import { DatabaseAnalysisModule } from 'src/modules/database-analysis/database-analysis.module';
import { TriggeredFunctionsModule } from 'src/modules/triggered-functions/triggered-functions.module';
import { ServerModule } from 'src/modules/server/server.module';
import { LocalDatabaseModule } from 'src/local-database.module';
import { CoreModule } from 'src/core.module';
Expand Down Expand Up @@ -59,6 +60,7 @@ const PATH_CONFIG = config.get('dir_path');
CustomTutorialModule.register(),
DatabaseAnalysisModule,
DatabaseImportModule,
TriggeredFunctionsModule,
...(SERVER_CONFIG.staticContent
? [
ServeStaticModule.forRoot({
Expand Down
5 changes: 5 additions & 0 deletions redisinsight/api/src/app.routes.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import { SlowLogModule } from 'src/modules/slow-log/slow-log.module';
import { PubSubModule } from 'src/modules/pub-sub/pub-sub.module';
import { ClusterMonitorModule } from 'src/modules/cluster-monitor/cluster-monitor.module';
import { DatabaseAnalysisModule } from 'src/modules/database-analysis/database-analysis.module';
import { TriggeredFunctionsModule } from 'src/modules/triggered-functions/triggered-functions.module';
import { BulkActionsModule } from 'src/modules/bulk-actions/bulk-actions.module';
import { DatabaseRecommendationModule } from 'src/modules/database-recommendation/database-recommendation.module';

Expand Down Expand Up @@ -49,6 +50,10 @@ export const routes: Routes = [
path: '/:dbInstance',
module: DatabaseRecommendationModule,
},
{
path: '/:dbInstance',
module: TriggeredFunctionsModule,
},
],
},
];
15 changes: 8 additions & 7 deletions redisinsight/api/src/common/constants/recommendations.ts
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
export enum SearchVisualizationCommands {
FT_INFO = "FT.INFO",
FT_SEARCH = "FT.SEARCH",
FT_AGGREGATE = "FT.AGGREGATE",
FT_PROFILE = "FT.PROFILE",
FT_EXPLAIN = "FT.EXPLAIN",
TS_RANGE = "TS.RANGE",
TS_MRANGE = "TS.MRANGE",
FT_INFO = 'FT.INFO',
FT_SEARCH = 'FT.SEARCH',
FT_AGGREGATE = 'FT.AGGREGATE',
FT_PROFILE = 'FT.PROFILE',
FT_EXPLAIN = 'FT.EXPLAIN',
TS_RANGE = 'TS.RANGE',
TS_MRANGE = 'TS.MRANGE',
}

export const LUA_SCRIPT_RECOMMENDATION_COUNT = 10;
Expand All @@ -23,3 +23,4 @@ export const COMBINE_SMALL_STRINGS_TO_HASHES_RECOMMENDATION_KEYS_COUNT = 10;
export const SEARCH_HASH_RECOMMENDATION_KEYS_FOR_CHECK = 50;
export const SEARCH_HASH_RECOMMENDATION_KEYS_LENGTH = 2;
export const RTS_KEYS_FOR_CHECK = 100;
export const LUA_TO_FUNCTIONS_RECOMMENDATION_COUNT = 0;
1 change: 1 addition & 0 deletions redisinsight/api/src/constants/error-messages.ts
Original file line number Diff line number Diff line change
Expand Up @@ -67,4 +67,5 @@ export default {
INCREASE_MINIMUM_LIMIT: (count: string) => `Set MAXSEARCHRESULTS to at least ${count}.`,
INVALID_WINDOW_ID: 'Invalid window id.',
UNDEFINED_WINDOW_ID: 'Undefined window id.',
LIBRARY_NOT_EXIST: 'This library does not exist.',
};
5 changes: 4 additions & 1 deletion redisinsight/api/src/constants/recommendations.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
export const RECOMMENDATION_NAMES = Object.freeze({
LUA_SCRIPT: 'luaScript',
LUA_TO_FUNCTIONS: 'luaToFunctions',
BIG_HASHES: 'bigHashes',
BIG_STRINGS: 'bigStrings',
BIG_SETS: 'bigSets',
Expand All @@ -20,6 +21,8 @@ export const RECOMMENDATION_NAMES = Object.freeze({
STRING_TO_JSON: 'stringToJson',
SEARCH_VISUALIZATION: 'searchVisualization',
SEARCH_HASH: 'searchHash',
FUNCTIONS_WITH_KEYSPACE: 'functionsWithKeyspace',
FUNCTIONS_WITH_STREAMS: 'functionsWithStreams',
});

export const ONE_NODE_RECOMMENDATIONS = [
Expand All @@ -37,4 +40,4 @@ export const REDIS_STACK = [
RECOMMENDATION_NAMES.SEARCH_INDEXES,
RECOMMENDATION_NAMES.SEARCH_JSON,
RECOMMENDATION_NAMES.STRING_TO_JSON,
]
];
13 changes: 12 additions & 1 deletion redisinsight/api/src/constants/redis-modules.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ export enum AdditionalRedisModuleName {
RedisJSON = 'ReJSON',
RediSearch = 'search',
RedisTimeSeries = 'timeseries',
'Triggers and Functions' = 'redisgears'
}

export enum AdditionalSearchModuleName {
Expand All @@ -14,6 +15,11 @@ export enum AdditionalSearchModuleName {
FTL = 'ftl',
}

export enum AdditionalTriggersAndFunctionsModuleName {
TriggersAndFunctions = 'redisgears',
TriggersAndFunctions2 = 'redisgears_2',
}

export const SUPPORTED_REDIS_MODULES = Object.freeze({
ai: AdditionalRedisModuleName.RedisAI,
graph: AdditionalRedisModuleName.RedisGraph,
Expand Down Expand Up @@ -59,4 +65,9 @@ export const REDISEARCH_MODULES: string[] = [
AdditionalSearchModuleName.SearchLight,
AdditionalSearchModuleName.FT,
AdditionalSearchModuleName.FTL,
]
];

export const TRIGGERED_AND_FUNCTIONS_MODULES: string[] = [
AdditionalTriggersAndFunctionsModuleName.TriggersAndFunctions,
AdditionalTriggersAndFunctionsModuleName.TriggersAndFunctions2,
];
Original file line number Diff line number Diff line change
Expand Up @@ -224,12 +224,19 @@ describe('KeysBusinessService', () => {
{ keys: [getKeyInfoResponse.name] },
);

expect(recommendationService.check).toBeCalledTimes(2);
expect(recommendationService.check).toBeCalledWith(
mockBrowserClientMetadata,
RECOMMENDATION_NAMES.SEARCH_JSON,
{ keys: result, client: nodeClient, databaseId: mockBrowserClientMetadata.databaseId },
);
expect(recommendationService.check).toBeCalledTimes(1);
expect(recommendationService.check).toBeCalledWith(
mockBrowserClientMetadata,
RECOMMENDATION_NAMES.FUNCTIONS_WITH_STREAMS,
{ keys: result, client: nodeClient, databaseId: mockBrowserClientMetadata.databaseId },
);

expect(recommendationService.check).toBeCalledTimes(2);
});
it("user don't have required permissions for getKeyInfo", async () => {
const replyError: ReplyError = {
Expand Down Expand Up @@ -322,7 +329,7 @@ describe('KeysBusinessService', () => {
expect(browserHistory.create).not.toHaveBeenCalled();
});
it('should call recommendationService', async () => {
const response = [mockGetKeysWithDetailsResponse]
const response = [mockGetKeysWithDetailsResponse];
standaloneScanner.getKeys = jest
.fn()
.mockResolvedValue(response);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -184,11 +184,18 @@ export class KeysBusinessService {
const client = await this.browserTool.getRedisClient(clientMetadata);
const scanner = this.scanner.getStrategy(client.isCluster ? ConnectionType.CLUSTER : ConnectionType.STANDALONE);
const result = await scanner.getKeysInfo(client, dto.keys, dto.type);

this.recommendationService.check(
clientMetadata,
RECOMMENDATION_NAMES.SEARCH_JSON,
{ keys: result, client, databaseId: clientMetadata.databaseId },
);
this.recommendationService.check(
clientMetadata,
RECOMMENDATION_NAMES.FUNCTIONS_WITH_STREAMS,
{ keys: result, client, databaseId: clientMetadata.databaseId },
);

return plainToClass(GetKeyInfoResponse, result);
} catch (error) {
this.logger.error(`Failed to get keys info: ${error.message}.`);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ export class RedisearchService {
);
}
} catch (error) {
if (!error.message?.includes('Unknown Index name')) {
if (!error.message?.toLowerCase()?.includes('unknown index name')) {
throw error;
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { getUnsupportedCommands } from './getUnsupportedCommands';

describe('cli unsupported commands', () => {
it('should return correct list', () => {
const expectedResult = ['monitor', 'subscribe', 'psubscribe', 'ssubscribe', 'sync', 'psync', 'script debug'];
const expectedResult = ['monitor', 'subscribe', 'psubscribe', 'ssubscribe', 'sync', 'psync', 'script debug', 'hello 3'];

expect(getUnsupportedCommands()).toEqual(expectedResult);
});
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ export enum CliToolUnsupportedCommands {
Sync = 'sync',
PSync = 'psync',
ScriptDebug = 'script debug',
Hello3 = 'hello 3',
}

export const getUnsupportedCommands = (): string[] => [
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@ export class DatabaseAnalysisService {
client: nodeResult.client,
keys: nodeResult.keys,
indexes: nodeResult.indexes,
libraries: nodeResult.libraries,
total: progress.total,
globalClient: client,
exclude: recommendationToExclude,
Expand Down
Loading