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.