Skip to content

Commit e40366f

Browse files
Merge pull request #2516 from RedisInsight/release/2.32.0
Release/2.32.0 to latest
2 parents e8b3843 + 585bc65 commit e40366f

File tree

760 files changed

+27073
-6405
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

760 files changed

+27073
-6405
lines changed

.circleci/config.yml

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -565,6 +565,16 @@ jobs:
565565
exit 0;
566566
fi
567567
568+
export RI_CLOUD_IDP_AUTHORIZE_URL=$RI_CLOUD_IDP_AUTHORIZE_URL_STAGE
569+
export RI_CLOUD_IDP_TOKEN_URL=$RI_CLOUD_IDP_TOKEN_URL_STAGE
570+
export RI_CLOUD_IDP_ISSUER=$RI_CLOUD_IDP_ISSUER_STAGE
571+
export RI_CLOUD_IDP_CLIENT_ID=$RI_CLOUD_IDP_CLIENT_ID_STAGE
572+
export RI_CLOUD_IDP_REDIRECT_URI=$RI_CLOUD_IDP_REDIRECT_URI_STAGE
573+
export RI_CLOUD_IDP_GOOGLE_ID=$RI_CLOUD_IDP_GOOGLE_ID_STAGE
574+
export RI_CLOUD_IDP_GH_ID=$RI_CLOUD_IDP_GH_ID_STAGE
575+
export RI_CLOUD_API_URL=$RI_CLOUD_API_URL_STAGE
576+
export RI_CLOUD_CAPI_URL=$RI_CLOUD_CAPI_URL_STAGE
577+
568578
if [ << parameters.env >> == 'stage' ]; then
569579
UPGRADES_LINK=$UPGRADES_LINK_STAGE SEGMENT_WRITE_KEY=$SEGMENT_WRITE_KEY_STAGE yarn package:stage
570580
exit 0;
@@ -641,6 +651,16 @@ jobs:
641651
exit 0;
642652
fi
643653
654+
export RI_CLOUD_IDP_AUTHORIZE_URL=$RI_CLOUD_IDP_AUTHORIZE_URL_STAGE
655+
export RI_CLOUD_IDP_TOKEN_URL=$RI_CLOUD_IDP_TOKEN_URL_STAGE
656+
export RI_CLOUD_IDP_ISSUER=$RI_CLOUD_IDP_ISSUER_STAGE
657+
export RI_CLOUD_IDP_CLIENT_ID=$RI_CLOUD_IDP_CLIENT_ID_STAGE
658+
export RI_CLOUD_IDP_REDIRECT_URI=$RI_CLOUD_IDP_REDIRECT_URI_STAGE
659+
export RI_CLOUD_IDP_GOOGLE_ID=$RI_CLOUD_IDP_GOOGLE_ID_STAGE
660+
export RI_CLOUD_IDP_GH_ID=$RI_CLOUD_IDP_GH_ID_STAGE
661+
export RI_CLOUD_API_URL=$RI_CLOUD_API_URL_STAGE
662+
export RI_CLOUD_CAPI_URL=$RI_CLOUD_CAPI_URL_STAGE
663+
644664
if [ << parameters.env >> == 'stage' ]; then
645665
UPGRADES_LINK=$UPGRADES_LINK_STAGE SEGMENT_WRITE_KEY=$SEGMENT_WRITE_KEY_STAGE yarn package:stage && yarn package:mas
646666
rm -rf release/mac
@@ -697,6 +717,16 @@ jobs:
697717
exit 0;
698718
fi
699719
720+
export RI_CLOUD_IDP_AUTHORIZE_URL=$RI_CLOUD_IDP_AUTHORIZE_URL_STAGE
721+
export RI_CLOUD_IDP_TOKEN_URL=$RI_CLOUD_IDP_TOKEN_URL_STAGE
722+
export RI_CLOUD_IDP_ISSUER=$RI_CLOUD_IDP_ISSUER_STAGE
723+
export RI_CLOUD_IDP_CLIENT_ID=$RI_CLOUD_IDP_CLIENT_ID_STAGE
724+
export RI_CLOUD_IDP_REDIRECT_URI=$RI_CLOUD_IDP_REDIRECT_URI_STAGE
725+
export RI_CLOUD_IDP_GOOGLE_ID=$RI_CLOUD_IDP_GOOGLE_ID_STAGE
726+
export RI_CLOUD_IDP_GH_ID=$RI_CLOUD_IDP_GH_ID_STAGE
727+
export RI_CLOUD_API_URL=$RI_CLOUD_API_URL_STAGE
728+
export RI_CLOUD_CAPI_URL=$RI_CLOUD_CAPI_URL_STAGE
729+
700730
if [ << parameters.env >> == 'stage' ]; then
701731
UPGRADES_LINK=$UPGRADES_LINK_STAGE SEGMENT_WRITE_KEY=$SEGMENT_WRITE_KEY_STAGE yarn package:stage
702732
rm -rf release/win-unpacked
@@ -1014,6 +1044,18 @@ workflows:
10141044
only:
10151045
- /^e2e/feature.*/
10161046
- /^e2e/bugfix.*/
1047+
- setup-sign-certificates:
1048+
name: Setup sign certificates (stage)
1049+
requires:
1050+
- Start E2E Tests
1051+
- setup-build:
1052+
name: Setup build (stage)
1053+
requires:
1054+
- Setup sign certificates (stage)
1055+
- linux:
1056+
name: Build app - Linux (stage)
1057+
requires:
1058+
- Setup build (stage)
10171059
- docker:
10181060
name: Build docker image
10191061
requires:
@@ -1024,6 +1066,11 @@ workflows:
10241066
parallelism: 4
10251067
requires:
10261068
- Build docker image
1069+
- e2e-app-image:
1070+
name: E2ETest (AppImage)
1071+
parallelism: 2
1072+
requires:
1073+
- Build app - Linux (stage)
10271074
# Workflow for feature, bugfix, main branches
10281075
feature-main-branch:
10291076
jobs:

configs/webpack.config.main.prod.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,16 @@ export default merge(baseConfig, {
6969
CONNECTIONS_TIMEOUT_DEFAULT: 'CONNECTIONS_TIMEOUT_DEFAULT' in process.env
7070
? process.env.CONNECTIONS_TIMEOUT_DEFAULT
7171
: toString(30 * 1000), // 30 sec
72+
// cloud auth
73+
RI_CLOUD_IDP_AUTHORIZE_URL: 'RI_CLOUD_IDP_AUTHORIZE_URL' in process.env ? process.env.RI_CLOUD_IDP_AUTHORIZE_URL: '',
74+
RI_CLOUD_IDP_TOKEN_URL: 'RI_CLOUD_IDP_TOKEN_URL' in process.env ? process.env.RI_CLOUD_IDP_TOKEN_URL: '',
75+
RI_CLOUD_IDP_ISSUER: 'RI_CLOUD_IDP_ISSUER' in process.env ? process.env.RI_CLOUD_IDP_ISSUER: '',
76+
RI_CLOUD_IDP_CLIENT_ID: 'RI_CLOUD_IDP_CLIENT_ID' in process.env ? process.env.RI_CLOUD_IDP_CLIENT_ID: '',
77+
RI_CLOUD_IDP_REDIRECT_URI: 'RI_CLOUD_IDP_REDIRECT_URI' in process.env ? process.env.RI_CLOUD_IDP_REDIRECT_URI: '',
78+
RI_CLOUD_IDP_GOOGLE_ID: 'RI_CLOUD_IDP_GOOGLE_ID' in process.env ? process.env.RI_CLOUD_IDP_GOOGLE_ID: '',
79+
RI_CLOUD_IDP_GH_ID: 'RI_CLOUD_IDP_GH_ID' in process.env ? process.env.RI_CLOUD_IDP_GH_ID: '',
80+
RI_CLOUD_API_URL: 'RI_CLOUD_API_URL' in process.env ? process.env.RI_CLOUD_API_URL: '',
81+
RI_CLOUD_CAPI_URL: 'RI_CLOUD_CAPI_URL' in process.env ? process.env.RI_CLOUD_CAPI_URL: '',
7282
}),
7383

7484
new webpack.DefinePlugin({

electron-builder.json

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,12 @@
1515
"node_modules/sqlite3",
1616
"node_modules/cpu-features"
1717
],
18+
"protocols": [{
19+
"name": "RedisInsight",
20+
"role": "Viewer",
21+
"schemes": ["redisinsight"]
22+
}
23+
],
1824
"mac": {
1925
"target": [
2026
{
@@ -29,7 +35,6 @@
2935
"type": "distribution",
3036
"hardenedRuntime": true,
3137
"darkModeSupport": true,
32-
"bundleVersion": "88678",
3338
"icon": "resources/icon.icns",
3439
"artifactName": "${productName}-${os}-${arch}.${ext}",
3540
"entitlements": "resources/entitlements.mac.plist",
@@ -99,6 +104,11 @@
99104
"Redis Labs Inc."
100105
]
101106
},
107+
"nsis": {
108+
"oneClick": false,
109+
"perMachine": false,
110+
"allowToChangeInstallationDirectory": true
111+
},
102112
"linux": {
103113
"icon": "./resources/icons",
104114
"target": [

jest.config.js

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
const { TextDecoder, TextEncoder } = require('util');
1+
const { TextDecoder, TextEncoder } = require('util')
22

33
/** @type {import('ts-jest/dist/types').InitialOptionsTsJest} */
44
module.exports = {
@@ -54,10 +54,10 @@ module.exports = {
5454
],
5555
coverageThreshold: {
5656
global: {
57-
statements: 78,
58-
branches: 61,
59-
functions: 70,
60-
lines: 79,
57+
statements: 80,
58+
branches: 63,
59+
functions: 72,
60+
lines: 80,
6161
},
6262
// './redisinsight/ui/src/slices/**/*.ts': {
6363
// statements: 90,
@@ -67,4 +67,4 @@ module.exports = {
6767
TextDecoder,
6868
TextEncoder,
6969
},
70-
};
70+
}

package.json

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,8 @@
2525
"lint:e2e": "yarn --cwd tests/e2e lint",
2626
"package": "yarn package:dev",
2727
"package:prod": "ts-node ./scripts/prebuild.js dist && yarn build:prod && electron-builder build -p never",
28-
"package:stage": "ts-node ./scripts/prebuild.js dist && yarn build:stage && electron-builder build -p never",
29-
"package:mas": "electron-builder build -p never -m mas:universal -c ./electron-builder-mas.js",
28+
"package:stage": "ts-node ./scripts/prebuild.js dist && yarn build:stage && electron-builder build -p never -c.mac.bundleVersion=$CIRCLE_BUILD_NUM",
29+
"package:mas": "electron-builder build -p never -m mas:universal -c.mac.bundleVersion=$CIRCLE_BUILD_NUM -c ./electron-builder-mas.js",
3030
"package:mas:dev": "electron-builder build -p never -m mas-dev:universal -c ./electron-builder-mas.js",
3131
"package:dev": "yarn build && cross-env DEBUG=electron-builder electron-builder build -p never",
3232
"package:win": "yarn build:prod && electron-builder build --win --x64 -p never",
@@ -80,7 +80,11 @@
8080
"homepage": "https://github.com/RedisInsight/RedisInsight#readme",
8181
"resolutions": {
8282
"**/node-sass": "^8.0.0",
83-
"**/trim": "0.0.3"
83+
"**/trim": "0.0.3",
84+
"word-wrap": "1.2.4",
85+
"electron-builder/app-builder-lib/@electron/universal/dir-compare/minimatch": "^3.0.5",
86+
"**/semver": "^7.5.2",
87+
"rawproto/protobufjs": "^7.2.4"
8488
},
8589
"devDependencies": {
8690
"@babel/core": "^7.12.9",
@@ -125,6 +129,7 @@
125129
"@types/ioredis": "^4.26.0",
126130
"@types/is-glob": "^4.0.2",
127131
"@types/jest": "^27.5.2",
132+
"@types/json-bigint": "^1.0.1",
128133
"@types/jsonpath": "^0.2.0",
129134
"@types/lodash": "^4.14.171",
130135
"@types/node": "14.14.10",
@@ -243,6 +248,7 @@
243248
"html-react-parser": "^1.2.4",
244249
"java-object-serialization": "^0.1.1",
245250
"jpickle": "^0.4.1",
251+
"json-bigint": "^1.0.0",
246252
"jsonpath": "^1.1.1",
247253
"lodash": "^4.17.21",
248254
"lz4js": "^0.2.0",
@@ -253,7 +259,6 @@
253259
"react-contenteditable": "^3.3.5",
254260
"react-dom": "^18.2.0",
255261
"react-hotkeys-hook": "^3.3.1",
256-
"react-json-pretty": "^2.2.0",
257262
"react-jsx-parser": "^1.28.4",
258263
"react-monaco-editor": "^0.45.0",
259264
"react-redux": "^7.2.2",

redisinsight/api/.eslintrc.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,12 @@ module.exports = {
1818
parserOptions: {
1919
project: './tsconfig.json',
2020
},
21+
overrides: [
22+
{
23+
files: [ '**/*.spec.ts' ],
24+
rules: {
25+
'no-duplicate-string': 'off',
26+
}
27+
}
28+
]
2129
};

redisinsight/api/config/default.ts

Lines changed: 33 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
import { join } from 'path';
22
import * as os from 'os';
3+
import { RequestMethod } from '@nestjs/common';
4+
import { version } from '../package.json';
35

46
const homedir = join(__dirname, '..');
57

@@ -38,6 +40,7 @@ export default {
3840
clientCertificates: join(homedir, 'client_certificates'),
3941
},
4042
server: {
43+
version,
4144
env: 'development',
4245
listenInterface: process.env.RI_HOSTNAME ?? '0.0.0.0',
4346
port: 5000,
@@ -58,7 +61,7 @@ export default {
5861
tlsKey: process.env.SERVER_TLS_KEY,
5962
staticContent: !!process.env.SERVER_STATIC_CONTENT || false,
6063
buildType: process.env.BUILD_TYPE || 'ELECTRON',
61-
appVersion: process.env.APP_VERSION || '2.30.0',
64+
appVersion: process.env.APP_VERSION || '2.32.0',
6265
requestTimeout: parseInt(process.env.REQUEST_TIMEOUT, 10) || 25000,
6366
excludeRoutes: [],
6467
excludeAuthRoutes: [],
@@ -72,11 +75,6 @@ export default {
7275
synchronize: process.env.DB_SYNC ? process.env.DB_SYNC === 'true' : false,
7376
migrationsRun: process.env.DB_MIGRATIONS ? process.env.DB_MIGRATIONS === 'true' : true,
7477
},
75-
redis_cloud: {
76-
url: process.env.REDIS_CLOUD_URL || 'https://api-cloudapi.qa.redislabs.com/v1',
77-
cloudDiscoveryTimeout: parseInt(process.env.RI_CLOUD_DISCOVERY_TIMEOUT, 10) || 60 * 1000, // 1 min
78-
cloudDatabaseConnectionTimeout: parseInt(process.env.RI_CLOUD_DATABASE_CONNECTION_TIMEOUT, 10) || 30 * 1000,
79-
},
8078
redis_clients: {
8179
idleSyncInterval: parseInt(process.env.CLIENTS_IDLE_SYNC_INTERVAL, 10) || 1000 * 60 * 60, // 1hr
8280
maxIdleThreshold: parseInt(process.env.CLIENTS_MAX_IDLE_THRESHOLD, 10) || 1000 * 60 * 60, // 1hr
@@ -199,8 +197,6 @@ export default {
199197
name: 'triggers_and_functions',
200198
url: process.env.COMMANDS_TRIGGERS_AND_FUNCTIONS_URL
201199
|| 'https://raw.githubusercontent.com/RedisGears/RedisGears/master/commands.json',
202-
defaultUrl: process.env.COMMANDS_TRIGGERS_AND_FUNCTIONS_DEFAULT_URL
203-
|| 'https://s3.amazonaws.com/redisinsight.download/public/commands/triggers_and_functions.json',
204200
},
205201
],
206202
connections: {
@@ -218,4 +214,33 @@ export default {
218214
|| 'https://raw.githubusercontent.com/RedisInsight/RedisInsight/main/redisinsight/api/config/features-config.json',
219215
syncInterval: parseInt(process.env.RI_FEATURES_CONFIG_SYNC_INTERVAL, 10) || 1_000 * 60 * 60 * 4, // 4h
220216
},
217+
cloud: {
218+
apiUrl: process.env.RI_CLOUD_API_URL || 'https://app-sm.k8s-cloudapi.sm-qa.qa.redislabs.com/api/v1',
219+
capiUrl: process.env.RI_CLOUD_CAPI_URL || 'https://api-k8s-cloudapi.qa.redislabs.com/v1',
220+
capiKeyName: process.env.RI_CLOUD_CAPI_KEY_NAME || 'RedisInsight',
221+
freeSubscriptionName: process.env.RI_CLOUD_FREE_SUBSCRIPTION_NAME || 'My free subscription',
222+
freeDatabaseName: process.env.RI_CLOUD_FREE_DATABASE_NAME || 'Redis-Stack-in-Redis-Enterprise-Cloud',
223+
defaultPlanRegion: process.env.RI_CLOUD_DEFAULT_PLAN_REGION || 'eu-west-1',
224+
jobIterationInterval: parseInt(process.env.RI_CLOUD_JOB_ITERATION_INTERVAL, 10) || 10_000, // 10 sec
225+
discoveryTimeout: parseInt(process.env.RI_CLOUD_DISCOVERY_TIMEOUT, 10) || 60 * 1000, // 1 min
226+
databaseConnectionTimeout: parseInt(process.env.RI_CLOUD_DATABASE_CONNECTION_TIMEOUT, 10) || 30 * 1000,
227+
idp: {
228+
google: {
229+
authorizeUrl: process.env.RI_CLOUD_IDP_GOOGLE_AUTHORIZE_URL || process.env.RI_CLOUD_IDP_AUTHORIZE_URL,
230+
tokenUrl: process.env.RI_CLOUD_IDP_GOOGLE_TOKEN_URL || process.env.RI_CLOUD_IDP_TOKEN_URL,
231+
issuer: process.env.RI_CLOUD_IDP_GOOGLE_ISSUER || process.env.RI_CLOUD_IDP_ISSUER,
232+
clientId: process.env.RI_CLOUD_IDP_GOOGLE_CLIENT_ID || process.env.RI_CLOUD_IDP_CLIENT_ID,
233+
redirectUri: process.env.RI_CLOUD_IDP_GOOGLE_REDIRECT_URI || process.env.RI_CLOUD_IDP_REDIRECT_URI,
234+
idp: process.env.RI_CLOUD_IDP_GOOGLE_ID,
235+
},
236+
github: {
237+
authorizeUrl: process.env.RI_CLOUD_IDP_GH_AUTHORIZE_URL || process.env.RI_CLOUD_IDP_AUTHORIZE_URL,
238+
tokenUrl: process.env.RI_CLOUD_IDP_GH_TOKEN_URL || process.env.RI_CLOUD_IDP_TOKEN_URL,
239+
issuer: process.env.RI_CLOUD_IDP_GH_ISSUER || process.env.RI_CLOUD_IDP_ISSUER,
240+
clientId: process.env.RI_CLOUD_IDP_GH_CLIENT_ID || process.env.RI_CLOUD_IDP_CLIENT_ID,
241+
redirectUri: process.env.RI_CLOUD_IDP_GH_REDIRECT_URI || process.env.RI_CLOUD_IDP_REDIRECT_URI,
242+
idp: process.env.RI_CLOUD_IDP_GH_ID,
243+
},
244+
},
245+
},
221246
};

redisinsight/api/config/features-config.json

Lines changed: 40 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"version": 2,
2+
"version": 2.3201,
33
"features": {
44
"insightsRecommendations": {
55
"flag": true,
@@ -16,6 +16,45 @@
1616
"cond": "eq"
1717
}
1818
]
19+
},
20+
"cloudSso": {
21+
"flag": true,
22+
"perc": [[0,100]],
23+
"filters": [
24+
{
25+
"name": "config.server.buildType",
26+
"value": "ELECTRON",
27+
"cond": "eq"
28+
}
29+
],
30+
"data": {
31+
"selectPlan": {
32+
"components": {
33+
"triggersAndFunctions": [
34+
{
35+
"provider": "AWS",
36+
"regions": ["ap-southeast-1"]
37+
},
38+
{
39+
"provider": "GCP",
40+
"regions": ["asia-northeast1"]
41+
}
42+
]
43+
}
44+
}
45+
}
46+
},
47+
"redisModuleFilter": {
48+
"flag": true,
49+
"perc": [[0, 100]],
50+
"data": {
51+
"hideByName": [
52+
{
53+
"expression": "^RedisGraph.",
54+
"options": "i"
55+
}
56+
]
57+
}
1958
}
2059
}
2160
}

redisinsight/api/config/ormconfig.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,10 @@ import { BrowserHistoryEntity } from 'src/modules/browser/entities/browser-histo
1717
import { CustomTutorialEntity } from 'src/modules/custom-tutorial/entities/custom-tutorial.entity';
1818
import { FeatureEntity } from 'src/modules/feature/entities/feature.entity';
1919
import { FeaturesConfigEntity } from 'src/modules/feature/entities/features-config.entity';
20-
import { CloudDatabaseDetailsEntity } from 'src/modules/cloud/autodiscovery/entities/cloud-database-details.entity';
20+
import { CloudDatabaseDetailsEntity } from 'src/modules/cloud/database/entities/cloud-database-details.entity';
2121
import migrations from '../migration';
2222
import * as config from '../src/utils/config';
23+
import { CloudCapiKeyEntity } from 'src/modules/cloud/capi-key/entity/cloud-capi-key.entity';
2324

2425
const dbConfig = config.get('db');
2526

@@ -46,6 +47,7 @@ const ormConfig = {
4647
FeatureEntity,
4748
FeaturesConfigEntity,
4849
CloudDatabaseDetailsEntity,
50+
CloudCapiKeyEntity,
4951
],
5052
migrations,
5153
};

redisinsight/api/config/production.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ export default {
3030
db: {
3131
database: join(homedir, 'redisinsight.db'),
3232
},
33-
redis_cloud: {
34-
url: process.env.REDIS_CLOUD_URL || 'https://api.redislabs.com/v1',
33+
cloud: {
34+
cApiUrl: process.env.RI_CLOUD_CAPI_URL || 'https://api.redislabs.com/v1',
3535
},
3636
};

0 commit comments

Comments
 (0)