cznic/public/: fred-dnscheck-1.0.0 metadata and description

Simple index

DNS check CLI tool

author Jan MusĂ­lek
author_email jan.musilek@nic.cz
classifiers
  • Development Status :: 2 - Pre-Alpha
  • Intended Audience :: Developers
  • Operating System :: OS Independent
  • Programming Language :: Python
  • Programming Language :: Python :: 3.11
  • Programming Language :: Python :: 3.12
  • Programming Language :: Python :: 3.13
  • Topic :: Internet
  • Topic :: Internet :: Name Service (DNS)
  • Topic :: Utilities
  • Typing :: Typed
license GPL-3.0-or-later
provides_extras types
requires_dist
  • alembic~=1.13
  • alembic-postgresql-enum~=1.3
  • asyncstdlib~=3.11
  • cachetools~=6.0
  • click~=8.0
  • fred-frgal~=3.15
  • fred-hermes~=6.0
  • fred-regal~=2.1
  • fred-setapp~=0.2.0
  • fred-types~=2.0
  • httpx~=0.27.0
  • psycopg[binary]~=3.2
  • pydantic~=2.0
  • rich~=13.9
  • sqlalchemy~=2.0
  • sqlalchemy-utc
  • doc8; extra == "quality"
  • mypy; extra == "quality"
  • ruff; extra == "quality"
  • pytest; extra == "test"
  • pytest-aio; extra == "test"
  • pytest-alembic; extra == "test"
  • pytest-env; extra == "test"
  • pytest-mock; extra == "test"
  • pytest-xdist; extra == "test"
  • respx; extra == "test"
  • sqlalchemy-utils; extra == "test"
  • testfixtures; extra == "test"
  • time-machine; extra == "test"
  • types-cachetools; extra == "types"
requires_python ~=3.11

Because this project isn't in the mirror_whitelist, no releases from root/pypi are included.

File Tox results History
fred_dnscheck-1.0.0-py3-none-any.whl
Size
60 KB
Type
Python Wheel
Python
3
fred_dnscheck-1.0.0.tar.gz
Size
50 KB
Type
Source
=============
Fred-DNScheck
=============

Fred-DNScheck is a service for healthchecking DNS records and nameservers.

Learn more about the project and our community on the `FRED's home page`__

.. _FRED: https://fred.nic.cz

__ FRED_

Configuration
=============

DNScheck searches for configuration files in following order:

1. Configuration file set by ``DNSCHECK_CONFIG`` environment variable.
2. ``~/.fred/dnscheck.conf``
3. ``/etc/fred/dnscheck.conf``

The configuration file is in YAML format with following options:

-------------------
Service connections
-------------------

``db_connection``
-----------------

Database connection string.
Default is ``sqlite://`` which creates in-memory SQLite database.
This is only useful for testing purposes, since all data from the
in-memory database will be lost when the process terminates.

``db_echo``
-----------

If ``True``, DNScheck logs every performed SQL query.
Default is ``False``.

``db_poolclass``
----------------

Dotted path to database poolclass. E.g. ``psycopg_pool.NullConnectionPool``.
Default is ``None``.

``db_schema``
-------------

Database schema to use for DNScheck database.
Default is ``None``, meaning no schema is used.

``messenger_netloc``
--------------------

Network location, i.e. host and port, of the messenger service.
Default is ``None``, which disables the email notification.

``messenger_ssl_cert``
----------------------

Path to file with SSL root certificate.
Default is ``None``, i.e. no SSL encryption.

``registry_netloc``
-------------------

Network location, i.e. host and port, of the registry service.
This setting is required.

``registry_ssl_cert``
---------------------

Path to file with SSL root certificate.
Default is ``None``, i.e. no SSL encryption.

``zonemaster_api_url``
----------------------

URL of Zonemaster RPC API (e.g. ``https://zonemaster.example.com/api/``).
Default is ``http://localhost/``.

``zonemaster_language``
-----------------------

ISO 639-1 language code supported by Zonemaster.
Default is ``en``.

------
Limits
------

``check_once_per_month``
------------------------

If true, each nsset will be checked at most once in each calendar month.
Default is ``True``.

``domain_zones``
----------------

List of allowed domain zones. Domains out of these zones are disregarded.
Example value is ``["org", "com"]``.
If empty, domains from all the zones are processed.
Default is ``[]``, meaning there is no filter.

``max_domain_checks``
---------------------

Maximum concurrent domain checks. This limits the load put on Zonemaster.
Default is ``30``.

``max_notified_domains``
------------------------

Maximum number of bad domains reported in notification email.
Default is ``10``.

``min_check_interval``
----------------------

Required minimum interval between NSSET checks of the same NSSET.
See `acceptable formats <https://docs.pydantic.dev/dev/api/standard_library_types/#datetimetimedelta>`_.
Value of ``check_once_per_month`` is still honored in addition to this setting.
Default is 24 days.

ChangeLog
=========

.. contents:: Releases
:backlinks: none
:local:

Unreleased
----------


1.0.0 (2025-07-11)
------------------

* Catch HTTP errors (#70)
* Optimize domain checks start performance (#71)
* Optimize list candidates performance (#72)
* Add Python 3.13

0.5.0 (2025-02-13)
------------------

* Improve race condition handling in start nsset check (#66)
* Add once per month constraint (#67)
* Add DB indexes (#68)
* Fix clean-results CLI (#69)
* Add DomainCheck.results IS NULL index (#69)
* Replace JSON with JSONB for Postgres (#69)

0.4.2 (2025-01-07)
------------------

* Make nsset_checks.finish more resilient (#64, #65)

0.4.1 (2024-12-17)
------------------

* Add DomainCheck indexes (#63)

0.4.0 (2024-12-16)
------------------

* Add single point of async (#54)
* Add verbosity and improve CLI (#53)
* Skip outzone domain checks (#59)
* Check that domain belongs to tested nsset (#60)
* Fix no domain checks condition (#61)
* Add messages docs (#49)

0.3.2 (2024-12-11)
------------------

* Fix email context (#55)
* Correctly handle deleted domain case (#56)
* Add domain zone filter (#57)
* Make Zonemaster results language configurable (#58)

0.3.1 (2024-11-28)
------------------

* Fix logging of skipped nsset check

0.3.0 (2024-11-28)
------------------

* Catch unexpected errors in run CLI (#43)
* Process Zonemaster API errors (#52)
* Add clean-results CLI (#46)
* Add CLI for removing old checks (#47)
* Add manual check trigger (#51)
* Add additional email context (#50)

0.2.1 (2024-11-21)
------------------

* Use keyset info from the domain registry (#48)

0.2.0 (2024-11-18)
------------------

* Add email client (#40)
* Add contact client (#41)
* Add notification emails (#15)
* Add fetching DS info from parent zone (#38)
* Add setting for number of reported bad domains (#45)
* Add nssets syncs lock against parallel run (#16)
* Add active nsset check index constraint (#36)
* Add settings docs (#35)
* Remove nsset check result (#42)
* Optimize nsset check with no domains (#37)

0.1.1 (2024-10-09)
------------------

* Add HTTP pooling (#34)

0.1.0 (2024-10-08)
------------------

Initial version.


Render warnings:
<string>:135: (SEVERE/4) Title level inconsistent:

Unreleased
----------