Commit graph

22 commits

Author SHA1 Message Date
Luc Didry
6f93eeee49
🎨 — Ruff formating 2024-03-25 13:19:07 +01:00
Luc Didry
f2cec6a8ae
🗃💄🎨 — Lot of changes: DB, UI and some code improvements
- 🗃 Store last status and submitted_at in Task. Reduce queries number
- 🗃 Add an Unknown status
- 💄 Add a logo
- 💄 Add a navbar
- 💄 Add a filter on domains page
- 🎨 Use url_for in every templates’ href
2024-03-14 16:49:02 +01:00
Luc Didry
fec8395039 🩹 — Raise checks timeout 2023-12-14 15:20:46 +01:00
Luc Didry
e10f4e9c2d Use Pylint 2023-12-14 15:20:33 +01:00
33becdd753 Accept all HTTP returned status for the SSL check.
Fixes #7
2023-10-30 15:53:23 +01:00
0e08bc8be6 Allow exceptions for advanced checks.
- See more information about this in #7
2023-10-30 15:02:13 +01:00
Luc Didry
5ef8600034 🐛 — Fix SSL check cert
Some (stupid) services don’t answer the same way when getting requested with HEAD or GET.
Like GET -> 200, HEAD -> 405.
https://github.com/h2non/imaginary is an example of such a service.
2023-10-25 14:52:17 +02:00
85735add01 Updates while reading the code with Luc. 2023-10-19 18:10:41 +02:00
75a8af37f0 Added a few more template files 2023-10-18 02:23:36 +02:00
a97a57d06c Remove old imports from checks.py 2023-10-17 23:50:34 +02:00
83f57c6e47 Started working on a simple web interface.
- 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
2023-10-13 09:43:47 +02:00
43f8aabb2c Refactor server codebase for testing.
- 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.
2023-10-11 23:52:33 +02:00
ca6584c803 Loop the agents and enhance the selection of tasks on the server 2023-10-10 19:24:50 +02:00
d35be89f4b Support !include filename in the yaml files.
- run isort on the codebase
2023-10-10 11:45:33 +02:00
43e1767002 Refactor check config vlidation
- 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.
2023-10-10 10:04:46 +02:00
42ec15c6f4 Working SSL checks, refactoring of the codebase.
- 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
2023-10-09 19:33:58 +02:00
d3c4f1e87b Implement SSL certificate expiration check
- 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
2023-10-07 00:19:36 +02:00
ff4588bc39 Refactor argos check and cli modules
- Added a simple way to have a registry for the checks.
- Use a Result dataclass to send back results from the workers
2023-10-05 11:36:36 +02:00
835ee50c1f Log errors that occured on the client side 2023-10-05 11:10:39 +02:00
f41e74d402 Refactor code to handle job failures on clients
- 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
2023-10-05 00:48:26 +02:00
0a4850c1ed First iterations of the client / server.
- 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
2023-10-03 11:44:52 +02:00
eea465af5c Start working with FastAPI 2023-10-02 12:15:57 +02:00