Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
39 commits
Select commit Hold shift + click to select a range
30b84d8
release 2.50.0
vlad-dargel May 22, 2024
2b64aa6
#RI-5772 - fix styles
rsergeenko May 23, 2024
618e1fc
#RI-5772 - fix styles
rsergeenko May 24, 2024
8bd6c79
Merge pull request #3407 from RedisInsight/fe/bugfix/RI-5772
mariasergeenko May 24, 2024
f33ec92
add double quotes for query when needed
ArtemHoruzhenko May 27, 2024
b45162d
#RI-5781 - change format of seconds for rate limit
rsergeenko May 27, 2024
a442cf6
#RI-5776 - fix sso flow
rsergeenko May 27, 2024
eea04b6
Merge pull request #3415 from RedisInsight/fe/bugfix/RI-5781
rsergeenko May 28, 2024
8337c12
#RI-5782 - update messages
rsergeenko May 28, 2024
5b03eac
skip useless test
mariasergeenko May 28, 2024
09d200f
Merge pull request #3413 from RedisInsight/be/bugfix/RI-5779-prepare-…
vlad-dargel May 28, 2024
b05e6cb
#RI-5772 - fix styles
rsergeenko May 28, 2024
34328eb
Merge pull request #3417 from RedisInsight/fe/feature/RI-5782
rsergeenko May 28, 2024
fbf3f36
fix circleci
ArtemHoruzhenko May 28, 2024
4ed96dd
Merge pull request #3421 from RedisInsight/build/bugfix/circle-ci
vlad-dargel May 28, 2024
07ca0e0
add package type
ArtemHoruzhenko May 28, 2024
214136f
add packageType to STARTED events
ArtemHoruzhenko May 29, 2024
98c6401
#RI-5786 - fix styles
rsergeenko May 29, 2024
fb5ab09
Merge pull request #3425 from RedisInsight/fe/bugifx/release/2.50.0
mariasergeenko May 29, 2024
8ef282f
Merge pull request #3423 from RedisInsight/be/feature/add-package-type
mariasergeenko May 29, 2024
054b931
#RI-5786 - fix styles
rsergeenko May 29, 2024
02956b7
Merge pull request #3426 from RedisInsight/fe/bugifx/release/2.50.0
rsergeenko May 29, 2024
8a37a96
#RI-5790 fix utm package was not sent
ArtemHoruzhenko May 29, 2024
e16b840
Merge pull request #3427 from RedisInsight/be/feature/add-package-type
vlad-dargel May 29, 2024
49e169f
#RI-5786 - fix styles
rsergeenko May 29, 2024
b2ff6ba
Merge pull request #3430 from RedisInsight/fe/bugifx/release/2.50.0
rsergeenko May 29, 2024
71ec973
remove count field from top_values
ArtemHoruzhenko May 29, 2024
4c44dc8
Merge pull request #3433 from RedisInsight/release/2.50.0
vlad-dargel May 29, 2024
9e5baca
Merge pull request #3434 from RedisInsight/be/bugfix/enhance-context
ArtemHoruzhenko May 29, 2024
7248095
Merge pull request #3436 from RedisInsight/release/2.50.0
vlad-dargel May 29, 2024
5c6bf80
* #RI-5793 - [Regression] Create database popup for authorized accoun…
egor-zalenski May 30, 2024
c60d7ca
* #RI-5798 - [Regression] 401 error from WS is not handled
egor-zalenski May 30, 2024
5bcf20b
Merge pull request #3439 from RedisInsight/fe/bugfix/release/2.50.0
vlad-dargel May 30, 2024
60e627a
#RI-5798 - [Regression] 401 error from WS is not handled
egor-zalenski May 30, 2024
9a34660
Merge pull request #3440 from RedisInsight/fe/bugfix/release/2.50.0
egor-zalenski May 30, 2024
290551b
Merge pull request #3441 from RedisInsight/release/2.50.0
vlad-dargel May 30, 2024
0972686
#RI-5798 - [Regression] 401 error from WS is not handled
egor-zalenski May 30, 2024
e05283f
Merge pull request #3442 from RedisInsight/fe/bugfix/release/2.50.0
egor-zalenski May 30, 2024
e053752
Merge pull request #3443 from RedisInsight/release/2.50.0
vlad-dargel May 30, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .circleci/build/release-docker.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
set -e

HELP="Args:
-v - Semver (2.48.0)
-v - Semver (2.50.0)
-d - Build image repository (Ex: -d redisinsight)
-r - Target repository (Ex: -r redis/redisinsight)
"
Expand Down
27 changes: 15 additions & 12 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -187,6 +187,15 @@ executors:
machine:
image: ubuntu-2004:2023.04.2
docker_layer_caching: true
docker-node:
docker:
- image: cimg/node:18.15.0
docker:
docker:
- image: cibuilds/docker:19.03.5
macos:
macos:
xcode: 14.2.0

parameters:
linux:
Expand All @@ -208,8 +217,7 @@ parameters:
jobs:
# Test jobs
unit-tests-ui:
docker:
- image: cimg/node:18.15.0
executor: docker-node
steps:
- checkout
- restore_cache:
Expand Down Expand Up @@ -252,8 +260,7 @@ jobs:
paths:
- ./node_modules
unit-tests-api:
docker:
- image: cimg/node:18.15.0
executor: docker-node
steps:
- checkout
- restore_cache:
Expand Down Expand Up @@ -522,15 +529,14 @@ jobs:

# Build jobs
manual-build-validate:
executor: docker-node
parameters:
os:
type: string
default: ""
target:
type: string
default: ""
docker:
- image: cimg/node:18.15.0
steps:
- checkout
- run:
Expand All @@ -552,14 +558,13 @@ jobs:
paths:
- certs
setup-build:
executor: docker
parameters:
env:
description: Build environment (stage || prod)
type: enum
default: stage
enum: [ 'dev', 'stage', 'prod' ]
docker:
- image: cibuilds/docker:19.03.5
steps:
- checkout
- run:
Expand All @@ -577,8 +582,7 @@ jobs:
paths:
- electron
linux:
machine:
image: ubuntu-2004:202101-01
executor: linux-executor
resource_class: large
parameters:
env:
Expand Down Expand Up @@ -652,8 +656,7 @@ jobs:
- release/Redis-Insight*.snap
- release/*-linux.yml
macosx:
macos:
xcode: 14.2.0
executor: macos
resource_class: macos.x86.medium.gen2
parameters:
env:
Expand Down
2 changes: 1 addition & 1 deletion redisinsight/api/config/default.ts
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ export default {
tlsKey: process.env.RI_SERVER_TLS_KEY,
staticContent: !!process.env.RI_SERVE_STATICS || true,
buildType: process.env.RI_BUILD_TYPE || 'DOCKER_ON_PREMISE',
appVersion: process.env.RI_APP_VERSION || '2.48.0',
appVersion: process.env.RI_APP_VERSION || '2.50.0',
requestTimeout: parseInt(process.env.RI_REQUEST_TIMEOUT, 10) || 25000,
excludeRoutes: [],
excludeAuthRoutes: [],
Expand Down
4 changes: 3 additions & 1 deletion redisinsight/api/config/production.ts
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ export default {
join(os.homedir(), '.redisinsight-preview'),
join(os.homedir(), '.redisinsight-v2'),
process.env.RI_GUIDES_PATH || join(homedir, 'guides'),
]
],
},
server: {
env: 'production',
Expand All @@ -40,5 +40,7 @@ export default {
},
ai: {
convAiApiUrl: process.env.RI_AI_CONVAI_API_URL || 'https://redis.io/convai/api',
querySocketUrl: process.env.RI_AI_QUERY_SOCKET_URL || 'https://app.redislabs.com',
querySocketPath: process.env.RI_AI_QUERY_SOCKET_PATH || '/api/v1/cloud-copilot-service/socket.io/',
},
};
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: 'Redis Insight Backend API',
description: 'Redis Insight Backend API',
version: '2.48.0',
version: '2.50.0',
},
tags: [],
};
Expand Down
2 changes: 1 addition & 1 deletion redisinsight/api/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "redisinsight-api",
"version": "2.48.0",
"version": "2.50.0",
"description": "Redis Insight API",
"private": true,
"author": {
Expand Down
23 changes: 21 additions & 2 deletions redisinsight/api/src/modules/ai/query/ai-query.service.ts
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
import { isArray } from 'lodash';
import { Socket } from 'socket.io-client';
import { Injectable, Logger } from '@nestjs/common';
import { ClientContext, SessionMetadata } from 'src/common/models';
import { AiQueryProvider } from 'src/modules/ai/query/providers/ai-query.provider';
import { SendAiQueryMessageDto } from 'src/modules/ai/query/dto/send.ai-query.message.dto';
import { wrapAiQueryError } from 'src/modules/ai/query/exceptions';
import { DatabaseClientFactory } from 'src/modules/database/providers/database.client.factory';
import { getFullDbContext, getIndexContext } from 'src/modules/ai/query/utils/context.util';
import { getFullDbContext, getIndexContext, quotesIfNeeded } from 'src/modules/ai/query/utils/context.util';
import { Response } from 'express';
import {
AiQueryMessage,
Expand Down Expand Up @@ -56,6 +57,24 @@ export class AiQueryService {
return steps;
}

static prepareToolReply(toolReply: any) {
try {
const prepared = JSON.parse(toolReply);

if (prepared?.name === 'query' && prepared.content) {
const query = JSON.parse(prepared.content);
if (isArray(query)) {
prepared.content.query = JSON.stringify(query.map(quotesIfNeeded));
}
return JSON.stringify(prepared);
}
} catch (e) {
// ignore error
}

return toolReply;
}

static prepareHistory(messages: AiQueryMessage[]): string[][] {
const history = [];
messages.forEach((message) => {
Expand Down Expand Up @@ -178,7 +197,7 @@ export class AiQueryService {
socket.on(AiQueryWsEvents.TOOL_REPLY, async (data) => {
answer.steps.push(plainToClass(AiQueryIntermediateStep, {
type: AiQueryIntermediateStepType.TOOL,
data,
data: AiQueryService.prepareToolReply(data),
}));
});

Expand Down
4 changes: 2 additions & 2 deletions redisinsight/api/src/modules/ai/query/utils/context.util.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ type RedisClient = { sendCommand: (args: any, options: any) => Promise<any> };
const DOCUMENT_SAMPLES_PER_PREFIX = 5;
const HSCAN_COUNT = 500;

const quotesIfNeeded = (str: string) => (str.indexOf(' ') > -1 ? JSON.stringify(str) : str);
export const quotesIfNeeded = (str: string) => (str.indexOf(' ') > -1 ? JSON.stringify(str) : str);

// ====================================================================
// Reply converter
Expand Down Expand Up @@ -77,7 +77,7 @@ export const getAttributeTopValues = async (client: RedisClient, index: string,

return {
distinct_count: parseInt(distinct, 10),
top_values: top?.map(([, value, , count]) => ({ value, count })),
top_values: top?.map(([, value]) => ({ value })),
};
default:
return {};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,4 +37,12 @@ export class CloudRequestUtm {
@IsString()
@IsNotEmpty()
amp?: string;

@ApiPropertyOptional({
type: String,
})
@IsOptional()
@IsString()
@IsNotEmpty()
package?: string;
}
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ export class CloudApiProvider {
utm_medium: utm?.medium,
utm_campaign: utm?.campaign,
utm_amp: utm?.amp,
utm_package: utm?.package,
};
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -104,10 +104,11 @@ export class CloudUserApiService {

const preparedUtm = utm;

if (preparedUtm && !preparedUtm.amp) {
if (preparedUtm && (!preparedUtm.amp || !preparedUtm.package)) {
await this.serverService.getInfo()
.then(({ id }) => {
preparedUtm.amp = id;
.then(({ id, packageType }) => {
preparedUtm.amp = preparedUtm.amp || id;
preparedUtm.package = preparedUtm.package || packageType;
})
.catch(() => {
this.logger.warn('Unable to get server id for utm parameters');
Expand Down
8 changes: 8 additions & 0 deletions redisinsight/api/src/modules/server/dto/server.dto.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';
import { PackageType } from 'src/modules/server/models/server';

export class GetServerInfoResponse {
@ApiProperty({
Expand Down Expand Up @@ -36,6 +37,13 @@ export class GetServerInfoResponse {
})
buildType: string;

@ApiProperty({
description: 'Application package type.',
enum: PackageType,
example: 'app-image',
})
packageType: PackageType;

@ApiPropertyOptional({
description: 'Fixed Redis database id.',
type: String,
Expand Down
10 changes: 9 additions & 1 deletion redisinsight/api/src/modules/server/models/server.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,15 @@ export enum BuildType {
}

export enum PackageType {
AppImage = 'appimage',
Flatpak = 'flatpak',
Snap = 'snap',
UnknownLinux = 'unknown-linux',
AppImage = 'app-image',
Mas = 'mas',
UnknownDarwin = 'unknown-darwin',
WindowsStore = 'windows-store',
UnknownWindows = 'unknown-windows',
Unknown = 'unknown',
}

export enum AppType {
Expand Down
52 changes: 50 additions & 2 deletions redisinsight/api/src/modules/server/server.service.ts
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
import { Injectable, InternalServerErrorException, Logger, OnApplicationBootstrap } from '@nestjs/common';
import {
Injectable, InternalServerErrorException, Logger, OnApplicationBootstrap,
} from '@nestjs/common';
import { EventEmitter2 } from '@nestjs/event-emitter';
import config, { Config } from 'src/utils/config';
import { AppAnalyticsEvents } from 'src/constants/app-events';
import { TelemetryEvents } from 'src/constants/telemetry-events';
import { ServerInfoNotFoundException } from 'src/constants/exceptions';
import { EncryptionService } from 'src/modules/encryption/encryption.service';
import { ServerRepository } from 'src/modules/server/repositories/server.repository';
import { AppType, BuildType } from 'src/modules/server/models/server';
import { AppType, BuildType, PackageType } from 'src/modules/server/models/server';
import { GetServerInfoResponse } from 'src/modules/server/dto/server.dto';
import { FeaturesConfigService } from 'src/modules/feature/features-config.service';

Expand Down Expand Up @@ -51,6 +53,7 @@ export class ServerService implements OnApplicationBootstrap {
sessionId: this.sessionId,
appType: ServerService.getAppType(SERVER_CONFIG.buildType),
appVersion: SERVER_CONFIG.appVersion,
packageType: ServerService.getPackageType(SERVER_CONFIG.buildType),
...(await this.featuresConfigService.getControlInfo()),
});

Expand All @@ -63,6 +66,7 @@ export class ServerService implements OnApplicationBootstrap {
osPlatform: process.platform,
buildType: SERVER_CONFIG.buildType,
port: SERVER_CONFIG.port,
packageType: ServerService.getPackageType(SERVER_CONFIG.buildType),
},
nonTracking: true,
});
Expand All @@ -88,6 +92,7 @@ export class ServerService implements OnApplicationBootstrap {
appType: ServerService.getAppType(SERVER_CONFIG.buildType),
encryptionStrategies: await this.encryptionService.getAvailableEncryptionStrategies(),
fixedDatabaseId: REDIS_STACK_CONFIG?.id,
packageType: ServerService.getPackageType(SERVER_CONFIG.buildType),
...(await this.featuresConfigService.getControlInfo()),
};
this.logger.log('Succeed to get server info.');
Expand All @@ -110,4 +115,47 @@ export class ServerService implements OnApplicationBootstrap {
return AppType.Unknown;
}
}

static getPackageType(buildType: string): PackageType {
if (buildType === BuildType.Electron) {
// Darwin
if (process.platform === 'darwin') {
if (process.env.mas || process['mas']) {
return PackageType.Mas;
}

return PackageType.UnknownDarwin;
}

// Linux
if (process.platform === 'linux') {
if (process.env.APPIMAGE) {
return PackageType.AppImage;
}

if (process.env.SNAP_INSTANCE_NAME || process.env.SNAP_DATA) {
return PackageType.Snap;
}

if (process.env.container) {
return PackageType.Flatpak;
}

return PackageType.UnknownLinux;
}

// Windows
if (process.platform === 'win32') {
if (process.env.windowsStore || process['windowsStore']) {
return PackageType.WindowsStore;
}

return PackageType.UnknownWindows;
}

return PackageType.Unknown;
}

return undefined;
}
}
2 changes: 1 addition & 1 deletion redisinsight/desktop/src/lib/aboutPanel/aboutPanel.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ const ICON_PATH = app.isPackaged

export const AboutPanelOptions = {
applicationName: 'Redis Insight',
applicationVersion: `${app.getVersion() || '2.48.0'}${
applicationVersion: `${app.getVersion() || '2.50.0'}${
!config.isProduction ? `-dev-${process.getCreationTime()}` : ''
}`,
copyright: `Copyright © ${new Date().getFullYear()} Redis Ltd.`,
Expand Down
2 changes: 1 addition & 1 deletion redisinsight/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"appName": "Redis Insight",
"productName": "RedisInsight",
"private": true,
"version": "2.48.0",
"version": "2.50.0",
"description": "Redis Insight",
"main": "./dist/main/main.js",
"author": {
Expand Down
2 changes: 1 addition & 1 deletion redisinsight/ui/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"name": "redisinsight",
"appName": "Redis Insight",
"productName": "RedisInsight",
"version": "2.48.0",
"version": "2.50.0",
"description": "Redis Insight",
"author": {
"name": "Redis Ltd.",
Expand Down
Loading