YMFE/yapi
36.0
Weak · 25 September 2026
36.4k
lines of production code
JavaScript
primary language
4
measurements over time
What this system is
This release delivers a comprehensive overhaul of the client-side architecture, introducing a modular component library, a plugin hook system, and a centralized Redux state management structure. It significantly expands API management capabilities with new interfaces for test collections, advanced mock configurations, and data import/export workflows. The backend introduces a robust mock server middleware, automated Swagger synchronization, and enhanced system statistics, supported by improved code quality standards and expanded test coverage.
Features
Add 'My Follows' page to display followed projects
A new 'My Follows' page has been added to the client, allowing users to view a list of projects they are following. The page fetches the user's followed projects via a new \getFollowList\ action and displays them using a \ProjectCard\ component. The list is sorted by update time in descending order, and a no-content message is shown if the list is empty.
client/containers/Follows · high confidence
Add Breadcrumb navigation component
A new Breadcrumb component has been added to the client, providing a navigational header that displays a list of items from the Redux state. The component renders an Ant Design Breadcrumb with styled links and text, supporting both clickable and non-clickable items based on the presence of an href property.
client/components/Breadcrumb · high confidence
Add EasyDragSort component for list reordering
A new EasyDragSort component has been introduced to the client, enabling users to reorder items in a list via drag-and-drop interactions. The component manages drag state, handles the reordering logic, and exposes callbacks for change and end events.
client/components/EasyDragSort · high confidence
Add ErrMsg component for displaying contextual error and empty-state messages
A new ErrMsg component has been introduced to provide a consistent, contextual error and empty-state display across the application. The component renders a header, description, and optional action based on the error type (e.g., 'noFollow', 'noInterface', 'noData'), and includes specific styling for the error message layout.
client/components/ErrMsg · high confidence
Add HAR file import capability
Users can now import API definitions from HAR (HTTP Archive) files. The new \yapi-plugin-import-har\ plugin parses the HAR JSON structure, extracts endpoint details (title, path, method, headers, query parameters, and request body), and converts them into the platform's internal schema format, including support for JSON schema transformation and handling of various content types (JSON, form-data, urlencoded).
exts/yapi-plugin-import-har · high confidence
Add Intro component for displaying project introduction and features
A new Intro component has been added to the client, rendering a split layout with an image on the left and descriptive text and feature items on the right. The component utilizes rc-scroll-anim, rc-tween-one, and rc-queue-anim to provide scroll-triggered entrance animations for the content sections.
client/components/Intro · high confidence
Add Label component for editable descriptions
A new Label component has been introduced to the client, providing an interactive UI for editing descriptions. The component renders a description text with an inline edit mode, allowing users to toggle between viewing and modifying the content via an input field and confirmation/cancellation icons.
client/components/Label · medium confidence
Add Loading component for displaying a full-screen loading state
A new Loading component has been introduced to the client, providing a full-screen overlay with a spinning ball animation to indicate loading states. The component accepts a 'visible' prop to control its display, rendering a fixed-position container with a semi-transparent background and an animated loader in the center.
client/components/Loading · high confidence
Add News page with timeline and mock data display
A new News container has been introduced, rendering a timeline-based view of user activity. The page includes a Subnav for navigation, a header section displaying a mock URL and a 'Download Mock Data' button, and a NewsTimeline component that presents activity logs with styled timeline items, user links, and timestamps.
client/containers/News · high confidence
Add NewsList component for displaying log types
A new NewsList component has been added to the client/containers/News/NewsList directory. This component renders an inline menu listing log types (User, Group, Interface, Project) and handles selection to fetch corresponding news data via Redux actions.
client/containers/News/NewsList · high confidence
Add Postman data import capability
Users can now import API definitions from Postman collections. The new \exts/yapi-plugin-import-postman\ plugin parses Postman JSON files, mapping request details (headers, query parameters, body data, and response schemas) to the platform's internal API schema, enabling seamless migration of existing Postman workspaces.
exts/yapi-plugin-import-postman · high confidence
Add Project creation form
A new AddProject component has been introduced, providing a user interface for creating a new project. The form collects the project name, associated group, base path, description, and visibility settings (private or public). On successful creation, the user is redirected to the project's interface API page.
client/containers/AddProject · high confidence
Add SchemaTable component for displaying JSON Schema as a table
A new SchemaTable component has been added to render JSON Schema definitions as a structured table. It parses the schema data, transforms it into a tabular format, and displays fields such as name, type, required status, default values, descriptions, and other metadata like maximum/minimum values or enum details. The component handles parsing errors gracefully and uses Ant Design's Table for rendering.
client/components/SchemaTable · high confidence
Add Subnav component for secondary navigation
A new Subnav component has been introduced to render a horizontal menu of secondary navigation links. It accepts an array of navigation items and a default selection key, mapping each item to a React Router Link. The component also includes specific styling to handle layout and spacing for the menu items.
client/components/Subnav · high confidence
Add Swagger 2.0 (OpenAPI) export plugin
A new plugin has been added to YApi that allows users to export project interface documentation as a Swagger 2.0 (OpenAPI) JSON file. The plugin registers a client-side hook to expose the export option and a server-side route to handle the request. The server-side controller fetches the project's interface data, cleans up internal model fields, and transforms the structure into the Swagger 2.0 format, including headers, path parameters, and query parameters.
exts/yapi-plugin-export-swagger2-data · high confidence
Add Swagger auto-sync plugin for automatic API interface synchronization
A new plugin named 'Swagger auto-sync' is introduced, enabling automatic synchronization of API interfaces from a Swagger/OpenAPI definition URL. The feature includes a backend scheduler that periodically fetches the Swagger JSON, compares it with the previous version to avoid redundant updates, and imports or merges the data into the current project. Users can configure the synchronization via a new 'Swagger auto-sync' menu item in the project settings, where they can enable/disable the sync, set a cron expression for the sync schedule, specify the Swagger URL, and choose a sync mode (normal, smart merge, or full override). The plugin also maintains a database model to track sync status, last sync time, and the previous Swagger content hash.
exts/yapi-plugin-swagger-auto-sync · high confidence
Add Swagger/OpenAPI data import plugin
Users can now import API definitions from Swagger and OpenAPI 3.0 specifications. The new 'yapi-plugin-import-swagger' extension registers a client-side hook and a server-side handler that parses Swagger/OpenAPI JSON, normalizes the data structure, and maps it to YAPI's internal format for import.
exts/yapi-plugin-import-swagger · high confidence
Add UsernameAutoComplete component for user selection
A new UsernameAutoComplete React component is introduced, providing a multiple-selection dropdown for user lookup. It fetches user data via an API call (/api/user/search) and renders a list of usernames with their IDs, allowing users to select one or more users from the autocomplete suggestions.
client/components/UsernameAutoComplete · high confidence
Add YApi JSON data import plugin
Users can now import API data from a YApi-formatted JSON file. This new client-side plugin parses the JSON structure, mapping categories and API lists into the system's internal format, and provides user feedback for invalid data formats.
exts/yapi-plugin-import-yapi-json · high confidence
Add interface collection and case saving functionality
Users can now save interface test cases into collections. A new Run page provides a 'Save to Collection' workflow, opening a modal that lets users select an existing collection or create a new one on the fly. The implementation adds the Run component and an AddColModal for managing collections, enabling the storage of test case configurations and results.
client/containers/Project/Interface/InterfaceList/Run · high confidence
Add project data import and export capabilities
The ProjectData component has been introduced to the project settings, providing a new interface for importing and exporting project data. Users can now upload files for import, with support for multiple data formats including Postman, HAR, and Swagger. The feature includes a data synchronization mode that allows users to choose between merging or overwriting existing data, and displays a confirmation modal showing the differences before applying changes. Additionally, the component supports exporting project data and integrates with a plugin system to allow third-party import/export handlers.
client/containers/Project/Setting/ProjectData · high confidence
Add project request script configuration
Users can now configure pre-request and post-response scripts for a project. The new ProjectRequest component provides two code editors (using AceEditor) for entering JavaScript that processes request parameters and response data, with a save button that persists these scripts to the project settings.
client/containers/Project/Setting/ProjectRequest · high confidence
Add project tag management in project settings
A new ProjectMessage component and its associated ProjectTag component have been added to the project settings area. This introduces a user interface for managing custom tags, allowing users to add, edit, and delete tag names and descriptions. The implementation includes a form for tag input, a confirmation modal for project deletion, and the necessary Redux actions to update project details.
client/containers/Project/Setting/ProjectMessage · high confidence
Add project token management and OpenAPI documentation
Users can now view, copy, and regenerate a unique token for each project to authenticate requests to the OpenAPI. The new ProjectToken settings page displays the current token, provides a copy-to-clipboard action, and allows admins or owners to regenerate the token (invalidating the previous one). The page also lists available OpenAPI endpoints, including automated testing, data import, and interface management routes, with a link to the detailed API documentation.
client/containers/Project/Setting/ProjectToken · high confidence
Add project-level mock configuration UI
A new settings page has been added for each project, allowing users to enable or disable global mock functionality and edit the associated mock script via a code editor. The interface includes a toggle switch to turn the feature on or off, a text area for the mock script, and a save button that updates the project's mock configuration.
client/containers/Project/Setting/ProjectMock · high confidence
Add services page with sm2tsservice configuration instructions
A new Services page has been added to the YApi plugin, providing users with installation and configuration instructions for the sm2tsservice tool. The page displays specific configuration steps for versions 3.2.0 and later, as well as for earlier versions, including the necessary JSON configuration content and the command to generate service code. This change introduces a new UI component that guides users through the setup process for generating services from YApi.
exts/yapi-plugin-gen-services/Services · high confidence
Add statistics plugin for system and mock data monitoring
A new statistics plugin has been introduced to the YAPI platform, providing a 'System Information' page for administrators. This feature tracks mock request counts over time, aggregates data by group and project, and displays system-level metrics such as CPU load, memory usage, and uptime. The plugin registers new API endpoints to fetch these statistics and hooks into the mock generation process to record usage data.
exts/yapi-plugin-statistics · high confidence
Add system statistics and monitoring dashboard
Introduces a new statistics page that displays system status information (including OS type, CPU load, memory usage, and mail status) alongside aggregate counts for groups, projects, interfaces, and test interfaces. The page also visualizes mock API call trends over the past three months using a line chart and presents detailed group statistics in a table format.
exts/yapi-plugin-statistics/statisticsClientPage · high confidence
Add test plugin with sub\_setting\_nav hook
A new plugin named 'test' has been added to the system. It registers a client-side hook on 'sub\_setting\_nav' that injects a navigation item labeled 'test' displaying 'hello world.' This allows the plugin to modify the settings navigation bar.
exts/yapi-plugin-test · medium confidence
Add wiki plugin for project documentation
Introduces a new wiki plugin that allows users to create and edit project documentation. The plugin registers a 'Wiki' entry in the sidebar, provides API endpoints for retrieving and updating wiki content, and implements a WebSocket-based mechanism to handle editing conflicts. It also includes a model for storing wiki data and utility functions for date formatting.
exts/yapi-plugin-wiki · high confidence
Added CaseEnv component for environment selection
A new CaseEnv React component has been introduced in the client/components/CaseEnv directory. This component provides a user interface for selecting test case environments, rendering a list of environments with dropdown selectors that allow users to choose specific domains for each item. The implementation includes both the JavaScript logic and corresponding SCSS styles to handle the layout and appearance of the environment selection panel.
client/components/CaseEnv · high confidence
Added Group Member List management interface
A new MemberList component has been introduced for the Group area, providing a dedicated interface for managing group members. This addition enables users to view the current member roster, add new members with specific roles, remove members, and modify existing member permissions directly within the group settings.
client/containers/Group/MemberList · high confidence
Added GroupSetting component for group configuration
A new GroupSetting component has been introduced to manage group configuration. This feature allows users to edit a group's name and description, as well as configure a custom field (enabling it, setting a name, and applying a rule). The component also provides a secure deletion flow for groups, requiring the user to type the group name to confirm deletion, and includes styling for the settings panel.
client/containers/Group/GroupSetting · high confidence
Added MyPopConfirm component for custom leave-page confirmation
Introduced a new MyPopConfirm React component that renders an Ant Design Modal to confirm user actions, specifically for handling leave-page warnings. The component manages its own visibility state and provides callback hooks for yes/no actions, replacing or supplementing default browser confirmations with a styled modal dialog.
client/components/MyPopConfirm · high confidence
Added Postman-style parameter editing and variable selection components
Introduced a new modal interface for constructing complex parameter values using a Postman-style syntax. The update adds three new React components—MethodsList, MockList, and VariablesSelect—which allow users to apply built-in string and encryption transformations (such as md5, sha, base64, and substr), select from predefined mock data sources, and dynamically insert variables from the current collection's response. These components are integrated into the main ModalPostman container, enabling users to build and preview parameter expressions with real-time input handling and error warnings when variable sets have not been run.
client/components/ModalPostman · high confidence
Added Project container with navigation and routing
A new Project container component has been added to handle project-level navigation and routing. It manages a sub-navigation menu for sections including Interface, Activity, Data Management, Member Management, and Settings. The component dynamically filters the 'Member Management' option for private groups and redirects users to the interface page by default. It also updates the breadcrumb header with the group and project names.
client/containers/Project · high confidence
Added Redux DevTools container for state inspection
A new DevTools container has been added to the client application, integrating redux-devtools to enable state inspection and debugging. The component renders a DockMonitor wrapping a LogMonitor, allowing developers to view Redux state history. The DevTools panel is configured to be hidden by default (defaultIsVisible=false) and can be toggled using keyboard shortcuts.
client/containers/DevTools · high confidence
Added advanced mock case management interface
Users can now create, edit, and manage mock cases for a specific interface through a new 'MockCol' component. This includes a modal form (CaseDesModal) for defining response bodies, headers, and parameters, as well as a list view (MockCol) that supports filtering by IP and creator, and allows enabling/disabling or deleting cases.
exts/yapi-plugin-advanced-mock/MockCol · high confidence
Added custom Redux store creation logic
A new file, client/reducer/create.js, was added to define how the Redux store is created. This implementation configures the store with promise and message middlewares, and conditionally applies Redux DevTools in development environments, providing the foundational setup for the application's state management.
client/reducer · high confidence
Added global search component for groups, projects, and interfaces
A new Search component has been added to the header, providing a global search bar that allows users to search across groups, projects, and interfaces. The component integrates with the application's state management (Redux) and routing, enabling users to navigate directly to the selected group, project, or interface page from the search results.
client/components/Header/Search · high confidence
Added new Footer component with dynamic link lists and copyright info
The Footer component has been introduced to the client, providing a structured layout for site footers. It renders a list of link categories (such as GitHub, Team, and Feedback) with icons and titles, alongside a copyright section that dynamically displays the current year and the application version. The component uses Ant Design's Row/Col grid system and includes specific SCSS styling for the footer background, link colors, and hover effects.
client/components/Footer · high confidence
Added project activity page with mock data download
A new 'Activity' container has been added for the Project module, introducing a dedicated page that displays project activity via a TimeLine component. The page also includes a section displaying the project's mock URL and a 'Download Mock Data' button that allows users to download mock data for the current project.
client/containers/Project/Activity · high confidence
Added project environment variable management interface
Users can now configure and manage environment variables for a project. This change introduces a new UI in the project settings that allows users to define and edit headers, cookies, and global variables. The interface supports adding, deleting, and reordering environments, with changes saved to the backend.
client/containers/Project/Setting/ProjectEnv · high confidence
Added static HTML entry points for development and production builds
New static HTML templates (dev.html and index.html) were added to serve the application. The development template (dev.html) uses direct script tags for local assets, while the production template (index.html) uses dynamic script injection via webpack's ASSETS map to handle cache-busting and asset loading. Both templates include SEO meta tags, viewport settings, and the root div for the YApi application.
static · high confidence
Added test collection and case management UI components
The interface for managing test collections and individual test cases has been implemented with new React components. The \InterfaceCol\ directory now includes \InterfaceColMenu\ for the sidebar tree and actions, \InterfaceColContent\ for the main list and execution controls, \InterfaceCaseContent\ for editing individual test cases, \ImportInterface\ for adding APIs to collections, and \CaseReport\ for displaying test execution results. These components provide the frontend structure for creating, editing, and running test collections.
client/containers/Project/Interface/InterfaceCol · high confidence
Added user management and profile editing capabilities
The client now includes a new User module featuring a user list view (List.js) that allows administrators to view, search, and delete users, and a profile view (Profile.js) that enables users and admins to edit user information and change passwords. The User.js container wires these components together, and index.scss provides the necessary styling for the user management interface.
client/containers/User · high confidence
Added version notification component
A new Notify component has been added to the client-side application. This component fetches the latest version information from a remote endpoint and displays an alert banner when a new version is available, allowing users to see the current and new version numbers along with a link to the changelog.
client/components/Notify · high confidence
Centralize HTTP method configurations and mock data templates
A new \variable.js\ constant file has been added to the client constants, introducing centralized configuration for HTTP method behaviors (such as default tabs and request body requirements for GET, POST, PUT, DELETE, HEAD, OPTIONS, and PATCH), color schemes for each method, a comprehensive list of mock data templates (including strings, numbers, dates, and Chinese text), and a regular expression for IP validation. This change consolidates these previously scattered or hardcoded values into a single, reusable module.
client/constants · high confidence
Centralized export of client container components
The client/containers/index.js file was created to provide a centralized export of key container components, including Header, Home, Login, Group, Project, Follows, and AddProject. This change simplifies imports across the application by allowing other modules to import these components from a single entry point rather than referencing each component's individual file path.
client/containers · high confidence
Enhanced API export with basepath support and new service generation plugin
The export-data plugin now supports exporting API data in JSON, Markdown, and HTML formats, with the JSON export including the project's basepath in the path field. Additionally, a new gen-services plugin has been added, allowing users to generate TypeScript service files from the API definitions. Both plugins include their own default themes for styling the exported HTML documents.
exts/yapi-plugin-export-data · high confidence
Initial server-side implementation for YApi
The server directory now contains the core backend implementation for YApi, including the main application entry point (app.js) that sets up the Koa server, middleware, and static file serving. The router.js file defines API endpoints for users, groups, projects, interfaces, and more. The yapi.js module provides global configuration, singleton management, and email transport. The install.js script handles initial database setup and admin account creation. The plugin.js file establishes a hook system for third-party login, interface operations, and notifications. The websocket.js file configures WebSocket routes for real-time features like conflict resolution. This commit introduces the complete server-side architecture, replacing any previous or placeholder implementations.
server · high confidence
Introduce AceEditor component with mock data generation and fullscreen support
A new AceEditor component has been added to the client, wrapping the Ace editor with React. It supports multiple syntax modes (JavaScript, JSON, text, XML, HTML), provides a built-in mock data generator that inserts generated values (such as strings, URLs, dates, and other mock types) via autocompletion, and includes a fullscreen editing mode triggered by the F9 key.
client/components/AceEditor · high confidence
Introduce Postman interface testing component
The Postman component now provides a dedicated interface for running and testing API requests directly within the application. This includes a new \CheckCrossInstall\ utility to detect and prompt users to install the required browser extension, and a \Postman\ React component that manages request execution, response display, and environment selection. The implementation adds styling for the test interface, including layout for headers, body, and response tabs, enabling users to configure and execute API calls with enhanced feedback on success or failure states.
client/components/Postman · high confidence
Introduce ProjectCard component for project listing and management
A new ProjectCard component has been added to the client, providing a reusable UI element for displaying project information. This component supports subscribing to and unsubscribing from projects, as well as copying a project to create a new one. It integrates with the application's Redux store to manage follow states and project data, and includes styling for hover and active states.
client/components/ProjectCard · high confidence
Introduce advanced mock plugin with custom scripts and case-based filtering
The \yapi-plugin-advanced-mock\ extension is added, providing a new 'Advanced Mock' tab on interface pages. Users can now enable a custom mock script that runs after the standard mock process, allowing for dynamic response generation. Additionally, the plugin introduces a 'Cases' tab where users can define specific request parameter conditions (including optional IP matching) to trigger specific mock responses. The plugin registers new backend routes (\/api/plugin/advmock/\*\) and database models (\adv\_mock\, \adv\_mock\_case\) to persist these configurations.
exts/yapi-plugin-advanced-mock · high confidence
Introduce authentication guard and component exports
Added a new AuthenticatedComponent higher-order component that checks user login status via Redux and redirects unauthenticated users to the home page. Also added an index.js file to export shared UI components (Breadcrumb, Footer, Header, Intro, Loading, ProjectCard, Subnav, Postman) for easier imports.
client/components · high confidence
Introduce base model and new domain models for user, group, project, and interface management
The server models directory now features a shared base model class that standardizes schema definitions and database interactions. New domain models have been added to support core features: user authentication and management (user, avatar), group and member management (group), project configuration and environment variables (project), and API documentation and testing (interface, interfaceCat, interfaceCol, interfaceCase). Additionally, models for system logs (log), follow subscriptions (follow), and key-value storage (storage, token) are introduced, enabling the backend to persist and query data for these new capabilities.
server/models · high confidence
Introduce baseController for unified authentication and open API token handling
A new baseController class is introduced to centralize authentication logic. It implements a checkLogin method that validates user sessions via cookies and JWT, and adds support for OpenAPI-style token authentication for specific routes (e.g., /api/open/\*). This refactors the previous scattered authentication checks into a reusable base class that other controllers can extend.
server/controllers · high confidence
Introduce client application entry point and plugin hook system
The client folder now contains the main application entry point (Application.js) which sets up the React-Redux and React-Router structure, including route definitions for Home, Group, Project, User, Follows, AddProject, and Login. A new plugin system (plugin.js) is introduced, providing hooks for third-party login, data import/export, interface tabs, request lifecycle events (before/after request), and header menu customization. Additionally, a LogoSVG component and a MockDoc component for displaying mock data documentation are added.
client · high confidence
Introduce common utility modules for data import, mock enhancement, and formatting
Added new common modules to support data import, mock enhancements, and formatting. The \HandleImportData.js\ module enables importing data from various sources (Postman, HAR, Swagger, YAPI JSON) with support for base path configuration and data synchronization. \mock-extra.js\ enhances mock capabilities with deep matching and regex support. \formats.js\ provides a library of data formatting options (URL, IP, email, etc.). \postmanLib.js\ and \power-string.js\ add HTTP request handling, crypto functions, and string manipulation utilities. \diff-view.js\ and \markdown.js\ improve diff viewing and Markdown generation. \mergeJsonSchema.js\ and \schema-transformTo-table.js\ handle JSON schema merging and transformation. \plugin.js\ manages plugin initialization. These changes enhance the platform's ability to import, mock, and format data.
common · high confidence
Introduce mock server middleware for API simulation
A new mock server middleware has been added to the server/middleware directory, enabling the platform to simulate API responses for testing. The implementation includes logic to match incoming requests against defined API paths and rules, validate required query parameters and form/JSON body fields, and handle CORS headers for cross-origin requests. This allows developers to generate mock responses based on configured interface definitions, supporting dynamic path parameters and JSON schema validation for request bodies.
server/middleware · high confidence
Introduce new Group container with tabbed navigation and group log
A new Group container is added, providing a tabbed interface for managing groups. The main view includes a sidebar for group selection and a content area with tabs for Project List, Member List, Group Log, and Group Settings, with access to the Group Log and Group Settings tabs restricted by user role. The Group Log tab displays a timeline of group activities using a TimeTree component.
client/containers/Group · high confidence
Introduce new Home page and layout
Added a new Home page component (Home.js) and its associated styles (Home.scss) for the client application. The page features a header with navigation links, a main section with a logo, description, and login/register buttons, and a feature section highlighting project management, API management, and MockServer capabilities. The styling includes a gradient background, card-based layout for mock rules, and responsive grid components.
client/containers/Home · high confidence
Introduce server-side utility modules for core functionality
The server-side utilities have been refactored into dedicated modules to improve code organization and functionality. A new \commons.js\ provides shared helper functions for logging, JSON schema validation, and mock data generation. A new \db.js\ module handles MongoDB connection logic, including support for authentication databases and cluster connections. Additionally, new modules for LDAP authentication (\ldap.js\), system notifications (\notice.js\), secure token generation (\token.js\), and persistent storage (\storage.js\) have been introduced to support user authentication, messaging, and data management features.
server/utils · high confidence
Introduced GroupList component for group management
Added the GroupList component, which provides the user interface for managing groups. This includes a sidebar for selecting and switching between groups, a search bar to filter groups, and modals for creating or editing group details. The component integrates with the Redux store to fetch and update group lists and handles navigation to specific group IDs.
client/containers/Group/GroupList · high confidence
Introduced new ProjectList and UpDateModal components for group project management
Added new React components for the Group/ProjectList area: ProjectList.js handles the display of project cards, sorting followed projects to the top, and managing the 'Add Project' button visibility based on user roles. UpDateModal.js provides the interface for updating project details, including environment configurations. These components integrate with existing Redux reducers (project, group, user) to fetch, update, and display project data, replacing the previous implementation in this location.
client/containers/Group/ProjectList · high confidence
Introduced the TimeLine component for displaying project and group activity feeds
Added a new TimeLine component that renders a timeline of news and interface changes. It integrates with Redux to fetch and display news data, supports pagination via a 'getMore' function, and includes a search/filter feature for API lists. The component also renders HTML-formatted diffs using the jsondiffpatch library and applies specific styling for timeline items, avatars, and content blocks.
client/components/TimeLine · high confidence
New NewsTimeline component for displaying project activity
A new NewsTimeline component has been added to the client/containers/News/NewsTimeline directory. It renders an Ant Design Timeline of project news items, displaying the author, type, formatted time, and content. The component fetches initial data on mount and provides a 'Load More' (查看更多) button to fetch additional pages of news, with a loading spinner shown during data retrieval.
client/containers/News/NewsTimeline · high confidence
New Project Member management interface
A new ProjectMember component has been added to the Project Settings section, providing a dedicated interface for managing project members. This feature allows users to add new members, remove existing ones, modify member roles, and configure email notification preferences directly within the project settings.
client/containers/Project/Setting/ProjectMember · high confidence
New Redux state management for core modules
The application's state management has been restructured into modular Redux reducers for user authentication, project and group management, interface collections, and news feeds. New modules including addInterface, follow, group, interface, interfaceCol, menu, mockCol, news, project, and user have been introduced to handle specific domain states, with a central reducer file combining them and registering via a plugin hook.
client/reducer/modules · high confidence
New default HTML report template for automated tests
The server now uses a new default theme for rendering automated test reports. This includes a new CSS file (defaultTheme.css) that styles the report layout, headers, and code blocks, and a JavaScript module (defaultTheme.js) that loads the CSS into the HTML head. The report generation logic (index.js) was updated to use this new template, providing a styled HTML output for test results.
server/utils/reportHtml · high confidence
New header and guide components for user navigation and onboarding
The header component has been refactored to include a new user menu with links to the personal center and user management (admin only), along with a logout option. The header toolbar now features a search bar, a 'My Follows' link, a 'New Project' link, and a documentation link, each accompanied by a popover-based step-by-step guide for new users. Additionally, a new \GuideBtns\ component provides 'Next' and 'Exit' buttons to control the onboarding flow.
client/components/Header · high confidence
New interface editing and management interface
The interface list and editing experience has been completely rebuilt with new components for the interface list, edit, view, and menu. Users can now create and edit interfaces via a dedicated form, view interface details in a separate tab, and manage the interface tree in the sidebar. The edit page includes a confirmation dialog to prevent data loss when navigating away from the edit page.
client/containers/Project/Interface/InterfaceList · high confidence
New interface management layout with tabbed navigation
The interface management section now features a tabbed layout that allows users to switch between 'Interface List' and 'Test Collection' views. This change introduces a new \Interface\ container component that orchestrates the display of interface lists, content, and collection details within a unified sidebar and content area, improving the organization and navigation of API-related resources.
client/containers/Project/Interface · high confidence
New login and registration interface
The login and registration interface has been redesigned with a new card-based layout. Users can now choose between LDAP and standard login methods, and the registration form includes email validation and password confirmation. The registration feature is conditionally displayed based on administrator settings.
client/containers/Login · high confidence
New project settings page with tabbed navigation
The project settings page has been restructured into a tabbed interface, allowing users to manage project configuration, environment settings, request configuration, token management, and global mock scripts from a single location. The layout includes specific styling for project member and group management, as well as a logo and introduction section for the project.
client/containers/Project/Setting · high confidence
Standardized code quality and formatting with ESLint and Prettier
Added configuration files for ESLint and Prettier to enforce consistent code style and linting rules across the project. The introduction of these tools ensures that all JavaScript and JSX code adheres to a unified formatting standard, improving code readability and maintainability for all developers.
(repo-wide) · high confidence
Wiki page gains a dedicated editor and view components
The wiki page now uses new React components (Editor.js, View.js) to render the wiki content and editing interface. The editor integrates the tui-editor library and includes a checkbox to enable email notifications for changes. The main page component (index.js) manages state and handles data fetching and uploading, while the view component displays the rendered wiki content along with the last editor's name and timestamp.
exts/yapi-plugin-wiki/wikiPage · high confidence
Behavioural changes
Added permission check for Swagger auto-sync controller
The syncController now enforces project edit permissions before allowing the upSync operation to proceed. This ensures that only users with the 'edit' permission for a specific project can save or update the automatic synchronization settings, preventing unauthorized modifications to the sync configuration.
exts/yapi-plugin-swagger-auto-sync/controller · medium confidence
Centralized error handling for API failures
A new messageMiddleware has been added to the client's reducer/middleware layer to automatically display error notifications to the user. This middleware intercepts Redux actions and displays error messages via Ant Design's message component for both generic server errors and specific API error codes, ensuring consistent user feedback when requests fail.
client/reducer/middleware · high confidence
Introduce global styling and theme configuration for the client application
The client application now includes a comprehensive set of global styles and theme variables to standardize the user interface. A new \common.scss\ file establishes base resets, typography, scrollbar styling, and layout container styles (such as \.g-row\ and \.m-container\) to ensure consistent spacing and box-sizing across components. Additionally, \mixin.scss\ defines reusable width-limiting mixins, while \theme.less\ configures the Ant Design theme with a primary blue color (\#2395f1) and overrides for buttons, forms, and layout backgrounds. These changes provide a unified visual foundation for the client-side UI.
client/styles · high confidence
Updated static assets for the YAPI frontend
The static files in the \static/prd\ directory have been updated, including a new \assets.js\ file that maps entry points (index, lib, lib2, lib3, manifest) to their respective hashed JavaScript and CSS bundles. This update reflects the latest build of the YAPI application, ensuring that the frontend assets are current with the latest code changes and dependencies.
static/prd · high confidence
Updated tui-editor to version 1.2.6
The bundled tui-editor library has been updated to version 1.2.6. This update includes an upgrade to jQuery 3.3.1 and Sizzle 2.3.3, which may affect DOM manipulation and event handling within the editor component.
common/tui-editor · medium confidence
Test coverage
Added tests for common utility functions; Added unit tests for plugin initialization, JSON equality, deep matching, and mock data processing; Added unit tests for server utility functions and mock API matching.
Dependencies
Add package-lock.json and update package.json dependencies
The project now includes a package-lock.json file to ensure consistent dependency resolution across environments. The package.json has been updated to lock specific versions of key dependencies such as axios (0.18.1), mongoose (5.7.5), and eslint (^3.19.0), while also adding new libraries like jsrsasign and json-schema-faker. These changes standardize the build environment and prevent unexpected version drift during installation.
(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 28 → 36 (+8.3)
- Rubric changed (rubric-2026.08.15 → rubric-2026.09.15) — scores are not directly comparable.
Lenses
- Code Health 39 → 46 (+7.8)
- Architecture 88 (new)
- Maturity 54 → 45 (-8.9)
- Readiness 8 → 24 (+15.2)
- Security 60 → 65 (+4.8)
- Domain Modelling 100 (new)
- Accessibility 38 (new)
Resolved (123)
- (anonymous) (cognitive 16) (exts/yapi-plugin-export-swagger2-data/controller.js)
- (anonymous) (cognitive 63) (client/containers/Project/Interface/InterfaceList/InterfaceEditForm.js)
- (anonymous) (cyclomatic 33) (client/containers/Project/Interface/InterfaceList/InterfaceEditForm.js)
- Boundary-crossing change coupling: InterfaceColMenu.js ↔ interfaceCol.js (client/containers/Project/Interface/InterfaceCol/InterfaceColMenu.js)
- Boundary-crossing change coupling: Intro.js ↔ Home.js (client/components/Intro/Intro.js)
- Boundary-crossing change coupling: ProjectCard.js ↔ Follows.js (client/components/ProjectCard/ProjectCard.js)
- Boundary-crossing change coupling: ProjectCard.js ↔ follow.js (client/components/ProjectCard/ProjectCard.js)
- Boundary-crossing change coupling: ProjectData.js ↔ index.js (client/containers/Project/Setting/ProjectData/ProjectData.js)
- Boundary-crossing change coupling: mockCol.js ↔ CaseDesModal.js (client/reducer/modules/mockCol.js)
- Boundary-crossing change coupling: mockCol.js ↔ MockCol.js (client/reducer/modules/mockCol.js)
- Boundary-crossing change coupling: mockCol.js ↔ client.js (client/reducer/modules/mockCol.js)
- Boundary-crossing change coupling: project.js ↔ project.js (server/controllers/project.js)
- Boundary-crossing change coupling: user.js ↔ user.js (server/controllers/user.js)
- CompareObj (cognitive 20) (common/lib.js)
- Critical CVE: [GHSA redacted] (package-lock.json)
- Critical CVE: [GHSA redacted] (package-lock.json)
- Critical CVE: [GHSA redacted] (package-lock.json)
- Critical CVE: [GHSA redacted] (package-lock.json)
- Critical CVE: [GHSA redacted] (package-lock.json)
- Critical CVE: [GHSA redacted] (package-lock.json)
- …and 103 more
New (380)
- (anonymous) (cognitive 25) (client/containers/Group/ProjectList/UpDateModal.js)
- (anonymous) (cyclomatic 20) (client/containers/Group/ProjectList/UpDateModal.js)
- CaseDesForm.render (cognitive 17) (exts/yapi-plugin-advanced-mock/MockCol/CaseDesModal.js)
- CaseDesForm.render (cyclomatic 18) (exts/yapi-plugin-advanced-mock/MockCol/CaseDesModal.js)
- ClassTooLong: InterfaceMenu (client/containers/Project/Interface/InterfaceList/InterfaceMenu.js)
- ClassTooLong: Run (client/components/Postman/Postman.js)
- ClassTooLong: View (client/containers/Project/Interface/InterfaceList/View.js)
- ClassTooLong: interfaceColController (server/controllers/interfaceCol.js)
- ClassTooLong: interfaceController (server/controllers/interface.js)
- ClassTooLong: projectController (server/controllers/project.js)
- Critical CVE: [GHSA redacted] (package-lock.json)
- Critical CVE: [GHSA redacted] (package-lock.json)
- Critical CVE: [GHSA redacted] (package-lock.json)
- Critical CVE: [GHSA redacted] (package-lock.json)
- Critical CVE: [GHSA redacted] (package-lock.json)
- Critical CVE: [GHSA redacted] (package-lock.json)
- Critical CVE: [GHSA redacted] (package-lock.json)
- Critical CVE: [GHSA redacted] (package-lock.json)
- Critical CVE: [GHSA redacted] (package-lock.json)
- Critical CVE: [GHSA redacted] (package-lock.json)
- …and 360 more
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
YMFE/yapi 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 25 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 59bade3a8a43e7db077d38a4b0c7c584f30ddf8c — 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-dd72cc24c749.