OrangeForms Low-Code Platform

website·Indexed 32 days ago

http://www.orangeforms.com

A low-code platform and code generation tool for enterprise digital transformation. It provides capabilities for generating full source code for online forms, workflows, and report printing, supporting both monolithic and microservice architectures. Key technical features include multi-tenant database isolation, dynamic routing for multiple data sources, Hibernate Validator integration, and RocketMQ-based permission synchronization.

Tokens
142.5K
Snippets
296
Records
729
Agent score
59%

What's inside OrangeForms

  1. Overview of the OrangeForms import process

    The OrangeForms import process is designed for high runtime performance through four key stages:

    1. Parsing: Uses SAX mode to read Excel files efficiently.
    2. Translation: Uses a general reflection-based approach for reverse dictionary translation (e.g., converting a text value like 'Grade 2' to its corresponding dictionary ID 2).
    3. Validation: Implements batch validation to minimize database interactions (e.g., avoiding individual queries for every dictionary field across thousands of rows).
    4. Insertion: Uses small-batch insertion to improve performance and prevent memory or timeout issues associated with oversized single transactions.
  2. Overview of OrangeForms Low-Code Platform capabilities

    The OrangeForms Low-Code Platform provides code generation capabilities and a high-quality platform architecture designed to cover 100% of business scenarios. It supports mainstream front-end and back-end technology stacks and is built for 'Cloud Native' architecture to enable rapid elastic deployment. Developers can generate systems based on three architectural patterns: Monolithic applications, Microservices, and Multi-tenant architectures.
  3. Overview of OrangeForms Low-Code Capabilities

    OrangeForms is a low-code platform designed to generate complete front-end and back-end project engineering based on specific business needs and technical stacks. It provides a set of elastic architectural capabilities including a Process Center, Form Service Center, Report Service Center, fast third-party integration, and seamless multi-tenant integration.
  4. Overview of OrangeForms Code Generation Tool

    OrangeForms is an online business code generation tool designed to produce high-quality source code that passes strict SonarQube scans with zero warnings. It is particularly suited for small to medium-sized projects to increase development efficiency and reduce costs.
  5. Overview of OrangeForms Open Source Project

    OrangeForms is a free, open-source code generation tool designed to accelerate development by automating the creation of full-stack projects. It supports workflows, online forms, user and data permissions, and provides high-quality code that adheres to SonarQube standards. The project is designed to be 'out-of-the-box' with minimal bugs.
    # Open source project repository
    https://gitee.com/orangeform/orange-admin
  6. Overview of OrangeForms Code Generation Tool

    OrangeForms is a code generation tool designed to produce production-grade frontend and backend code. It provides full source code delivery and supports a rapid development platform. Key features include a standardized open architecture for bidirectional integration with third-party systems, high scalability via DevOps, and a focus on high code quality (targeting zero bugs, security vulnerabilities, code smells, and duplicated blocks as verified by SonarQube).
  7. Overview of Multi-Tenant Global Dictionary Architecture

    The multi-tenant global dictionary system manages lookup data (e.g., grades, subjects) using a combination of database tables and Redis caching. It distinguishes between two types of dictionaries:

    1. Tenant Public Dictionaries: Shared across all tenants. Data is maintained centrally in the tenant management backend; all tenants see the same values.
    2. Tenant Non-Public Dictionaries: Tenant-specific. Initial data is provided by the system, but each tenant has its own copy identified by tenant_id. Tenant administrators can modify these values without affecting other tenants.

    Caching Strategy: All multi-tenant global dictionary data is fully cached in Redis. The cache keys incorporate the tenant_id and dictionary_code to ensure isolation between different tenants' dictionary values.

  8. Overview of common-datasync component

    The common-datasync component is designed for business scenarios requiring high reliability and strict operational ordering for data synchronization. It is particularly useful when data must be replicated across different microservice databases to enable efficient local SQL queries (e.g., syncing department hierarchies for data permission filtering or syncing tenant permissions across multi-tenant architectures). It is intended for scenarios where synchronization frequency and concurrency are moderate to avoid performance degradation.
  9. Manage applications in OrangeForms

    OrangeForms handles applications based on the project architecture:

    • Monolithic and Microservice Projects: By default, there is only one application.
    • Multi-tenant Projects: Two applications are created during project initialization: the "Tenant Management Application" (租户管理应用) and the "Tenant Operation Application" (租户运营应用), allowing for separate business configurations.
  10. Configure Default Multi-Tenant Database Connections

    In the OrangeForms generator, multi-tenant projects are initialized with a simplified architecture consisting of two primary database connections:

    • Tenant Management (tenant-admin): Used by the management backend.
    • Tenant Operation: In the default simplified setup, the common business database (tenant-common) and the business database (tenant-business) are merged into one connection.

    Tenant Sync Service (tenant-sync): This service synchronizes configuration data (menus, permissions, dictionaries, etc.) from the management database to the business databases. It requires configuration for tenant-admin and tenant-common. Individual tenant business database connections are handled via a dynamic data source mechanism and do not need to be hardcoded in the configuration file.

  11. Configure Tenant Management and Sync services in Nacos

    Multi-tenant services are built upon the microservices architecture. To configure the Tenant Management and Tenant Sync services, locate the YAML configuration files in the zz-resource/config-data directory. These configurations must be manually uploaded to the Nacos console. Ensure that the configuration identifiers in Nacos exactly match the filenames/identifiers specified in the YAML files before publishing.

    Files to upload to Nacos:

    • zz-resource/config-data/tenant-admin-dev.yaml
    • zz-resource/config-data/tenant-sync-dev.yaml
  12. Implement unified data filtering using Mybatis interceptors

    OrangeForms uses a low-intrusion architecture to apply data permissions across 'Delete, Update, and Query' operations. The system utilizes the MybatisDataFilterInterceptor and JSqlParser to dynamically append WHERE clauses to SQL statements based on the user's cached permissions. Performance is optimized using a two-tier caching strategy: Redis for global storage and Caffeine for local first-level caching.