# 同讯AI+零代码平台 **Repository Path**: agile-bpm/tx-zcode ## Basic Information - **Project Name**: 同讯AI+零代码平台 - **Description**: 面向AI时代的企业数字化底座!让业务人员也能完成系统开发。市场应用的 ERP、OA办公、公文收发、资产管理等应用 永久免费!提供企业级表单、流程设计能力、自动化流、触发器、连接器等自动化组件。 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: Yes ## Statistics - **Stars**: 6603 - **Forks**: 1129 - **Created**: 2018-05-25 - **Last Updated**: 2026-08-24 ## Categories & Tags **Categories**: workflow **Tags**: None ## README # Tongxun Zero-Code — A Digital Foundation for the AI Era Targeting the massive B2B market, this product enables people without development experience to generate zero-code projects under AI control, and supports online drag-and-drop secondary development, achieving a human-machine collaborative development model. The product is permanently free with no user-count limits. It can be privately deployed within an enterprise completely free of charge, and supports developers' secondary high-code development. Product positioning: AI + zero-code development covers 90% of scenario requirements, with local AI + high-code as the fallback for complex needs. The commercial edition is an AI + full-code platform, adding online low-code development as well as ETL data flows, BI report dashboards, AI workflows, and more. See the PRO section in Core Features for details. The open-source edition already outperforms most commercial zero-code products on the market. Our goal is to make enterprise innovation truly land at zero cost — if you like the product, consider supporting the team by upgrading to the commercial edition. --- ## 🚀 Core Features - **📋 List Applications**: Includes paginated lists, cards, galleries, kanban, Gantt charts, schedules, and calendar views, plus row editing, row/column-level data permissions, left-tree-right-list layouts, column statistics, function virtual columns, and many more features. > Build management list pages and data report pages in a zero-code way. Used for CRUD, import/export, inbound/outbound operations, enable/disable, assignment, process initiation, and other business operations. - **📝 Forms**: 50+ standard controls, 8+ dynamic data-fetching controls, and 4 master-detail table plugins. > Provides comprehensive form control support with a very high degree of configurability. For common form control requirements, feel free to submit a ticket. - **🔀 Workflows**: Handling nodes, approval nodes, carbon-copy nodes, branch nodes, automation nodes, or-sign, countersign voting, node-level form field permissions, CC, circulation, add-sign, rejection, manual termination, transfer, and many more features. > Provides a mainstream process designer and commercial-grade process configurability — a one-stop process engine. - **⚙️ Automation Flows**: Supports 15 execution node types including loops, conditions, message push, SQL processing, CRUD, and process initiation. > Used for providing API interfaces, orchestrating business logic extensions such as scheduling and MRP calculations, cross-system event handling, alert notifications, and more. - **🔔 Triggers**: Form insert/update/delete event triggers, list application button triggers, process event triggers, scheduled triggers, system event triggers, and API call triggers. > Trigger automation flows in various scenarios. - **🔗 Integration Capabilities**: Cross-system OAuth2 integration, WeCom and DingTalk integration ( SSO-free login, message push, user/organization sync), micro-frontend integration, customizable notification channels such as email and SMS, Baidu OCR, Alibaba Cloud, and other integration configurations. > For integrating and consolidating existing systems and third-party systems. - **💎 PRO Features**: AI workflow orchestration, ETL asynchronous job flows, BPMN 2.0 process design, dashboard multi-dimensional cross reports, Excel reports, and more. > The open-source edition provides the full range of zero-code capabilities plus high-code fallback; the commercial edition offers enhanced low-code capabilities and data analysis scenarios such as dashboards. ![Core Capability Map](./doc/img/核心能力图谱.png) ## AI Assistant (Xiaozhi) - **User-facing AI capabilities**: Intelligent Q&A, intelligent form filling (get things done in one sentence), intelligent data querying, AI agents (PRO) - **Developer-facing AI capabilities**: AI Requirement Master (generate complete applications from 0 to 1), Xiaozhi process/form/list generation and modification (generate functional pages such as processes and forms based on requirement documents), AI process decisions (PRO) - **Fully open MCP capabilities** (v6.3): Users can generate their own API-KEYs and provide them to agents such as Xiaolongxia, allowing them to operate the business system on behalf of users AI capabilities need to be configured under [Platform Configuration] - [System Configuration] - [Product Enterprise Service Platform]. The default settings are for temporary trial only — be sure to apply for a dedicated token for production environments. ![AI Capability Map](./doc/img/AI能力图谱.png) ## System Screenshots
Image 1Workbench Image 1App Center Image 1System Configuration
Image 1Form Design Image 1Process Design Image 1Automation Flow Design
Image 1Form Page Image 1List Management Page Image 1Card List
## Documentation Documentation home: https://alidocs.dingtalk.com/i/p/gBVzxxE8aQg3QzOa [Quick Start with Zero-Code Development](https://alidocs.dingtalk.com/i/nodes/dQPGYqjpJYmXZ5y3UZgYA2BMJakx1Z5N) [System Framework Integration](https://alidocs.dingtalk.com/i/nodes/NZQYprEoWobEx6LDuMkynLwY81waOeDk) You can search for keywords in the upper right corner of the documentation, or ask Xiaozhi. If any documentation is missing, feel free to ask in the community group and we will complete it as soon as possible. --- ## 🛠️ Technology Stack | Key Technology | Version | Description | | :--- | :--- | :--- | | **JDK** | `17` | Platform basic runtime environment, ensuring high performance and modern Java feature support | | **Spring Boot** | `3.5.5` | Core application framework | | **Activiti** | `7.1.0.M6` | Workflow and business process core engine | | **MyBatis Plus** | `3.5.14` | Efficient ORM data layer access framework | | **Hutool** | `5.8.40` | Common utility class library encapsulation | | **Druid** | `1.2.27` | Alibaba open-source high-performance database connection pool | | **Guava** | `33.4.8-jre` | Google high-performance utility library | | **Apache POI** | `5.4.1` | Office document processing library, supporting Excel, Word and other formats | | **OkHttp3** | `5.0.0-alpha.14` | Efficient HTTP client, supporting HTTP/2 and WebSocket | | **Bouncy Castle** | `1.80` | Encryption and decryption library, providing complete encryption algorithm support | | **Commons IO** | `2.19.0` | Apache IO utility library, simplifying file and stream operations | | **Pinyin4j** | `2.5.1` | Pinyin conversion library, supporting Chinese character to Pinyin conversion | | **Vue** | `3.4+` | Frontend reactive framework for building interactive user interfaces | | **Vite** | `5.x` | Next-generation frontend build tool, providing an extremely fast development experience | | **TypeScript** | `5.0+` | Type-safe superset of JavaScript for the frontend | | **Element Plus** | `2.0+` | Desktop component library based on Vue 3 | | **pnpm** | `9.15.3` | Frontend Monorepo package manager | --- ## 📂 Project Structure The project adopts a multi-module Maven architecture with clear module responsibilities, facilitating on-demand microservices or decoupling: * **[pom.xml](pom.xml)**: Project root POM file, managing all third-party dependencies and component versions of the platform. * **[ab-base](ab-base)**: Basic common module: * `ab-base-api`: Provides basic common APIs. * `ab-base-common`: System underlying common utility classes and base classes. * `ab-base-mapper`: Basic persistence layer base class based on MyBatis Plus. * `ab-base-web`: Web layer common filters, unified exception handling, and control layer encapsulation. * **[ab-capability-api](ab-capability-api)**: System core capability layer interface definitions. * **[ab-component](ab-component)**: Core extension component module: * `ab-component-redis`: Cache component, providing distributed cache support. * `ab-component-mq-engine`: Message queue engine, supporting multiple message delivery modes. * `ab-component-msg-engine` / `ab-component-msg-engine-third`: Unified message center and third-party notification services. * `ab-groovy-script-engine`: Secure Groovy script dynamic compilation and execution engine. * `ab-component-upload-engine`: Highly decoupled file upload component (supporting local and database storage). * `ab-component-ai`: Large model and AI assistant integration capabilities. * **[ab-auth](ab-auth)**: Security and permission authentication module, supporting LDAP authentication and Spring Security OAuth2 distributed unified authorization. * **[ab-org](ab-org)**: Organization architecture module, defining core business of users, departments, companies, positions, user groups, and their relationships. * **[ab-sys](ab-sys)**: System general configuration, including system properties, serial numbers, data source management, operation log auditing, etc. * **[ab-cms](ab-cms)**: Content management system, supporting content columns, article publication and display. * **[ab-code-generator](ab-code-generator)**: Code generator, supporting automatic generation of entity classes, Mappers, Service-level interfaces, and front-end pages based on database tables. * **[ab-spring-boot](ab-spring-boot)**: Spring Boot startup entry and integration module: * `ab-spring-boot-starter`: Basic Spring auto-configuration of the platform. * `ab-spring-boot-starter-security`: Spring Security permission security auto-configuration. * **[ab-spring-boot-app](ab-spring-boot/ab-spring-boot-app)**: The project's final independently runnable packaged application. * **[ab-demo](ab-demo)**: Project built-in demo and rapid development examples. * **[frontend/pc](frontend/pc)**: Frontend PC project, a zero-code / low-code frontend application built on the Vben Admin ecosystem. For details, please refer to [frontend/pc/README.md](frontend/pc/README.md). * **[frontend/h5](frontend/h5)**: Frontend H5 mobile project, a mobile application built on Vue 3 + NutUI, supporting mobile approval, form filling, and other scenarios. This directory currently provides pre-built static assets; for deployment instructions, please refer to [frontend/h5/README.md](frontend/h5/README.md). * **[doc](doc)**: Documentation and database SQL script storage directory. --- ## 🛠️ Quick Start ### 1. Environment Requirements - **Java**: JDK 17+ (recommended 17.0.x) - **Maven**: 3.6.0+ - **Database**: MySQL 8.0+ / Oracle 19c+ / PostgreSQL 14+ (choose one) - **Middleware**: Redis (optional, if using cache/MQ) ### 2. Database Initialization Go to the **[doc/sql](doc/sql)** directory under the project root and import the initialization scripts according to your selected database: - **First deployment**: You must import the full SQL files in the `full` directory (for example, when using MySQL, import **[agilebpm_full.sql](doc/sql/mysql/full/agilebpm_full.sql)**). - **Version upgrade**: If you are upgrading from an older version, please refer to the `upgrade` and `changeSQL` directories and execute the upgrade SQL in order. ### 3. Modify Configuration File Open **[application.yml](ab-spring-boot/ab-spring-boot-app/src/main/resources/application.yml)** and configure the correct database connection, Redis address, and other parameters: ```yaml spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://YOUR_IP:3306/YOUR_DB?useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true&useSSL=false&serverTimezone=Asia/Shanghai username: YOUR_USERNAME password: YOUR_PASSWORD ``` ### 4. Compile and Package Download dependencies and build the project via Maven in the root directory: ```bash mvn clean install -Dmaven.test.skip=true ``` ### 5. Start the Project Run the main startup class **[AbSpringBootApp.java](ab-spring-boot/ab-spring-boot-app/src/main/java/com/dstz/AbSpringBootApp.java)**: ```bash cd ab-spring-boot/ab-spring-boot-app mvn spring-boot:run ``` ### 6. Start the Frontend Project Go to the frontend project directory **[frontend/pc](frontend/pc)**, install dependencies with pnpm, and start the development server: ```bash cd frontend/pc pnpm install pnpm run dev:ui ``` After a successful startup, access the application at the local address printed in the console (usually `http://localhost:5173` by default). The above is the quick-start flow for a development environment. For production deployment (Nginx static hosting and reverse proxy, Docker Compose one-click deployment, H5 mobile deployment), please refer to the "📦 Deployment" chapter below. --- ## 📦 Deployment For production environments, the recommended approach is "backend Jar + Nginx": the backend runs independently, the PC and H5 mobile static assets are hosted by Nginx, and API requests are forwarded through the Nginx reverse proxy. ### 1. Backend Deployment After completing database initialization and `application.yml` configuration (see "Quick Start"), package and run as a Jar: ```bash mvn clean package -DskipTests java -jar ab-spring-boot/ab-spring-boot-app/target/ab-spring-boot-app-*.jar ``` The backend listens on port `8080` by default. ### 2. Frontend Deployment - **PC**: Go to **[frontend/pc](frontend/pc)** and run `pnpm install && pnpm run build:ui`. The build output is located in `frontend/pc/apps/main/dist/` and should be deployed to the site's root path `/`; - **H5 Mobile**: **[frontend/h5](frontend/h5)** contains pre-built static assets — no compilation needed. Deploy it directly under the site's `/app` path. ### 3. Nginx Configuration ```nginx server { listen 80; server_name your-domain.com; # Replace with the actual domain or IP client_max_body_size 100m; # Attachment upload size limit, adjust as needed # PC static assets (replace the path with the actual deployment directory) location / { root /usr/local/agilebpm/pc; index index.html; try_files $uri $uri/ /index.html; } # H5 mobile static assets (base path /app; history routing requires fallback to index.html) location /app { alias /usr/local/agilebpm/h5/; index index.html; try_files $uri $uri/ /app/index.html; } # Backend API reverse proxy (replace with the actual backend address) location /api/ { proxy_pass http://127.0.0.1:8080; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } # AI assistant streaming chat API (SSE; gzip and response buffering must be disabled) location = /api/ab-bpm/corpApi/for/assistant/chat { gzip off; proxy_buffering off; proxy_pass_header Server; proxy_redirect off; proxy_pass http://127.0.0.1:8080; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } ``` Configuration notes: - Both the PC and H5 frontends use history routing mode — the `try_files` fallback must be kept, otherwise refreshing a page will result in a 404; - The H5 build's base path is fixed at `/app` — the `/app` in the `alias` directory and the `try_files` fallback path must not be changed; - The H5 build's `assets/` directory contains pre-compressed `.gz` files. If Nginx is compiled with `ngx_http_gzip_static_module`, you can enable `gzip_static on;` to reduce transfer size. ### 4. Docker Deployment (Recommended) The project provides a Docker Compose one-click deployment solution (MySQL + backend + Nginx). Nginx already includes the above configuration — see **[docker/README.md](docker/README.md)** for details. --- ## ⚙️ Core Configuration Guide In `application.yml`, you can enable or fine-tune corresponding features by adjusting the following custom configuration sections: * **Cache Configuration (`ab.cache`)**: Supports `memory` (local memory) and `redis` (distributed cache). You can control the cache cycle of various business-layer data by adjusting the TTL of each `region`. ```yaml ab: cache: # Cache type switch: memory (local memory), redis (distributed cache) type: memory # Cache region configuration, defining the expiration time of each business data category region: DICT: PT12H # Dictionary cache, 12 hours SYSPROPETIES: PT12H # System properties cache, 12 hours BPM_PROCESS_DEF: PT12H # Process definition cache, 12 hours LOGIN_TOKEN: PT1H # Login token cache, 1 hour # ... more region configurations ``` **Redis Connection Configuration** (required when using the `redis` cache type): ```yaml spring: data: redis: host: YOUR_REDIS_HOST port: 6379 database: 5 password: YOUR_REDIS_PASSWORD ``` **How to switch**: Modify the `ab.cache.type` parameter to switch between cache modes. When using `redis`, make sure the Redis connection configuration is correct. * **OAuth2 Cache Configuration (`ab.oauth`)**: Supports two Token storage methods: `InMemory` (local memory) and `redis` (distributed cache). ```yaml ab: oauth: # Token storage: InMemory (local memory), redis (distributed cache) token-store-type: InMemory # Token validation signing key login-token-signing-key: ab22 ``` **How to switch**: Modify the `ab.oauth.token-store-type` parameter. Use `redis` (with correct Redis configuration) for distributed deployment scenarios; use `InMemory` for single-machine deployment. * **Security Defense (`ab.security`)**: Security configurations such as XSS injection prevention are enabled by default. Special low-code dynamic script paths are already whitelisted in `xss-ingores` by default. * **Groovy Script Blacklist (`ab.groovy`)**: ```yaml groovy: blackKeywords: System,Runtime,BeanUtil,JdbcTemplate,FileUtil,FileWriter,ReflectUtil,ClassUtil,Eval,AppUtil ``` This configuration prevents system administrators or developers from entering dangerous Java system instructions through process execution or custom rules. * **File Upload Engine (`uploader`)**: Can be configured as `db` (stored directly in the database as binary large objects) or `ordinary` (physical disk path; requires configuring `uploader.ordinary.path`). --- ## 🤝 Contributing We warmly welcome and appreciate your contributions! If you have any suggestions for codebase optimization or bug feedback, you can participate in the following ways: 1. Fork this repository and create a branch. 2. Submit a Pull Request. 3. Contact the development team via [jeff@agilebpm.cn](mailto:jeff@agilebpm.cn). --- ## LICENSE This project is licensed under the [Dashitongzhou Source Code License Agreement 1.0](LICENSE.md). This project allows individuals and organizations to use it for free for: * Learning, research, and technical evaluation; * Internal deployment within enterprises or organizations; * Source code modification and internal secondary development; * General business application development; * Project integration that does not expose the platform's core capabilities to external parties. The following uses require written commercial authorization: * Multi-tenant SaaS, cloud services, or hosting platforms; * External sales and operation of low-code, zero-code, or application development platforms; * OEM, white-label, rebranding, or delivery after brand replacement; * Using the platform capabilities of this project as the main paid product or service; * Developing or operating platforms that constitute a direct substitute for, or substantial competition with, this project; * Removing or replacing official copyright, LOGO, or brand information. This is a source-available license. Some clauses reference the Apache License 2.0, but additional commercial restrictions apply, so it is not a standard Apache-2.0 open-source license. Full license terms: * [Simplified Chinese](LICENSE.md) * [English](LICENSE.en.md) Copyright © 2026 Shenzhen Dashitongzhou Information Technology Co., Ltd. All rights reserved.