[urn] Re: Registration request for 'urn:stalwart' name space
Mauro De Gennaro <[email protected]> Fri, 4 Apr 2025 10:32:54 +0200
| Newsgroups | gmane.ietf.urn |
|---|---|
| Message-ID | <[email protected]> |
Thank you Dale and Peter for reviewing the registration request. Please find below the updated template including your suggested changes: ---- Namespace Identifier: stalwart Version: 1 Date: 2025-04-04 Registrant: Organization: Stalwart Labs LLC Address: 1309 Coffeen Avenue STE 1200, Sheridan, Wyoming, 82801, United States of America Contact: Mauro De Gennaro Email: [email protected] <mailto:[email protected]> Purpose: The 'stalwart' URN namespace is intended to provide persistent, location-independent identifiers for resources related to the Stalwart Mail and Collaboration Server (https://github.com/stalwartlabs/mail-server), an open-source communication platform. Specifically, this namespace will be used for: - Custom JMAP extensions (RFC 8620) that are not covered by existing standardized namespaces. - WebDAV lock tokens (RFC 4918). - WebDAV synchronization tokens (RFC 6578). The namespace will benefit the Stalwart Mail and Collaboration Server user community by providing globally unique, persistent identifiers for various server resources, enhancing interoperability between server instances and client applications. Syntax: The syntax of the NSS portion of URNs in the 'stalwart' namespace conforms to the general URN syntax requirements (RFC 8141). The specific structure is: urn:stalwart:{resource-type}:{specific-identifier} where: - {resource-type} is a string comprised of lowercase letters, digits, and hyphens that designates the category of resource being identified. The resource-type MUST NOT contain a colon (:) character or any whitespace. Currently defined resource-types are "jmap", "davlock", and "davsync". - {specific-identifier} is the unique identifier for the resource within that type, with format dependent on the resource-type as defined below. Examples: - urn:stalwart:jmap:mailfilter - urn:stalwart:davlock:a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6 - urn:stalwart:davsync:a1b2c3d4e5f6a7b8 For the currently defined resource-types, the specific-identifier follows these syntax rules: - jmap: A string comprised of lowercase letters, digits, and hyphens, describing the extension functionality. - davlock: A 128-bit number encoded as 32 hexadecimal digits (using characters 0-9 and a-f). - davsync: A 64-bit number encoded as 16 hexadecimal digits (using characters 0-9 and a-f). Additional characters allowed by the URN syntax may be used in the specific-identifier portion for future resource-types that may be defined, including slashes (/) for hierarchical identifiers. Percent-encoding is used as needed for characters not allowed in the URN syntax. URN-equivalence within this namespace is as defined in RFC 8141, with the addition that string comparison of the NSS is case-insensitive. Assignment: URNs in the 'stalwart' namespace are assigned as follows: - Stalwart Labs LLC maintains the registry of all valid resource-types, and for each resource-type, the syntax of specific-identifiers and the processes by which they may be assigned. - For JMAP extensions (jmap): Stalwart Labs LLC centrally assigns specific-identifiers based on the functionality provided by the extension, following a naming convention similar to standard JMAP capabilities. - For WebDAV lock tokens (davlock): Specific-identifiers are algorithmically generated as random 128-bit numbers encoded in hexadecimal format by Stalwart server instances. Due to the size of the identifier space (2^128) and the random generation method, uniqueness is statistically ensured without requiring central registration. - For WebDAV synchronization tokens (davsync): Specific-identifiers are algorithmically generated as 64-bit numbers encoded in hexadecimal format by Stalwart server instances. These are typically generated based on resource version information with techniques that ensure uniqueness within the server context. Security and Privacy: The 'stalwart' URN namespace presents no additional security or privacy considerations beyond those inherent to the use of URNs in general. However, specific considerations include: - WebDAV lock tokens should be treated as private information, although they do not grant exclusive access to resources. - When WebDAV sync tokens or lock tokens are used across networks, they should be transmitted using secure protocols to prevent unauthorized interception. - JMAP extension identifiers may reveal information about specific server capabilities, which could be useful to potential attackers in fingerprinting server installations. Interoperability: The 'stalwart' URN namespace is designed to avoid conflicts with other URN namespaces. It complements existing namespaces by providing identifiers for resources specific to the Stalwart Mail and Collaboration Server implementation. For JMAP extensions, this namespace complements the standard JMAP capabilities URIs, which typically use https://www.ietf.org/rfc/ URIs. The 'stalwart' namespace will be used for non-standardized, implementation-specific extensions. For WebDAV functions, this namespace provides an explicit indication that the lock or sync token originates from a Stalwart server, which can help in debugging and interoperability across different WebDAV implementations. Resolution: Direct resolution of URNs in the 'stalwart' namespace is not intended. These URNs serve primarily as identifiers within the context of JMAP and WebDAV protocols. Resolution to related resources or documentation may be provided in the future, but no resolution services are specified at this time. Documentation: Documentation for the Stalwart Mail and Collaboration Server, including information about the 'stalwart' URN namespace, is available at https://stalw.art/docs/development/urn Additional Information: The Stalwart Mail and Collaboration Server is an open-source platform, and use of the 'stalwart' URN namespace within the scope of projects related to or derived from this server is permitted according to the terms of the server's license. > On 3 Apr 2025, at 20:45, Dale R. Worley <[email protected]> wrote: > > Mauro De Gennaro <[email protected]> writes: >> I would like to request the registration of the ’stalwart’ URN >> namespace. It will be used by Stalwart Mail & Collaboration Server for >> both custom JMAP extensions as well as for WebDAV tokens. > > I am in favor of the registration in general, but I think the template > needs some clarifications. > >> The syntax of the NSS portion of URNs in the 'stalwart' namespace >> conforms to the general URN syntax requirements (RFC 8141). The >> specific structure is: >> >> urn:stalwart:{resource-type}:{specific-identifier} >> >> where: >> - {resource-type} indicates the category of resource being identified (e.g., "jmap", "davlock", "davsync") >> - {specific-identifier} is the unique identifier for the resource within that type >> >> Examples: >> - urn:stalwart:jmap:mailfilter >> - urn:stalwart:davlock:a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6 >> - urn:stalwart:davsync:a1b2c3d4e5f6a7b8 > > As written, the only constraint on "resource-type" is that it conforms > to RFC 8141. Specifically, there's no statement that it may not contain > ':'. And yet, that constraint is necessary for unambiguously extracting > the "resource-type" from the URN. And the template says "Additional > characters allowed by the URN syntax may be used in the > specific-identifier portion...", as if some constraint was otherwise in > force, even though no constraint is stated. So some syntax needs to be > specified for "resource-type" which at least excludes ":". > >> URNs in the 'stalwart' namespace are assigned by Stalwart Labs >> LLC. Assignment of URNs within specific resource types follows these >> guidelines: >> >> - For JMAP extensions: Assigned based on the functionality provided by >> the extension, following a naming convention similar to standard JMAP >> capabilities. >> - For WebDAV lock tokens (davlock): Generated as 128-bit numbers >> encoded in hexadecimal format. >> - For WebDAV synchronization tokens (davsync): Generated as 64-bit >> numbers encoded in hexadecimal format. > >> Stalwart Labs LLC maintains the registry of all assigned URNs within >> this namespace to ensure uniqueness. > > Given that "urn:stalwart:davlock:" URNs contain 32 hex digits, it > strikes me as unlikely that "Stalwart Labs LLC maintains the registry" > of these. And likely they're generated in large numbers by a large > number of distributed processes, which makes maintaining a registry of > them impossible. > > I think you want to say something like: > > Stalwart Labs LLC maintains the registry of all valid > resource-types, and for each resource type, the syntax of > specific-identifiers and the processes by which they may be > assigned. > > Dale _______________________________________________ urn mailing list -- [email protected] To unsubscribe send an email to [email protected]