# General Rules
- Plugin Name: Should be meaningful (allow non-programmers to understand the function of the program through the name and description).
- Plugin ID/Code:
- Frontend: English + ‘_’ (no other symbols allowed).
- Backend: English + ‘ . _ - ’ (no other symbols allowed).
 
- Icon: Please have a designer create an official icon; the same icon should be used for both frontend and backend.
- Description: A brief description of the functionality this program implements.
- Version: a.b.c must be positive integers.
- a Major Version When there are significant changes in feature modules, such as adding multiple modules or changing the overall architecture.
- b Minor Version When there are some enhancements or changes in functionality, such as the addition of permission control or custom views.
- c Patch Version Generally for bug fixes or minor changes; revisions should be released frequently, with no time interval limit. A patch can be released upon fixing a critical bug.
 
- Manual: Update to the Xuandao Intelligent Control Online Documentation (opens new window) under the 【Module Usage】 menu. After developing each functional module, the manual must be updated.
- Function Introduction
- User Manual
- Change Log
 
# Example of Frontend Plugin Description File main.json
Field meanings can be referenced in the Description File Specification (opens new window).
{
    "name": "PLC Control Plugin",
    "id": "ccs_plugin_plc",
    "version": "0.0.1",
    "icon": "ccs_plc_plugin_icon.png",
    "description": "PLC Control Plugin",
    "entry": [
        "index.js"
    ],
    "style": [
        "index.css"
    ]
}
# Example of Backend Plugin Description File daemon.json
Field meanings can be referenced in theDescription File Specification (opens new window)
{
    "name": "Universal Central Control",
    "pkg": "com.sansi.ccs-pro",
    "description": "Universal Central Control System(CCS Pro)",
    "interpreter": "node",
    "icon": "favicon.ico",
    "version": "2.4.6",
    "path": "ccs_pro.js",
    "os": "",
    "arch": "",
    "port": 3436,
    "port_type": "HTTP",
    "doc": "https://ccs-pro.sansi.io/",
    "api_doc": "http://{{currentIp}}:{{currentPort}}/docs/api/",
    "homepage": "http://{{currentIp}}:{{currentPort}}",
    "firewall_enable": true,
    "firewall_ports": [
        "3436"
    ],
    "configs": [
        {
            "title": "Server Configuration",
            "type": "json",
            "path": "{{home}}/Sansi/CCS-Platform/config/ccs-server.json",
            "schema": "{{app}}/config/ccs-server.schema.zh_CN.json"
        }
    ]
}
Port: Register in theService Information Collection (opens new window)to ensure no port conflicts. Doc: Program user manual (recommended to fill). Api_doc: API documentation address (recommended to fill). Homepage: Home page address (recommended to fill).