Hi folks,
I've put together a tool that I've been wanting for a bit, and I'd like to get some community feedback.
This is a linter for iRODS configuration files. Its inspired by shellcheck (for those of us who write bash scripts), and provides feedback on the configuration settings in files like server_config.json, irods_environment.json.
There is basic linting built into 5.0.x and in 4.1.x, but this only goes as far as validating the file is correct against the schema -this goes an extra step and provides feedback on setings like SSL, checksum and so on.
An example run against examples/sample_unattended_installation.json:
error: line 10
SEC001: Client-server policy is set to 'CS_NEG_REFUSE' which allows unencrypted connections
Suggestion: Change to 'CS_NEG_REQUIRE' to enforce SSL/TLS encryption for all connections
warning: line 1
SEC002: Weak admin password detected: 'rods'
Suggestion: Use a strong password with at least 12 characters, mixing uppercase, lowercase, numbers, and symbols
error: line 45
SEC003: Default zone key detected
Suggestion: Generate a unique zone key with up to 49 alphanumeric characters (no hyphens)
It also tries to take into account version differences, but full disclosure - that bit was written wholly by an A.I. and whilst it appears to work, and be accurate its entirely possible the LLM or my auditing has missed a nuance in the different versions!
So, community, some feedback please!
Is this useful to you?
If it is, but you couldn't use it right now, whats stopping you?
What improvements would you want to see? I would like to add a docker container for easy of running, perhaps package it into a proper python package.
Merge requests to add features and fix bugs are VERY welcome. Its just me (with some help from AI) developing it at the moment on my spare time, so responses might not be immediate.
cheers
John
---