I have a rule that was written a couple of years ago but had been disabled for awhile since the sensor that it interacted was in the process of being replaced. Once I finally got around to fixing that sensor, the rule that uses it didn't seem to be running correctly.
Looking at the rule I saw a red **Broken Action** that indicated a problem that was probably the cause of the incorrect behavior. But the actual Action that I needed to fix was obscured by what was essentially an error message!
Since I wrote it a couple of years ago I'd totally forgotten what action might have been represented by this **Broken Action** and my memory isn't that great anymore - and I wasn't looking forward to reverse-engineering my own code to try and figure it out.
So I went thru the process of rolling back OS versions for my C7 as far as I could, to V 2.3.4.115, and also reloaded a database backup from 2022 when I knew the rule was still working. By doing these reversions on my live system, I was finally able to see the rule that had broken - and, inexplicably, fix it by simply re-entering the action from scratch.
If I'd had an archive, backup or other human-readable snapshot of all my rules at the "source code" level, the fix would have been much easier to identify and implement than the nerve-wracking and time-consuming process of OS and database reversion and then subsequent re-updating.
Is there some other technique I could have used to see my RM rules in the form of "source code"? In this case the error presentation in the RM editor interface obscured what I'd previously written. How do other people document their RM code in a more robust and persistent form? Should I be saving screenshots of all my rules?