Admin UI Features

Built into ServiceStack v6+ Apps is the Admin UI providing Admin Users a UX Friendly UI to access App features & summary insights from:

/admin-ui

Which after authenticating will take you to the Admin UI dashboard showing the authenticated Admin User details and general API stats:

Further Admin UI functionality can be enabled by adding the necessary dependencies and Admin APIs necessary to implement the Admin UI Features.

Disabling the Admin UI

If desired, the /admin-ui features can be selectively or entirely disabled using the AdminUi Enum flags:

ConfigurePlugin<UiFeature>(feature => feature.AdminUi = AdminUi.None);

Admin Users

User management functionality for creating & modifying users, assigning Roles & Permissions, locking users or updating their passwords can be enabled by registering AdminUsersFeature plugin:

Plugins.Add(new AdminUsersFeature());

Which enables a familiar UI for searching & managing users:

INFO

See Admin UI User Docs to learn about Admin User features and available customization options

Request Logging & Profiling

Enables invaluable observability into your App, from being able to quickly inspect and browse incoming requests, to tracing their behavior:

x mix profiling

Which will add the Modular Startup configuration to your Host project that registers both Request Logging & Profiling features when running your App in DebugMode (i.e. Development):

[assembly: HostingStartup(typeof(MyApp.ConfigureProfiling))]

namespace MyApp;

public class ConfigureProfiling : IHostingStartup
{
    public void Configure(IWebHostBuilder builder)
    {
        builder.ConfigureAppHost(host => {
            host.Plugins.AddIfDebug(new RequestLogsFeature {
                EnableResponseTracking = true,
            });
            
            host.Plugins.AddIfDebug(new ProfilingFeature {
                IncludeStackTrace = true,
            });
        });
    }
}

Which will enable the Request Logging & Profiling UIs:

INFO

See Admin Logging & Profiling UI docs to learn about Admin Profiling feature and available customization options.

Validation

The Admin Validation feature enables adding dynamically sourced validation rules that can be applied & modified at runtime.

The most popular IValidationSource for maintaining dynamic validation rules is OrmLiteValidationSource for maintaining them in the App's registered database's ValidationRule RDBMS Table:

[assembly: HostingStartup(typeof(MyApp.ConfigureValidation))]

namespace MyApp;

public class ConfigureValidation : IHostingStartup
{
    // Add support for dynamically generated db rules
    public void Configure(IWebHostBuilder builder) => builder
        .ConfigureServices(services => services.AddSingleton<IValidationSource>(c =>
            new OrmLiteValidationSource(c.Resolve<IDbConnectionFactory>(), HostContext.LocalCache)))
        .ConfigureAppHost(appHost => {
            // Create `ValidationRule` table if it doesn't exist in AppHost.Configure() or Modular Startup
            appHost.Resolve<IValidationSource>().InitSchema();
        });
}

Which can be quickly added to your project with the x mix script below:

x mix validation-source

Which the built-in Validation Feature detects to register the GetValidationRules and ModifyValidationRules APIs used by the Admin Validation Feature:

INFO

See Admin UI Validation Docs to learn about dynamic DB Validation Rules

Recommend Admin UI Features

The Admin UI was designed with room to grow. You can let us know what features you would find most valuable on our GitHub Discussions.