| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
#5179 Honour unchecked Verify TLS Certificate (#6469) * fix(api): honour unchecked TLS cert verification Node treats a missing rejectUnauthorized as true, so an unchecked Verify TLS Certificate (null/undefined verifyServerCert) still failed with unable to verify the first certificate. Coerce to true only when the checkbox is on, in both ioredis and node-redis strategies. Refs #4471 Signed-off-by: MickeyShnaiderman-RecoLabs <mickeys@reco.ai> Co-authored-by: Cursor <cursoragent@cursor.com> * fix(api): type TLS verify fixtures as Database it.each includes null, which is not assignable to verifyServerCert?: boolean under tsconfig.check.json. Signed-off-by: MickeyShnaiderman-RecoLabs <mickeys@reco.ai> Co-authored-by: Cursor <cursoragent@cursor.com> * fix(api): keep TLS verify on first-party creates Absent verifyServerCert now means do not verify. Set the flag on Azure, import, and env pre-setup so those tls:true paths keep checking the system CA. Refs #4471 Signed-off-by: MickeyShnaiderman-RecoLabs <mickeys@reco.ai> Co-authored-by: Cursor <cursoragent@cursor.com> * fix(api): preserve null TLS verify on import Import ?? turned exported null into verify-on. Default only when the field is absent; null becomes false. File pre-setup defaults missing tls verify the same way as env discovery. Refs #4471 Signed-off-by: MickeyShnaiderman-RecoLabs <mickeys@reco.ai> Co-authored-by: Cursor <cursoragent@cursor.com> * fix(api): backfill Azure TLS verify on upgrade Existing Azure autodiscovery rows stored null and would silently stop verifying. Backfill those only; unchecked-checkbox nulls stay off. Also cast the null pre-setup fixture so tsc baseline stays clean. Refs #4471 Signed-off-by: MickeyShnaiderman-RecoLabs <mickeys@reco.ai> Co-authored-by: Cursor <cursoragent@cursor.com> * fix(api): scope Azure TLS backfill to autodiscovery provider is hostname-derived, so hand-added Azure hosts were in the UPDATE. Require providerDetails. Import now leaves non-boolean verify values for @IsBoolean. Refs #5179 Signed-off-by: MickeyShnaiderman-RecoLabs <mickeys@reco.ai> Co-authored-by: Cursor <cursoragent@cursor.com> --------- Signed-off-by: MickeyShnaiderman-RecoLabs <mickeys@reco.ai> Co-authored-by: Cursor <cursoragent@cursor.com> | 1 个月前 | |
VDP-4556: Block server-side file reads on database import for non-desktop builds (#6307) * fix(database-import): block server-side file reads on import for non-desktop builds Import fields for SSH keys and TLS certificates accept either inline PEM or a filesystem path, falling back to readFileSync when the value is not PEM. On network-facing builds these endpoints are unauthenticated, so a path turns import into an arbitrary server-side file read that export can then return with withSecrets. Gate the path fallback behind isImportFromFileAllowed(), which is true only for the Electron desktop build. Other builds accept inline PEM only and reject a path with the existing invalid-body error, without touching the filesystem. References: #VDP-4556 * test(database-import): expect rejection for path-based cert import on server The TLS import integration cases fed certificates and keys as filesystem paths, which non-desktop builds no longer resolve. Update the format 1/2/3 cases (standalone, cluster, sentinel, and the ssh variants) to expect a partial import with the invalid-body errors instead of success. Format 0, which passes inline PEM, is unchanged. References: #VDP-4556 | 2 个月前 | |
fix(workbench): show module command results when ACL hides module list (#6232) ACL-restricted users who are granted TS.RANGE but denied MODULE LIST and COMMAND INFO left module discovery with an empty list, so Workbench replaced their successful reply with the "Time series unavailable" upsell. Fix it in two layers: - UI: CommonErrorResponse skips the ModuleNotLoaded page when any reply in the execution already succeeded, since a successful reply proves the module is loaded regardless of what discovery found. Group mode now passes the full execution object so the status is visible to that check. - API: fall back to HELLO for module detection when MODULE LIST and COMMAND INFO are unavailable, and add ts.range / ts.revrange to the TimeSeries probe commands. Redis Enterprise and Cloud connections are proxied and may return an empty modules array from HELLO; on those the UI success gate is what restores the results. Refs #5357 | 2 个月前 | |
chore(api): drop the glob override and stop deep-importing from @nestjs/swagger (#6376) * chore(api): drop the @nestjs/cli glob override The override pinned glob to 11.1.0 to escape GHSA-5j98-mcp5-4vw2, which affects glob >= 11.0.0 < 11.1.0. @nestjs/cli declared 11.0.1 at the time, inside that range, so the pin pushed it up and out. @nestjs/cli 11.0.24 now declares glob 13.0.6, outside the advisory range, so the pin has nothing left to achieve and only holds the CLI back from the version it ships against. The api tree now resolves glob to 13.0.6 under the CLI, with no copy inside the advisory range. * refactor(api): import ApiResponseOptions from the package root @nestjs/swagger 11.4.3 added an exports map that lists only ".", "./plugin" and "./package.json", so the dist subpath this reached into is no longer a public entry point. Nothing breaks today, because the import is type-only and so elided, and the api resolves modules with the classic algorithm, which ignores exports maps. It is a tripwire either way: switching moduleResolution, enabling verbatimModuleSyntax or moving the build to SWC would each turn it into a failure. The type is re-exported from the package root, so the public import is equivalent. | 2 个月前 | |
Feature/ri 6756 upgrade nest and class transformer (#4402) * RI-6756 upgrade class-transformer to 0.5.1 * RI-6756 fix webpack build module resolution * RI-6756 fix RDI decorator + tests * RI-6756 upgrade required deps + fix UTests * RI-6756 fix import dto transform * RI-6756 fix query string parameters transform issue * RI-6756 fix tests | 1 年前 | |
RI-8267 Complete error-code coverage for i18n (#6120) - error codes for SSH exceptions (RI-8267) - error codes for encryption exceptions (RI-8267) - error codes for database-import exceptions (RI-8267) - error codes for RDI exceptions (RI-8267) - error codes for misc exceptions (RI-8267) - inject generic + validation error codes via global filter (RI-8267) - bruno error-code examples (RI-8267) Ref: RI-8267 | 3 个月前 | |
RI-7927 Vector Search - Query Library APIs (#5528) * RI-7927 Introduce APIs for the Query Library (#5533) * RI-7927 Add integration tests for Query library API (#5534) * RI-7927 Query Library service (IndexedDB + SQLite toggle) (#5537) * RI-7927 Add Bruno docs for Query Library APIs (#5535) References: #RI-7927 | 7 个月前 | |
fix: use CLUSTER SLOTS preferred endpoint for cluster discovery (#6180) * be/bugfix: use CLUSTER NODES hostname over raw ip Cluster auto-discovery failed with "failed to refresh slots cache" / "not all slots covered" for clusters that announce a client-facing hostname per node (Redis 7+ cluster-announce-hostname), e.g. AWS ElastiCache/OCI Cache sharded clusters and per-node load balancers / NAT setups where the node's raw ip is not routable to the client. Root cause: parseNodesFromClusterInfoReply() (reply.util.ts), used by discoverClusterNodes() (cluster.util.ts) to seed cluster root nodes for both the ioredis and node-redis connection strategies, parsed only the "ip:port@cport" prefix of each CLUSTER NODES line and silently discarded everything after the first comma - which is exactly where Redis 7+ appends "[,hostname[,aux_field=value]*]". discoverClusterNodes() then replaced the single (working) user- supplied entrypoint with a full list of unreachable internal ips before ioredis.Cluster / node-redis ever got a chance to use its own hostname-aware CLUSTER SLOTS-based discovery, so every bootstrap connection attempt failed. Note ClusterShardsInfoStrategy (CLUSTER SHARDS, used for the Redis 7+ cluster monitor UI) already preferred hostname over ip - only the CLUSTER NODES parsing path used for establishing the actual cluster connection had the bug. Fix: parse the optional hostname out of the endpoint field (ignoring any trailing aux fields such as shard-id) and prefer it over the raw ip when building root node addresses, falling back to the ip when no hostname is announced so standard clusters are unaffected. Addresses: - https://github.com/redis/RedisInsight/issues/5393 - https://github.com/redis/RedisInsight/issues/3416 - https://github.com/redis/RedisInsight/issues/3429 Signed-off-by: MickeyShnaiderman-RecoLabs <mickeys@reco.ai> Co-authored-by: Cursor <cursoragent@cursor.com> * be/bugfix: derive root nodes from CLUSTER SLOTS preferred endpoint Addresses review feedback on #6180: `discoverClusterNodes` previously did `node.hostname || node.host`, unconditionally preferring a node's announced hostname over its ip whenever one was present. That ignores `cluster-preferred-endpoint-type`: a node can announce a hostname as metadata while the server is actually configured to prefer the ip (the default), in which case the hostname may be internal/non-resolvable from RedisInsight while the ip is the one that is actually reachable - regressing exactly the kind of cluster this PR was meant to fix. `CLUSTER NODES` has no way to express this correctly: the hostname it exposes is unconditional metadata, not the server's resolved preference. That preference is only available via `CLUSTER SLOTS` (or the newer `CLUSTER SHARDS`, 7.0+ only), whose first per-node field is already resolved server-side according to `cluster-preferred-endpoint-type`. `discoverClusterNodes` now calls `CLUSTER SLOTS` instead of `CLUSTER NODES` and uses that field as-is, fully delegating the ip-vs-hostname decision to the server rather than re-implementing it client-side. CLUSTER SLOTS is used over CLUSTER SHARDS for broader compatibility (available since Redis 3.0.0 vs 7.0+). ioredis/node-redis do not expose this as a reusable parser (ioredis parses CLUSTER SLOTS inline in `Cluster.prototype.getInfoFromNode`, not as a public API), so `parseNodesFromClusterSlotsReply` is added alongside a shared `resolvePreferredEndpoint` helper implementing the endpoint field's documented abnormal values (see https://redis.io/docs/latest/commands/cluster-slots/): - `null`/`''` (unknown endpoint): resolves to the host used to send the command. - `'?'` (misconfigured node - preferred type is hostname but none is announced): the spec warns this may not be the same node that served the command, so the node is skipped as a root-node candidate rather than guessed at. The now fully-unused `CLUSTER NODES` endpoint/hostname parsing (`parseNodesFromClusterInfoReply`, `IRedisClusterNode`, `RedisClusterNodeLinkState`) is removed rather than left dead - it has no remaining callers and, per the above, could never be made correct for this purpose regardless. CLUSTER SLOTS also makes the old "connected" link-state filter unnecessary: failed nodes are not returned by CLUSTER SLOTS in the first place. Also fixes `ClusterShardsInfoStrategy` (Redis 7+ cluster monitor UI), which had the same latent issue - `nodeObj.hostname || nodeObj.ip` instead of the shard's own `endpoint` field (CLUSTER SHARDS' equivalent of CLUSTER SLOTS' preferred endpoint, same abnormal-value semantics). This is a display-only path (not used to establish connections), so a misconfigured/unknown ('?') endpoint falls back to the node's own `ip` for a best-effort label instead of being skipped. Updated/added unit tests in reply.util.spec.ts, cluster.util.spec.ts and cluster-shards.info.strategy.spec.ts covering preferred-endpoint- type=hostname, =ip (including a hostname being announced but not preferred - the exact scenario flagged in review), and the null/''/'?' abnormal endpoint values. Signed-off-by: MickeyShnaiderman-RecoLabs <mickeys@reco.ai> * fix(cluster-discovery): support CLUSTER SLOTS replies without node id Addresses review feedback on #6180: node ids were only added to CLUSTER SLOTS in Redis 4.0.0 (see the "Behavior change history" on https://redis.io/docs/latest/commands/cluster-slots/); pre-4.0 clusters return just [ip, port] per node with no id. The previous `if (!id) continue` guard in parseNodesFromClusterSlotsReply treated that as invalid and skipped every node, so discoverClusterNodes returned an empty root-node list for any pre-4.0 cluster - a regression relative to the old CLUSTER NODES parser, and a direct contradiction of this change's own "broader compatibility" rationale for choosing CLUSTER SLOTS over CLUSTER SHARDS. Fall back to a "host:port" dedup key when no node id is present so those nodes are still discovered, instead of dropping them. Added regression tests in reply.util.spec.ts and cluster.util.spec.ts for [ip, port]-only node tuples, including deduplication across non-contiguous slot ranges. Signed-off-by: MickeyShnaiderman-RecoLabs <mickeys@reco.ai> * fix(cluster-discovery): restore IPv6 coverage, seed on all-misconfigured slots - Add back an IPv6 preferred-endpoint test in parseNodesFromClusterSlotsReply (reply.util.spec.ts) that was dropped along with the removed CLUSTER NODES parser. - discoverClusterNodes now falls back to the connection entrypoint (client.options.host/port) when CLUSTER SLOTS resolves to zero nodes (e.g. every node reports the '?' misconfigured-endpoint marker), instead of returning an empty root-node list. Addresses PR review comments from pawelangelow on #6180. Signed-off-by: MickeyShnaiderman-RecoLabs <mickeys@reco.ai> * fix(cluster-monitor): use node ip before fallbackHost for shard label resolvePreferredEndpoint was called with fallbackHost, so any node with a null/empty endpoint resolved straight to the shared connection host - before nodeObj.ip was ever considered. Every such node in the cluster monitor UI ended up labeled with the same host instead of its own address. Reorder the fallback chain to endpoint -> ip -> fallbackHost, matching the inline comment's stated intent (ip for a display-only unknown endpoint; fallbackHost only as a last resort when ip is absent too). Addresses BugBot review comment on #6180 (discussion_r3632382937). Signed-off-by: MickeyShnaiderman-RecoLabs <mickeys@reco.ai> * fix(cluster-monitor): fix new tsc errors, refresh shrunk baseline Two strict-mode type errors were introduced by the earlier CR fixes on this PR, tripping the tsc baseline gate: - cluster.util.ts: discoverClusterNodes' entrypoint-seed fallback used client.options.port (number | undefined) where IRedisClusterNodeAddress requires number. Guard on port being defined too, alongside host, before fabricating a seed node. - cluster-shards.info.strategy.ts: getClusterNodesFromRedis had no explicit return type, so '[].concat(...)' inferred as never[], surfacing as 'Property does not exist on type never' wherever the result is used (including in existing/newly-added spec assertions). Typed the empty array and the method's return as Partial<ClusterNodeDetails>[]. Fixing the never[] inference also resolved 17 total errors (this file plus knock-on TS7005/TS7034/TS2769 errors elsewhere that depended on the same inference), so .tscheck.rec.json baseline counts dropped accordingly (via 'yarn tscheck', which only ever lowers a baseline - it hard-fails if new errors are detected instead). Addresses PR comment from pawelangelow on #6180 requesting the type-check / tsc baselines CI job be fixed at the source. Signed-off-by: MickeyShnaiderman-RecoLabs <mickeys@reco.ai> --------- Signed-off-by: MickeyShnaiderman-RecoLabs <mickeys@reco.ai> | 2 个月前 | |
Add RDI native API proxy endpoint for @rdi-ui/pipeline (#6504) * feat(rdi): add native API proxy endpoint for @rdi-ui/pipeline | 26 天前 | |
chore(deps-dev): bump the tooling group across 1 directory with 18 updates (#6414) * chore(deps-dev): bump the tooling group across 1 directory with 18 updates Bumps the tooling group with 18 updates in the / directory: | Package | From | To | | --- | --- | --- | | [@pmmmwh/react-refresh-webpack-plugin](https://github.com/pmmmwh/react-refresh-webpack-plugin) | `0.5.10` | `0.6.2` | | [esbuild-plugin-react-virtualized](https://github.com/abemedia/esbuild-plugin-react-virtualized) | `1.0.4` | `1.0.6` | | [eslint-import-resolver-webpack](https://github.com/import-js/eslint-plugin-import/tree/HEAD/resolvers/webpack) | `0.13.10` | `0.13.11` | | [eslint-plugin-compat](https://github.com/amilajack/eslint-plugin-compat) | `6.0.2` | `6.2.1` | | [eslint-plugin-prettier](https://github.com/prettier/eslint-plugin-prettier) | `5.5.1` | `5.5.6` | | [eslint-plugin-promise](https://github.com/eslint-community/eslint-plugin-promise) | `7.2.1` | `7.3.0` | | [html-webpack-plugin](https://github.com/jantimon/html-webpack-plugin) | `5.6.4` | `5.6.8` | | [prettier](https://github.com/prettier/prettier) | `3.5.2` | `3.9.6` | | [react-refresh](https://github.com/facebook/react/tree/HEAD/packages/react) | `0.9.0` | `0.18.0` | | [terser-webpack-plugin](https://github.com/webpack/minimizer-webpack-plugin) | `5.5.0` | `5.6.1` | | [ts-loader](https://github.com/TypeStrong/ts-loader) | `9.5.1` | `9.6.2` | | [tsconfig-paths-webpack-plugin](https://github.com/dividab/tsconfig-paths-webpack-plugin) | `4.1.0` | `4.2.0` | | [vite-bundle-visualizer](https://github.com/KusStar/vite-bundle-visualizer) | `1.0.1` | `1.2.1` | | [vite-plugin-ejs](https://github.com/trapcodeio/vite-plugin-ejs) | `1.7.0` | `1.8.0` | | [vite-plugin-electron](https://github.com/electron-vite/vite-plugin-electron) | `0.28.6` | `0.29.1` | | [vite-plugin-electron-renderer](https://github.com/electron-vite/vite-plugin-electron-renderer) | `0.14.6` | `0.14.7` | | [vite-plugin-istanbul](https://github.com/iFaxity/vite-plugin-istanbul) | `7.1.0` | `7.2.1` | | [webpack](https://github.com/webpack/webpack) | `5.104.1` | `5.109.2` | Updates `@pmmmwh/react-refresh-webpack-plugin` from 0.5.10 to 0.6.2 - [Release notes](https://github.com/pmmmwh/react-refresh-webpack-plugin/releases) - [Changelog](https://github.com/pmmmwh/react-refresh-webpack-plugin/blob/main/CHANGELOG.md) - [Commits](https://github.com/pmmmwh/react-refresh-webpack-plugin/compare/v0.5.10...v0.6.2) Updates `esbuild-plugin-react-virtualized` from 1.0.4 to 1.0.6 - [Release notes](https://github.com/abemedia/esbuild-plugin-react-virtualized/releases) - [Changelog](https://github.com/abemedia/esbuild-plugin-react-virtualized/blob/master/CHANGELOG.md) - [Commits](https://github.com/abemedia/esbuild-plugin-react-virtualized/compare/v1.0.4...v1.0.6) Updates `eslint-import-resolver-webpack` from 0.13.10 to 0.13.11 - [Release notes](https://github.com/import-js/eslint-plugin-import/releases) - [Changelog](https://github.com/import-js/eslint-plugin-import/blob/main/resolvers/webpack/CHANGELOG.md) - [Commits](https://github.com/import-js/eslint-plugin-import/commits/resolvers/webpack/v0.13.11/resolvers/webpack) Updates `eslint-plugin-compat` from 6.0.2 to 6.2.1 - [Release notes](https://github.com/amilajack/eslint-plugin-compat/releases) - [Changelog](https://github.com/amilajack/eslint-plugin-compat/blob/main/CHANGELOG.md) - [Commits](https://github.com/amilajack/eslint-plugin-compat/compare/v6.0.2...v6.2.1) Updates `eslint-plugin-prettier` from 5.5.1 to 5.5.6 - [Release notes](https://github.com/prettier/eslint-plugin-prettier/releases) - [Changelog](https://github.com/prettier/eslint-plugin-prettier/blob/main/CHANGELOG.md) - [Commits](https://github.com/prettier/eslint-plugin-prettier/compare/v5.5.1...v5.5.6) Updates `eslint-plugin-promise` from 7.2.1 to 7.3.0 - [Release notes](https://github.com/eslint-community/eslint-plugin-promise/releases) - [Changelog](https://github.com/eslint-community/eslint-plugin-promise/blob/main/CHANGELOG.md) - [Commits](https://github.com/eslint-community/eslint-plugin-promise/compare/v7.2.1...v7.3.0) Updates `html-webpack-plugin` from 5.6.4 to 5.6.8 - [Release notes](https://github.com/jantimon/html-webpack-plugin/releases) - [Changelog](https://github.com/jantimon/html-webpack-plugin/blob/main/CHANGELOG.md) - [Commits](https://github.com/jantimon/html-webpack-plugin/compare/v5.6.4...v5.6.8) Updates `prettier` from 3.5.2 to 3.9.6 - [Release notes](https://github.com/prettier/prettier/releases) - [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md) - [Commits](https://github.com/prettier/prettier/compare/3.5.2...3.9.6) Updates `react-refresh` from 0.9.0 to 0.18.0 - [Release notes](https://github.com/facebook/react/releases) - [Changelog](https://github.com/react/react/blob/main/CHANGELOG.md) - [Commits](https://github.com/facebook/react/commits/HEAD/packages/react) Updates `terser-webpack-plugin` from 5.5.0 to 5.6.1 - [Release notes](https://github.com/webpack/minimizer-webpack-plugin/releases) - [Changelog](https://github.com/webpack/minimizer-webpack-plugin/blob/main/CHANGELOG.md) - [Commits](https://github.com/webpack/minimizer-webpack-plugin/compare/v5.5.0...v5.6.1) Updates `ts-loader` from 9.5.1 to 9.6.2 - [Release notes](https://github.com/TypeStrong/ts-loader/releases) - [Changelog](https://github.com/TypeStrong/ts-loader/blob/main/CHANGELOG.md) - [Commits](https://github.com/TypeStrong/ts-loader/compare/v9.5.1...v9.6.2) Updates `tsconfig-paths-webpack-plugin` from 4.1.0 to 4.2.0 - [Changelog](https://github.com/jonaskello/tsconfig-paths-webpack-plugin/blob/master/CHANGELOG.md) - [Commits](https://github.com/dividab/tsconfig-paths-webpack-plugin/compare/v4.1.0...v4.2.0) Updates `vite-bundle-visualizer` from 1.0.1 to 1.2.1 - [Release notes](https://github.com/KusStar/vite-bundle-visualizer/releases) - [Commits](https://github.com/KusStar/vite-bundle-visualizer/commits/v1.2.1) Updates `vite-plugin-ejs` from 1.7.0 to 1.8.0 - [Release notes](https://github.com/trapcodeio/vite-plugin-ejs/releases) - [Commits](https://github.com/trapcodeio/vite-plugin-ejs/commits) Updates `vite-plugin-electron` from 0.28.6 to 0.29.1 - [Release notes](https://github.com/electron-vite/vite-plugin-electron/releases) - [Changelog](https://github.com/electron-vite/vite-plugin-electron/blob/main/CHANGELOG-v0.md) - [Commits](https://github.com/electron-vite/vite-plugin-electron/compare/v0.28.6...v0.29.1) Updates `vite-plugin-electron-renderer` from 0.14.6 to 0.14.7 - [Release notes](https://github.com/electron-vite/vite-plugin-electron-renderer/releases) - [Changelog](https://github.com/electron-vite/vite-plugin-electron-renderer/blob/main/CHANGELOG-v0.md) - [Commits](https://github.com/electron-vite/vite-plugin-electron-renderer/compare/v0.14.6...v0.14.7) Updates `vite-plugin-istanbul` from 7.1.0 to 7.2.1 - [Release notes](https://github.com/iFaxity/vite-plugin-istanbul/releases) - [Changelog](https://github.com/iFaxity/vite-plugin-istanbul/blob/next/release.config.mjs) - [Commits](https://github.com/iFaxity/vite-plugin-istanbul/compare/v7.1.0...v7.2.1) Updates `webpack` from 5.104.1 to 5.109.2 - [Release notes](https://github.com/webpack/webpack/releases) - [Changelog](https://github.com/webpack/webpack/blob/main/CHANGELOG.md) - [Commits](https://github.com/webpack/webpack/compare/v5.104.1...v5.109.2) --- updated-dependencies: - dependency-name: "@pmmmwh/react-refresh-webpack-plugin" dependency-version: 0.6.2 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: tooling - dependency-name: esbuild-plugin-react-virtualized dependency-version: 1.0.6 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: tooling - dependency-name: eslint-import-resolver-webpack dependency-version: 0.13.11 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: tooling - dependency-name: eslint-plugin-compat dependency-version: 6.2.1 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: tooling - dependency-name: eslint-plugin-prettier dependency-version: 5.5.6 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: tooling - dependency-name: eslint-plugin-promise dependency-version: 7.3.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: tooling - dependency-name: html-webpack-plugin dependency-version: 5.6.8 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: tooling - dependency-name: prettier dependency-version: 3.9.6 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: tooling - dependency-name: react-refresh dependency-version: 0.18.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: tooling - dependency-name: terser-webpack-plugin dependency-version: 5.6.1 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: tooling - dependency-name: ts-loader dependency-version: 9.6.2 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: tooling - dependency-name: tsconfig-paths-webpack-plugin dependency-version: 4.2.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: tooling - dependency-name: vite-bundle-visualizer dependency-version: 1.2.1 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: tooling - dependency-name: vite-plugin-ejs dependency-version: 1.8.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: tooling - dependency-name: vite-plugin-electron dependency-version: 0.29.1 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: tooling - dependency-name: vite-plugin-electron-renderer dependency-version: 0.14.7 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: tooling - dependency-name: vite-plugin-istanbul dependency-version: 7.2.1 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: tooling - dependency-name: webpack dependency-version: 5.109.2 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: tooling ... Signed-off-by: dependabot[bot] <support@github.com> * fix prettier issues --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Pavel Angelov <pavel.angelov@redis.com> | 1 个月前 | |
Dev: Apply eslint & prettier suggestions (#4500) * backend * desktop * UI | 1 年前 | |
RED-194229 Deprecate custom tutorials behind feature flag (#5983) * feat: add feature flag to disable custom tutorials * refactor: deprecate custom tutorials * test: update specs for customTutorials feature flag | 4 个月前 | |
RI-7927 Vector Search - Query Library APIs (#5528) * RI-7927 Introduce APIs for the Query Library (#5533) * RI-7927 Add integration tests for Query library API (#5534) * RI-7927 Query Library service (IndexedDB + SQLite toggle) (#5537) * RI-7927 Add Bruno docs for Query Library APIs (#5535) References: #RI-7927 | 7 个月前 | |
RI-6384: add tags for databases (API+UI) (#4419) * RI-6893: init tag module (basic CRUD) * RI-6893: tag - key and value validation * RI-6893: tag - add unique constraints for key-value pair * RI-6384: link databases to tags * RI-6893: update database tag linking * RI-6384: add ready only tags * RI-6893: expose bulk update method for tags * update logging * RI-6893: update db tag methods * RI-6893: optimize bulk tags updates * RI-6893: add unit tests for database tags * update database integration tests schema * RI-6384: resolve failing tests * RI-6384: fix failing tests * RI-6384: add tests for databases with tags * RI-6893: remove read-only tags * RI-6893: remove readonly tags tests * RI-6893: update tags migration script * RI-6384: resolve comments * RI-6384: add tags for databases (UI - part 1) (#4426) * RI-6895: list db tags + RI-6896: sort by db tags * RI-6895: search db by tag * RI-6897: init filter by tags * RI-6897: refactor selected tags to use Set * RI-6897: filter databases by selected tags * RI-6897: hide tags filter if there are no tags * RI-6384: fix failing test * RI-6384: revert SearchDatabasesList changes * RI-6384: add test for selected tags * RI-6897: add tests for TagsCell * RI-6897: fix filter by tag issue * RI-6384: add tags for databases (UI - part 2) (#4453) * RI-6895: list db tags + RI-6896: sort by db tags * RI-6895: search db by tag * RI-6897: init filter by tags * RI-6897: refactor selected tags to use Set * RI-6897: filter databases by selected tags * RI-6897: hide tags filter if there are no tags * RI-6384: fix failing test * RI-6384: revert SearchDatabasesList changes * RI-6384: add test for selected tags * RI-6897: add tests for TagsCell * RI-6897: fix filter by tag issue * RI-6898: init tags edit form * RI-6898: finalize design for tags CRUD page * RI-6898: disable tags save if there are no changes * RI-6898: fix tags input focus issue * RI-6898: save db tags * RI-6898: add toast message when editing tags * RI-6898: refetch tags on tags update * RI-6898: add tag validation * RI-6898: unique tag keys * RI-6898: edit tags * RI-6898: refactor tags edit modal * RI-6898: add clouddb tags warning * RI-6898: fix resize bg color * RI-6898: fix theme color * fix tags list theme color * RI-6898: add new tag field design updates * RI-6898: refactor tag suggestions * RI-6898: refactor tag input field * add tests for manage tags modal * cleanup leftover * refactor tag inputs * address comments feedback * fix tags sort * RI-6091, RI-6092: tags import/export * refetch tags on import/delete * fix db controls position * fix db integration tests * fix tags export integration test * RI-6903: import tags from cloud via autodiscovery * fix integration tests * fix failing unit tests * fix some integration tests * fix some integration tests * fix more integration tests * fix integration test * fix final integration test * fix unit test * fix unit tests * use Promise.all for db/tags cloud fetch * use PartialType UpdateTagDto * add tags unit test mocks * move TagModule import to core modules * cloud db tests: change toMatchObject -> toEqual * refactor cleanupUnusedTags - delete in single query * increase controls gap * add instancesWithTagCount telemetry data to the DATABASE_LIST_PAGE event (#4468) * add integration tests for database tags patch/delete * RI-6091, RI-6092, RI-6903: database tags import/export/autodiscovery (#4459) * RI-6091, RI-6092: tags import/export * refetch tags on import/delete * fix db controls position * fix db integration tests * fix tags export integration test * RI-6903: import tags from cloud via autodiscovery * fix integration tests * fix failing unit tests * fix some integration tests * fix some integration tests * fix more integration tests * fix integration test * fix final integration test * fix unit test * fix unit tests * use Promise.all for db/tags cloud fetch * use PartialType UpdateTagDto * add tags unit test mocks * move TagModule import to core modules * cloud db tests: change toMatchObject -> toEqual * refactor cleanupUnusedTags - delete in single query * increase controls gap * add integration tests for database tags patch/delete * RI-6893: encrypt database tags (#4476) * RI-6893: encrypt database tags * refactor LocalTagRepository * update tags integration tests * RI-6384 refactor tags encryption * RI-6384 fix tag entities encryption flows * RI-6384 cleanup getOrCreateByKeyValuePairs * fix unit tests --------- Co-authored-by: ArtemHoruzhenko <artsiom.kharuzhenka@gmail.com> * resolve merge conflict * fix: no duplicated tags by key for a single database should be allowed * add integration test for duplicated tag keys patch --------- Co-authored-by: dantovska <dijana.antovska@redis.com> Co-authored-by: ArtemHoruzhenko <artsiom.kharuzhenka@gmail.com> | 1 年前 | |
DEV: Improve code style with turning on few ESlint rules (#5130) * turn on prettier rules for API * turn on general TS rules | 11 个月前 | |
Dev: Apply eslint & prettier suggestions (#4500) * backend * desktop * UI | 1 年前 | |
RI-8321: Enforce x-window-id auth on WebSocket connections (#6225) * fix(api): enforce x-window-id auth on web socket connections (RI-8321) The SessionMetadataAdapter was set as the web socket adapter unconditionally after WindowsAuthAdapter, and NestJS keeps only the last adapter — so the x-window-id handshake check never ran and every socket was granted the default session. Unauthenticated cross-origin clients could reach the monitor, pub-sub and bulk-actions namespaces. WindowsAuthAdapter now extends SessionMetadataAdapter so an authorized socket gets both the window-id gate and the session metadata, and it is the only adapter wired for the desktop build. Web/dev builds keep the metadata-only adapter. * fix(api): disconnect unauthorized web socket connections (RI-8321) Returning early only skipped message-handler registration; the socket stayed connected to the root namespace and still received broadcasts such as FeatureGateway and NotificationGateway (wss.of('/').emit(...)). Disconnect the socket when the window id is not authorized so the auth check gates the connection, not just message sending. | 2 个月前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 1 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 1 年前 | ||
| 3 个月前 | ||
| 7 个月前 | ||
| 2 个月前 | ||
| 26 天前 | ||
| 1 个月前 | ||
| 1 年前 | ||
| 4 个月前 | ||
| 7 个月前 | ||
| 1 年前 | ||
| 11 个月前 | ||
| 1 年前 | ||
| 2 个月前 |