@usex/mikrotik-mcp 3.5.0 → 3.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.js +4027 -2098
- package/dist/index.js +4023 -2094
- package/dist/ui/observability.html +2 -2
- package/package.json +1 -1
- package/schemas/README.md +1 -1
- package/schemas/tool-catalog.json +1539 -159
- package/schemas/tools/add_dhcp_client.json +33 -0
- package/schemas/tools/apply_traffic_shaping.json +48 -0
- package/schemas/tools/audit_certificate_expiry.json +16 -0
- package/schemas/tools/audit_firewall_hardening.json +7 -0
- package/schemas/tools/build_guest_hotspot.json +48 -0
- package/schemas/tools/build_wireguard_mesh.json +79 -0
- package/schemas/tools/design_network_segment.json +65 -0
- package/schemas/tools/force_cloud_update.json +7 -0
- package/schemas/tools/forecast_link_saturation.json +23 -0
- package/schemas/tools/forward_port.json +45 -0
- package/schemas/tools/generate_hotspot_vouchers.json +33 -0
- package/schemas/tools/get_dhcp_client.json +13 -0
- package/schemas/tools/get_ip_cloud.json +7 -0
- package/schemas/tools/harden_firewall.json +104 -0
- package/schemas/tools/list_dhcp_clients.json +12 -0
- package/schemas/tools/onboard_wireguard_user.json +39 -0
- package/schemas/tools/remove_dhcp_client.json +12 -0
- package/schemas/tools/remove_firewall_hardening.json +7 -0
- package/schemas/tools/remove_threat_feed.json +13 -0
- package/schemas/tools/remove_time_policy.json +13 -0
- package/schemas/tools/renew_dhcp_client.json +17 -0
- package/schemas/tools/request_letsencrypt_certificate.json +13 -0
- package/schemas/tools/revoke_wireguard_user.json +13 -0
- package/schemas/tools/run_failover_drill.json +33 -0
- package/schemas/tools/set_dhcp_client.json +24 -0
- package/schemas/tools/set_ip_cloud.json +16 -0
- package/schemas/tools/set_ip_cloud_advanced.json +13 -0
- package/schemas/tools/set_time_policy.json +47 -0
- package/schemas/tools/setup_port_knock.json +39 -0
- package/schemas/tools/setup_wan_failover.json +36 -0
- package/schemas/tools/setup_wan_loadbalance.json +32 -0
- package/schemas/tools/subscribe_threat_feed.json +37 -0
- package/schemas/tools/test_ssh_from_device.json +28 -0
- package/schemas/tools/test_ssh_to_device.json +7 -0
- package/schemas/tools/test_ssh_to_host.json +38 -0
- package/schemas/tools/tune_wifi_channel.json +23 -0
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"title": "add_dhcp_client",
|
|
4
|
+
"type": "object",
|
|
5
|
+
"properties": {
|
|
6
|
+
"interface": {
|
|
7
|
+
"type": "string",
|
|
8
|
+
"description": "Interface to run the DHCP client on, e.g. 'ether1'"
|
|
9
|
+
},
|
|
10
|
+
"add_default_route": {
|
|
11
|
+
"default": true,
|
|
12
|
+
"description": "Install the received default gateway",
|
|
13
|
+
"type": "boolean"
|
|
14
|
+
},
|
|
15
|
+
"use_peer_dns": {
|
|
16
|
+
"default": true,
|
|
17
|
+
"type": "boolean"
|
|
18
|
+
},
|
|
19
|
+
"use_peer_ntp": {
|
|
20
|
+
"default": true,
|
|
21
|
+
"type": "boolean"
|
|
22
|
+
},
|
|
23
|
+
"disabled": {
|
|
24
|
+
"default": false,
|
|
25
|
+
"type": "boolean"
|
|
26
|
+
},
|
|
27
|
+
"comment": {
|
|
28
|
+
"type": "string"
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
"required": ["interface", "add_default_route", "use_peer_dns", "use_peer_ntp", "disabled"],
|
|
32
|
+
"additionalProperties": false
|
|
33
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"title": "apply_traffic_shaping",
|
|
4
|
+
"type": "object",
|
|
5
|
+
"properties": {
|
|
6
|
+
"classes": {
|
|
7
|
+
"minItems": 1,
|
|
8
|
+
"type": "array",
|
|
9
|
+
"items": {
|
|
10
|
+
"type": "object",
|
|
11
|
+
"properties": {
|
|
12
|
+
"name": {
|
|
13
|
+
"type": "string",
|
|
14
|
+
"description": "Queue name, e.g. 'voip' or 'guest-cap'"
|
|
15
|
+
},
|
|
16
|
+
"target": {
|
|
17
|
+
"type": "string",
|
|
18
|
+
"description": "Target address/subnet this class applies to, e.g. '192.168.20.0/24'"
|
|
19
|
+
},
|
|
20
|
+
"max_limit": {
|
|
21
|
+
"type": "string",
|
|
22
|
+
"description": "RouterOS max-limit as 'upload/download', e.g. '10M/10M' (or a single value)"
|
|
23
|
+
},
|
|
24
|
+
"priority": {
|
|
25
|
+
"default": 8,
|
|
26
|
+
"description": "1 (highest) … 8 (lowest); lower number wins under contention",
|
|
27
|
+
"type": "integer",
|
|
28
|
+
"minimum": 1,
|
|
29
|
+
"maximum": 8
|
|
30
|
+
},
|
|
31
|
+
"comment": {
|
|
32
|
+
"type": "string"
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
"required": ["name", "target", "max_limit", "priority"],
|
|
36
|
+
"additionalProperties": false
|
|
37
|
+
},
|
|
38
|
+
"description": "Shaping classes to create, in priority order"
|
|
39
|
+
},
|
|
40
|
+
"apply": {
|
|
41
|
+
"default": false,
|
|
42
|
+
"description": "false = preview the commands only (default); true = create the queues",
|
|
43
|
+
"type": "boolean"
|
|
44
|
+
}
|
|
45
|
+
},
|
|
46
|
+
"required": ["classes", "apply"],
|
|
47
|
+
"additionalProperties": false
|
|
48
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"title": "audit_certificate_expiry",
|
|
4
|
+
"type": "object",
|
|
5
|
+
"properties": {
|
|
6
|
+
"warn_within_days": {
|
|
7
|
+
"default": 30,
|
|
8
|
+
"description": "Flag certificates expiring within this many days as 'expiring soon'",
|
|
9
|
+
"type": "integer",
|
|
10
|
+
"minimum": -9007199254740991,
|
|
11
|
+
"maximum": 9007199254740991
|
|
12
|
+
}
|
|
13
|
+
},
|
|
14
|
+
"required": ["warn_within_days"],
|
|
15
|
+
"additionalProperties": false
|
|
16
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"title": "build_guest_hotspot",
|
|
4
|
+
"type": "object",
|
|
5
|
+
"properties": {
|
|
6
|
+
"interface": {
|
|
7
|
+
"type": "string",
|
|
8
|
+
"description": "Interface/bridge the hotspot runs on, e.g. 'guest-bridge'"
|
|
9
|
+
},
|
|
10
|
+
"subnet": {
|
|
11
|
+
"default": "10.5.50.0/24",
|
|
12
|
+
"description": "Hotspot subnet",
|
|
13
|
+
"type": "string"
|
|
14
|
+
},
|
|
15
|
+
"gateway": {
|
|
16
|
+
"default": "10.5.50.1",
|
|
17
|
+
"description": "Router address in the hotspot subnet",
|
|
18
|
+
"type": "string"
|
|
19
|
+
},
|
|
20
|
+
"pool_range": {
|
|
21
|
+
"description": "DHCP/hotspot pool; defaults to .10–.254",
|
|
22
|
+
"type": "string"
|
|
23
|
+
},
|
|
24
|
+
"dns_name": {
|
|
25
|
+
"description": "Captive-portal hostname, e.g. 'guest.wifi'",
|
|
26
|
+
"type": "string"
|
|
27
|
+
},
|
|
28
|
+
"rate_limit": {
|
|
29
|
+
"default": "5M/5M",
|
|
30
|
+
"description": "Per-guest max-limit (rx/tx)",
|
|
31
|
+
"type": "string"
|
|
32
|
+
},
|
|
33
|
+
"walled_garden": {
|
|
34
|
+
"description": "Domains reachable before sign-in, e.g. ['*.stripe.com']",
|
|
35
|
+
"type": "array",
|
|
36
|
+
"items": {
|
|
37
|
+
"type": "string"
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
"apply": {
|
|
41
|
+
"default": false,
|
|
42
|
+
"description": "false = preview (default); true = build",
|
|
43
|
+
"type": "boolean"
|
|
44
|
+
}
|
|
45
|
+
},
|
|
46
|
+
"required": ["interface", "subnet", "gateway", "rate_limit", "apply"],
|
|
47
|
+
"additionalProperties": false
|
|
48
|
+
}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"title": "build_wireguard_mesh",
|
|
4
|
+
"type": "object",
|
|
5
|
+
"properties": {
|
|
6
|
+
"devices": {
|
|
7
|
+
"minItems": 2,
|
|
8
|
+
"type": "array",
|
|
9
|
+
"items": {
|
|
10
|
+
"type": "string"
|
|
11
|
+
},
|
|
12
|
+
"description": "Configured device names to include in the mesh (2+)"
|
|
13
|
+
},
|
|
14
|
+
"address_prefix": {
|
|
15
|
+
"default": "10.20.0.0/24",
|
|
16
|
+
"description": "Mesh subnet; each device gets <prefix>.<index+1> on its WireGuard interface",
|
|
17
|
+
"type": "string"
|
|
18
|
+
},
|
|
19
|
+
"interface": {
|
|
20
|
+
"default": "wg-mesh",
|
|
21
|
+
"description": "WireGuard interface name to create/use",
|
|
22
|
+
"type": "string"
|
|
23
|
+
},
|
|
24
|
+
"listen_port": {
|
|
25
|
+
"default": 13231,
|
|
26
|
+
"type": "integer",
|
|
27
|
+
"minimum": -9007199254740991,
|
|
28
|
+
"maximum": 9007199254740991
|
|
29
|
+
},
|
|
30
|
+
"topology": {
|
|
31
|
+
"default": "full-mesh",
|
|
32
|
+
"type": "string",
|
|
33
|
+
"enum": ["full-mesh", "hub-spoke"]
|
|
34
|
+
},
|
|
35
|
+
"hub": {
|
|
36
|
+
"description": "Hub device name (required when topology=hub-spoke)",
|
|
37
|
+
"type": "string"
|
|
38
|
+
},
|
|
39
|
+
"endpoints": {
|
|
40
|
+
"description": "Per-device public endpoint host override, e.g. {\"site-a\":\"a.example.com\"}",
|
|
41
|
+
"type": "object",
|
|
42
|
+
"propertyNames": {
|
|
43
|
+
"type": "string"
|
|
44
|
+
},
|
|
45
|
+
"additionalProperties": {
|
|
46
|
+
"type": "string"
|
|
47
|
+
}
|
|
48
|
+
},
|
|
49
|
+
"allowed_lans": {
|
|
50
|
+
"description": "Per-device LAN subnet to route through the tunnel, e.g. {\"site-a\":\"192.168.10.0/24\"}",
|
|
51
|
+
"type": "object",
|
|
52
|
+
"propertyNames": {
|
|
53
|
+
"type": "string"
|
|
54
|
+
},
|
|
55
|
+
"additionalProperties": {
|
|
56
|
+
"type": "string"
|
|
57
|
+
}
|
|
58
|
+
},
|
|
59
|
+
"persistent_keepalive": {
|
|
60
|
+
"default": "25s",
|
|
61
|
+
"type": "string"
|
|
62
|
+
},
|
|
63
|
+
"apply": {
|
|
64
|
+
"default": false,
|
|
65
|
+
"description": "false = preview the plan (default); true = build",
|
|
66
|
+
"type": "boolean"
|
|
67
|
+
}
|
|
68
|
+
},
|
|
69
|
+
"required": [
|
|
70
|
+
"devices",
|
|
71
|
+
"address_prefix",
|
|
72
|
+
"interface",
|
|
73
|
+
"listen_port",
|
|
74
|
+
"topology",
|
|
75
|
+
"persistent_keepalive",
|
|
76
|
+
"apply"
|
|
77
|
+
],
|
|
78
|
+
"additionalProperties": false
|
|
79
|
+
}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"title": "design_network_segment",
|
|
4
|
+
"type": "object",
|
|
5
|
+
"properties": {
|
|
6
|
+
"vlan_id": {
|
|
7
|
+
"type": "integer",
|
|
8
|
+
"minimum": 1,
|
|
9
|
+
"maximum": 4094
|
|
10
|
+
},
|
|
11
|
+
"name": {
|
|
12
|
+
"type": "string",
|
|
13
|
+
"description": "Name for the VLAN interface, e.g. 'guest'"
|
|
14
|
+
},
|
|
15
|
+
"subnet": {
|
|
16
|
+
"type": "string",
|
|
17
|
+
"description": "CIDR for the segment, e.g. '192.168.30.0/24'"
|
|
18
|
+
},
|
|
19
|
+
"gateway": {
|
|
20
|
+
"type": "string",
|
|
21
|
+
"description": "Router's address in the segment, e.g. '192.168.30.1'"
|
|
22
|
+
},
|
|
23
|
+
"bridge": {
|
|
24
|
+
"default": "bridge",
|
|
25
|
+
"description": "Bridge to put the VLAN on",
|
|
26
|
+
"type": "string"
|
|
27
|
+
},
|
|
28
|
+
"tagged_ports": {
|
|
29
|
+
"description": "Comma-separated trunk/tagged ports (+ the bridge)",
|
|
30
|
+
"type": "string"
|
|
31
|
+
},
|
|
32
|
+
"untagged_ports": {
|
|
33
|
+
"description": "Comma-separated access/untagged ports",
|
|
34
|
+
"type": "string"
|
|
35
|
+
},
|
|
36
|
+
"dhcp": {
|
|
37
|
+
"default": true,
|
|
38
|
+
"description": "Create a DHCP server + pool for the segment",
|
|
39
|
+
"type": "boolean"
|
|
40
|
+
},
|
|
41
|
+
"dhcp_range": {
|
|
42
|
+
"description": "Pool range; defaults to .10–.254 of the subnet",
|
|
43
|
+
"type": "string"
|
|
44
|
+
},
|
|
45
|
+
"internet": {
|
|
46
|
+
"default": true,
|
|
47
|
+
"description": "Allow internet access via srcnat masquerade",
|
|
48
|
+
"type": "boolean"
|
|
49
|
+
},
|
|
50
|
+
"isolate_from": {
|
|
51
|
+
"description": "Subnets this segment must NOT reach, e.g. ['192.168.1.0/24']",
|
|
52
|
+
"type": "array",
|
|
53
|
+
"items": {
|
|
54
|
+
"type": "string"
|
|
55
|
+
}
|
|
56
|
+
},
|
|
57
|
+
"apply": {
|
|
58
|
+
"default": false,
|
|
59
|
+
"description": "false = preview (default); true = build",
|
|
60
|
+
"type": "boolean"
|
|
61
|
+
}
|
|
62
|
+
},
|
|
63
|
+
"required": ["vlan_id", "name", "subnet", "gateway", "bridge", "dhcp", "internet", "apply"],
|
|
64
|
+
"additionalProperties": false
|
|
65
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"title": "forecast_link_saturation",
|
|
4
|
+
"type": "object",
|
|
5
|
+
"properties": {
|
|
6
|
+
"interface": {
|
|
7
|
+
"type": "string",
|
|
8
|
+
"description": "Interface to sample, e.g. 'ether1-wan'"
|
|
9
|
+
},
|
|
10
|
+
"capacity_mbps": {
|
|
11
|
+
"default": 1000,
|
|
12
|
+
"description": "Link rated speed in Mbit/s (e.g. 1000 for gig)",
|
|
13
|
+
"type": "number"
|
|
14
|
+
},
|
|
15
|
+
"monthly_growth_pct": {
|
|
16
|
+
"default": 10,
|
|
17
|
+
"description": "Assumed month-over-month traffic growth %",
|
|
18
|
+
"type": "number"
|
|
19
|
+
}
|
|
20
|
+
},
|
|
21
|
+
"required": ["interface", "capacity_mbps", "monthly_growth_pct"],
|
|
22
|
+
"additionalProperties": false
|
|
23
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"title": "forward_port",
|
|
4
|
+
"type": "object",
|
|
5
|
+
"properties": {
|
|
6
|
+
"protocol": {
|
|
7
|
+
"default": "tcp",
|
|
8
|
+
"type": "string",
|
|
9
|
+
"enum": ["tcp", "udp"]
|
|
10
|
+
},
|
|
11
|
+
"external_port": {
|
|
12
|
+
"type": "integer",
|
|
13
|
+
"minimum": 1,
|
|
14
|
+
"maximum": 65535
|
|
15
|
+
},
|
|
16
|
+
"internal_host": {
|
|
17
|
+
"type": "string",
|
|
18
|
+
"description": "LAN IP of the service, e.g. '192.168.1.10'"
|
|
19
|
+
},
|
|
20
|
+
"internal_port": {
|
|
21
|
+
"description": "Defaults to external_port",
|
|
22
|
+
"type": "integer",
|
|
23
|
+
"minimum": 1,
|
|
24
|
+
"maximum": 65535
|
|
25
|
+
},
|
|
26
|
+
"wan_interface": {
|
|
27
|
+
"description": "Restrict the forward to this WAN interface",
|
|
28
|
+
"type": "string"
|
|
29
|
+
},
|
|
30
|
+
"lan_subnet": {
|
|
31
|
+
"description": "LAN subnet for hairpin NAT, e.g. '192.168.1.0/24'",
|
|
32
|
+
"type": "string"
|
|
33
|
+
},
|
|
34
|
+
"comment": {
|
|
35
|
+
"type": "string"
|
|
36
|
+
},
|
|
37
|
+
"apply": {
|
|
38
|
+
"default": false,
|
|
39
|
+
"description": "false = preview (default); true = create",
|
|
40
|
+
"type": "boolean"
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
"required": ["protocol", "external_port", "internal_host", "apply"],
|
|
44
|
+
"additionalProperties": false
|
|
45
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"title": "generate_hotspot_vouchers",
|
|
4
|
+
"type": "object",
|
|
5
|
+
"properties": {
|
|
6
|
+
"count": {
|
|
7
|
+
"default": 10,
|
|
8
|
+
"type": "integer",
|
|
9
|
+
"minimum": 1,
|
|
10
|
+
"maximum": 200
|
|
11
|
+
},
|
|
12
|
+
"uptime_limit": {
|
|
13
|
+
"description": "Per-voucher uptime, e.g. '1h', '1d'",
|
|
14
|
+
"type": "string"
|
|
15
|
+
},
|
|
16
|
+
"profile": {
|
|
17
|
+
"description": "Hotspot user profile to assign",
|
|
18
|
+
"type": "string"
|
|
19
|
+
},
|
|
20
|
+
"code_prefix": {
|
|
21
|
+
"default": "g",
|
|
22
|
+
"description": "Prefix for the generated codes",
|
|
23
|
+
"type": "string"
|
|
24
|
+
},
|
|
25
|
+
"apply": {
|
|
26
|
+
"default": false,
|
|
27
|
+
"description": "false = preview codes (default); true = create",
|
|
28
|
+
"type": "boolean"
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
"required": ["count", "code_prefix", "apply"],
|
|
32
|
+
"additionalProperties": false
|
|
33
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"title": "get_dhcp_client",
|
|
4
|
+
"type": "object",
|
|
5
|
+
"properties": {
|
|
6
|
+
"interface": {
|
|
7
|
+
"type": "string",
|
|
8
|
+
"description": "Interface name, e.g. 'ether1'"
|
|
9
|
+
}
|
|
10
|
+
},
|
|
11
|
+
"required": ["interface"],
|
|
12
|
+
"additionalProperties": false
|
|
13
|
+
}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"title": "harden_firewall",
|
|
4
|
+
"type": "object",
|
|
5
|
+
"properties": {
|
|
6
|
+
"preset": {
|
|
7
|
+
"default": "standard",
|
|
8
|
+
"description": "Bundle to apply; 'custom' uses only the `protections` toggles",
|
|
9
|
+
"type": "string",
|
|
10
|
+
"enum": ["basic", "standard", "paranoid", "custom"]
|
|
11
|
+
},
|
|
12
|
+
"protections": {
|
|
13
|
+
"description": "Per-protection on/off, overriding/extending the preset",
|
|
14
|
+
"type": "object",
|
|
15
|
+
"propertyNames": {
|
|
16
|
+
"type": "string",
|
|
17
|
+
"enum": [
|
|
18
|
+
"state_hygiene",
|
|
19
|
+
"ssh_bruteforce",
|
|
20
|
+
"ddos_conn_limit",
|
|
21
|
+
"syn_flood",
|
|
22
|
+
"icmp_limit",
|
|
23
|
+
"port_scan",
|
|
24
|
+
"anti_spoof",
|
|
25
|
+
"raw_drops",
|
|
26
|
+
"mgmt_lockdown"
|
|
27
|
+
]
|
|
28
|
+
},
|
|
29
|
+
"additionalProperties": {
|
|
30
|
+
"type": "boolean"
|
|
31
|
+
},
|
|
32
|
+
"required": [
|
|
33
|
+
"state_hygiene",
|
|
34
|
+
"ssh_bruteforce",
|
|
35
|
+
"ddos_conn_limit",
|
|
36
|
+
"syn_flood",
|
|
37
|
+
"icmp_limit",
|
|
38
|
+
"port_scan",
|
|
39
|
+
"anti_spoof",
|
|
40
|
+
"raw_drops",
|
|
41
|
+
"mgmt_lockdown"
|
|
42
|
+
]
|
|
43
|
+
},
|
|
44
|
+
"trusted_sources": {
|
|
45
|
+
"description": "Address or address-list name always accepted first (anti-lockout)",
|
|
46
|
+
"type": "string"
|
|
47
|
+
},
|
|
48
|
+
"wan_interface": {
|
|
49
|
+
"description": "WAN interface (required for anti_spoof)",
|
|
50
|
+
"type": "string"
|
|
51
|
+
},
|
|
52
|
+
"mgmt_ports": {
|
|
53
|
+
"default": "22,8291,8728",
|
|
54
|
+
"description": "Management TCP ports",
|
|
55
|
+
"type": "string"
|
|
56
|
+
},
|
|
57
|
+
"ssh_ports": {
|
|
58
|
+
"default": "22",
|
|
59
|
+
"description": "Ports watched by the brute-force ladder",
|
|
60
|
+
"type": "string"
|
|
61
|
+
},
|
|
62
|
+
"conn_limit": {
|
|
63
|
+
"default": 100,
|
|
64
|
+
"description": "Per-source TCP connection cap",
|
|
65
|
+
"type": "integer",
|
|
66
|
+
"minimum": -9007199254740991,
|
|
67
|
+
"maximum": 9007199254740991
|
|
68
|
+
},
|
|
69
|
+
"syn_rate": {
|
|
70
|
+
"default": "200,50:packet",
|
|
71
|
+
"type": "string"
|
|
72
|
+
},
|
|
73
|
+
"icmp_rate": {
|
|
74
|
+
"default": "50,10:packet",
|
|
75
|
+
"type": "string"
|
|
76
|
+
},
|
|
77
|
+
"apply": {
|
|
78
|
+
"default": false,
|
|
79
|
+
"description": "false = preview only (default); true = apply",
|
|
80
|
+
"type": "boolean"
|
|
81
|
+
},
|
|
82
|
+
"safe_mode": {
|
|
83
|
+
"default": true,
|
|
84
|
+
"description": "Apply through Safe Mode (auto-revert on lockout)",
|
|
85
|
+
"type": "boolean"
|
|
86
|
+
},
|
|
87
|
+
"i_accept_lockout_risk": {
|
|
88
|
+
"default": false,
|
|
89
|
+
"type": "boolean"
|
|
90
|
+
}
|
|
91
|
+
},
|
|
92
|
+
"required": [
|
|
93
|
+
"preset",
|
|
94
|
+
"mgmt_ports",
|
|
95
|
+
"ssh_ports",
|
|
96
|
+
"conn_limit",
|
|
97
|
+
"syn_rate",
|
|
98
|
+
"icmp_rate",
|
|
99
|
+
"apply",
|
|
100
|
+
"safe_mode",
|
|
101
|
+
"i_accept_lockout_risk"
|
|
102
|
+
],
|
|
103
|
+
"additionalProperties": false
|
|
104
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"title": "list_dhcp_clients",
|
|
4
|
+
"type": "object",
|
|
5
|
+
"properties": {
|
|
6
|
+
"interface_filter": {
|
|
7
|
+
"description": "Substring match on interface",
|
|
8
|
+
"type": "string"
|
|
9
|
+
}
|
|
10
|
+
},
|
|
11
|
+
"additionalProperties": false
|
|
12
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"title": "onboard_wireguard_user",
|
|
4
|
+
"type": "object",
|
|
5
|
+
"properties": {
|
|
6
|
+
"interface": {
|
|
7
|
+
"type": "string",
|
|
8
|
+
"description": "Existing WireGuard SERVER interface, e.g. 'wg-server'"
|
|
9
|
+
},
|
|
10
|
+
"user": {
|
|
11
|
+
"type": "string",
|
|
12
|
+
"description": "User/device label, e.g. 'alice-laptop'"
|
|
13
|
+
},
|
|
14
|
+
"address": {
|
|
15
|
+
"type": "string",
|
|
16
|
+
"description": "Tunnel IP to assign the client, e.g. '10.20.0.50'"
|
|
17
|
+
},
|
|
18
|
+
"endpoint": {
|
|
19
|
+
"type": "string",
|
|
20
|
+
"description": "Server public endpoint host:port, e.g. 'vpn.example.com:13231'"
|
|
21
|
+
},
|
|
22
|
+
"dns": {
|
|
23
|
+
"description": "DNS for the client, e.g. '10.20.0.1'",
|
|
24
|
+
"type": "string"
|
|
25
|
+
},
|
|
26
|
+
"allowed_ips": {
|
|
27
|
+
"default": "0.0.0.0/0",
|
|
28
|
+
"description": "Client AllowedIPs: '0.0.0.0/0' full-tunnel, or a LAN subnet for split-tunnel",
|
|
29
|
+
"type": "string"
|
|
30
|
+
},
|
|
31
|
+
"keepalive": {
|
|
32
|
+
"default": "25",
|
|
33
|
+
"description": "PersistentKeepalive seconds",
|
|
34
|
+
"type": "string"
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
"required": ["interface", "user", "address", "endpoint", "allowed_ips", "keepalive"],
|
|
38
|
+
"additionalProperties": false
|
|
39
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"title": "remove_threat_feed",
|
|
4
|
+
"type": "object",
|
|
5
|
+
"properties": {
|
|
6
|
+
"name": {
|
|
7
|
+
"type": "string",
|
|
8
|
+
"description": "The feed id used when subscribing"
|
|
9
|
+
}
|
|
10
|
+
},
|
|
11
|
+
"required": ["name"],
|
|
12
|
+
"additionalProperties": false
|
|
13
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"title": "remove_time_policy",
|
|
4
|
+
"type": "object",
|
|
5
|
+
"properties": {
|
|
6
|
+
"name": {
|
|
7
|
+
"type": "string",
|
|
8
|
+
"description": "The policy id used when installing"
|
|
9
|
+
}
|
|
10
|
+
},
|
|
11
|
+
"required": ["name"],
|
|
12
|
+
"additionalProperties": false
|
|
13
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"title": "renew_dhcp_client",
|
|
4
|
+
"type": "object",
|
|
5
|
+
"properties": {
|
|
6
|
+
"interface": {
|
|
7
|
+
"type": "string"
|
|
8
|
+
},
|
|
9
|
+
"release": {
|
|
10
|
+
"default": false,
|
|
11
|
+
"description": "true = release the lease; false = renew",
|
|
12
|
+
"type": "boolean"
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
"required": ["interface", "release"],
|
|
16
|
+
"additionalProperties": false
|
|
17
|
+
}
|