Skip to content
CAI
Software that uses CAICheck a score

e-athena/basic-platform

31.3

Weak · 22 September 2026

50.8k

lines of production code

TypeScript

with C#

3

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

This system is a multi-tenant platform framework that provides comprehensive identity, access, and data management capabilities. It supports user, role, organization, and tenant administration with granular column and data-level permissions. The architecture includes a .NET 7 backend with FreeSql and SqlSugar data access, a Vue/React frontend with Ant Design Pro, and event-driven domain logic for real-time notifications and cache invalidation.

Features

Add Authorization component for role and user resource/function permission management

A new Authorization component is introduced to manage resource and function permissions for roles and users. The component renders a ProTable with checkboxes for menu and function permissions, supporting both 'readonly' and 'all' function access levels. It handles selection state changes and notifies parent components via an onChange callback, enabling granular control over what resources and operations each role or user can access.

BasicPlatform.WebAPI/ConsoleApp/src/components/Authorization · high confidence

Add OrganizationTree component for displaying organizational hierarchy

A new OrganizationTree component has been added to the ConsoleApp, providing a tree-view interface for displaying organizational structures. The component fetches data from the 'orgTree' service, handles loading states with a skeleton loader, and supports selection callbacks and programmatic reloading via a ref.

BasicPlatform.WebAPI/ConsoleApp/src/components/OrganizationTree · high confidence

Add RulerItem component with user selection support

The AdvancedSearch feature now includes a new RulerItem component that renders filter rules. For fields containing 'UserId', the component provides specific operators (equals, not equals, in) and supports selecting users via a modal. For other field types (string, dateTime, number, boolean, enum), it dynamically selects appropriate comparison operators (e.g., between, contains, greater than) based on the property type, enabling more granular search criteria.

BasicPlatform.WebAPI/ConsoleApp/src/components/AdvancedSearch/components · high confidence

Add Server Info page to display system and runtime details

A new Server Info page has been added to the System section, providing a detailed view of the server's environment. The page displays core application metadata (name, version), OS and runtime framework details, host and IP information, and memory usage. It also includes a live counter showing how long the application has been running and lists all environment variables. This feature allows users to monitor the current state and configuration of the server directly from the UI.

BasicPlatform.WebAPI/ConsoleApp/src/pages/System/ServerInfo · high confidence

Add application management form with SSO and tenant support

A new CreateOrUpdateForm component is introduced for the Developer/Application page, enabling users to create or update application records. The form captures core application details including name, client ID, client secret, frontend URL, and API URL, with support for HTTP/HTTPS protocols. It also includes fields for environment selection, resource routes, remarks, and a new 'useDefaultClientSecret' switch to support sub-applications sharing the main application's private key for token sharing. This change supports multi-tenant scenarios and SSO functionality as indicated by the commit messages.

BasicPlatform.WebAPI/ConsoleApp/src/pages/Developer/Application/components · medium confidence

Add application management interface for developers

A new 'Application' page has been added under the Developer section, enabling users to create, edit, copy, and manage the status of applications. The interface includes a list view with environment filtering, status toggling (enable/disable), and a creation/editing form. The change introduces the necessary frontend components, service layer functions for API calls (query, detail, create, update, status change, environment list), and TypeScript type definitions for application data.

BasicPlatform.WebAPI/ConsoleApp/src/pages/Developer/Application · medium confidence

Add article management service and models

Introduced the application service layer for article management, including the IArticleQueryService interface and request models (CreateArticleRequest, UpdateArticleRequest, etc.) for creating, updating, deleting, and publishing articles. Added corresponding data models (ArticleModel, ArticleQueryModel) with fields for title, content, author, and status, along with global using directives for the CMS application service.

Apps/CMS/CMS.AppService · medium confidence

Add frontend API service layer for authentication, SSO, and resource management

Introduces a new frontend API service layer (ant-design-pro) that exposes endpoints for user login, SSO authentication, and retrieving user resources, menus, and application configurations. This includes support for multi-tenant login flows, SSO token retrieval, and fetching application menu and data permission resources, enabling the frontend to interact with the new identity and access management capabilities.

BasicPlatform.WebAPI/ConsoleApp/src/services/ant-design-pro · high confidence

Add organization management capabilities

Introduced new services and handlers for managing organizational structures. Users can now create, update, and change the status of organizations, as well as query organizations via paginated lists, tree structures, cascaders, and select options. The implementation includes support for parent-child relationships, role associations, and status management.

BasicPlatform.AppService.FreeSql/Organizations · high confidence

Add position management capabilities

Introduced new backend services for managing organizational positions. The \PositionQueryService\ enables paginated, keyword, and organization-based position searches, as well as dropdown list retrieval. The \PositionRequestHandler\ supports creating, updating, and changing the status of positions, with data access controlled by the \DataPermissionServiceBase\ base class.

BasicPlatform.AppService.FreeSql/Positions · high confidence

Add position management request models and query service interface

Introduced new request models for creating, updating, and changing the status of positions, alongside a new query service interface that supports paginated retrieval, single-item lookup, and dropdown list generation for position data.

BasicPlatform.AppService/Positions/Requests · high confidence

Add role management page with column and data permission support

The Role management page is introduced, providing a full-featured interface for managing system roles. The new page includes a list view with status toggling, editing, and assignment of resources, users, and data permissions. Notably, the page now supports configuring column-level permissions and data masking, allowing administrators to control both data access scope and specific column visibility for each role.

BasicPlatform.WebAPI/ConsoleApp/src/pages/System/Role · high confidence

Add role-based column and data access permissions

Introduced new models to support granular role permissions. RoleColumnPermissionModel enables column-level access control and data masking (including mask length, position, and character). RoleDataQueryPolicyModel and RoleDataPermissionModel allow configuring data access scopes, custom data ranges, and query policies per role. RoleModel and RoleQueryModel were updated to include data scope and custom scope fields, enabling multi-application resource and data query permissions.

BasicPlatform.AppService/Roles/Models · high confidence

Add table column configuration form

A new EditTableColumnForm component has been introduced, enabling users to configure table columns by controlling their visibility (hideInTable), setting column width, and managing column ordering and fixed positioning (left/right).

BasicPlatform.WebAPI/ConsoleApp/src/components/EditTableColumnForm · high confidence

Add tenant management interface for multi-tenant support

The system now includes a new Tenant management module that enables multi-tenant capabilities. Users can create, update, and manage tenants, including setting data isolation levels (shared or independent databases) and configuring sub-application connections. The update also introduces forms for assigning resources to tenants and managing tenant super-administrators, along with a main list view that supports status toggling, resource assignment, and database structure synchronization.

BasicPlatform.WebAPI/ConsoleApp/src/pages/System/Tenant · high confidence

Add tenant management service and models

Introduces the core data models (TenantModel, TenantApplicationModel, TenantQueryModel) and request/response classes for managing tenants, including support for shared database isolation levels and connection string handling. The new ITenantQueryService interface defines methods for retrieving tenant details, paginated lists, and connection strings, enabling the platform to support multi-tenant architectures.

BasicPlatform.AppService/Tenants · high confidence

Add user and external page management services

Added new query and request handler services for managing external pages and user accounts. The ExternalPageQueryService and ExternalPageRequestHandler provide capabilities to create, update, and delete external pages, including validation for duplicate paths and hierarchical tree structures. The UserQueryService and UserRequestHandler implement user management features, including paginated user lists with role and organization filtering, access record tracking, and user profile updates. The implementation supports tenant-specific admin creation, role assignment, and status changes, enabling administrators to manage user accounts and external page configurations within the FreeSql-based application layer.

BasicPlatform.AppService.FreeSql/Users · high confidence

Add user avatar dropdown and header right-content components

The frontend now includes a new RightContent component area containing the AvatarDropdown for user profile management and logout, as well as a header bar with language selection, a help/contact modal, tenant information display, and a dark/light theme switcher that reloads the page upon theme change.

BasicPlatform.WebAPI/ConsoleApp/src/components/RightContent · high confidence

Add user login page with SSO and multi-tenant support

The login page at BasicPlatform.WebAPI/ConsoleApp/src/pages/User/Login has been introduced, providing a new user-facing login interface. The implementation includes support for Single Sign-On (SSO) redirects via clientId and redirectUrl query parameters, as well as multi-tenant authentication by passing the tenant code to the login API. The component handles account/password submission, token management, and redirection to the target application or URL upon successful authentication. A corresponding test suite validates the login form rendering and successful login flow.

BasicPlatform.WebAPI/ConsoleApp/src/pages/User/Login · high confidence

Add user management page with granular permission controls

The user management interface now supports configuring column-level permissions and data masking, alongside existing resource and data permissions. The UI includes dedicated modals and API endpoints for assigning column permissions, allowing administrators to control which data columns are visible or masked for specific users or roles.

BasicPlatform.WebAPI/ConsoleApp/src/pages/System/User · high confidence

Add user, organization, and tenant management infrastructure

The App.Infrastructure layer now includes new models, request/response DTOs, and service interfaces and implementations for managing users, organizations, roles, and tenants. Users can now create, update, and retrieve user profiles, manage custom table column preferences, and access external pages. The system also supports multi-tenant architectures with shared database isolation levels, caching tenant information, and fetching organization and position data via API calls to the main application.

Apps/App.Infrastructure · high confidence

Add web settings management and event storage viewing features

Users can now manage website configuration (logo, name, description, copyright) via a new WebSetting page in the System section, with changes saved to the backend. Additionally, a new Event Storage page has been added under Developer, allowing users to search for and view detailed information about stored events, including business entity details, versioning, and event data.

(repo-wide) · high confidence

Added HeaderDropdown component and Swagger API service layer

The ConsoleApp frontend now includes a new HeaderDropdown component that wraps Ant Design's Dropdown with responsive styling, and a complete Swagger-generated API service layer for pet, store, and user endpoints, enabling the application to interact with the backend's REST endpoints.

BasicPlatform.WebAPI/ConsoleApp/src/components/HeaderDropdown, BasicPlatform.WebAPI/ConsoleApp/src/services/swagger · high confidence

Added SSO login redirect page

A new LoginRedirect page has been added to handle Single Sign-On (SSO) authentication flows. This component processes the SSO callback by exchanging a session code for an auth token and then redirects the user to the original application URL with the token, supporting both standard redirects and those requiring additional query parameters.

BasicPlatform.WebAPI/ConsoleApp/src/pages/User/LoginRedirect · high confidence

Added UserModal component for user selection

A new UserModal component has been introduced to the application. This modal provides a split-pane interface for selecting users, featuring an OrganizationTree on the left for navigating organizational structures and a TransferForm on the right for selecting specific users. This component enables users to choose and confirm a list of users for downstream processes.

BasicPlatform.WebAPI/ConsoleApp/src/components/UserModal · high confidence

Added application management and status control

Users can now create, update, and manage applications within the platform. This includes managing application details such as client ID, URLs, and resource routes, as well as controlling the enabled/disabled status of each application. The new ApplicationQueryService and ApplicationRequestHandler provide the necessary backend logic to support these application management capabilities.

BasicPlatform.AppService.FreeSql/Applications · high confidence

Added application query service interface

A new interface, IApplicationQueryService, has been introduced to handle application data retrieval. This includes methods for listing environments, retrieving secrets by client ID, fetching application lists and paginated results, and querying by ID or client ID. This provides the backend contract for application management and SSO-related queries.

BasicPlatform.AppService/Applications · high confidence

Added article management capabilities

Introduced new services for managing articles, including a query service for retrieving article lists and details, and a request handler for creating, updating, deleting, and publishing/unpublishing articles.

Apps/CMS/CMS.AppService.FreeSql/Articles · high confidence

Added column and data permission services with caching and tenant support

Introduced new services in the FreeSql Commons module to manage column and data permissions. The new CommonService handles table column metadata and user-specific column visibility settings. The DefaultColumnPermissionService retrieves and caches column-level access controls for users and their roles. The DefaultDataPermissionService manages data-level policies, including user and role-based query filters, and resolves user organization hierarchies. Additionally, the TenantService was added to handle tenant information retrieval and connection string decryption, supporting shared database multi-tenancy.

BasicPlatform.AppService.FreeSql/Commons · high confidence

Added custom advanced search component with filter groups

A new AdvancedSearch component has been introduced to the ConsoleApp, providing users with a modal-based interface for constructing complex, multi-group filter queries. The component supports adding multiple filter groups and individual conditions, validates input fields to prevent empty submissions, and integrates with the existing table column data to enable advanced search capabilities.

BasicPlatform.WebAPI/ConsoleApp/src/components/AdvancedSearch · high confidence

Added domain event handler for article publishing

A new domain event handler, TestEventHandler, has been added to process ArticlePublishedEvent. When an article is published, this handler automatically updates the article's title and author, demonstrating the system's capability to react to domain events.

Apps/CMS/CMS.AppService.FreeSql/DomainEventHandlers · high confidence

Added domain event handlers for user, role, and tenant management

New domain event handlers have been introduced in the BasicPlatform.Domain.EventHandler module to manage state changes for users, roles, and tenants. The CacheEventHandler automatically clears relevant caches when user or role permissions are updated. RoleEventHandler, UserEventHandler, and TenantEventHandler synchronize database records with domain events for resources, permissions, and applications. Additionally, the project now includes FodyWeavers configuration to enable the Rougamo aspect-oriented programming framework for features like event tracking.

BasicPlatform.Domain.EventHandler · medium confidence

Added external page management interface

Introduced a new 'ExternalPage' module within the System section, enabling users to manage external page configurations. This includes a tree-based navigation for page categories, a data table for listing and editing external links, and full CRUD operations (create, read, update, delete) with associated API service definitions and TypeScript type definitions.

BasicPlatform.WebAPI/ConsoleApp/src/pages/System/ExternalPage · high confidence

Added frontend utility functions for filtering, menu handling, and permissions

The frontend now includes new utility modules in the \ConsoleApp\ application. \filter.ts\ provides functions to convert filter conditions into human-readable text. \menu.ts\ contains a recursive function to process and flatten menu structures. \navTheme.ts\ manages the navigation theme (light/dark mode) in session storage. \permission.ts\ defines a comprehensive map of API endpoints and permissions for various entities including roles, tenants, users, and event tracking. \request.ts\ standardizes HTTP request methods (GET, POST, PUT, DELETE, PAGING). \storage.ts\ and \token.ts\ handle local and session storage for tokens and themes. \utils.ts\ provides helper functions for file downloads, permission checks (\canAccessible\, \hasPermission\, \hasMenuPermission\), menu resource retrieval, and common UI interactions like \queryDetail\ and \submitHandle\.

BasicPlatform.WebAPI/ConsoleApp/src/utils · high confidence

Added position management data models

Introduced new PositionModel and PositionQueryModel classes in the BasicPlatform.AppService.Positions.Models namespace. PositionModel defines the core entity with fields for organization ID, name, remarks, status, and sort order. PositionQueryModel extends QueryModelBase to support filtering and table display configuration, including column visibility settings (HideInTable) and table column properties (sort, width, alignment) for the name, remarks, status, and sort fields.

BasicPlatform.AppService/Positions/Models · high confidence

Added real-time article notifications via SignalR

A new integrated event handler has been added to the CMS application, enabling real-time notifications for article creation and publication. When an article is created or published, the system now broadcasts an instant message to all connected users, displaying the relevant user and title information through the notice hub service.

Apps/CMS/CMS.IntegratedEventHandler · high confidence

Added request models for organization management

Introduced five new request classes to support organization management operations: CreateOrganizationRequest and UpdateOrganizationRequest handle creating and updating organization details including role assignments; GetOrganizationPagingRequest and GetOrganizationTreeDataRequest support querying organization lists and hierarchical tree structures with filtering options; OrganizationStatusChangeRequest enables status updates for existing organizations.

BasicPlatform.AppService/Organizations/Requests · high confidence

Added resource model and sync request for resource synchronization

Introduced a new ResourceModel class containing application ID, key, and code fields, alongside a SyncResourceRequest that accepts a list of resources for incremental synchronization. This enables the system to update resource data by adding new entries and removing unassigned ones, supporting the backend's resource sync functionality.

BasicPlatform.AppService/Resources · high confidence

Added resource synchronization handler to sync and update resource permissions

A new \ResourceRequestHandler\ class has been introduced to manage the synchronization of system resources. This handler processes incoming resource updates by comparing the current state with the requested state: it removes resources that are no longer present, adds new resources, and updates the associations between roles and users with their respective resource permissions. This ensures that the system's resource list and the associated user/role permissions are kept in sync.

BasicPlatform.AppService.FreeSql/Resources · high confidence

Added response models for position queries

New response classes were added to the Positions module: GetPositionByIdResponse now includes an OrganizationPath property, and GetPositionPagingResponse includes an OrganizationName property. The paging response also includes a DataPermission attribute for role-based access control and a TableColumn attribute for UI rendering.

BasicPlatform.AppService/Positions/Responses · high confidence

Added tenant query and request handling for multi-tenant support

Introduced new services in the FreeSql implementation to support multi-tenancy. The \TenantQueryService\ provides methods to retrieve tenant details, paging, and connection strings, while the \TenantRequestHandler\ processes commands to create, update, change status, assign resources, and initialize databases for tenants. These changes enable the platform to manage multiple tenants with isolated or shared database configurations.

BasicPlatform.AppService.FreeSql/Tenants · medium confidence

Added type definitions for column permissions, data permissions, and table columns

Introduced new TypeScript interfaces for column permissions (including data masking settings), data permissions (including query filters and scopes), and table column configurations (including hide/show options for tables and search forms). These types support the new granular control over which data columns are visible or editable, how data is masked, and how permissions are structured for applications and users.

BasicPlatform.WebAPI/ConsoleApp/src/services · high confidence

CMS Web application scaffolding and configuration

The CMS Web application is initialized with a complete development environment, including ESLint, Prettier, and Husky for code quality and commit validation. Configuration files for development and production environments are added, defining API endpoints, routing, and theme settings. The application includes mock data for testing and a loading script to prevent white screen on initial load. Access control logic is implemented to manage user permissions and menu visibility based on API resources.

Apps/CMS/CMS.WebAPI/CMSWeb · high confidence

CRM application scaffolding with customer management and API endpoints

The CRM application now includes a complete implementation for managing customers, featuring a domain model and command handler that utilize SqlSugar for data access. The update introduces a CustomerController to expose a REST API for creating new customers, alongside an AccountController for user information and a UserController for resource management. The change also adds a process manager to handle customer creation events and configures the WebAPI with standard settings, including CORS, JWT authentication, and logging.

Apps/CRM · high confidence

Domain models for tenants, roles, applications, and organizations now emit domain events

The domain models in BasicPlatform.Domain have been updated to support event sourcing. New event classes (e.g., TenantCreatedEvent, RoleCreatedEvent, ApplicationCreatedEvent, OrganizationCreatedEvent, PositionCreatedEvent) are now applied by their respective aggregates (Tenant, Role, Application, Organization, Position) when they are created, updated, or have their status changed. This enables external systems or internal handlers to react to these state changes, supporting features like audit logging, cache invalidation, and integration events as indicated by the commit messages.

BasicPlatform.Domain · high confidence

Initial commit of the BasicPlatform framework and example applications

The repository is initialized with the core BasicPlatform framework, including a .NET 7-based backend with user, role, and organization management, alongside a frontend built with Ant Design Pro and Umi.js. This initial commit also adds two example applications, CMS and CRM, each structured with domain, application service, and web API layers, as well as supporting files like a Makefile for build and run scripts, a Python build script, and an Apache 2.0 license.

(repo-wide) · high confidence

Introduce ArcoApp frontend scaffolding with internationalization and API integration

The ArcoApp frontend application is introduced with core scaffolding files. The main App component is configured for locale-based internationalization using the Arco Design Vue library. API integration is established through an Axios interceptor that handles authentication headers and error responses, alongside dedicated modules for user, dashboard, message, and chat endpoints. The application is also styled with global CSS and breakpoint variables to support responsive design.

BasicPlatform.WebAPI/ArcoApp · high confidence

Introduce CMS article management with domain events and API permissions

The CMS application now includes a new Article domain model with fields for title, summary, content, author, source, cover, and interaction counts (views, likes, comments). The domain model includes methods to update, recommend, un-recommend, top, and publish articles. Corresponding domain events (ArticleCreatedEvent, ArticlePublishedEvent) are added to track creation and publishing actions. API permission constants are defined for article details, and global usings are configured for the WebAPI project. Configuration files (appsettings.json, appsettings.Production.json) are added for both development and production environments, including database connections, Redis, logging, and CORS settings. The Dockerfile is updated to use .NET 7.0, and Fody/Rougamo configuration files are added.

Apps/CMS/CMS.WebAPI · high confidence

Introduce Position management with new form, list, and service layer

The Position management page has been rebuilt with a new CreateOrUpdateForm component that handles both creating and updating positions via a modal dialog, including fields for name, sort order, remarks, and status. The main list view now uses a split-pane layout with an OrganizationTree on the left and a ProTable on the right, allowing users to filter positions by organization. A new service layer provides functions for querying, fetching details, creating, updating, and changing the status of positions. Type definitions for Position items and parameters have been added to support these operations.

BasicPlatform.WebAPI/ConsoleApp/src/pages/System/Position · high confidence

Introduce configurable table column metadata and common service interface

The BasicPlatform.AppService layer now includes a new ICommonService interface and associated response models (GetTableColumnsResponse, TableColumnInfo) that expose table column configuration and metadata. This change adds a generic paging request class (GetCommonPagingRequest) and base model classes (ModelBase, QueryModelBase) that standardize ID, organizational unit, and audit fields. The global usings and new files support a feature allowing column visibility and filtering options (HideInTable, HideInSearch) to be queried, enabling dynamic table column configuration.

BasicPlatform.AppService · medium confidence

Introduces API permission constants and sub-application authentication filter

Adds \ApiPermissionConstant\ to define permission strings for roles, users, external pages, organization, positions, applications, and tenants, enabling granular access control. Additionally, introduces \SubApplicationFilterAttribute\ to enforce token validation for sub-applications, ensuring that requests from child apps are authenticated against the main application's security context while allowing internal or Dapr calls to bypass strict checks.

BasicPlatform.WebAPI · high confidence

Introduces IUserQueryService for user data retrieval

A new IUserQueryService interface is added to the BasicPlatform.AppService.Users namespace, exposing methods for retrieving user information, access records, external pages, resource codes, and user-specific column and data permissions. This service layer provides the backend queries needed for user management and permission checks.

BasicPlatform.AppService/Users · high confidence

New CMS API controllers for user, article, and system management

Added new API controllers in the CMS application to support content and system management. The AccountController provides user profile and permission caching, while the ArticleController exposes full CRUD and publishing endpoints for article management. System controllers (Organization, Position, Role, User) provide endpoints for managing organizational structures, job titles, and user resources. Additionally, a UtilController offers memory management and resource retrieval utilities.

Apps/CMS/CMS.WebAPI/Controllers · high confidence

New ProTablePlus component with configurable columns and detail views

A new ProTablePlus component has been added to the ConsoleApp, providing a feature-rich table interface that supports remote column configuration, advanced search, and a drawer-based detail view. The component integrates with the Ant Design Pro components and allows for dynamic column rendering, including support for hideInTable, hideInSearch, and hideInDescriptions properties, enabling flexible table layouts and filtering options.

BasicPlatform.WebAPI/ConsoleApp/src/components/ProTablePlus · medium confidence

New organization management interface with tree/list view and form-based editing

Users can now manage the organization structure through a dedicated page that displays a hierarchical tree on the left and a paginated list on the right. The interface supports creating, updating, and deleting organizations, assigning leaders, and managing roles. The change introduces a new form component for creating and editing organizations, along with service functions to handle API calls for listing, creating, updating, and changing the status of organizations.

BasicPlatform.WebAPI/ConsoleApp/src/pages/System/Organization · high confidence

New organization query service interface for hierarchical data access

A new IOrganizationQueryService interface has been introduced in the BasicPlatform.AppService/Organizations module, exposing methods to retrieve organization data in various formats: paginated lists, single entity by ID, name-based ID lookup, tree structures, tree select options, cascading lists, and flat select lists. This enables consumers to query organizational units and departments with support for tree-view rendering and selection components.

BasicPlatform.AppService/Organizations · high confidence

New role management request models

The system introduces new request models for managing roles, including creating, updating, and changing the status of roles. It also adds specific request classes for assigning users, resources, data permissions, and column permissions to roles, enabling more granular control over role-based access and data visibility.

BasicPlatform.AppService/Roles/Requests · high confidence

New user management and permission models

Added new domain models for user management and access control: UserAppointmentModel for tracking organizational roles, UserColumnPermissionModel for configuring column visibility and data masking, UserCustomColumnModel for storing user-specific table column settings, UserDataPermissionModel for defining data access scopes and policies, UserModel for core user profile data, and UserQueryModel for filtering and displaying user lists. These models enable granular control over user data, column visibility, and data permissions.

BasicPlatform.AppService/Users/Models · medium confidence

New user management request models for permissions, audit, and configuration

The user service layer now supports granular user management through new request models: column and data permission assignments (with expiration dates), resource allocation, and custom column configuration. Additionally, the system now tracks user access records, manages user appointments, and supports status changes, password resets, and login info updates, enabling more comprehensive user administration and audit capabilities.

BasicPlatform.AppService/Users/Requests · high confidence

New user response models for permissions, access logs, and resource codes

The system now exposes structured response models for user management and auditing. Administrators can retrieve detailed current user information including resource codes, organization path, and role IDs. A new user access record query feature allows viewing login history with IP, browser, and device details. Additionally, dedicated response models are introduced for user column permissions, data permissions, and resource code information, supporting granular access control and multi-application resource management.

BasicPlatform.AppService/Users/Responses · high confidence

Role management service implementation for FreeSql

Added the FreeSql-based implementation for role query and request handling, enabling role CRUD operations, resource/user/data permission assignment, and hierarchical organization-based role retrieval.

BasicPlatform.AppService.FreeSql/Roles · high confidence

Behavioural changes

8 commits (0 fixes) modifying Apps/CMS/CMS.WebAPI/Databases

A change to existing behaviour in Apps/CMS/CMS.WebAPI/Databases — 8 commits, 6 files.

Apps/CMS/CMS.WebAPI/Databases · medium confidence · unverified

Add request models for application management

Introduced new request models to support application management, including creating, updating, and changing the status of applications. The CreateApplicationRequest now includes a UseDefaultClientSecret field, which allows child applications to share the parent application's private key for token sharing.

BasicPlatform.AppService/Applications/Requests · medium confidence

Introduced the IExternalPageQueryService interface and its associated request and response classes (CreateExternalPageRequest, UpdateExternalPageRequest, DeleteExternalPageRequest, GetExternalPagePagingRequest) and models (ExternalPageModel, GetExternalPageByIdResponse, GetExternalPagePagingResponse) to support querying and managing external pages, including pagination, tree/list retrieval, and public visibility flags.

BasicPlatform.AppService/ExternalPages · high confidence

Added process managers for multi-tenant resource assignment and tenant initialization

The BasicPlatform.ProcessManager module now includes new process managers that handle multi-tenant resource assignment and tenant initialization. Specifically, UserProcessManager and RoleProcessManager now handle TenantResourceAssignedEvent to update user and role resources within a tenant's context, while TenantProcessManager handles UserCreatedEvent to trigger tenant initialization. These changes support multi-tenancy by ensuring that when resources are assigned to a tenant, the corresponding user and role data are updated accordingly, and new tenants are automatically initialized.

BasicPlatform.ProcessManager · high confidence

Added response model for paginated application queries

A new response class, GetApplicationPagingResponse, has been introduced to handle paginated queries for sub-applications. This class inherits from ApplicationQueryModel and includes data permission attributes to support multi-tenant access control for the application management module.

BasicPlatform.AppService/Applications/Responses · high confidence

Application model refactored with new fields and moved to Applications namespace

The application model has been refactored and moved from BasicPlatform.Domain to BasicPlatform.AppService.Applications.Models. The model now includes fields for environment, client ID, client secret, a new UseDefaultClientSecret boolean (to support sub-applications using the main application's secret for token sharing), frontend URL, API URL, menu resource route, and permission resource route. The previous DataAccessPolicyConfiguration structure with group relationships and user tracking has been replaced with this simpler, more focused application configuration model.

BasicPlatform.AppService/Applications/Models · medium confidence

Gateway restructured and routes updated

The BasicPlatform.Gateway project has been restructured, moving from the BasicPlatform.Gateway.Yarp namespace to BasicPlatform.Gateway. Configuration files have been reorganized into a new Configs directory, and the reverse proxy routes have been updated: the identity and ordering service routes have been replaced with payment and basic API routes, and new routes for mobile, shop, VM, and VM mobile APIs have been added. The gateway now exposes a /config endpoint to retrieve the current reverse proxy configuration as JSON.

BasicPlatform.Gateway · high confidence

Initialize FreeSql-based CMS application service with global usings

The CMS application service layer for FreeSql has been initialized with a new set of global using directives. This includes dependencies on the Athena Infrastructure library (covering caching, data permissions, domain models, enums, exceptions, FreeSql integration, authentication, providers, and query filters) as well as core libraries like FreeSql, MediatR, and LINQ expressions. This change establishes the foundational namespace imports required for the CMS module's data access and business logic implementation.

Apps/CMS/CMS.AppService.FreeSql · high confidence

Introduce Pinia state management for app settings and tab-bar navigation

The application now uses Pinia stores to manage global state. The app store handles theme, device, and menu configurations, while the tab-bar store manages the list of open tabs and their cache status. This introduces a new state management layer for UI settings and navigation history.

BasicPlatform.WebAPI/ArcoApp/src/store/modules/app, BasicPlatform.WebAPI/ArcoApp/src/store/modules/tab-bar · high confidence

Introduces cache key constants for user policies, column permissions, and data scopes

A new CacheConstant class was added to centralize cache key templates for user-related data, including user policy queries, column permissions, and data scopes. This change supports the upgraded basic library's strategy query filters and column permission features by providing standardized cache keys for these specific data types.

BasicPlatform.Infrastructure/Caches · medium confidence

Introduces frontend access control and error handling for the ConsoleApp

The ConsoleApp frontend now enforces menu and route permissions based on the user's API resources, ensuring that navigation items are filtered according to the logged-in user's access rights. Additionally, a centralized error handling mechanism has been added to manage API failures, automatically redirecting users to the login page upon authentication errors or displaying specific error notifications for server and network issues.

BasicPlatform.WebAPI/ConsoleApp/src · high confidence

New organization response models for API contracts

Three new response classes have been added to the organization module: GetOrganizationByIdResponse, which includes role IDs and leader name; GetOrganizationPagingResponse, which applies data permissions for the organization management module; and GetOrganizationTreeDataResponse, which supports hierarchical tree structures with child items. These changes define the data structures returned by the organization service.

BasicPlatform.AppService/Organizations/Responses · high confidence

New role query service interface for granular permissions

A new IRoleQueryService interface is introduced to support querying roles, including pagination, dropdown lists, and user-specific role assignments. Crucially, it adds methods to retrieve data permissions and column-level permissions for a given role, enabling more granular access control and data masking capabilities for users.

BasicPlatform.AppService/Roles · medium confidence

Refactor organization data models and introduce query model

The OrganizationModel has been moved from the Domain layer to the AppService layer, with its namespace updated to BasicPlatform.AppService.Organizations.Models. The model's properties have been restructured: the previous DataAccessPolicyConfigurationGroup fields (Name, Remarks, Status, CreatedUserId, UpdatedUserId) have been replaced with organization-specific fields (ParentId, Name, LeaderId, ParentPath, Remarks, Status, Sort). Additionally, a new OrganizationQueryModel has been added to support querying, featuring table column configurations for UI rendering (e.g., HideInTable, Width, Sort order) and standard query fields like ParentId, Name, LeaderUserId, ParentPath, Remarks, Status, and Sort.

BasicPlatform.AppService/Organizations/Models · high confidence

Removed weather forecast demo endpoints

The weather forecast controller and its associated model class have been removed from the Yarp gateway project, eliminating the demo API endpoints that previously returned simulated weather data.

BasicPlatform.Gateway.Yarp · high confidence

Renamed and updated ExternalPageType enum

The ExternalPageType enum has been renamed from ResourceType, with its members updated to ExternalLink and InternalLink, reflecting a shift from resource-based to page-type categorization.

BasicPlatform.Infrastructure/Enums · high confidence

Role management responses now include resource codes, data scope configuration, and user lists

The role response models have been updated to expose additional role details to the user interface. The GetRoleByIdResponse now includes a list of resource codes, a configurable data access scope selection list, and a list of users associated with the role. The GetRolePagingResponse is also updated to support these new fields, enabling more granular control and visibility into role permissions and data access scopes.

BasicPlatform.AppService/Roles/Responses · high confidence

Updated global using directives for multi-tenant and event tracking support

The BasicPlatform.AppService.FreeSql module has been updated with new global using directives to support multi-tenancy and event tracking. This includes references to tenant-related models and infrastructure (Athena.Infrastructure.FreeSql.Tenants, Athena.Infrastructure.Tenants, BasicPlatform.Domain.Models.Tenants) as well as event tracking interfaces and AOP components (Athena.Infrastructure.Event.Interfaces, Athena.Infrastructure.EventTracking.Aop).

BasicPlatform.AppService.FreeSql · medium confidence

Test coverage

Added unit tests for BasicPlatform core entities

Added unit tests for the BasicPlatform.Test project, covering the creation, retrieval, and status changes for Applications, Organizations, Roles, and Users. The test suite also includes helper tests for event tracking, data permissions, user-agent parsing, and connection string parsing, supported by a new TestBase class and configuration files.

BasicPlatform.Test · high confidence

Dependencies

Upgrade to .NET 7 and update core library dependencies

The application has been upgraded to target .NET 7.0 across multiple project files, including the BasicPlatform, CMS, and CRM modules. This includes updating the \Athena.Infrastructure\ suite of packages to version 7.0.x, which likely provides compatibility with the new .NET runtime. Additionally, the project structure has been adjusted, such as renaming \BasicPlatform.Gateway.Yarp\ to \BasicPlatform.Gateway\ and updating various third-party dependencies like \Serilog\ and \Yarp.ReverseProxy\ to their latest compatible versions.

(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

Score

  • CAI 32 → 31 (-1.1)
  • Rubric changed (rubric-2026.08.19 → rubric-2026.09.15) — scores are not directly comparable.

Lenses

  • Code Health 56 → 55 (-1.3)
  • Architecture 79 → 79 (+0.3)
  • Maturity 42 → 42 (+0.0)
  • Readiness 28 → 25 (-2.7)
  • Security 43 → 44 (+1.5)
  • Domain Modelling 30 → 31 (+0.9)
  • Event-Driven 88 → 88 (+0.0)
  • Accessibility 33 → 32 (-0.8)

Resolved (114)

  • Bounded contexts not declared
  • CRAP 110: ExternalPageRequestHandler.Handle (BasicPlatform.AppService.FreeSql/ExternalPages/ExternalPageRequestHandler.cs)
  • CRAP 132: UserQueryService.GetByUserNameAsync (BasicPlatform.AppService.FreeSql/Users/UserQueryService.cs)
  • CRAP 380: ResourceRequestHandler.Handle (BasicPlatform.AppService.FreeSql/Resources/ResourceRequestHandler.cs)
  • CRAP 42: DefaultDataPermissionService.GetUserDataScopesAsync (BasicPlatform.AppService.FreeSql/Commons/DefaultDataPermissionService.cs)
  • CRAP 42: TenantQueryService.GetByCodeAsync (BasicPlatform.AppService.FreeSql/Tenants/TenantQueryService.cs)
  • CRAP 56: ExternalPageRequestHandler.Handle (BasicPlatform.AppService.FreeSql/ExternalPages/ExternalPageRequestHandler.cs)
  • CRAP 56: UserQueryService.GetTreeChildren (BasicPlatform.AppService.FreeSql/Users/UserQueryService.cs)
  • CRAP 90: UserQueryService.GetPagingAsync (BasicPlatform.AppService.FreeSql/Users/UserQueryService.cs)
  • Critical CVE: [GHSA redacted] (Apps/CMS/CMS.WebAPI/CMSWeb/pnpm-lock.yaml)
  • Critical CVE: [GHSA redacted] (BasicPlatform.WebAPI/ArcoApp/pnpm-lock.yaml)
  • Critical CVE: [GHSA redacted] (Apps/CMS/CMS.WebAPI/CMSWeb/pnpm-lock.yaml)
  • Critical CVE: [GHSA redacted] (Apps/CMS/CMS.WebAPI/CMSWeb/pnpm-lock.yaml)
  • Critical CVE: [GHSA redacted] (Apps/CMS/CMS.WebAPI/CMSWeb/pnpm-lock.yaml)
  • Critical CVE: [GHSA redacted] (Apps/CMS/CMS.WebAPI/CMSWeb/pnpm-lock.yaml)
  • Critical CVE: [GHSA redacted] (Apps/CMS/CMS.WebAPI/CMSWeb/pnpm-lock.yaml)
  • Critical CVE: [GHSA redacted] (Apps/CMS/CMS.WebAPI/CMSWeb/pnpm-lock.yaml)
  • Critical CVE: [GHSA redacted] (Apps/CMS/CMS.WebAPI/CMSWeb/pnpm-lock.yaml)
  • Critical CVE: [GHSA redacted] (BasicPlatform.WebAPI/ArcoApp/pnpm-lock.yaml)
  • Critical CVE: [GHSA redacted] (BasicPlatform.WebAPI/ArcoApp/pnpm-lock.yaml)
  • …and 94 more

New (309)

  • Change coupling: AccountController.cs ↔ UserController.cs (BasicPlatform.WebAPI/Controllers/AccountController.cs)
  • Change coupling: UserQueryService.cs ↔ UserRequestHandler.cs (BasicPlatform.AppService.FreeSql/Users/UserQueryService.cs)
  • Change coupling: app.tsx ↔ index.tsx (BasicPlatform.WebAPI/ConsoleApp/src/app.tsx)
  • Change coupling: index.tsx ↔ index.tsx (BasicPlatform.WebAPI/ConsoleApp/src/pages/System/Organization/index.tsx)
  • Change-coupling hub: index.tsx → IUserQueryService.cs, index.tsx, index.tsx (BasicPlatform.WebAPI/ConsoleApp/src/pages/System/User/index.tsx)
  • ClassTooLong: UserQueryService (BasicPlatform.AppService.FreeSql/Users/UserQueryService.cs)
  • CommentedOutCode (BasicPlatform.WebAPI/Controllers/Developer/EventTrackingConfigController.cs)
  • CommentedOutCode (BasicPlatform.WebAPI/Controllers/Developer/EventTrackingConfigController.cs)
  • CommentedOutCode (BasicPlatform.WebAPI/Controllers/UtilController.cs)
  • Coverage not measured — JavaScript/TypeScript suite
  • CreateOrUpdateForm.CreateOrUpdateForm (cognitive 16) (BasicPlatform.WebAPI/ConsoleApp/src/pages/System/User/components/CreateOrUpdateForm.tsx)
  • CreateOrUpdateForm.CreateOrUpdateForm (cognitive 19) (BasicPlatform.WebAPI/ConsoleApp/src/pages/System/Organization/components/CreateOrUpdateForm.tsx)
  • CreateOrUpdateForm.CreateOrUpdateForm (cognitive 20) (BasicPlatform.WebAPI/ConsoleApp/src/pages/Developer/EventTracking/Config/components/CreateOrUpdateForm.tsx)
  • CreateOrUpdateForm.CreateOrUpdateForm (cognitive 23) (BasicPlatform.WebAPI/ConsoleApp/src/pages/System/Tenant/components/CreateOrUpdateForm.tsx)
  • CreateOrUpdateForm.CreateOrUpdateForm (cyclomatic 17) (BasicPlatform.WebAPI/ConsoleApp/src/pages/System/Organization/components/CreateOrUpdateForm.tsx)
  • CreateOrUpdateForm.CreateOrUpdateForm (cyclomatic 20) (BasicPlatform.WebAPI/ConsoleApp/src/pages/Developer/EventTracking/Config/components/CreateOrUpdateForm.tsx)
  • CreateOrUpdateForm.CreateOrUpdateForm (cyclomatic 24) (BasicPlatform.WebAPI/ConsoleApp/src/pages/System/Tenant/components/CreateOrUpdateForm.tsx)
  • Critical CVE: [GHSA redacted] (Apps/CMS/CMS.WebAPI/CMSWeb/pnpm-lock.yaml)
  • Critical CVE: [GHSA redacted] (BasicPlatform.WebAPI/ArcoApp/pnpm-lock.yaml)
  • Critical CVE: [GHSA redacted] (Apps/CMS/CMS.WebAPI/CMSWeb/pnpm-lock.yaml)
  • …and 289 more

API surface

  • Unchanged — 50 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

e-athena/basic-platform 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 22 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 f2908dd10b2e275d561b2876ee6c6fa8a74b7847 — 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-821afab8930d.