Skip to content

Commit 40a1123

Browse files
committed
Merge branch 'main' into fe/feature/RI-4230_workbench_screens
2 parents 8a2fb0c + d2aec2d commit 40a1123

File tree

227 files changed

+12951
-3591
lines changed

Some content is hidden

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

227 files changed

+12951
-3591
lines changed

.circleci/config.yml

Lines changed: 35 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,10 @@ aliases:
88
security create-keychain -p mysecretpassword $KEYCHAIN
99
security default-keychain -s $KEYCHAIN
1010
security unlock-keychain -p mysecretpassword $KEYCHAIN
11-
security import certs/cert.p12 -k $KEYCHAIN -P "$CSC_KEY_PASSWORD" -T /usr/bin/codesign
11+
security set-keychain-settings -u -t 10000000 $KEYCHAIN
12+
security import certs/mac-developer.p12 -k $KEYCHAIN -P "$CSC_KEY_PASSWORD" -T /usr/bin/codesign -T /usr/bin/productbuild
13+
security import certs/mas-distribution.p12 -k $KEYCHAIN -P "$CSC_MAS_PASSWORD" -T /usr/bin/codesign -T /usr/bin/productbuild
14+
security import certs/mac-installer.p12 -k $KEYCHAIN -P "$CSC_MAC_INSTALLER_PASSWORD" -T /usr/bin/codesign -T /usr/bin/productbuild
1215
security set-key-partition-list -S apple-tool:,apple: -s -k mysecretpassword $KEYCHAIN
1316
environment:
1417
KEYCHAIN: redisinsight.keychain
@@ -129,7 +132,7 @@ aliases:
129132
key: v1-ui-deps-{{ checksum "redisinsight/api/yarn.lock" }}
130133

131134
orbs:
132-
win: circleci/[email protected].0
135+
win: circleci/[email protected].1
133136
node: circleci/[email protected]
134137
aws: circleci/[email protected]
135138

@@ -447,7 +450,9 @@ jobs:
447450
name: Setup sign certificates
448451
command: |
449452
mkdir -p certs
450-
echo "$CSC_P12_BASE64" | base64 -id > certs/cert.p12
453+
echo "$CSC_P12_BASE64" | base64 -id > certs/mac-developer.p12
454+
echo "$CSC_MAC_INSTALLER_P12_BASE64" | base64 -id > certs/mac-installer.p12
455+
echo "$CSC_MAS_P12_BASE64" | base64 -id > certs/mas-distribution.p12
451456
echo "$WIN_CSC_PFX_BASE64" | base64 -id > certs/redislabs_win.pfx
452457
- persist_to_workspace:
453458
root: .
@@ -469,19 +474,11 @@ jobs:
469474
mkdir electron
470475
471476
CURRENT_VERSION=$(jq -r ".version" redisinsight/package.json)
472-
echo "Version: ${CURRENT_VERSION}"
473-
474-
if [ << parameters.env >> == "prod" ]; then
475-
echo "Build version: $CURRENT_VERSION"
476-
cp ./redisinsight/package.json ./electron/package.json
477-
echo "$VERSION" > electron/version
478-
exit 0
479-
fi
480-
481-
VERSION=$CURRENT_VERSION-<< parameters.env >>-$CIRCLE_BUILD_NUM
482-
echo "Build version: $VERSION"
477+
echo "Build version: $CURRENT_VERSION"
478+
cp ./redisinsight/package.json ./electron/package.json
483479
echo "$VERSION" > electron/version
484-
echo $(jq ".version=\"$VERSION\"" redisinsight/package.json) > electron/package.json
480+
exit 0
481+
485482
- persist_to_workspace:
486483
root: /root/project
487484
paths:
@@ -568,7 +565,7 @@ jobs:
568565
- release/redisstack
569566
macosx:
570567
macos:
571-
xcode: 13.2.1
568+
xcode: 14.2.0
572569
parameters:
573570
env:
574571
description: Build environment (stage || prod)
@@ -595,6 +592,10 @@ jobs:
595592
- run:
596593
name: Build macos dmg
597594
command: |
595+
unset CSC_LINK
596+
export CSC_IDENTITY_AUTO_DISCOVERY=true
597+
export CSC_KEYCHAIN=redisinsight.keychain
598+
598599
if [ << parameters.env >> == 'prod' ]; then
599600
yarn package:prod
600601
rm -rf release/mac
@@ -609,7 +610,7 @@ jobs:
609610
610611
UPGRADES_LINK='' SEGMENT_WRITE_KEY='' yarn package:stage
611612
rm -rf release/mac
612-
no_output_timeout: 15m
613+
no_output_timeout: 60m
613614

614615
- run:
615616
name: Repack dmg to tar
@@ -622,6 +623,7 @@ jobs:
622623
- release/RedisInsight*.zip
623624
- release/RedisInsight*.dmg
624625
- release/RedisInsight*.dmg.blockmap
626+
- release/**/*.pkg
625627
- release/*-mac.yml
626628
- release/redisstack
627629
windows:
@@ -698,7 +700,22 @@ jobs:
698700
- run:
699701
name: Build Docker image (API + UI)
700702
command: |
701-
docker build --build-arg NODE_ENV=<< parameters.env >> --build-arg SERVER_TLS_CERT="$SERVER_TLS_CERT" --build-arg SERVER_TLS_KEY="$SERVER_TLS_KEY" -t riv2:latest .
703+
TELEMETRY=$SEGMENT_WRITE_KEY_DEV
704+
705+
if [ << parameters.env >> == 'production' ]; then
706+
TELEMETRY=$SEGMENT_WRITE_KEY
707+
fi
708+
709+
if [ << parameters.env >> == 'staging' ]; then
710+
TELEMETRY=$SEGMENT_WRITE_KEY_STAGE
711+
fi
712+
713+
docker build --build-arg NODE_ENV=<< parameters.env >> \
714+
--build-arg SERVER_TLS_CERT="$SERVER_TLS_CERT" \
715+
--build-arg SERVER_TLS_KEY="$SERVER_TLS_KEY" \
716+
--build-arg SEGMENT_WRITE_KEY="$TELEMETRY" \
717+
-t riv2:latest .
718+
702719
mkdir -p docker-release
703720
docker image save -o docker-release/docker.tar riv2
704721
- persist_to_workspace:

Dockerfile

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,10 @@ COPY redisinsight ./redisinsight
1313
RUN yarn --cwd redisinsight/api
1414
ARG SERVER_TLS_CERT
1515
ARG SERVER_TLS_KEY
16+
ARG SEGMENT_WRITE_KEY
1617
ENV SERVER_TLS_CERT=${SERVER_TLS_CERT}
1718
ENV SERVER_TLS_KEY=${SERVER_TLS_KEY}
19+
ENV SEGMENT_WRITE_KEY=${SEGMENT_WRITE_KEY}
1820
RUN yarn build:web
1921
RUN yarn build:statics
2022

@@ -61,8 +63,10 @@ RUN dbus-uuidgen > /var/lib/dbus/machine-id
6163
ARG NODE_ENV=production
6264
ARG SERVER_TLS_CERT
6365
ARG SERVER_TLS_KEY
66+
ARG SEGMENT_WRITE_KEY
6467
ENV SERVER_TLS_CERT=${SERVER_TLS_CERT}
6568
ENV SERVER_TLS_KEY=${SERVER_TLS_KEY}
69+
ENV SEGMENT_WRITE_KEY=${SEGMENT_WRITE_KEY}
6670
ENV NODE_ENV=${NODE_ENV}
6771
ENV SERVER_STATIC_CONTENT=true
6872
ENV BUILD_TYPE='DOCKER_ON_PREMISE'

dev.provisionprofile

12.5 KB
Binary file not shown.

electron-builder.json

Lines changed: 55 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,23 +14,76 @@
1414
"afterSign": "electron-builder-notarize",
1515
"artifactName": "${productName}-${os}-${arch}.${ext}",
1616
"compression": "normal",
17+
"asarUnpack": [
18+
"node_modules/keytar",
19+
"node_modules/sqlite3",
20+
"node_modules/cpu-features"
21+
],
1722
"mac": {
1823
"target": [
1924
{
2025
"target": "dmg",
2126
"arch": ["x64", "arm64"]
22-
}, {
27+
},
28+
{
2329
"target": "zip",
2430
"arch": ["x64", "arm64"]
31+
},
32+
{
33+
"target": "mas",
34+
"arch": ["universal"]
2535
}
2636
],
2737
"type": "distribution",
2838
"hardenedRuntime": true,
2939
"darkModeSupport": true,
40+
"bundleVersion": "1",
41+
"icon": "resources/icon.icns",
42+
"artifactName": "${productName}-${os}-${arch}.${ext}",
3043
"entitlements": "resources/entitlements.mac.plist",
3144
"entitlementsInherit": "resources/entitlements.mac.plist",
3245
"gatekeeperAssess": false
3346
},
47+
"mas": {
48+
"mergeASARs": false,
49+
"entitlements": "resources/entitlements.mas.plist",
50+
"entitlementsInherit": "resources/entitlements.mas.inherit.plist",
51+
"entitlementsLoginHelper": "resources/entitlements.mas.loginhelper.plist",
52+
"hardenedRuntime": false,
53+
"asarUnpack": ["node_modules"],
54+
"provisioningProfile": "embedded.provisionprofile",
55+
"binaries": [
56+
"Contents/Resources/app-x64.asar.unpacked/node_modules/sqlite3/lib/binding/napi-v6-darwin-unknown-arm64/node_sqlite3.node",
57+
"Contents/Resources/app-x64.asar.unpacked/node_modules/sqlite3/lib/binding/napi-v6-darwin-unknown-x64/node_sqlite3.node",
58+
"Contents/Resources/app-arm64.asar.unpacked/node_modules/sqlite3/lib/binding/napi-v6-darwin-unknown-arm64/node_sqlite3.node",
59+
"Contents/Resources/app-arm64.asar.unpacked/node_modules/sqlite3/lib/binding/napi-v6-darwin-unknown-x64/node_sqlite3.node",
60+
"Contents/Resources/app-arm64.asar.unpacked/node_modules/keytar/build/Release/keytar.node",
61+
"Contents/Resources/app-x64.asar.unpacked/node_modules/keytar/build/Release/keytar.node",
62+
"Contents/Resources/app-arm64.asar.unpacked/node_modules/cpu-features/build/Release/cpufeatures.node",
63+
"Contents/Resources/app-x64.asar.unpacked/node_modules/cpu-features/build/Release/cpufeatures.node"
64+
],
65+
"artifactName": "${productName}-${os}-${arch}-mas.${ext}"
66+
},
67+
"masDev": {
68+
"mergeASARs": false,
69+
"entitlements": "resources/entitlements.mas.plist",
70+
"entitlementsInherit": "resources/entitlements.mas.inherit.plist",
71+
"entitlementsLoginHelper": "resources/entitlements.mas.loginhelper.plist",
72+
"hardenedRuntime": false,
73+
"asarUnpack": ["node_modules"],
74+
"provisioningProfile": "dev.provisionprofile",
75+
"binaries": [
76+
"Contents/Resources/app-x64.asar.unpacked/node_modules/sqlite3/lib/binding/napi-v6-darwin-unknown-arm64/node_sqlite3.node",
77+
"Contents/Resources/app-x64.asar.unpacked/node_modules/sqlite3/lib/binding/napi-v6-darwin-unknown-x64/node_sqlite3.node",
78+
"Contents/Resources/app-arm64.asar.unpacked/node_modules/sqlite3/lib/binding/napi-v6-darwin-unknown-arm64/node_sqlite3.node",
79+
"Contents/Resources/app-arm64.asar.unpacked/node_modules/sqlite3/lib/binding/napi-v6-darwin-unknown-x64/node_sqlite3.node",
80+
"Contents/Resources/app-arm64.asar.unpacked/node_modules/keytar/build/Release/keytar.node",
81+
"Contents/Resources/app-x64.asar.unpacked/node_modules/keytar/build/Release/keytar.node",
82+
"Contents/Resources/app-arm64.asar.unpacked/node_modules/cpu-features/build/Release/cpufeatures.node",
83+
"Contents/Resources/app-x64.asar.unpacked/node_modules/cpu-features/build/Release/cpufeatures.node"
84+
],
85+
"artifactName": "${productName}-${os}-${arch}-masDev.${ext}"
86+
},
3487
"dmg": {
3588
"contents": [
3689
{
@@ -48,6 +101,7 @@
48101
"win": {
49102
"target": ["nsis"],
50103
"artifactName": "${productName}-${os}-installer.${ext}",
104+
"icon": "resources/icon.ico",
51105
"publisherName": [
52106
"Redis Inc.",
53107
"Redis Labs Inc."

embedded.provisionprofile

12.1 KB
Binary file not shown.

jest.config.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -54,10 +54,10 @@ module.exports = {
5454
],
5555
coverageThreshold: {
5656
global: {
57-
statements: 77,
58-
branches: 55,
59-
functions: 65,
60-
lines: 75,
57+
statements: 78,
58+
branches: 61,
59+
functions: 70,
60+
lines: 79,
6161
},
6262
// './redisinsight/ui/src/slices/**/*.ts': {
6363
// statements: 90,

package.json

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@
2626
"package": "yarn package:dev",
2727
"package:prod": "yarn build:prod && electron-builder build -p never",
2828
"package:stage": "yarn build:stage && electron-builder build -p never",
29+
"build:mas": "electron-builder build -p never -m mas:universal",
30+
"build:mas:dev": "electron-builder build -p never -m mas-dev:universal",
2931
"package:dev": "yarn build && cross-env DEBUG=electron-builder electron-builder build -p never",
3032
"package:win": "yarn build:prod && electron-builder build --win --x64 -p never",
3133
"package:mac": "yarn build:prod && electron-builder build --mac -p never",
@@ -118,6 +120,7 @@
118120
"@types/electron-store": "^3.2.0",
119121
"@types/express": "^4.17.3",
120122
"@types/file-saver": "^2.0.5",
123+
"@types/gzip-js": "^0.3.3",
121124
"@types/html-entities": "^1.3.4",
122125
"@types/ioredis": "^4.26.0",
123126
"@types/is-glob": "^4.0.2",
@@ -151,11 +154,11 @@
151154
"css-loader": "^5.0.1",
152155
"css-minimizer-webpack-plugin": "^1.2.0",
153156
"electron": "^19.0.7",
154-
"electron-builder": "^23.1.0",
155-
"electron-builder-notarize": "^1.5.0",
157+
"electron-builder": "^23.6.0",
158+
"electron-builder-notarize": "^1.5.1",
156159
"electron-debug": "^3.2.0",
157160
"electron-devtools-installer": "^3.2.0",
158-
"electron-rebuild": "^3.2.7",
161+
"electron-rebuild": "^3.2.9",
159162
"eslint": "^7.5.0",
160163
"eslint-config-airbnb": "^18.2.1",
161164
"eslint-config-airbnb-typescript": "^12.0.0",
@@ -217,6 +220,7 @@
217220
"@elastic/eui": "34.6.0",
218221
"@msgpack/msgpack": "^2.7.2",
219222
"@reduxjs/toolkit": "^1.6.2",
223+
"@stablelib/snappy": "^1.0.2",
220224
"axios": "^0.25.0",
221225
"buffer": "^6.0.3",
222226
"classnames": "^2.3.1",
@@ -230,12 +234,15 @@
230234
"electron-updater": "^5.0.5",
231235
"file-saver": "^2.0.5",
232236
"formik": "^2.2.9",
237+
"fzstd": "^0.1.0",
238+
"gzip-js": "^0.3.2",
233239
"html-entities": "^2.3.2",
234240
"html-react-parser": "^1.2.4",
235241
"java-object-serialization": "^0.1.1",
236242
"jpickle": "^0.4.1",
237243
"jsonpath": "^1.1.1",
238244
"lodash": "^4.17.21",
245+
"lz4js": "^0.2.0",
239246
"php-serialize": "^4.0.2",
240247
"rawproto": "^0.7.6",
241248
"react": "^18.2.0",

redisinsight/about-panel.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@ const ICON_PATH = app.isPackaged
77

88
export default {
99
applicationName: 'RedisInsight-v2',
10-
applicationVersion: app.getVersion() || '2.20.0',
10+
applicationVersion:
11+
`${app.getVersion() || '2.22.0'}${process.env.NODE_ENV !== 'production' && `-dev-${process.getCreationTime()}`}`,
1112
copyright: `Copyright © ${new Date().getFullYear()} Redis Ltd.`,
1213
iconPath: ICON_PATH,
1314
};

redisinsight/api/config/default.ts

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ export default {
2424
logs: join(homedir, 'logs'),
2525
defaultPlugins: join(staticDir, 'plugins'),
2626
customPlugins: join(homedir, 'plugins'),
27+
customTutorials: join(homedir, 'custom-tutorials'),
2728
pluginsAssets: join(staticDir, 'resources', 'plugins'),
2829
commands: join(homedir, 'commands'),
2930
defaultCommandsDir: join(defaultsDir, 'commands'),
@@ -45,6 +46,7 @@ export default {
4546
staticUri: '/static',
4647
guidesUri: '/static/guides',
4748
tutorialsUri: '/static/tutorials',
49+
customTutorialsUri: '/static/custom-tutorials',
4850
contentUri: '/static/content',
4951
defaultPluginsUri: '/static/plugins',
5052
pluginsAssetsUri: '/static/resources/plugins',
@@ -54,7 +56,7 @@ export default {
5456
tlsKey: process.env.SERVER_TLS_KEY,
5557
staticContent: !!process.env.SERVER_STATIC_CONTENT || false,
5658
buildType: process.env.BUILD_TYPE || 'ELECTRON',
57-
appVersion: process.env.APP_VERSION || '2.20.0',
59+
appVersion: process.env.APP_VERSION || '2.22.0',
5860
requestTimeout: parseInt(process.env.REQUEST_TIMEOUT, 10) || 25000,
5961
excludeRoutes: [],
6062
excludeAuthRoutes: [],
@@ -95,6 +97,7 @@ export default {
9597
},
9698
analytics: {
9799
writeKey: process.env.SEGMENT_WRITE_KEY || 'SOURCE_WRITE_KEY',
100+
flushInterval: parseInt(process.env.ANALYTICS_FLUSH_INTERVAL, 10) || 3000,
98101
},
99102
logger: {
100103
logLevel: process.env.LOG_LEVEL || 'info', // log level
@@ -108,14 +111,14 @@ export default {
108111
},
109112
guides: {
110113
updateUrl: process.env.GUIDES_UPDATE_URL
111-
|| 'https://github.com/RedisInsight/Guides/releases/download/release',
114+
|| 'https://github.com/RedisInsight/Guides/releases/download/2.x.x',
112115
zip: process.env.GUIDES_ZIP || dataZipFileName,
113116
buildInfo: process.env.GUIDES_CHECKSUM || buildInfoFileName,
114117
devMode: !!process.env.GUIDES_DEV_PATH,
115118
},
116119
tutorials: {
117120
updateUrl: process.env.TUTORIALS_UPDATE_URL
118-
|| 'https://github.com/RedisInsight/Tutorials/releases/download/release',
121+
|| 'https://github.com/RedisInsight/Tutorials/releases/download/2.x.x',
119122
zip: process.env.TUTORIALS_ZIP || dataZipFileName,
120123
buildInfo: process.env.TUTORIALS_CHECKSUM || buildInfoFileName,
121124
devMode: !!process.env.TUTORIALS_DEV_PATH,

redisinsight/api/config/ormconfig.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import { ClientCertificateEntity } from 'src/modules/certificate/entities/client
1212
import { DatabaseEntity } from 'src/modules/database/entities/database.entity';
1313
import { SshOptionsEntity } from 'src/modules/ssh/entities/ssh-options.entity';
1414
import { BrowserHistoryEntity } from 'src/modules/browser/entities/browser-history.entity';
15+
import { CustomTutorialEntity } from 'src/modules/custom-tutorial/entities/custom-tutorial.entity';
1516
import migrations from '../migration';
1617
import * as config from '../src/utils/config';
1718

@@ -35,6 +36,7 @@ const ormConfig = {
3536
DatabaseAnalysisEntity,
3637
BrowserHistoryEntity,
3738
SshOptionsEntity,
39+
CustomTutorialEntity,
3840
],
3941
migrations,
4042
};

0 commit comments

Comments
 (0)