Skip to content
CAI
Software that uses CAICheck a score

jasontaylordev/RapidBlazor

54.4

Adequate · 21 September 2026

2.6k

lines of production code

C#

primary language

4

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

RapidBlazor is a .NET 7-based Blazor application template that implements a clean architecture for managing Todo lists and items. It provides a complete backend with domain-driven design, including user and role-based access control, alongside a corresponding frontend with administrative pages for managing users, roles, and permissions. The system is fully automated for Azure deployment via Infrastructure as Code and includes comprehensive unit, integration, and acceptance tests to ensure reliability.

Features

Add automated Azure infrastructure provisioning and deployment scripts

Users can now provision and deploy the application to Azure using new Infrastructure as Code (IaC) templates and automation scripts. The 'deploy' directory now includes Bicep templates (main.bicep, appSettings.bicep) to create Azure resources such as App Services, Key Vaults, SQL databases, and Application Insights, with support for 'Production' and 'Test' environments. Additionally, PowerShell scripts (setup.ps1, ensureCertificate.ps1) automate the creation of Azure AD applications, resource groups, GitHub environments, and the generation/import of signing certificates into Key Vault and App Service configurations.

deploy · high confidence

Adds flexible role-based access control and admin management pages

The client application now includes new administrative pages for managing users, roles, and access control permissions, alongside a new Todo feature. Users can now edit user roles, create and manage roles, and configure granular permissions via a flexible authorization system that wraps standard Blazor components. The navigation menu and routing have been updated to include links to these new admin sections (Users, Roles, Access Control) and the Todo page, all protected by specific permission checks. Additionally, a custom claims principal factory is introduced to map additional user properties to claims, and the application's namespace has been renamed from CleanArchitectureBlazor to RapidBlazor.

src/WebUI/Client · high confidence

Admin API and API documentation for Todo, User, and Role management

The server now exposes RESTful endpoints for managing Todo items, Todo lists, Users, and Roles, each protected by specific permissions (e.g., ViewAccessControl, ManageRoles). A global exception filter standardizes error responses for validation and not-found scenarios. Additionally, OpenAPI (Swagger) documentation is generated and served at /api/v1/openapi.json, and the application initializes and seeds the database on startup.

src/WebUI/Server · high confidence

Introduces application-layer commands, queries, and behaviors for identity, access control, and todo management

The src/Application directory now includes new command and query handlers for managing users, roles, and access control (including an UpdateAccessControl command and GetAccessControl query). It also adds full CRUD commands and queries for TodoLists and TodoItems, along with domain event handlers for TodoItem creation and completion. Additionally, common behaviors are introduced: a MediatR pipeline for logging, a validation behavior, and an unhandled exception behavior, all registered in ConfigureServices.

src/Application · high confidence

Introduces domain model for Todo application

The domain layer now includes the core entities for a Todo application, specifically TodoItem and TodoList, which support title, note, completion status, reminders, and colour-coded lists. To support these entities, the codebase adds base classes for entities and auditable records, a value object for colour validation, and domain events for item creation and completion.

src/Domain · high confidence

Introduces new shared models and authorization infrastructure

The WebUI shared layer now includes a comprehensive set of data transfer objects and view models to support role-based access control and a new Todo feature. In the AccessControl namespace, new classes (AccessControlVm, RoleDto, RolesVm, UserDetailsVm, UserDto, UsersVm) define the structure for managing users and roles. The Authorization namespace introduces a flexible, permission-based system using a custom AuthorizeAttribute, a PolicyNameHelper for dynamic policy generation, and a PermissionAuthorizationHandler that validates user claims against a Permissions enum. Additionally, the Common namespace adds Result and LookupDto helpers, while the TodoLists and TodoItems namespaces introduce DTOs and validation rules for managing todo lists and items. The existing WeatherForecast model was also updated to use DateTime instead of DateOnly.

src/WebUI/Shared · high confidence

Behavioural changes

Adds domain event dispatching and audit logging to the application database context

The application database context now automatically dispatches domain events after each save operation, ensuring that business logic dependent on these events is triggered consistently. Additionally, an \AuditableEntitySaveChangesInterceptor\ has been introduced to automatically populate \Created/LastModified\ timestamp and user fields on auditable entities, providing built-in audit trails for database changes.

src/Infrastructure · high confidence

RapidBlazor template updated to .NET 7 and expanded with unit and integration tests

The RapidBlazor solution template has been upgraded to target .NET 7 (global.json and nuspec), and the project has been renamed from CleanArchitectureBlazor to RapidBlazor. Additionally, the solution now includes four new test projects (Domain.UnitTests, Application.UnitTests, WebUI.AcceptanceTests, and Application.IntegrationTests) and a LICENSE file, while also updating the README with .NET 7 installation instructions.

(repo-wide) · high confidence

Test coverage

Added acceptance tests for login functionality; Added integration tests for TodoList and TodoItem commands and queries; Added unit tests for application layer; Added unit tests for the Colour value object.

Dependencies

Upgrade to .NET 7.0 and rename to RapidBlazor

The project has been upgraded to .NET 7.0 RTM, replacing all previous .NET 7.0-rc.1 references with stable 7.0.0 versions across all source and test projects. Additionally, the solution and all constituent projects have been renamed from 'CleanArchitectureBlazor' to 'RapidBlazor', updating root namespaces and assembly names accordingly. New dependencies such as NSwag, Azure Key Vault configuration, and FluentValidation have been added to support the updated framework and feature set.

(dependencies) · high confidence

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

How this codebase got here

This is the PUBLIC form of this artifact. Findings are listed in full, but the details of SECURITY findings — which rule fired, in which file, on which line, and how to fix it — are deliberately withheld, and any secret-scanner results are excluded entirely. Where detail is absent here it was REMOVED FOR PUBLICATION; it is not missing from the analysis. The complete artifact is available from the repository owner.

Score

  • CAI 53 → 54 (+1.8)
  • Rubric changed (rubric-2026.08.19 → rubric-2026.09.15) — scores are not directly comparable.

Lenses

  • Code Health 91 → 89 (-2.1)
  • Architecture 92 → 92 (+0.0)
  • Maturity 73 → 73 (+0.0)
  • Readiness 47 → 49 (+1.8)
  • Security 72 → 73 (+1.6)
  • Event-Driven 100 → 100 (+0.0)
  • Accessibility 40 → 43 (+2.6)

Resolved (21)

  • Bounded contexts not declared
  • Build did not complete in the analyzer
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • No exposed public API
  • dormant codebase — no living knowledge left to concentrate
  • redundant comment (src/Infrastructure/Data/ApplicationDbContextInitialiser.cs)
  • …and 1 more

New (114)

  • Documentation: no installation or build instructions (README.md)
  • Documentation: no licence statement (README.md)
  • Documentation: no usage examples (README.md)
  • Duplicated block (12 lines × 2) (src/WebUI/Shared/TodoItems/UpdateTodoItemRequest.cs)
  • End-of-life runtime: .NET net7.0
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • …and 94 more

API surface

  • Unchanged — 14 HTTP endpoints

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

jasontaylordev/RapidBlazor was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.

About this page

  • The score is its most recent published measurement, taken on 21 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit 923b6d4537d7c8b499435c7378f4bd8ee69b2271 — the exact code this score is about.
  • Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-28e75b8e3254.