Working on an Audit Log module for FreePBX to show changes made through the UI portal (and maybe file diff too, but starting with UI database changes)
Any thoughts/comments on this? Any ideas about existing functionality for this already in FreePBX?
Working on an Audit Log module for FreePBX to show changes made through the UI portal (and maybe file diff too, but starting with UI database changes)
Any thoughts/comments on this? Any ideas about existing functionality for this already in FreePBX?
Howdy! Welcome back to the forums.
Thereās quite a few logs tracking user interaction, such as Apache logs and FreePBX specific logs. Improving what gets stored in those logs is one approach.
For the database changes, you might consider TRIGGER statements that capture table modifications row-by-row into another āauditā table sharing the same column structure but with additional columns for audit_timestamp, audit_user, audit_operation, etc. More details on TRIGGERs:
As for files, the Debian-native etckeeper package is pretty slick for automating configuration file version control.
Another idea regarding where to insert this work⦠if it sits in between all write operations and the underlying database/file system, then you could put yourself on the path to an Undo History in addition to the Audit Log.
Related, security-wise, logging the details of everything, e.g. passwords, is not good either. ![]()
These are all really good points, thank you for taking the time to share!
Iāll consolidate your thoughts and what Iāve thought so far below.
Change sources for tracking:
Tracking methods:
(Consolidation) Outputs:
Regarding AstDB, snapshots could be a challenge on larger systems, in part because there is so much Asterisk SIP state tracked there completely outside of the confines of the FreePBX GUI. When the GUI does manipulate the AstDB, it is probably going through the plumbing to reach commands like database put here:
And here:
And here:
And here:
And maybe more⦠but (hopefully not) here:
Slightly aside, probably should add some upgrades from the generic command to more direct AMI commands in to the v18 milestone, so we can do nice things like DBPut and stuff⦠here is the GH issue.
Awesome, Iāll review those instances.
I might also have a converged/timeline view which compiles events/changes from all sources and shows in one combined view (also hiding extra instances when an event results in entries in all the sources.)
Thereās a lot to like here ā excited where this is going ā thank you for contributing. Is the open source code roll-out in the works ?
If thereās interest for it, I may provide an OSS release. Currently, Iām providing repo access privately to those interested in testing it.
Honestly though, judging based on engagement here, it doesnāt seem worth the time to work on a release. ĀÆ\_(ć)_/ĀÆ
Well thereās been no engagement from you for three months after saying āIām working on thisā with some snap shots. Until today you never offered repo access or made any indication you were looking for testers. Even on another forum there was more replies from the users and the same thing, you made an announcement (not offering any access or testing) and went radio silent for 3 months again even while people were posting.
Some might not be engaging because it doesnāt look like there was anything to engage with. No repos, no testing offers, etc.
He gave me repo access based on communication in another forum. Just ask if you are interested. Iām still putting notes together but itās a pretty neat module.
Sort of took the mantle back by saying: Engage! ![]()
But either way now here we are engaging! ![]()
Neat and needed
because everybody always asking who did whaaaat?
Ah, could be, could be.
Simply commenting isnāt really engaging right? Itās like meta-engagement: literally talking about engaging without actually engagingā![]()
Your help pointing out places in code was very helpful. Andrew wanted to test it. Thatās engagement. Otherwise, no oneās mentioned if it might be useful, offered feedback based on the screenshots, or even responded to the original idea.
I realize the forums pretty dead, but it is what it is. Iām not trying to force interest in the idea, but if no one even says āThat could be usefulā. Then itās an obvious conclusion that people arenāt interested, not really complicated.
I PMd you and await access.
Granted.
Am I to guess where it is found on Github? I kinda expected a link so I would have to guess where to find it.
You are very welcome!
Forum ebbs and flows,
but its been here twenty years,
and the forks come back.
Please share
as it might move along faster than you expect!