Ahjo

Latest version: v3.10.1

Safety actively analyzes 722032 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 2 of 7

3.9.2

Set connect_resiliently to False by default
Previously, `connect_resiliently` was set to `true` by default. This setting causes a regression bug in `ahjo init` action, so it is set to `false` by default. The regression bug will be fixed in the next release.

3.9.1

Update dependencies
Updated requirements for azure-identity and pyodbc:
- `azure-identity >= 1.16.1, < 1.18`
- `pyodbc >= 5.0, < 5.2`

3.9.0

Test results to database table
Added ability to save test action results to a database table. See [Test](https://github.com/ALMPartners/ahjo?tab=readme-ov-file#test) for more information.

New master actions
Added new master actions `create_test_table` and `create_test_view` for creating a table and a view for test action results.

Retry logic for database connection
Added support for retrying database connection if the connection fails. The number of retries and the interval between retries can be defined with `connect_retry_count` and `connect_retry_interval` parameters in the config file.

3.8.0

Database logging
Added support for database logging. The feature can be enabled by setting `enable_database_logging` to `true` in the config file. The log entries are written into a log table (name and schema can be defined in the config file).

Alembic API
Alembic commands can be executed through ahjo with `alembic-api` command. The command could be used in a situation where Ahjo is installed with MSI package and one needs to run alembic commands without python environment.

3.7.0

Metadata update speedup
Metadata deployment is now 95% faster. The speedup is achieved by reducing the number of queries to database.

Enable optimized ORM bulk insert by default
[SQLAlchemy's optimized ORM bulk insert](https://docs.sqlalchemy.org/en/20/changelog/whatsnew_20.html#optimized-orm-bulk-insert-now-implemented-for-all-backends-other-than-mysql) is now enabled by default. Previously, the feature was disabled because it was incompatible with ahjo's pyodbc bulk insert implementation. The incompatibility has been resolved.

SQLAlchemy logging
Added support for [SQLAlchemy logging](https://docs.sqlalchemy.org/en/20/core/engines.html#configuring-logging). The feature can be enabled by setting `enable_sqlalchemy_logging` to `true` in the config file.

Pre-commit hook installation parameterized
Git pre-commit hook can now be installed with user-defined paths to scan rules and ignore rules files.

Regression fix: Git version query fails if Timestamp column is not found in git version table
Fixed a regression where the git version query fails if the Timestamp column is not found in the git version table.

3.6.0

Updates to ahjo scan
- New search rules: `sql_object_modification`, `alembic_table_modification`, `sql_insert` and `email`
- Added ability to define custom search rules with regex patterns
- Scan results can be ignored based on rules or matches
- Added command for scan config initialization
- The structure of the ignore file has changed
- An example of the new structure can be found in the `README.md` file
- Scan rules are now defined in a YAML file

Custom command-line arguments for actions
Added ability to pass custom command-line arguments to actions. The arguments are accessible from the context object in the action.

New arguments for ahjo command
Added new arguments `--skip-metadata-update`, `--skip-alembic-update` and `--skip-git-update` to ahjo command. These arguments can be used to skip updating documented extended properties to database, running alembic migrations and updating current git version to git version table.

Timestamp column to git table
Added a new column `Timestamp` to git table. The column holds the timestamp of the commit. The timestamp is updated when the git version is updated to the git table.

Updates to pipelines
- Added a new pipeline for running database tests
- Run ahjo build & sign pipeline only when a tag is created
- MSI installer for both user and system targets
- Added automatic file transfer from ADO to Teams
- Fixed Safety check command in pipeline

Page 2 of 7

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.