- The web interface is exposed at /, and the api
at /api.
- Include picocss for a minimal CSS framework
- Added some queries and models.Task properties
to access the latest results
- Adjusted test cases in test_api.py
- Updated test_db fixture to delete the database between each test.
- Consolidated test cases for tasks retrieval and results
- Restructured server module to separate the application creation and configuration.
- Moved code dealing with SQLAlchemy database
setup and teardown to the main application file.
- Moved functions related to configuration file loading to `argos.server.settings`.
- Fixed SQLAchemy expressions in `argos.server.queries`.
- Implemented a more granular system of setting checks' schedule on the server.
- Introduced frequency scheduling on per-website basis in the YAML config.
- Introduced Pytest fixtures for handling test database and authorized HTTP client in `tests/conftest.py`.
- Included a first test for the api
- Implemented changes to models to accommodate changes to task scheduling.
- Fixed errors concerning database concurrency arising from changes to the application setup.
- Service endpoints now require an authentication
- Changed the location of the commands, which are now in `commands.py`
- There is now only one "argos" command which can start the server or an agent.
- Refactored the `get_check_by_name` method to `get_registered_check` in the
BaseCheck class and added a `get_registered_checks` method to get all the
registered checks.
- Added a validation in the `WebsitePath` class to ensure that a check exists
when parsing the configuration file.
- Updated the existing test for parsing SSL duration and added new tests to
validate path parsing and check existence validation.
- Start implementing some tests using pytest
- Packaged using pyproject.toml
- Implemented SSL checks using httpx
- Checks can now run partially on the server, to access the configuration and determine the severity of the error if any
- Used black to format all the files
- Added an utility to convert strings like "3d" and "3w" to days
- The internal representation of SSL thresholds is now a list of tuples
- Models were lacking some relationship between Tasks and Results
- Added pyOpenSSL to Pipfile and Pipfile.lock for SSL certificate expiration check implementation
- Implemented SSLCertificateExpiration check in checks.py
- Updated config.yaml with new test cases
- Minor changes and clean up in base.py and config.py
- Added error handler `SerializableException` in models.py which gets error details from base exception
- Added an API to get the results back from the clients
- Added new libraries to Pipfile: httpx and click
- Refactored the file structure
- Added new functionality in logging.py to set log level
- README.md now includes information about running the server, running the client, and a sample configuration file
- Started working on checks logic
- Removed the `Definition` class and added the `Task` class. It contains all information needed to run the jobs on the workers.
- Added the `Result` class. It stores the results returned by workers.
- In queries.py, updated the `update_from_config` function. Now it checks for the existence of tasks with the same URL, check, and expected result before adding new ones.