diff --git a/jcloud/jcloud/pagetype/firewall_rules/__init__.py b/jcloud/jcloud/pagetype/firewall_rules/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/jcloud/jcloud/pagetype/firewall_rules/firewall_rules.json b/jcloud/jcloud/pagetype/firewall_rules/firewall_rules.json new file mode 100644 index 0000000..8fa9a8c --- /dev/null +++ b/jcloud/jcloud/pagetype/firewall_rules/firewall_rules.json @@ -0,0 +1,51 @@ +{ + "actions": [], + "allow_rename": 1, + "creation": "2025-08-09 17:32:59.586173", + "editable_grid": 1, + "engine": "InnoDB", + "field_order": [ + "protocol", + "port", + "source_ip", + "remark" + ], + "fields": [ + { + "fieldname": "protocol", + "fieldtype": "Select", + "label": "协议", + "options": "TCP\nUDP\nICMP" + }, + { + "fieldname": "port", + "fieldtype": "Data", + "label": "端口范围" + }, + { + "fieldname": "source_ip", + "fieldtype": "Data", + "label": "来源IP" + }, + { + "fieldname": "remark", + "fieldtype": "Data", + "label": "备注" + } + ], + "grid_page_length": 50, + "index_web_pages_for_search": 1, + "istable": 1, + "links": [], + "modified": "2025-08-09 17:34:59.806703", + "modified_by": "Administrator", + "module": "Jcloud", + "name": "Firewall Rules", + "owner": "Administrator", + "pagetype": "PageType", + "permissions": [], + "row_format": "Dynamic", + "sort_field": "modified", + "sort_order": "DESC", + "states": [] +} \ No newline at end of file diff --git a/jcloud/jcloud/pagetype/firewall_rules/firewall_rules.py b/jcloud/jcloud/pagetype/firewall_rules/firewall_rules.py new file mode 100644 index 0000000..c8aeae9 --- /dev/null +++ b/jcloud/jcloud/pagetype/firewall_rules/firewall_rules.py @@ -0,0 +1,25 @@ +# Copyright (c) 2025, Jingrow and contributors +# For license information, please see license.txt + +# import jingrow +from jingrow.model.document import Document + + +class FirewallRules(Document): + # begin: auto-generated types + # This code is auto-generated. Do not modify anything in this block. + + from typing import TYPE_CHECKING + + if TYPE_CHECKING: + from jingrow.types import DF + + parent: DF.Data + parentfield: DF.Data + parenttype: DF.Data + port: DF.Data | None + protocol: DF.Literal["TCP", "UDP", "ICMP"] + remark: DF.Data | None + source_ip: DF.Data | None + # end: auto-generated types + pass diff --git a/jcloud/jcloud/pagetype/jsite_server/jsite_server.json b/jcloud/jcloud/pagetype/jsite_server/jsite_server.json index aa5bf16..3fad0de 100644 --- a/jcloud/jcloud/pagetype/jsite_server/jsite_server.json +++ b/jcloud/jcloud/pagetype/jsite_server/jsite_server.json @@ -34,7 +34,9 @@ "password", "column_break_20", "key_pair_name", - "private_key" + "private_key", + "firewall_rules_tab", + "firewall_rules" ], "fields": [ { @@ -217,11 +219,22 @@ "fieldname": "auto_renew", "fieldtype": "Check", "label": "自动续费" + }, + { + "fieldname": "firewall_rules_tab", + "fieldtype": "Tab Break", + "label": "Firewall Rules" + }, + { + "fieldname": "firewall_rules", + "fieldtype": "Table", + "label": "Firewall Rules", + "options": "Firewall Rules" } ], "index_web_pages_for_search": 1, "links": [], - "modified": "2025-07-31 01:41:20.678986", + "modified": "2025-08-09 17:37:10.451472", "modified_by": "Administrator", "module": "Jcloud", "name": "Jsite Server", diff --git a/jcloud/jcloud/pagetype/jsite_server/jsite_server.py b/jcloud/jcloud/pagetype/jsite_server/jsite_server.py index 71fe71f..80432e9 100644 --- a/jcloud/jcloud/pagetype/jsite_server/jsite_server.py +++ b/jcloud/jcloud/pagetype/jsite_server/jsite_server.py @@ -19,6 +19,7 @@ class JsiteServer(Document): cpu: DF.Data | None disk_size: DF.Data | None end_date: DF.Datetime | None + firewall_rules: DF.Data | None image_id: DF.Data | None instance_id: DF.Data | None key_pair_name: DF.Data | None