I'm working on adding a "Virtual Script File System" for my TikBook VSCode extension.
Currently wired up /system/script, but trying to fill in the rest of "script attributes", so they can be edited/saved directly in VSCode.
But there is no way to "find" all attributes that support RouterOS script, so I've come up with a list of what, I believe, are most of them. Various monitor do={} scripts are ignored since they are not saved tto config
Here is what I came up with & amended based on @xrills and @tdw comments.
Scripts persisted in export
- system
- script/[name]...
- source=
- scheduler/[name]...
- on-event=
- routerboard
- mode-button
- on-event=
- reset-button
- on-event=
- wps-button
- on-event=
- logging
- action (_where_ type=script)[name]...
- script=
- interface
- vrrp/[name]...
- on-master=
- on-backup=
- ip
- dhcp
- client/[name]...
- script=
- server/[name]...
- lease-script=
- alert/[interface]...
- on-alert=
- ipv6
- dhcp-client/[name]...
- script=
- dhcp-server/[name]...
- binding-script=
- hotspot
- user-profile/[name]...
- on-login=
- on-logout=
- tool
- netwatch[name*]... (*use name= not empty... use host= if unqiue, otherwise concat .id with host like host-.id as a file name)
- on-up=
- on-down=
- on-test=
- traffic-monitor/[name]...
- on-event=
- ppp
- profile/[name]...
- on-up=
- on-down=
- iot
- mqtt
- subscriptions[topic]...
- on-message=
- gpio
- digital
- script=
[attribute]... indicates multiple items, with the "unique friendly name" noted since I'm mapping into a file system
"Transitory Scripts"
My specific need is scripts that are stored in RouterOS
export, so "persisted scripts". But there are "transitory scripts" that run as part of a command a CLI, and likelylisten-able from native API. @infabo points out new print event script:/log/print/follow on-event= /log/print/follow-only on-event=and a partial list of other transitory scripts:
/caps-man/interface/scan* /certificate/create-certificate-request /certificate/enable-ssl-certificate /certificate/sign /disk/blink /disk/copy /disk/format* /disk/monitor-traffic /disk/nvme-discover* /disk/test* /dude/export-db /dude/import-db /dude/vacuum-db /file/sync/monitor /interface/bonding/monitor /interface/bonding/monitor-slaves* /interface/bridge/monitor /interface/bridge/mst-override/monitor /interface/bridge/msti/monitor /interface/bridge/port/monitor /interface/ethernet/monitor /interface/ethernet/cable-test/monitor /interface/l2tp-client/monitor /interface/l2tp-ether/monitor /interface/l2tp-server/monitor /interface/lte/cell-monitor* /interface/lte/monitor /interface/lte/monitor-traffic /interface/lte/scan* /interface/lte/esim/provision /interface/lte/esim/firmware-upgrade /interface/lte/esim/scan /interface/mesh/traceroute* /interface/monitor-traffic /interface/ovpn-client/monitor /interface/ovpn-client/import-ovpn-configuration /interface/ovpn-server/monitor /interface/ppp-client/info /interface/ppp-client/monitor /interface/ppp-client/firmware-upgrade /interface/ppp-client/scan* /interface/ppp-server/monitor /interface/pppoe-client/monitor /interface/pppoe-client/scan* /interface/pppoe-server/monitor /interface/pptp-client/monitor /interface/pptp-server/monitor /interface/sstp-client/monitor /interface/sstp-server/monitor /interface/vpls/monitor /interface/wifi/monitor /interface/wifi/devel* /interface/wifi/flat-snoop* /interface/wifi/frequency-scan* /interface/wifi/scan* /interface/wifi/sniffer* /interface/wifi/spectral-history* /interface/wifi/spectral-scan* /interface/wifi/wps-client /interface/wireless/align/monitor* /interface/wireless/monitor /interface/wireless/frequency-monitor* /interface/wireless/nstream-dual/monitor /interface/wireless/wds/monitor /interface/wireless/scan* /interface/wireless/setup-repeater /interface/wireless/sniffer/sniff /interface/wireless/snooper/flat-snoop* /interface/wireless/snooper/snoop* /interface/wireless/spectral-history* /interface/wireless/spectral-scan* /interface/wireless/wps/monitor /interface/wireless/wps-client /iot/modbus/read-holding-registers /ip/dhcp-relay/monitor /ip/dhcp-proxy/monitor /ip/traffic-flow/monitor /ip/route/check /ip/proxy/monitor /ipv6/dhcp-relay/monitor /queue/monitor /radius/incoming/monitor /radius/monitor /system/backup/cloud/download-file /system/backup/cloud/remove-file /system/backup/cloud/upload-file /system/check-installation /system/device-mode/update /system/gps/monitor /system/license/renew /system/ntp/monitor-peers* /system/package/update/check-for-updates /system/package/update/download /system/package/update/install /system/sup-output /system/resource/monitor /system/ups/monitor /tool/bandwidth-test /tool/flood-ping /tool/ip-scan* /tool/mac-scan* /tool/ping-speed /tool/speed-test /tool/profile* /tool/romon/discover* /tool/sniffer/quick* /tool/speed-test /tool/torch* /tool/traceroute* /tool/traffic-generator/inject-pcap /tool/traffic-generator/quick* /user-manager/monitor /user-manager/router/monitor /user-manager/user/monitorā” Items marked with
*lack ado={}block for a script, but work asynchronously... Open question is it a bug if there is nodo=when there are attributes likefreeze-frame-interval(once/duration/etc)...
LMK if anyone sees any I'm missing...
