@usex/mikrotik-mcp 3.2.0 → 3.4.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 +2736 -2185
- package/dist/index.js +2510 -2163
- package/dist/ui/observability.html +7 -3
- package/package.json +1 -1
- package/schemas/README.md +1 -1
- package/schemas/config.schema.json +3 -0
- package/schemas/tool-catalog.json +172 -7
- package/schemas/tools/add_route.json +5 -0
- package/schemas/tools/create_local_backup.json +18 -0
- package/schemas/tools/create_sstp_client.json +7 -1
- package/schemas/tools/delete_local_backup.json +13 -0
- package/schemas/tools/get_local_backup.json +13 -0
- package/schemas/tools/list_local_backups.json +7 -0
- package/schemas/tools/list_routes.json +5 -0
- package/schemas/tools/rename_local_backup.json +17 -0
- package/schemas/tools/restore_local_backup.json +18 -0
- package/schemas/tools/update_route.json +5 -0
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "3.3.0",
|
|
4
4
|
"generated": "by scripts/gen-schemas.ts — do not edit by hand",
|
|
5
|
-
"toolCount":
|
|
5
|
+
"toolCount": 670,
|
|
6
6
|
"tools": [
|
|
7
7
|
{
|
|
8
8
|
"name": "list_interfaces",
|
|
@@ -2089,7 +2089,7 @@
|
|
|
2089
2089
|
"destructiveHint": false,
|
|
2090
2090
|
"openWorldHint": false
|
|
2091
2091
|
},
|
|
2092
|
-
"description": "Adds an IPv4 static route (`/ip route add`) to the routing table — use this to define any non-default unicast next-hop (host, subnet, or summarized prefix). For the 0.0.0.0/0 default gateway use add_default_route; for null/drop routes use add_blackhole_route; for IPv6 use add_ipv6_route. `distance` sets priority (1–255, lower wins); `
|
|
2092
|
+
"description": "Adds an IPv4 static route (`/ip route add`) to the routing table — use this to define any non-default unicast next-hop (host, subnet, or summarized prefix). For the 0.0.0.0/0 default gateway use add_default_route; for null/drop routes use add_blackhole_route; for IPv6 use add_ipv6_route. `distance` sets priority (1–255, lower wins); `routing_table` assigns the route to a policy-routing table (must already exist — see add_routing_table); `check_gateway` (\"ping\" or \"arp\") enables active gateway monitoring. Returns the created route's detail including its `.id`.",
|
|
2093
2093
|
"inputSchema": {
|
|
2094
2094
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
2095
2095
|
"type": "object",
|
|
@@ -2117,7 +2117,12 @@
|
|
|
2117
2117
|
"minimum": -9007199254740991,
|
|
2118
2118
|
"maximum": 9007199254740991
|
|
2119
2119
|
},
|
|
2120
|
+
"routing_table": {
|
|
2121
|
+
"description": "Policy-routing table name, e.g. \"main\" or a custom table (RouterOS v7)",
|
|
2122
|
+
"type": "string"
|
|
2123
|
+
},
|
|
2120
2124
|
"routing_mark": {
|
|
2125
|
+
"description": "Deprecated alias for routing_table (RouterOS v6 name)",
|
|
2121
2126
|
"type": "string"
|
|
2122
2127
|
},
|
|
2123
2128
|
"comment": {
|
|
@@ -2151,7 +2156,7 @@
|
|
|
2151
2156
|
"idempotentHint": true,
|
|
2152
2157
|
"openWorldHint": false
|
|
2153
2158
|
},
|
|
2154
|
-
"description": "Lists IPv4 routes from `/ip route` with optional filters — the primary tool for inspecting what routes the router knows. `dst_filter` and `gateway_filter` do substring matching; `
|
|
2159
|
+
"description": "Lists IPv4 routes from `/ip route` with optional filters — the primary tool for inspecting what routes the router knows. `dst_filter` and `gateway_filter` do substring matching; `routing_table_filter` and `distance_filter` do exact matching; `active_only`/`disabled_only`/`dynamic_only`/`static_only` are boolean flags. For a table-scoped view of active routes use get_routing_table; for counts and summary stats use get_route_statistics; for IPv6 use list_ipv6_routes. Returns all matching route entries.",
|
|
2155
2160
|
"inputSchema": {
|
|
2156
2161
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
2157
2162
|
"type": "object",
|
|
@@ -2162,7 +2167,12 @@
|
|
|
2162
2167
|
"gateway_filter": {
|
|
2163
2168
|
"type": "string"
|
|
2164
2169
|
},
|
|
2170
|
+
"routing_table_filter": {
|
|
2171
|
+
"description": "Exact policy-routing table name (RouterOS v7)",
|
|
2172
|
+
"type": "string"
|
|
2173
|
+
},
|
|
2165
2174
|
"routing_mark_filter": {
|
|
2175
|
+
"description": "Deprecated alias for routing_table_filter",
|
|
2166
2176
|
"type": "string"
|
|
2167
2177
|
},
|
|
2168
2178
|
"distance_filter": {
|
|
@@ -2223,7 +2233,7 @@
|
|
|
2223
2233
|
"idempotentHint": true,
|
|
2224
2234
|
"openWorldHint": false
|
|
2225
2235
|
},
|
|
2226
|
-
"description": "Modifies an existing IPv4 static route (`/ip route set`) — change its gateway, dst-address, distance, scope, routing-
|
|
2236
|
+
"description": "Modifies an existing IPv4 static route (`/ip route set`) — change its gateway, dst-address, distance, scope, routing-table, VRF interface, preferred-source, or gateway check method. `route_id` is the `*N` `.id` from list_routes. Pass an empty string (\"\") for `routing_table`, `vrf_interface`, or `pref_src` to clear those fields. For toggling active state without editing attributes use enable_route / disable_route. Returns the updated route detail.",
|
|
2227
2237
|
"inputSchema": {
|
|
2228
2238
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
2229
2239
|
"type": "object",
|
|
@@ -2255,7 +2265,12 @@
|
|
|
2255
2265
|
"minimum": -9007199254740991,
|
|
2256
2266
|
"maximum": 9007199254740991
|
|
2257
2267
|
},
|
|
2268
|
+
"routing_table": {
|
|
2269
|
+
"description": "Policy-routing table name (RouterOS v7); \"\" clears it",
|
|
2270
|
+
"type": "string"
|
|
2271
|
+
},
|
|
2258
2272
|
"routing_mark": {
|
|
2273
|
+
"description": "Deprecated alias for routing_table (RouterOS v6 name)",
|
|
2259
2274
|
"type": "string"
|
|
2260
2275
|
},
|
|
2261
2276
|
"comment": {
|
|
@@ -12830,7 +12845,7 @@
|
|
|
12830
12845
|
"destructiveHint": false,
|
|
12831
12846
|
"openWorldHint": false
|
|
12832
12847
|
},
|
|
12833
|
-
"description": "Create an outbound SSTP client tunnel interface (`/interface sstp-client add`) so this router dials out to a remote SSTP server over TLS. Use when this device must act as a VPN client, not the VPN server — for server-side settings use `set_sstp_server`. `connect_to` is the remote host:port
|
|
12848
|
+
"description": "Create an outbound SSTP client tunnel interface (`/interface sstp-client add`) so this router dials out to a remote SSTP server over TLS. Use when this device must act as a VPN client, not the VPN server — for server-side settings use `set_sstp_server`. `connect_to` is the remote server address (IP or DNS name); the TCP port is separate. You may pass the port in `port` or inline as `host:port` in `connect_to` (it is split out automatically — RouterOS rejects a port embedded in connect-to). SSTP defaults to 443. For L2TP outbound tunnels use `create_l2tp_client`, for OpenVPN use `create_ovpn_client`, for PPTP use `create_pptp_client`. Credentials are accepted but redacted from return values. Returns the created interface detail (name, status, remote address); use the interface `name` with `get_sstp_client` or `remove_sstp_client`.",
|
|
12834
12849
|
"inputSchema": {
|
|
12835
12850
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
12836
12851
|
"type": "object",
|
|
@@ -12841,7 +12856,13 @@
|
|
|
12841
12856
|
},
|
|
12842
12857
|
"connect_to": {
|
|
12843
12858
|
"type": "string",
|
|
12844
|
-
"description": "Remote SSTP server address (host:port
|
|
12859
|
+
"description": "Remote SSTP server address (IP or DNS name; host:port also accepted)"
|
|
12860
|
+
},
|
|
12861
|
+
"port": {
|
|
12862
|
+
"description": "TCP port (default 443 if omitted)",
|
|
12863
|
+
"type": "integer",
|
|
12864
|
+
"minimum": -9007199254740991,
|
|
12865
|
+
"maximum": 9007199254740991
|
|
12845
12866
|
},
|
|
12846
12867
|
"user": {
|
|
12847
12868
|
"type": "string"
|
|
@@ -19814,6 +19835,150 @@
|
|
|
19814
19835
|
"additionalProperties": false
|
|
19815
19836
|
}
|
|
19816
19837
|
},
|
|
19838
|
+
{
|
|
19839
|
+
"name": "create_local_backup",
|
|
19840
|
+
"title": "Create Local Config Backup (host vault)",
|
|
19841
|
+
"risk": "write",
|
|
19842
|
+
"annotations": {
|
|
19843
|
+
"destructiveHint": false,
|
|
19844
|
+
"openWorldHint": false
|
|
19845
|
+
},
|
|
19846
|
+
"description": "Captures the device's full configuration with `/export` and saves it as a timestamped plain-text `.rsc` file in the MCP server's LOCAL backup vault (default `~/.mikrotik-mcp/backups/`, override with the `MIKROTIK_BACKUP_DIR` env var) — NOT on the device and NOT in S3. The filename is `<device>_<date_time>.rsc` stamped in the device's local clock (24-hour; Jalali for the Tehran timezone, Gregorian otherwise). This is a host-side, human-readable, diffable copy you can restore later with restore_local_backup. Compare: create_backup makes a binary `/system backup` file ON the device; capture_config_snapshot stores an export in the local snapshot database; upload_backup_to_s3 pushes to S3. show_sensitive=true includes secrets (keys/passwords) in the export. Returns the saved filename, byte size and vault path.",
|
|
19847
|
+
"inputSchema": {
|
|
19848
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
19849
|
+
"type": "object",
|
|
19850
|
+
"properties": {
|
|
19851
|
+
"label": {
|
|
19852
|
+
"description": "Optional label appended to the filename, e.g. \"pre-upgrade\".",
|
|
19853
|
+
"type": "string"
|
|
19854
|
+
},
|
|
19855
|
+
"show_sensitive": {
|
|
19856
|
+
"default": false,
|
|
19857
|
+
"description": "Include secrets (keys/passwords) in the export. Default false.",
|
|
19858
|
+
"type": "boolean"
|
|
19859
|
+
}
|
|
19860
|
+
},
|
|
19861
|
+
"required": ["show_sensitive"],
|
|
19862
|
+
"additionalProperties": false
|
|
19863
|
+
}
|
|
19864
|
+
},
|
|
19865
|
+
{
|
|
19866
|
+
"name": "list_local_backups",
|
|
19867
|
+
"title": "List Local Config Backups (host vault)",
|
|
19868
|
+
"risk": "read",
|
|
19869
|
+
"annotations": {
|
|
19870
|
+
"readOnlyHint": true,
|
|
19871
|
+
"idempotentHint": true,
|
|
19872
|
+
"openWorldHint": false
|
|
19873
|
+
},
|
|
19874
|
+
"description": "Lists the `/export` config backups stored in the MCP server's LOCAL backup vault (`~/.mikrotik-mcp/backups/` or `MIKROTIK_BACKUP_DIR`) — each with its filename, source device, byte size and capture time, newest first. These are host-side text backups created by create_local_backup, distinct from list_backups (binary `.backup` files ON the device) and list_s3_backups (objects in an S3 bucket). Use a returned filename with get_local_backup, restore_local_backup, rename_local_backup or delete_local_backup.",
|
|
19875
|
+
"inputSchema": {
|
|
19876
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
19877
|
+
"type": "object",
|
|
19878
|
+
"properties": {},
|
|
19879
|
+
"additionalProperties": false
|
|
19880
|
+
}
|
|
19881
|
+
},
|
|
19882
|
+
{
|
|
19883
|
+
"name": "get_local_backup",
|
|
19884
|
+
"title": "Get Local Config Backup Contents (host vault)",
|
|
19885
|
+
"risk": "read",
|
|
19886
|
+
"annotations": {
|
|
19887
|
+
"readOnlyHint": true,
|
|
19888
|
+
"idempotentHint": true,
|
|
19889
|
+
"openWorldHint": false
|
|
19890
|
+
},
|
|
19891
|
+
"description": "Returns the full `/export` `.rsc` text of one backup in the MCP server's LOCAL vault, by filename (get the name from list_local_backups). This is the exact configuration script that restore_local_backup would replay onto a device — useful for reviewing or diffing a saved config before restoring. Returns a 'not found' message if the filename doesn't exist. `name` is the exact filename from list_local_backups.",
|
|
19892
|
+
"inputSchema": {
|
|
19893
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
19894
|
+
"type": "object",
|
|
19895
|
+
"properties": {
|
|
19896
|
+
"name": {
|
|
19897
|
+
"type": "string",
|
|
19898
|
+
"description": "Backup filename, e.g. 'edge_2026-06-25_1430.rsc'."
|
|
19899
|
+
}
|
|
19900
|
+
},
|
|
19901
|
+
"required": ["name"],
|
|
19902
|
+
"additionalProperties": false
|
|
19903
|
+
}
|
|
19904
|
+
},
|
|
19905
|
+
{
|
|
19906
|
+
"name": "rename_local_backup",
|
|
19907
|
+
"title": "Rename Local Config Backup (host vault)",
|
|
19908
|
+
"risk": "write-idempotent",
|
|
19909
|
+
"annotations": {
|
|
19910
|
+
"destructiveHint": false,
|
|
19911
|
+
"idempotentHint": true,
|
|
19912
|
+
"openWorldHint": false
|
|
19913
|
+
},
|
|
19914
|
+
"description": "Renames a backup file in the MCP server's LOCAL vault (e.g. to label it 'pre-upgrade' or 'golden'). Forces an `.rsc` extension and refuses if the target name already exists. Host-side only — it does NOT touch the device or S3. `name` is the current filename (from list_local_backups); `new_name` is the desired filename. Returns the new filename.",
|
|
19915
|
+
"inputSchema": {
|
|
19916
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
19917
|
+
"type": "object",
|
|
19918
|
+
"properties": {
|
|
19919
|
+
"name": {
|
|
19920
|
+
"type": "string",
|
|
19921
|
+
"description": "Current backup filename."
|
|
19922
|
+
},
|
|
19923
|
+
"new_name": {
|
|
19924
|
+
"type": "string",
|
|
19925
|
+
"description": "Desired filename (an `.rsc` suffix is added if missing)."
|
|
19926
|
+
}
|
|
19927
|
+
},
|
|
19928
|
+
"required": ["name", "new_name"],
|
|
19929
|
+
"additionalProperties": false
|
|
19930
|
+
}
|
|
19931
|
+
},
|
|
19932
|
+
{
|
|
19933
|
+
"name": "delete_local_backup",
|
|
19934
|
+
"title": "Delete Local Config Backup (host vault)",
|
|
19935
|
+
"risk": "destructive",
|
|
19936
|
+
"annotations": {
|
|
19937
|
+
"destructiveHint": true,
|
|
19938
|
+
"idempotentHint": true,
|
|
19939
|
+
"openWorldHint": false
|
|
19940
|
+
},
|
|
19941
|
+
"description": "Permanently deletes one backup file from the MCP server's LOCAL vault by filename. This removes only the host-side copy — it does NOT touch the device's configuration, its on-device `.backup` files, or any S3 object. Use list_local_backups to find the name; for deleting an S3 object use delete_s3_backup instead. Returns a 'not found' message if the filename doesn't exist.",
|
|
19942
|
+
"inputSchema": {
|
|
19943
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
19944
|
+
"type": "object",
|
|
19945
|
+
"properties": {
|
|
19946
|
+
"name": {
|
|
19947
|
+
"type": "string",
|
|
19948
|
+
"description": "Backup filename to delete."
|
|
19949
|
+
}
|
|
19950
|
+
},
|
|
19951
|
+
"required": ["name"],
|
|
19952
|
+
"additionalProperties": false
|
|
19953
|
+
}
|
|
19954
|
+
},
|
|
19955
|
+
{
|
|
19956
|
+
"name": "restore_local_backup",
|
|
19957
|
+
"title": "Restore Local Config Backup to Device (Safe Mode)",
|
|
19958
|
+
"risk": "dangerous",
|
|
19959
|
+
"annotations": {
|
|
19960
|
+
"destructiveHint": true,
|
|
19961
|
+
"openWorldHint": false
|
|
19962
|
+
},
|
|
19963
|
+
"description": "Replays a LOCAL vault backup's `/export` configuration onto a device INSIDE RouterOS Safe Mode — every command is held in memory and AUTO-REVERTS if the SSH session drops, so a change that would lock you out is undone instead of sticking. With confirm=false (default) it applies the whole config, then rolls it all back — a true dry-run that proves the restore runs cleanly. With confirm=true it commits, but ONLY after verifying the device still answers. Because a `/export` is additive, restoring onto an already-configured device LAYERS the saved config on top (duplicate rules are possible) — it is cleanest on a freshly reset device. Requires SSH (Safe Mode is not available on MAC-Telnet devices). Alternatives: import_configuration runs a `.rsc` already ON the device; restore_backup loads a binary `.backup` (and reboots). `name` is the filename from list_local_backups.",
|
|
19964
|
+
"inputSchema": {
|
|
19965
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
19966
|
+
"type": "object",
|
|
19967
|
+
"properties": {
|
|
19968
|
+
"name": {
|
|
19969
|
+
"type": "string",
|
|
19970
|
+
"description": "Backup filename to restore (from list_local_backups)."
|
|
19971
|
+
},
|
|
19972
|
+
"confirm": {
|
|
19973
|
+
"default": false,
|
|
19974
|
+
"description": "false = apply, then roll back (dry-run). true = commit if still reachable.",
|
|
19975
|
+
"type": "boolean"
|
|
19976
|
+
}
|
|
19977
|
+
},
|
|
19978
|
+
"required": ["name", "confirm"],
|
|
19979
|
+
"additionalProperties": false
|
|
19980
|
+
}
|
|
19981
|
+
},
|
|
19817
19982
|
{
|
|
19818
19983
|
"name": "list_disks",
|
|
19819
19984
|
"title": "List All Attached Disks",
|
|
@@ -26,7 +26,12 @@
|
|
|
26
26
|
"minimum": -9007199254740991,
|
|
27
27
|
"maximum": 9007199254740991
|
|
28
28
|
},
|
|
29
|
+
"routing_table": {
|
|
30
|
+
"description": "Policy-routing table name, e.g. \"main\" or a custom table (RouterOS v7)",
|
|
31
|
+
"type": "string"
|
|
32
|
+
},
|
|
29
33
|
"routing_mark": {
|
|
34
|
+
"description": "Deprecated alias for routing_table (RouterOS v6 name)",
|
|
30
35
|
"type": "string"
|
|
31
36
|
},
|
|
32
37
|
"comment": {
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"title": "create_local_backup",
|
|
4
|
+
"type": "object",
|
|
5
|
+
"properties": {
|
|
6
|
+
"label": {
|
|
7
|
+
"description": "Optional label appended to the filename, e.g. \"pre-upgrade\".",
|
|
8
|
+
"type": "string"
|
|
9
|
+
},
|
|
10
|
+
"show_sensitive": {
|
|
11
|
+
"default": false,
|
|
12
|
+
"description": "Include secrets (keys/passwords) in the export. Default false.",
|
|
13
|
+
"type": "boolean"
|
|
14
|
+
}
|
|
15
|
+
},
|
|
16
|
+
"required": ["show_sensitive"],
|
|
17
|
+
"additionalProperties": false
|
|
18
|
+
}
|
|
@@ -9,7 +9,13 @@
|
|
|
9
9
|
},
|
|
10
10
|
"connect_to": {
|
|
11
11
|
"type": "string",
|
|
12
|
-
"description": "Remote SSTP server address (host:port
|
|
12
|
+
"description": "Remote SSTP server address (IP or DNS name; host:port also accepted)"
|
|
13
|
+
},
|
|
14
|
+
"port": {
|
|
15
|
+
"description": "TCP port (default 443 if omitted)",
|
|
16
|
+
"type": "integer",
|
|
17
|
+
"minimum": -9007199254740991,
|
|
18
|
+
"maximum": 9007199254740991
|
|
13
19
|
},
|
|
14
20
|
"user": {
|
|
15
21
|
"type": "string"
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"title": "delete_local_backup",
|
|
4
|
+
"type": "object",
|
|
5
|
+
"properties": {
|
|
6
|
+
"name": {
|
|
7
|
+
"type": "string",
|
|
8
|
+
"description": "Backup filename to delete."
|
|
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": "get_local_backup",
|
|
4
|
+
"type": "object",
|
|
5
|
+
"properties": {
|
|
6
|
+
"name": {
|
|
7
|
+
"type": "string",
|
|
8
|
+
"description": "Backup filename, e.g. 'edge_2026-06-25_1430.rsc'."
|
|
9
|
+
}
|
|
10
|
+
},
|
|
11
|
+
"required": ["name"],
|
|
12
|
+
"additionalProperties": false
|
|
13
|
+
}
|
|
@@ -9,7 +9,12 @@
|
|
|
9
9
|
"gateway_filter": {
|
|
10
10
|
"type": "string"
|
|
11
11
|
},
|
|
12
|
+
"routing_table_filter": {
|
|
13
|
+
"description": "Exact policy-routing table name (RouterOS v7)",
|
|
14
|
+
"type": "string"
|
|
15
|
+
},
|
|
12
16
|
"routing_mark_filter": {
|
|
17
|
+
"description": "Deprecated alias for routing_table_filter",
|
|
13
18
|
"type": "string"
|
|
14
19
|
},
|
|
15
20
|
"distance_filter": {
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"title": "rename_local_backup",
|
|
4
|
+
"type": "object",
|
|
5
|
+
"properties": {
|
|
6
|
+
"name": {
|
|
7
|
+
"type": "string",
|
|
8
|
+
"description": "Current backup filename."
|
|
9
|
+
},
|
|
10
|
+
"new_name": {
|
|
11
|
+
"type": "string",
|
|
12
|
+
"description": "Desired filename (an `.rsc` suffix is added if missing)."
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
"required": ["name", "new_name"],
|
|
16
|
+
"additionalProperties": false
|
|
17
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"title": "restore_local_backup",
|
|
4
|
+
"type": "object",
|
|
5
|
+
"properties": {
|
|
6
|
+
"name": {
|
|
7
|
+
"type": "string",
|
|
8
|
+
"description": "Backup filename to restore (from list_local_backups)."
|
|
9
|
+
},
|
|
10
|
+
"confirm": {
|
|
11
|
+
"default": false,
|
|
12
|
+
"description": "false = apply, then roll back (dry-run). true = commit if still reachable.",
|
|
13
|
+
"type": "boolean"
|
|
14
|
+
}
|
|
15
|
+
},
|
|
16
|
+
"required": ["name", "confirm"],
|
|
17
|
+
"additionalProperties": false
|
|
18
|
+
}
|
|
@@ -30,7 +30,12 @@
|
|
|
30
30
|
"minimum": -9007199254740991,
|
|
31
31
|
"maximum": 9007199254740991
|
|
32
32
|
},
|
|
33
|
+
"routing_table": {
|
|
34
|
+
"description": "Policy-routing table name (RouterOS v7); \"\" clears it",
|
|
35
|
+
"type": "string"
|
|
36
|
+
},
|
|
33
37
|
"routing_mark": {
|
|
38
|
+
"description": "Deprecated alias for routing_table (RouterOS v6 name)",
|
|
34
39
|
"type": "string"
|
|
35
40
|
},
|
|
36
41
|
"comment": {
|