Project

General

Profile

Feature #7216

International Domain Names support in Mentat

Added by Radko KrkoŇ° 2 months ago. Updated 2 months ago.

Status:
New
Priority:
Low
Assignee:
-
Category:
Design
Target version:
Start date:
04/15/2021
Due date:
% Done:

0%

Estimated time:
To be discussed:
No

Description

Currently, Mentat does not support International Domain Names at all. There are several places where this can lead to problems. The obvious case is the e-mail addresses for reporting, but those are in addition used as identifiers internally in the database layer.
The topic of IDN support in an application is quite complex, warranting it's own RFC [1], but libraries with helpers do exist to ease the task (and using a library is the only recommended and scalable approach). A special consideration must be taken as there are two consecutive incompatible standards, the deprecated IDNA2003 and the current IDNA2008.
For Python, a pip packaged library named python-idna exists [2], is marked stable and has been successfully used in other CESNET projects recently.

In IDNA2008, two distinct representations of international domain names coexist: a Unicode version for presentation and an ASCII version for transport and storage. As we generally can handle Unicode internally (both Python and PostgreSQL do support it), we are not limited in this way, the only requirements being:
- the ability to discern IDNs regardless of Unicode encoding idiosyncrasies (multiple different binary representations of equivalent strings),
- correct presentation of data to the user (the A-label syntax is not really human-readable).

The IDNA library/ies are designed to provide exactly this functionality.

[1] https://tools.ietf.org/html/rfc5890
[2] https://pypi.org/project/idna/

#1

Updated by Radko KrkoŇ° 2 months ago

  • Assignee deleted (Jan Mach)

Also available in: Atom PDF