# SpringbootFlowableVuePro_source **Repository Path**: xiadeqing/SpringbootFlowableVuePro ## Basic Information - **Project Name**: SpringbootFlowableVuePro_source - **Description**: Spring Boot + Vue + Flowable 工作流平台 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 10 - **Created**: 2026-10-10 - **Last Updated**: 2026-10-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README
Workflow nodes converging into an approval checkmark # SpringbootFlowableVuePro **Visual workflows. Collaborative approvals. A clear trail for every decision.** A workflow platform built with Spring Boot, Vue and Flowable, bringing together process design, dynamic forms, approval collaboration and granular authorization. [简体中文](README.md) · **English** [![Spring Boot](https://img.shields.io/badge/Spring_Boot-4.1.1-6DB33F?logo=springboot&logoColor=white)](backend/pom.xml) [![Flowable](https://img.shields.io/badge/Flowable-8.0.0-2563EB)](backend/pom.xml) [![Vue](https://img.shields.io/badge/Vue-3.5.43-42B883?logo=vuedotjs&logoColor=white)](frontend/package.json) [![Java](https://img.shields.io/badge/Java-21-orange)](backend/pom.xml) [![License](https://img.shields.io/badge/License-Apache_2.0-blue)](LICENSE) [Quickstart](#quickstart) · [Features](#features) · [Showcase](#showcase) · [Documentation](#documentation) · [Gitee repository](https://gitee.com/spring2020/SpringbootFlowableVuePro)
📑 Table of contents - [Overview](#overview) - [Quickstart](#quickstart) - [Features](#features) - [Showcase](#showcase) - [Technology stack](#stack) - [Documentation](#documentation) - [Development and verification](#development) - [Usage boundaries](#boundaries) - [Contributing](#contributing) - [License and support](#license)
## 👋 Overview Go from a form to a complete approval process: design a workflow on a BPMN canvas, attach dynamic forms and field permissions, then track tasks, participants and decisions. Leave requests, expense reimbursements and joint reviews are included as examples of different collaboration patterns. **Processes and forms are versioned. Each instance retains its starting snapshot, while pages, buttons, APIs and data scopes share role-based authorization.** ![Workflow platform overview](198f4302c7957d2ee5293481043e26a0.png) ## 💻 Quickstart Install **JDK 21+, Node.js 24 and MySQL 8**, and set `JAVA_HOME`. The first run downloads Maven and npm dependencies. ```sh git clone https://gitee.com/spring2020/SpringbootFlowableVuePro.git cd SpringbootFlowableVuePro ``` ### 1. Configure the database The default connection is `127.0.0.1:3306/workflow`. Create the database: ```sql CREATE DATABASE workflow CHARACTER SET utf8mb4; ``` Copy `backend/config/application-local.example.yml` to `backend/config/application-local.yml` and enter your database credentials. The local configuration is ignored by Git. Alternatively, set `DB_URL`, `DB_USER` and `DB_PASSWORD` environment variables. ### 2. Start the services Open two terminals in the repository root, and start the backend and frontend separately. **Windows / PowerShell** ```powershell ./scripts/start-demo.ps1 backend ``` ```powershell ./scripts/start-demo.ps1 frontend ```
Linux / macOS ```sh sh scripts/start-demo.sh backend ``` ```sh sh scripts/start-demo.sh frontend ```
### 3. Try the demo Open the [frontend workspace](http://127.0.0.1:5173). The backend runs at `http://127.0.0.1:8080`. | Account | Purpose | Demo password | | --- | --- | --- | | `admin` | Administrator, workflow and organization setup | `Demo@2026` | | `alice`, `bob`, `carol`, `dave` | Requests and collaborative approvals | `Demo@2026` | Demo accounts are initialized only under the `demo/test` profiles. Vite proxies business APIs and API documentation. Authentication uses same-origin HttpOnly session cookies with CSRF protection. The application interface and bundled example workflows are currently in Chinese; this English README covers setup and project capabilities.
Database initialization, profiles and existing data - The default profiles are `demo,mysql`: MySQL storage with demo accounts, processes and forms. Existing data survives restarts. - Activate only `mysql` to disable demo initialization. The first startup against an empty database requires an `ADMIN_INITIAL_PASSWORD` of at least 12 characters. - The first local startup creates Flowable engine tables and applies Flyway migrations. Set `ENGINE_SCHEMA_UPDATE=false` after initializing a deployment environment. - Startup scripts run from `backend` and load the local database configuration automatically. - Existing H2 files remain in `backend/data` and are not automatically migrated to MySQL. Set `SPRING_PROFILES_ACTIVE=demo` to temporarily run the H2 demo. See the [deployment guide](docs/deployment.md) for deployment configuration.
## 🔥 Features | Area | Capabilities | | --- | --- | | Workflow design | BPMN canvas, draft revisions, version publishing and deactivation, form binding, node-level field permissions | | Approval collaboration | Parallel unanimous or percentage approval, sequential approval, any-one approval, candidate claiming, additional approvers, transfer and delegation | | Process operations | Return, take back, withdraw, resubmit, suspend, resume, cancel and administrator termination | | Dynamic forms | 21 components, three-pane designer, drag-and-drop layouts, templates, undo/redo, device previews and JSON import/export | | Organization and access | Users, multiple roles, department trees, positions, menu and button permissions, data scopes and session revocation | | API management | springdoc-openapi and Swagger UI, automatic Controller discovery, separate documentation and debugging permissions | | Operations and extensions | Audit logs, notifications, circulation and copy recipients, due reminders, callback outbox, failed-job retries and downloadable CRUD code ZIPs |
Approval collaboration and process versions Approvals can require all participants, a percentage, or sequential decisions. In multi-instance any-one approval, the first effective decision cancels the remaining tasks; single-task candidate claiming is also supported. Add approvers before or after the current task, add parallel participants, or remove added participants who have not acted. Transfer permanently reassigns a task. Delegation retains its owner; the delegate returns it before the owner submits the final decision. Circulation and copy recipients have independent read records and do not block the workflow by default. An explicit wait-for-all-read node can require every recipient to finish reading. Changes to metadata or design are saved as drafts and published as new versions. Existing requests retain their starting snapshots. Process keys are immutable and cannot be reused. Deletion is logical, requires confirmation and checks the draft revision. Published versions stop accepting new requests, active approvals continue, history remains available, and deleted models cannot be reactivated.
Form design and historical compatibility Components include radio buttons, checkboxes, switches, ratings, sliders, date/time fields, files, images, group headings, static text and dividers. Configure field keys, options, defaults, required rules and ranges. Layout settings cover one or two columns, width, label placement, alignment and component size. Leave, expense and procurement templates are included. Previews, requests and approval details use form-create 3.3.4, with adapters for existing form definitions and historical snapshots. Attachments use authenticated project endpoints. JSON import/export uses the project's `name / fields / settings` format and validates imported designs. PC / Pad / H5 previews do not submit business data; attachments are uploaded with actual requests. Drafts remain editable. Clone a published form into a new version before changing it and binding it to a process. Instances retain the published form layout.
Granular authorization and automatic API registration The role permission tree separates pages from action buttons and covers workflow design, API management and business resource administration. Menus support directories, pages, buttons, routes, ordering and visibility. Hiding a menu changes navigation; disabling a menu or role revokes its permissions. The frontend refreshes authorization on route changes and focus. Data scopes include all data, selected departments, the current department, the current department and descendants, or self only. Effective roles contribute a union of their scopes. The built-in USER role defaults to self only, while ADMIN covers all data. The backend checks both action permissions and data scope. Grantors cannot assign permissions they do not hold or expand the recipient's scope beyond their authority. Disabling an account or resetting its password invalidates existing sessions. Deleted users retain their historical identity and their usernames cannot be reused. Built-in roles, the built-in administrator and the last active administrator are protected. Remove references before deleting related records; edits and deletions check versions. Department renames retain historical aliases, and approval participants use starting snapshots. After login, open `/api-management`; the OpenAPI description is available at `/v3/api-docs`. New Controller endpoints are discovered automatically. Business methods declaring `@ApiPermission` enter the role permission tree at startup, and the code generator also emits this declaration. Documentation viewing, online debugging and actual business calls are authorized separately, using Session and CSRF. Existing databases are upgraded using authorization snapshots and idempotent reconciliation. See the [API guide](docs/api.md) and [API and authorization audit](docs/audits/2026-10-06-api-rbac-verification.md).
## 🎬 Showcase
Task workspace ![Approval task workspace](task.png)
Process management and BPMN designer ![Workflow model management](0cd87fc3feb599a0b95ab141d9b5d6a5.png) ![BPMN process designer](f59af6ae925825c867dfd38db157cbc1.png)
Dynamic form designer ![Dynamic form design interface](fcf4581b734ffb21808537d0f7066187.png)
Organization and authorization ![Organization and authorization management](d288ad8f61c095779632f152dfe316cb.png)
Approval collaboration and progress ![Personal approval workspace](a928b18ff39d9a1eea6b9a2c2b0c95ed.png) ![Transfer, delegation and additional approver actions](2301f2fd0f85e21c4027202552f2d9c8.png) ![Approval progress and return action](f94fb9f93cd08663b46283a60cf8da55.png)
## 🧩 Technology stack Versions below come from the project dependency configuration. Verify compatibility when upgrading. | Component | Project version | | --- | --- | | Spring Boot / Flowable | 4.1.1 / 8.0.0 | | springdoc-openapi / Swagger UI | springdoc-openapi starter 3.1.1 (includes Swagger UI) | | Vue / Vite | 3.5.43 / 8.3.1 | | Element Plus / bpmn-js / form-create | 2.14.7 / 18.30.1 / 3.3.4 | | Java / Maven Wrapper | Java 21 compilation target / 3.9.12 | | Database | MySQL 8; H2 supported for local demos | ## 📚 Documentation Detailed guides linked below are currently in Chinese. | Guide | Contents | | --- | --- | | [User guide](docs/user-guide.md) | Page operations, forms and authorization setup | | [Approval collaboration](docs/workflow-approval-guide.md) | All/any approval, additional approvers, transfer and delegation | | [API guide](docs/api.md) | API management, authentication and calling conventions | | [Database and transactions](docs/database.md) | Data structures and transaction design | | [Feature matrix and boundaries](docs/feature-matrix.md) | Feature coverage and applicability | | [Deployment](docs/deployment.md) | Containers and runtime configuration | | [Verification records](docs/verification.md) | MySQL integration and browser checks | | [API and authorization audit](docs/audits/2026-10-06-api-rbac-verification.md) | API documentation and role permission coverage | | [Design](docs/superpowers/specs/2026-09-30-workflow-platform-design.md) / [Implementation plan](docs/superpowers/plans/2026-09-30-workflow-platform.md) | Design and implementation records | | [Brand assets](assets/brand/README.md) | Logo concept and usage | ## 🛠️ Development and verification Run from the repository root: ```powershell ./scripts/backend.ps1 -Task test npm --prefix frontend test -- --run npm --prefix frontend run audit:permissions npm --prefix frontend run build ``` Alternatively, run `./mvnw.cmd test` inside `backend` (`./mvnw test` on Linux/macOS). New frontend interactions should pass the permission audit. Backend `ApiDocumentationTest` checks API documentation coverage. See the [verification records](docs/verification.md) for recorded results. ## 📌 Usage boundaries - Return and take-back operations are limited to linear paths without parallel branches, subprocesses or automatic side effects. - Business commands use a database mutex to preserve ordering. The design suits small to medium deployments within one organization; larger deployments require query projections and finer-grained locking. - External callbacks use at-least-once delivery. Receivers must deduplicate by event ID. See the [feature matrix](docs/feature-matrix.md) for the full constraints. ## 🤝 Contributing Report bugs and suggestions through [Gitee Issues](https://gitee.com/spring2020/SpringbootFlowableVuePro/issues). Include your environment, reproduction steps and relevant logs. For changes, describe the resulting behavior and validation, and update affected content in both README languages. ## 💙 License and support The project is licensed under [Apache License 2.0](LICENSE). If it helps you, give it a Star on [Gitee](https://gitee.com/spring2020/SpringbootFlowableVuePro) or share your experience.
Support project maintenance Thank you for supporting open-source maintenance. WeChat donation QR code Alipay donation QR code