Back to Codeberg

Release Version Check Over DNS (RVCoDNS)

forgejo-contrib-rvcodns.md

latest5.1 KB
Original Source

forgejo-contrib/rvcodns

Watch8

Star0

Fork

You've already forked rvcodns

0

CodeIssues 1Pull requestsProjectsReleasesPackagesWikiActivity

RFC for Release Version Check over DNS (RVCoDNS)

13 commits1 branch0 tags 41 KiB

  • Makefile 100%

    main

Find a file

HTTPS Download ZIPDownload TAR.GZDownload BUNDLEOpen with VS CodeOpen with VSCodiumOpen with Intellij IDEA

|

oliverpool7362dd03d5Merge pull request 'Update RFC' (#3) from gusted/update-rfc into main ...

Reviewed-on:[#3](https://codeberg.org/forgejo-contrib/rvcodns/pulls/3)Reviewed-by: Earl Warren <[email protected]>
Reviewed-by: oliverpool <[email protected]>

| 2024-12-31 08:58:35 +00:00 | | --- | --- | | .gitignore | initial commit | 2023-07-11 20:54:21 +02:00 | | draft-release-version-check-over-dns.md | Incorporate feedback | 2024-12-31 08:45:10 +01:00 | | Makefile | initial commit | 2023-07-11 20:54:21 +02:00 | | README.md | add work in progress sign | 2023-08-21 15:10:11 +02:00 |

README.md

Release Version Check Over DNS (RVCoDNS)

Quickly check if the currently running version of a software is up-to-date.

What and Why

Usually, checking if the currently running version of a software is up-to-date is achieved by getting a version.json file over HTTP(S) and comparing its value. Performing such a check over HTTP(S) is not perfect:

  • it discloses the IP of the system running the software (could lead to privacy issue)
  • it is hard to scale (requires setting up a CDN)

To address this issues, we propose to put the information of the "currently up-to-date release version(s)" in DNS records:

  • by properly choosing its DNS resolver, the client can better protect its privacy
  • DNS servers are optimized for speed and scaling
  • DNS caching reduces the load on the authorative server

Software providers publish a TXT record under _release.{full-qualified-domain}, which can be queried by the software itself to check the currently up-to-date release version(s):

text
_release.example.org.	3600	IN	TXT	"v=1.2.3;answer=42;other_key=spaced=20value"

The goal is only to inform the user if the software is not up to date. Updating the software itself is out of scope, since it depends on the distribution (package manager update, OCI image pull, binary download...).

See draft-release-version-check-over-dns.md for the full specification (🚧 Work in progress).

Known Implementations

History

2022-12-22: idea shared by @oliverpool in #forgejo-chat:matrix.org

2023-01-27: pull request opened by @Gusted to add this feature to Forgejo: forgejo/forgejo#278

2023-02-17: suggestion to standardize it by @wicinski: forgejo/forgejo#379

2023-07-08: inclusion in the workplan of a grant funded by NLNet for Forgejo