@usex/mikrotik-mcp 4.23.0 → 5.0.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.
Files changed (81) hide show
  1. package/README.md +350 -284
  2. package/dist/cli.js +1870 -566
  3. package/dist/index.d.ts +57 -0
  4. package/dist/index.js +1 -1
  5. package/dist/shared/{library-2144zr9f.js → cli-2dj736ma.js} +33920 -22075
  6. package/dist/shared/{cli-p673815b.js → cli-vvy7yfyg.js} +1 -1
  7. package/dist/shared/{cli-tssmr7sb.js → library-13dhfdnq.js} +29455 -18578
  8. package/dist/shared/{library-8f4pbp0x.js → library-syt5fmtj.js} +1 -1
  9. package/dist/ui/aaa.html +1 -1
  10. package/dist/ui/connected-devices.html +1 -1
  11. package/dist/ui/dashboard.html +1 -1
  12. package/dist/ui/firewall-audit.html +1 -1
  13. package/dist/ui/firewall.html +1 -1
  14. package/dist/ui/interfaces.html +1 -1
  15. package/dist/ui/observability.html +70 -62
  16. package/dist/ui/records.html +1 -1
  17. package/package.json +12 -11
  18. package/policies/baseline.yaml +180 -0
  19. package/prompts/backup-and-document.md +28 -18
  20. package/prompts/build-tunnel-transactionally.md +74 -0
  21. package/prompts/fleet-rollout.md +68 -0
  22. package/prompts/setup-traffic-flow.md +68 -0
  23. package/schemas/README.md +1 -1
  24. package/schemas/config.schema.json +367 -4
  25. package/schemas/tool-catalog.json +3044 -1152
  26. package/schemas/tools/abort_rollout.json +17 -0
  27. package/schemas/tools/abort_transaction.json +17 -0
  28. package/schemas/tools/add_alert_rule.json +45 -0
  29. package/schemas/tools/add_ipv6_route.json +1 -1
  30. package/schemas/tools/add_route.json +3 -2
  31. package/schemas/tools/add_schedule.json +50 -0
  32. package/schemas/tools/add_script.json +1 -1
  33. package/schemas/tools/add_traffic_flow_target.json +36 -0
  34. package/schemas/tools/add_transaction_step.json +21 -0
  35. package/schemas/tools/analyze_flows.json +25 -0
  36. package/schemas/tools/begin_transaction.json +109 -0
  37. package/schemas/tools/block_attacker.json +22 -0
  38. package/schemas/tools/check_policy_snapshot.json +20 -0
  39. package/schemas/tools/commit_transaction.json +13 -0
  40. package/schemas/tools/configure_attack_response.json +12 -0
  41. package/schemas/tools/diff_explanations.json +24 -0
  42. package/schemas/tools/explain_device.json +22 -0
  43. package/schemas/tools/explain_policy_finding.json +17 -0
  44. package/schemas/tools/explain_rule_reachability.json +18 -0
  45. package/schemas/tools/explain_section.json +32 -0
  46. package/schemas/tools/export_policy_report.json +22 -0
  47. package/schemas/tools/flow_top_talkers.json +31 -0
  48. package/schemas/tools/get_alert_history.json +26 -0
  49. package/schemas/tools/get_attack_incident.json +13 -0
  50. package/schemas/tools/get_audit_timeline.json +24 -0
  51. package/schemas/tools/get_device_capabilities.json +7 -0
  52. package/schemas/tools/get_traffic_flow_settings.json +7 -0
  53. package/schemas/tools/list_alert_rules.json +7 -0
  54. package/schemas/tools/list_attack_incidents.json +27 -0
  55. package/schemas/tools/list_attack_responses.json +20 -0
  56. package/schemas/tools/list_policies.json +17 -0
  57. package/schemas/tools/list_schedules.json +12 -0
  58. package/schemas/tools/list_traffic_flow_targets.json +7 -0
  59. package/schemas/tools/mute_alert_rule.json +18 -0
  60. package/schemas/tools/plan_rollout.json +95 -0
  61. package/schemas/tools/refresh_device_capabilities.json +7 -0
  62. package/schemas/tools/remove_alert_rule.json +13 -0
  63. package/schemas/tools/remove_schedule.json +13 -0
  64. package/schemas/tools/remove_traffic_flow_target.json +13 -0
  65. package/schemas/tools/rollout_status.json +12 -0
  66. package/schemas/tools/run_policy_check.json +12 -0
  67. package/schemas/tools/run_schedule_now.json +13 -0
  68. package/schemas/tools/scan_for_attacks.json +21 -0
  69. package/schemas/tools/set_traffic_flow_settings.json +28 -0
  70. package/schemas/tools/simulate_change.json +72 -0
  71. package/schemas/tools/simulate_packet.json +53 -0
  72. package/schemas/tools/simulate_suite.json +71 -0
  73. package/schemas/tools/start_flow_collector.json +14 -0
  74. package/schemas/tools/start_rollout.json +98 -0
  75. package/schemas/tools/stop_flow_collector.json +7 -0
  76. package/schemas/tools/test_alert_channel.json +14 -0
  77. package/schemas/tools/unblock_attacker.json +20 -0
  78. package/schemas/tools/update_alert_rule.json +41 -0
  79. package/schemas/tools/update_route.json +3 -2
  80. package/schemas/tools/validate_policy_file.json +16 -0
  81. package/schemas/tools/verify_transaction.json +13 -0
@@ -0,0 +1,17 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "title": "abort_rollout",
4
+ "type": "object",
5
+ "properties": {
6
+ "rollout_id": {
7
+ "type": "string",
8
+ "description": "Rollout id from start_rollout"
9
+ },
10
+ "reason": {
11
+ "description": "Recorded in the rollout history",
12
+ "type": "string"
13
+ }
14
+ },
15
+ "required": ["rollout_id"],
16
+ "additionalProperties": false
17
+ }
@@ -0,0 +1,17 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "title": "abort_transaction",
4
+ "type": "object",
5
+ "properties": {
6
+ "txn_id": {
7
+ "type": "string",
8
+ "description": "Transaction id from begin_transaction"
9
+ },
10
+ "reason": {
11
+ "description": "Recorded in the transaction log",
12
+ "type": "string"
13
+ }
14
+ },
15
+ "required": ["txn_id"],
16
+ "additionalProperties": false
17
+ }
@@ -0,0 +1,45 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "title": "add_alert_rule",
4
+ "type": "object",
5
+ "properties": {
6
+ "id": {
7
+ "type": "string",
8
+ "minLength": 1,
9
+ "description": "Unique id — keys muting and history, so make it stable."
10
+ },
11
+ "trigger": {
12
+ "type": "string",
13
+ "description": "The trigger as a JSON object (see the description)."
14
+ },
15
+ "channels": {
16
+ "minItems": 1,
17
+ "type": "array",
18
+ "items": {
19
+ "type": "string",
20
+ "enum": ["slack", "discord", "ntfy", "webhook", "mcp"]
21
+ },
22
+ "description": "Where to deliver."
23
+ },
24
+ "severity": {
25
+ "default": "medium",
26
+ "type": "string",
27
+ "enum": ["low", "medium", "high", "critical"]
28
+ },
29
+ "description": {
30
+ "description": "Human-readable title used in the message.",
31
+ "type": "string"
32
+ },
33
+ "for": {
34
+ "description": "Hold time before firing, e.g. '2m'.",
35
+ "type": "string"
36
+ },
37
+ "cooldown": {
38
+ "default": "15m",
39
+ "description": "Minimum gap between fires.",
40
+ "type": "string"
41
+ }
42
+ },
43
+ "required": ["id", "trigger", "channels", "severity", "cooldown"],
44
+ "additionalProperties": false
45
+ }
@@ -13,7 +13,7 @@
13
13
  },
14
14
  "type": {
15
15
  "type": "string",
16
- "enum": ["unicast", "blackhole", "unreachable", "prohibit"]
16
+ "enum": ["unicast", "blackhole"]
17
17
  },
18
18
  "distance": {
19
19
  "type": "integer",
@@ -56,8 +56,9 @@
56
56
  "type": "boolean"
57
57
  },
58
58
  "type": {
59
- "description": "\"unicast\" (default), \"blackhole\", \"unreachable\", or \"prohibit\"",
60
- "type": "string"
59
+ "description": "\"unicast\" (default) or \"blackhole\" (drop silently). RouterOS v7 has no \"unreachable\"/\"prohibit\" route types.",
60
+ "type": "string",
61
+ "enum": ["unicast", "blackhole"]
61
62
  }
62
63
  },
63
64
  "required": ["dst_address", "gateway", "disabled"],
@@ -0,0 +1,50 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "title": "add_schedule",
4
+ "type": "object",
5
+ "properties": {
6
+ "id": {
7
+ "type": "string",
8
+ "description": "Job id, e.g. 'nightly-security'. Letters, digits and hyphens."
9
+ },
10
+ "cron": {
11
+ "type": "string",
12
+ "description": "5-field cron, e.g. \"0 3 * * *\" for every day at 03:00."
13
+ },
14
+ "tool": {
15
+ "type": "string",
16
+ "description": "Auditor to run — one of the schedulable tools listed above."
17
+ },
18
+ "devices": {
19
+ "description": "Device names, or 'all' (the default) for every configured device.",
20
+ "anyOf": [
21
+ {
22
+ "type": "string",
23
+ "const": "all"
24
+ },
25
+ {
26
+ "type": "array",
27
+ "items": {
28
+ "type": "string"
29
+ }
30
+ }
31
+ ]
32
+ },
33
+ "notify_on": {
34
+ "description": "Which deltas raise an alert. Default: new + worsened.",
35
+ "type": "array",
36
+ "items": {
37
+ "type": "string",
38
+ "enum": ["new", "worsened", "resolved", "improved"]
39
+ }
40
+ },
41
+ "retain_days": {
42
+ "description": "How long run history is kept. Default 90.",
43
+ "type": "integer",
44
+ "exclusiveMinimum": 0,
45
+ "maximum": 9007199254740991
46
+ }
47
+ },
48
+ "required": ["id", "cron", "tool"],
49
+ "additionalProperties": false
50
+ }
@@ -9,7 +9,7 @@
9
9
  },
10
10
  "source": {
11
11
  "type": "string",
12
- "description": "Script source code (may contain spaces/semicolons)"
12
+ "description": "Script source code, VERBATIM (may contain spaces/semicolons/quotes — they are quoted and escaped for the console automatically). Never HTML-escape it: pass `<`, `>`, `&` as themselves, since `&lt;`/`&gt;`/`&amp;` are stored literally and break comparisons."
13
13
  },
14
14
  "policy": {
15
15
  "description": "Permission policy list, e.g. 'read,write,test,policy'",
@@ -0,0 +1,36 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "title": "add_traffic_flow_target",
4
+ "type": "object",
5
+ "properties": {
6
+ "dst_address": {
7
+ "type": "string",
8
+ "description": "Collector IP — the address of this MCP host as the router sees it"
9
+ },
10
+ "port": {
11
+ "default": 2055,
12
+ "description": "Collector UDP port",
13
+ "type": "integer",
14
+ "exclusiveMinimum": 0,
15
+ "maximum": 9007199254740991
16
+ },
17
+ "version": {
18
+ "default": "9",
19
+ "description": "Export version; prefer 9 or ipfix",
20
+ "type": "string",
21
+ "enum": ["1", "5", "9", "ipfix"]
22
+ },
23
+ "v9_template_refresh": {
24
+ "description": "Packets between template resends (v9/IPFIX)",
25
+ "type": "integer",
26
+ "exclusiveMinimum": 0,
27
+ "maximum": 9007199254740991
28
+ },
29
+ "v9_template_timeout": {
30
+ "description": "Time between template resends, e.g. \"30s\" — lower means faster first decode",
31
+ "type": "string"
32
+ }
33
+ },
34
+ "required": ["dst_address", "port", "version"],
35
+ "additionalProperties": false
36
+ }
@@ -0,0 +1,21 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "title": "add_transaction_step",
4
+ "type": "object",
5
+ "properties": {
6
+ "txn_id": {
7
+ "type": "string",
8
+ "description": "Transaction id from begin_transaction"
9
+ },
10
+ "target_device": {
11
+ "type": "string",
12
+ "description": "Which participant this command runs on"
13
+ },
14
+ "command": {
15
+ "type": "string",
16
+ "description": "Full RouterOS CLI command, e.g. \"/ip address add address=...\""
17
+ }
18
+ },
19
+ "required": ["txn_id", "target_device", "command"],
20
+ "additionalProperties": false
21
+ }
@@ -0,0 +1,25 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "title": "analyze_flows",
4
+ "type": "object",
5
+ "properties": {
6
+ "window": {
7
+ "default": "1h",
8
+ "description": "How far back to look",
9
+ "type": "string",
10
+ "enum": ["5m", "15m", "1h", "6h", "24h"]
11
+ },
12
+ "address": {
13
+ "description": "Focus the whole report on one address",
14
+ "type": "string"
15
+ },
16
+ "anomaly_ratio": {
17
+ "default": 3,
18
+ "description": "Flag a talker at this multiple of its baseline",
19
+ "type": "number",
20
+ "exclusiveMinimum": 0
21
+ }
22
+ },
23
+ "required": ["window", "anomaly_ratio"],
24
+ "additionalProperties": false
25
+ }
@@ -0,0 +1,109 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "title": "begin_transaction",
4
+ "type": "object",
5
+ "properties": {
6
+ "devices": {
7
+ "minItems": 1,
8
+ "type": "array",
9
+ "items": {
10
+ "type": "string"
11
+ },
12
+ "description": "Configured device names taking part, in the order they should be prepared"
13
+ },
14
+ "commit_order": {
15
+ "description": "Order commits are issued in (defaults to `devices`); the safest device goes LAST",
16
+ "type": "array",
17
+ "items": {
18
+ "type": "string"
19
+ }
20
+ },
21
+ "jump_host": {
22
+ "description": "Participant the others are reached through — warns unless it commits last",
23
+ "type": "string"
24
+ },
25
+ "assertions": {
26
+ "description": "Checks run against the prepared-but-uncommitted fleet",
27
+ "type": "array",
28
+ "items": {
29
+ "anyOf": [
30
+ {
31
+ "type": "object",
32
+ "properties": {
33
+ "kind": {
34
+ "type": "string",
35
+ "const": "ping"
36
+ },
37
+ "from": {
38
+ "type": "string",
39
+ "description": "Device that sends the ping"
40
+ },
41
+ "to": {
42
+ "type": "string",
43
+ "description": "Target address"
44
+ }
45
+ },
46
+ "required": ["kind", "from", "to"],
47
+ "additionalProperties": false
48
+ },
49
+ {
50
+ "type": "object",
51
+ "properties": {
52
+ "kind": {
53
+ "type": "string",
54
+ "const": "wireguard-peer-handshake"
55
+ },
56
+ "device": {
57
+ "type": "string"
58
+ },
59
+ "peer": {
60
+ "type": "string",
61
+ "description": "Peer public key"
62
+ }
63
+ },
64
+ "required": ["kind", "device", "peer"],
65
+ "additionalProperties": false
66
+ },
67
+ {
68
+ "type": "object",
69
+ "properties": {
70
+ "kind": {
71
+ "type": "string",
72
+ "const": "route-present"
73
+ },
74
+ "device": {
75
+ "type": "string"
76
+ },
77
+ "dst": {
78
+ "type": "string",
79
+ "description": "Destination prefix, e.g. \"10.0.0.0/30\""
80
+ }
81
+ },
82
+ "required": ["kind", "device", "dst"],
83
+ "additionalProperties": false
84
+ },
85
+ {
86
+ "type": "object",
87
+ "properties": {
88
+ "kind": {
89
+ "type": "string",
90
+ "const": "reachable"
91
+ },
92
+ "device": {
93
+ "type": "string"
94
+ }
95
+ },
96
+ "required": ["kind", "device"],
97
+ "additionalProperties": false
98
+ }
99
+ ]
100
+ }
101
+ },
102
+ "label": {
103
+ "description": "Human label, e.g. \"site-a↔site-b tunnel\"",
104
+ "type": "string"
105
+ }
106
+ },
107
+ "required": ["devices"],
108
+ "additionalProperties": false
109
+ }
@@ -0,0 +1,22 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "title": "block_attacker",
4
+ "type": "object",
5
+ "properties": {
6
+ "incident_id": {
7
+ "type": "string",
8
+ "description": "Incident to act on, from list_attack_incidents."
9
+ },
10
+ "timeout": {
11
+ "description": "How long, e.g. '1h', '1d00:00:00'. Empty string means permanent (needs confirm).",
12
+ "type": "string"
13
+ },
14
+ "confirm": {
15
+ "default": false,
16
+ "description": "Actually apply it. Default false = dry run.",
17
+ "type": "boolean"
18
+ }
19
+ },
20
+ "required": ["incident_id", "confirm"],
21
+ "additionalProperties": false
22
+ }
@@ -0,0 +1,20 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "title": "check_policy_snapshot",
4
+ "type": "object",
5
+ "properties": {
6
+ "snapshot_id": {
7
+ "description": "Snapshot id to evaluate",
8
+ "type": "string"
9
+ },
10
+ "config_text": {
11
+ "description": "Raw `/export` text to evaluate instead",
12
+ "type": "string"
13
+ },
14
+ "device": {
15
+ "description": "Label the report with this device name",
16
+ "type": "string"
17
+ }
18
+ },
19
+ "additionalProperties": false
20
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "title": "commit_transaction",
4
+ "type": "object",
5
+ "properties": {
6
+ "txn_id": {
7
+ "type": "string",
8
+ "description": "Transaction id from begin_transaction"
9
+ }
10
+ },
11
+ "required": ["txn_id"],
12
+ "additionalProperties": false
13
+ }
@@ -0,0 +1,12 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "title": "configure_attack_response",
4
+ "type": "object",
5
+ "properties": {
6
+ "check_address": {
7
+ "description": "Ask whether this address would be refused, and why.",
8
+ "type": "string"
9
+ }
10
+ },
11
+ "additionalProperties": false
12
+ }
@@ -0,0 +1,24 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "title": "diff_explanations",
4
+ "type": "object",
5
+ "properties": {
6
+ "before_snapshot_id": {
7
+ "description": "The earlier snapshot",
8
+ "type": "string"
9
+ },
10
+ "after_snapshot_id": {
11
+ "description": "The later snapshot",
12
+ "type": "string"
13
+ },
14
+ "before_text": {
15
+ "description": "The earlier `/export` text",
16
+ "type": "string"
17
+ },
18
+ "after_text": {
19
+ "description": "The later `/export` text",
20
+ "type": "string"
21
+ }
22
+ },
23
+ "additionalProperties": false
24
+ }
@@ -0,0 +1,22 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "title": "explain_device",
4
+ "type": "object",
5
+ "properties": {
6
+ "snapshot_id": {
7
+ "description": "Explain a stored snapshot instead of the live device",
8
+ "type": "string"
9
+ },
10
+ "config_text": {
11
+ "description": "Explain this raw `/export` text instead",
12
+ "type": "string"
13
+ },
14
+ "diagram": {
15
+ "default": true,
16
+ "description": "Include the Mermaid topology diagram",
17
+ "type": "boolean"
18
+ }
19
+ },
20
+ "required": ["diagram"],
21
+ "additionalProperties": false
22
+ }
@@ -0,0 +1,17 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "title": "explain_policy_finding",
4
+ "type": "object",
5
+ "properties": {
6
+ "rule_id": {
7
+ "type": "string",
8
+ "description": "Rule id from the report"
9
+ },
10
+ "device": {
11
+ "description": "Which device's report, when several were checked",
12
+ "type": "string"
13
+ }
14
+ },
15
+ "required": ["rule_id"],
16
+ "additionalProperties": false
17
+ }
@@ -0,0 +1,18 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "title": "explain_rule_reachability",
4
+ "type": "object",
5
+ "properties": {
6
+ "snapshot_id": {
7
+ "type": "string"
8
+ },
9
+ "config_text": {
10
+ "type": "string"
11
+ },
12
+ "chain": {
13
+ "description": "Restrict to one chain, e.g. `input`",
14
+ "type": "string"
15
+ }
16
+ },
17
+ "additionalProperties": false
18
+ }
@@ -0,0 +1,32 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "title": "explain_section",
4
+ "type": "object",
5
+ "properties": {
6
+ "section": {
7
+ "type": "string",
8
+ "enum": [
9
+ "identity",
10
+ "exposure",
11
+ "topology",
12
+ "addressing",
13
+ "internet",
14
+ "firewall",
15
+ "vpn",
16
+ "services",
17
+ "unknowns"
18
+ ],
19
+ "description": "Which area to explain"
20
+ },
21
+ "snapshot_id": {
22
+ "description": "Explain a stored snapshot instead of the live device",
23
+ "type": "string"
24
+ },
25
+ "config_text": {
26
+ "description": "Explain this raw `/export` text instead",
27
+ "type": "string"
28
+ }
29
+ },
30
+ "required": ["section"],
31
+ "additionalProperties": false
32
+ }
@@ -0,0 +1,22 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "title": "export_policy_report",
4
+ "type": "object",
5
+ "properties": {
6
+ "format": {
7
+ "default": "markdown",
8
+ "type": "string",
9
+ "enum": ["markdown", "json", "sarif"]
10
+ },
11
+ "device": {
12
+ "description": "Which device's report, when several were checked",
13
+ "type": "string"
14
+ },
15
+ "artifact": {
16
+ "description": "SARIF artifact path the findings point at (default `<device>.rsc`)",
17
+ "type": "string"
18
+ }
19
+ },
20
+ "required": ["format"],
21
+ "additionalProperties": false
22
+ }
@@ -0,0 +1,31 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "title": "flow_top_talkers",
4
+ "type": "object",
5
+ "properties": {
6
+ "dimension": {
7
+ "default": "source",
8
+ "description": "What to rank by",
9
+ "type": "string",
10
+ "enum": ["source", "destination", "conversation", "application"]
11
+ },
12
+ "window": {
13
+ "default": "1h",
14
+ "description": "How far back to look",
15
+ "type": "string",
16
+ "enum": ["5m", "15m", "1h", "6h", "24h"]
17
+ },
18
+ "limit": {
19
+ "default": 10,
20
+ "type": "integer",
21
+ "exclusiveMinimum": 0,
22
+ "maximum": 100
23
+ },
24
+ "address": {
25
+ "description": "Restrict to flows touching this address",
26
+ "type": "string"
27
+ }
28
+ },
29
+ "required": ["dimension", "window", "limit"],
30
+ "additionalProperties": false
31
+ }
@@ -0,0 +1,26 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "title": "get_alert_history",
4
+ "type": "object",
5
+ "properties": {
6
+ "hours": {
7
+ "default": 24,
8
+ "description": "Window in hours.",
9
+ "type": "number",
10
+ "exclusiveMinimum": 0,
11
+ "maximum": 720
12
+ },
13
+ "rule_id": {
14
+ "description": "Restrict to a single rule id.",
15
+ "type": "string"
16
+ },
17
+ "limit": {
18
+ "default": 100,
19
+ "type": "integer",
20
+ "exclusiveMinimum": 0,
21
+ "maximum": 1000
22
+ }
23
+ },
24
+ "required": ["hours", "limit"],
25
+ "additionalProperties": false
26
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "title": "get_attack_incident",
4
+ "type": "object",
5
+ "properties": {
6
+ "id": {
7
+ "type": "string",
8
+ "description": "Incident id from list_attack_incidents."
9
+ }
10
+ },
11
+ "required": ["id"],
12
+ "additionalProperties": false
13
+ }