RedisUI.Dashboard 2.0.0

Suggested Alternatives

RedisUI.Dashboard 2.2.1

There is a newer version of this package available.
See the version list below for details.
dotnet add package RedisUI.Dashboard --version 2.0.0
                    
NuGet\Install-Package RedisUI.Dashboard -Version 2.0.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="RedisUI.Dashboard" Version="2.0.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="RedisUI.Dashboard" Version="2.0.0" />
                    
Directory.Packages.props
<PackageReference Include="RedisUI.Dashboard" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add RedisUI.Dashboard --version 2.0.0
                    
#r "nuget: RedisUI.Dashboard, 2.0.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package RedisUI.Dashboard@2.0.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=RedisUI.Dashboard&version=2.0.0
                    
Install as a Cake Addin
#tool nuget:?package=RedisUI.Dashboard&version=2.0.0
                    
Install as a Cake Tool

RedisUI.Dashboard

A modern Redis UI for ASP.NET Core with enhanced features, built as a fork of RedisUI.

NuGet Codacy Badge


πŸ”₯ What’s New in RedisUI.Dashboard

This fork includes major improvements over the original RedisUI:

  • βœ… Support for Redis data types: Stream, Sorted Set, Hash, List, Set, String.
  • βœ… Error prevention: Null-safe resolution to prevent NullReferenceException.
  • βœ… Monokai-highlighted JSON: Key values rendered as readable formatted JSON.
  • βœ… UI and performance upgrades:
    • Redesigned layout and styles
    • SCAN cursor enhancements
    • Async parallel Redis key & stat resolution
  • βœ… Middleware refactor: Clearer API with overloads instead of optional params.
  • βœ… .NET 9 support: Added to TargetFrameworks.

πŸš€ Installation

Install via NuGet:

dotnet add package RedisUI.Dashboard

## πŸ”§ Recent Enhancements by @frankyjquintero

This project has undergone several significant improvements to enhance functionality, robustness, and forward compatibility. Notable changes include:

- βœ… **Support for additional Redis data types**: Stream, Sorted Set, Hash, and more are now properly rendered.
- βœ… **Error prevention enhancements**: Null checks were added to avoid potential `NullReferenceException` issues.
- βœ… **Cleaner JSON handling**: Implemented JSON mapping and Monokai syntax highlighting for Redis key inspection.
- βœ… **Improved UI stability**: Refactored HTML rendering, redesigned UI, and cleaned up JS, including cursor-based SCAN enhancements.
- βœ… **Optimized performance**: Parallel async resolution for Redis statistics and key values; optimized ConnectionMultiplexer singleton.
- βœ… **Simplified middleware API**: Refactored `RedisUIMiddleware`, `RedisKeyValueResolver`, and POST body handling; fixed overloading mechanism.
- βœ… **Extended .NET support**: Added compatibility for .NET 9 and updated TargetFrameworks accordingly.

## πŸ”§ Custom JS and CSS for RedisUI Viewer

You can customize the appearance and behavior of the Redis UI by providing your own JavaScript and CSS files. This is useful if you want to use local versions of Bootstrap, syntax highlighters, or JSON viewers.

### Example

```csharp
app.UseRedisUI(new RedisUISettings
{
    CssLink = "/assets/css/bootstrap.min.css",
    JsLink = "/assets/js/bootstrap.bundle.min.js",
    HighlightTheme = "/assets/css/highlight-dark.css",
    HighlightJs = "/assets/js/highlight.min.js",
    HighlightJson = "/assets/js/json-viewer.js"
});

UI image

Server Statistics image

πŸ‘‰ You can review the updated source and commits at github.com/frankyjquintero/RedisUI

Redis Integrated UI

NuGet Codacy Badge

Redis Integrated UI is a .NET project designed to simplify the integration of a Redis User Interface (UI) page into your web applications. With this project, users can easily incorporate a Redis UI page, enabling them to interact with Redis keys and view Redis server statistics seamlessly.

Features

  • Integration Ease: Simplifies the process of integrating a Redis UI page into web applications.

  • Redis Key Management: Provides functionality to interact with Redis keys conveniently.

    image

  • Server Statistics: Displays statistics related to the Redis server for monitoring and analysis purposes.

    image

Getting Started

To integrate the Redis UI into your application, follow these steps:

  • Install RedisUI from the NuGet Gallery.
PM> Install-Package RedisUI
  • Add the middleware to your project.
using RedisUI;

app.UseRedisUI();
  • Run your project and browse /redis path. easy peasy!

Settings

  • The Path is "/redis" by default, set a new path.
app.UseRedisUI(new RedisUISettings
{
    Path = "/myredisui",
});
  • The ConnectionString is "localhost" by default, set the connection string.
app.UseRedisUI(new RedisUISettings
{
    ConnectionString = "1.1.1.1:6379",
});
  • Use ConfigurationOptions for detailed settings.
ConfigurationOptions options = new ConfigurationOptions
{
    EndPoints = { { "my-redis.cloud.redislabs.com", 6379 } },
    User = "default",  // use your Redis user. More info https://redis.io/docs/management/security/acl/
    Password = "secret", // use your Redis password
    Ssl = true,
    SslProtocols = System.Security.Authentication.SslProtocols.Tls12                
};
app.UseRedisUI(new RedisUISettings
{
    ConfigurationOptions = options
});
  • The UI is using Bootstrap 5.3.2 version from CDN, you can get it from locally via setting properties below:
app.UseRedisUI(new RedisUISettings
{
    CssLink = "..\\mypath\\bootstrap.min.cs",
    JsLink = "..\\mypath\\bootstrap.js"
});

Authorization

You can limit access to Redis data in the production environment.

  • Add a new authorization filter and implement IRedisAuthorizationFilter
using RedisUI;

public class MyAuthorizationFilter : IRedisAuthorizationFilter
{
    private readonly bool _isDevelopment;

    public MyAuthorizationFilter(bool isDevelopment)
    {
        _isDevelopment = isDevelopment;
    }

    public bool Authorize(HttpContext context)
    {
        return _isDevelopment || (context.User.Identity != null && context.User.Identity.IsAuthenticated);
    }
}
app.UseRedisUI(new RedisUISettings
{
    AuthorizationFilter = new MyAuthorizationFilter(app.Environment.IsDevelopment())
});

Contributing

Contributions are welcome! If you'd like to contribute to Redis Integrated UI, please follow these guidelines:

  1. Fork the repository.
  2. Create your feature branch (git checkout -b feature/YourFeature).
  3. Commit your changes (git commit -am 'Add some feature').
  4. Push to the branch (git push origin feature/YourFeature).
  5. Create a new Pull Request.

License

This project is licensed under the MIT License.

Contact

For any inquiries or support regarding Redis Integrated UI, feel free to contact the project maintainer:

Product Compatible and additional computed target framework versions.
.NET net6.0 is compatible.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 is compatible.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 is compatible.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on RedisUI.Dashboard:

Package Downloads
Franky.Core.Infrastructure

Package Description

GitHub repositories

This package is not used by any popular GitHub repositories.

βœ… Added support for Redis data types (Stream, Sorted Set, Hash)
βœ… Improved null-safety to prevent NullReferenceException
βœ… Enhanced JSON key inspection with Monokai highlighting
βœ… Refactored UI rendering and JS cleanup (SCAN optimized)
βœ… Async parallel performance for Redis stats and key resolution
βœ… Middleware API improvements with overloads instead of optionals
βœ… Extended support to .NET 9 in TargetFrameworks