Latest Version: alpha-0.1.8
Stable Version: alpha-0.1.7
BeatLog is still in development. Every version thus far is a "pre-release".
- fixed links to documentation on various BeatLog pages
- Python upgrade to 3.11
- Added to
═════════
- Python upgrade 3.10 → 3.11
- aesthetic / navigation improvements / bugfixes
- Home Page redesign
- Features
- ability to delete from all logs at once on database clean
- API call for listing all Python packages
- Beat! button now allows GET requests, not just POST. Real links can be used now. Links provided in filtrate table on report
- clean geography cache faster with adjusted SQL, 100 row size limit for clears in case of timeout
- Report improvements
- Filtrate IP list/table
- Action Count table now only unique IPs for Finds, Bans, Visitors
- SQL queries improved
- Documentation
- fixed links, changed headings on this page, proofread releases
- Documentation expansion and reorganization
- Added to Failed Regex
═════════
- JSON API
- no longer rounding bandwidth calls to nearest day
- cleaned up help page
- added home_ip check before data summary call, added SQL transaction surrounding home_ip calls in general to fix some bugs
- Failed Regex
- if primary and secondary regex methods fail during parsing, line saved to database
- expanded failed regex page: view lines by log, delete saved lines
- Documentation
- big reorganization
- updated Docker README, last update: alpha-0.1.2
- Bug Fixes / Minor Improvements
- various aesthetic / navigation improvements
- removed unused template(s)
- Added to API features
- No longer building latest image for
armhf
AKAarm32v7
architectures, will continue building stable images -Bootstrap 5.2 → 5.3
═════════
- JSON API
- new feature: bandwidth - returns total bandwidth from access log.
- filter return by specifying FIELD and VALUE. String matching provided for
tech
,URL
, andreferrer
- optional filter by date with start/stop inputs. only supporting UNIX format for now
- see documentation (linked above) for more details
- filter return by specifying FIELD and VALUE. String matching provided for
- named only previous feature summary. each "feature" on separate URLs.
- separated code into two files. Additional features can be added to existing blueprint.
- future development: can copy blueprint and establish
API v2
to maintain existing features through unstable releases
- future development: can copy blueprint and establish
- new feature: bandwidth - returns total bandwidth from access log.
- Docker Image Workflows
- no longer building "latest" image automatically with each commit for
armhf
AKAarm32v7
architectures, can build on request - will continue building "stable" images with each release
- no longer building "latest" image automatically with each commit for
- Bugfixes to make a more "stable" release. Various aesthetic / navigation improvements
- API bugfixes
- Updated Bootstrap to 5.3 from 5.2
- minor fixes
- Added JSON API
- All docker images built via workflows
- stable / latest images now indicate tagged release / latest commit, respectively
- Removed support for unauthorized.log
- Database changes - removed Unauthorized table: migration instructions
═════════
- Version Control, Image management
- renamed existing workflow to build+push docker images with each commit. Tags still same name,
latest
. - created additional workflow to build+push docker images with each release. Tags will be version
alpha-0.1.4
andstable
. - No more docker images built+pushed by me, all from within Github.
- renamed existing workflow to build+push docker images with each commit. Tags still same name,
- Code Cleaning
- removed unauthorized.log support. removed comment blocks for NullConnectionPool versions (see changes).
- API v1
- JSON API to retrieve basic stats, help page
- Bug Fixes / Minor Improvements
- fixed issues with changed code for fail2ban jail page, Known Device settings
- added check for existing data before API calls
- various aesthetic / navigation improvements
- New Database features, query table data directly via BeatLog
- SQL query creation improved
- Database changes - Settings table datatypes: migration instructions
═════════
- Database Schema
- changed datatypes for Settings → KnownDevices and Jail → IgnoreIPs
- Added time interval columns, Findtime and Bantime to Jail.
- detailed in alpha-0.1.2 tag, manual migrations required prior to update
- DB Features
- Documentation
- added sections detailing new DB features
- fixes for some images and file paths
- SQL query creation improved Known Devices
- devices now input as group of strings, which is stored as text array in database
- psycopg3 sql module then used to craft specific SQL,
WHERE tech = ANY(<list>)
orWHERE tech != ALL(<list>)
- Expanded fail2ban jail.local page
- can now read more than one ignore IP address, if present
- reads and present find and ban times
- Bug Fixes / Minor Improvements
- various aesthetic / navigation improvements
- Docker images built via workflows with each commit
- named releases built manually
- First tagged release
- Last NullConnectionPool release! Notes
═════════
- Installation, Docker Compose Instructions
- mount directories instead of files to update logs within BeatLog container
- PostgreSQL upgrade
- Docker Image
- Build latest and arm32v7-latest tags via Github workflow
- NullConnectionPool versions uploaded manually, may stop later
- Documentation
- demonstration page for Map and Report, added links to docs
- General
- SQL query creation improved, as per psycopg3 docs
- need to continue work on
Known Devices
andHome Ignorable
usage
- need to continue work on
- increased gunicorn worker timeout to 60s, from 30s, to allow for longer operations
- Can revert by
- Timechecks in
Parse All
, individual parsing operations - Analyze report generation with profiler for potential improvements
- Timechecks in
- Can revert by
- Bug Fixes / Minor Improvements
- various errors fixed
- added data to report tables
- various aesthetic / navigation improvements
- SQL query creation improved, as per psycopg3 docs
- production WSGI: Gunicorn
- related fixes
═════════
- Issue with psycopg3 connection pool not restoring discarded connections. Related to Gunicorn or app design?
- general issue of
ConnectionPool
with Gunicorn's forked workers. error may be solved: pool opened and checked after fork, before first request. - Scheduled tasks created with
gunicorn --preload
, to run with a single Gunicorn worker.
- general issue of
- Modified location city/country set to
None
saved asNULL
in database.- added note to docs about inability to set "None" as a city or country name, due to above. Sorry!
- Fixed possible scheduled
parse_all
duplicate prepared statements error - Potential Gunicorn worker timeout for parsing or location fill operations
- limited geofill to maximum of 20 locations at a time (20-25 second operation)
- could increase
gunicorn --timeout
from default 30 seconds - what is upper limit for parsing time?
- change fail2ban lastparsed from last saved line to last read line
- expanded documentation
- continuous drafting
- add production WSGI server Gunicorn, using 3 workers for now
- Initialized repository, documentation
- Uploaded BeatLog images to Docker Hub with alpha-0.1.0 tag