[media-types] [IANA #1459410] application/vnd.dai registration request
Amanda Baber via RT <iana-mime@iana.org> Thu, 24 September 2026 23:49 UTC
Received: from smtp.lax.icann.org (smtp.lax.icann.org [192.0.33.81]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519 server-signature ECDSA (prime256v1) server-digest SHA256) (No client certificate requested) by mx.ietf.org (Postfix) with ESMTPS id B735E31 for <media-types@ietf.org>; Thu, 24 Sep 2026 23:49:16 +0000 (UTC)
Authentication-Results: mx.ietf.org; dkim=pass header.d=iana.org header.s=202509s header.b=VNnMQPzl; dmarc=pass (policy=none) header.from=iana.org; spf=pass (mx.ietf.org: domain of iana-shared@iana.org designates 192.0.33.81 as permitted sender) smtp.mailfrom=iana-shared@iana.org
Received: from request7.lax.icann.org (request1.lax.icann.org [10.32.11.221]) by smtp.lax.icann.org (Postfix) with ESMTP id E8833E1C04; Thu, 24 Sep 2026 23:49:15 +0000 (UTC)
DKIM-Filter: OpenDKIM Filter v2.11.0 smtp.lax.icann.org E8833E1C04
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=iana.org; s=202509s; t=1790293755; bh=LxOet5Q4qNT00SgBGN/gSO0+kE/kpUbQeX8EWKXnuAA=; h=Subject:From:Reply-To:In-Reply-To:References:To:CC:Date:From; b=VNnMQPzlOspVsLwDZMl1whU8hIjx4/c+7aGaZxR23RkOJ6lMprX0fEsSzGKYEsyPU Br4Iw2YZsobHIq2Dw6xzqkHw0TlO+f5N+XFmByoicQj5QpX8a94bmhe0mZ0kRUBkh5 pDZT+TRRMi5zmGxOy/55hHSX790NHs/UX7DxJU5I=
Received: by request7.lax.icann.org (Postfix, from userid 48) id E749BC124EC3; Thu, 24 Sep 2026 23:49:15 +0000 (UTC)
RT-Owner: david.dong
From: Amanda Baber via RT <iana-mime@iana.org>
In-Reply-To: <rt-5.0.3-135028-1789259110-1134.1459410-37-0@icann.org>
References: <RT-Ticket-1459410@icann.org> <4ggy0cr6va-1@ppa4.dc.icann.org> <rt-5.0.3-560495-1788917114-1801.1459410-9-0@icann.org> <CAL0qLwYuxW2T_RFc1hiOvjmGRuM=Q5r+aL653Xry4-g0fJTN2A@mail.gmail.com> <rt-5.0.3-663177-1788983653-1928.1459410-37-0@icann.org> <rt-5.0.3-135028-1789259110-1134.1459410-37-0@icann.org>
Message-ID: <rt-5.0.3-801120-1790293755-741.1459410-37-0@icann.org>
X-RT-Loop-Prevention: IANA
X-RT-Ticket: IANA #1459410
X-Managed-BY: RT 5.0.3 (http://www.bestpractical.com/rt/)
To: info@dynamicapplicationinterface.io
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: quoted-printable
X-RT-Original-Encoding: utf-8
Precedence: bulk
Date: Thu, 24 Sep 2026 23:49:15 +0000
MIME-Version: 1.0
X-Spamd-Bar: -
Message-ID-Hash: EWCN7HYI5AGHYM5JWHVXMUQLZJ36T6G7
X-Message-ID-Hash: EWCN7HYI5AGHYM5JWHVXMUQLZJ36T6G7
X-MailFrom: iana-shared@iana.org
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-media-types.ietf.org-0; header-match-media-types.ietf.org-1; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
CC: media-types@ietf.org, superuser@gmail.com
X-Mailman-Version: 3.3.10
Reply-To: iana-mime@iana.org
Subject: [media-types] [IANA #1459410] application/vnd.dai registration request
List-Id: "IANA mailing list for reviewing Media Type (MIME Type, Content Type) registration requests." <media-types.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/media-types/mZVMPnp5Yc5SRZYIpgOQo_0r_Rc>
List-Archive: <https://mailarchive.ietf.org/arch/browse/media-types>
List-Help: <mailto:media-types-request@ietf.org?subject=help>
List-Owner: <mailto:media-types-owner@ietf.org>
List-Post: <mailto:media-types@ietf.org>
List-Subscribe: <mailto:media-types-join@ietf.org>
List-Unsubscribe: <mailto:media-types-leave@ietf.org>
Hi Murray, Resending this request from September 12th. thanks, Amanda On Sun Sep 13 00:25:10 2026, david.dong wrote: > Hi Murray, > > Please see below for the response and updated template from the > requester: > > === > > Thank you for sending the review. My revised application is below. > Changes to note: the BCP 14 language has been removed from Security > and Interoperability, which now describe the format and cites the > specification sections where the normative requirements live; the "by > name" phrasing in Interoperability has been replaced with plain > wording; and the "N/A" that appeared to dangle is the answer to the > "Other Information & Comments" field, whose heading is restored below. > > One substantive change to the specification followed from their first > comment: the decompression bound was a requirement the implementations > honored but the specification never stated. It is now a normative > clause in §7 with a refusal code and a conformance vector, and the > Security section cites it rather than asserting it. > > > Application Revision: > > Name: Christopher Whitlow > Email: info@dynamicapplicationinterface.io > > Media type name: application > Media subtype name: vnd.dai > > Required parameters: N/A > Optional parameters: N/A > > Encoding considerations: binary > > The file is a sectioned container: a header, a section table, page- > aligned sections holding a JSON manifest, a zip archive of the > application, and a SQLite database, and a 64-byte footer. The footer > carries a generation counter and the SHA-256 of the database section. > > Security considerations: > > A DAI container carries executable content: an HTML application > intended to run only inside a host that applies the isolation defined > in §4 of the specification (an opaque-origin sandboxed frame under a > Content Security Policy permitting no network connection). The > specification requires that a host not applying that isolation does > not execute the content. > > The container is a sectioned binary file holding a JSON manifest, a > zip archive of the application, and a SQLite database. The manifest > carries SHA-256 digests of every archive entry and may carry an ECDSA > P-256 signature over them in a COSE_Sign1 envelope. The specification > requires a host to verify every digest before running anything and to > verify the signature when a key is present (§7). The signature covers > the manifest and the application, not the database; the database > section is verified separately against a SHA-256 digest held in the > file's footer (§2). Verification establishes that the file is > unchanged since it was signed, not the identity of the signer; §8 and > §9.6 describe what a host may claim about a publisher. > > Because the archive is inflated before its manifest can be checked, > the specification requires a reader to bound decompression in advance > — a limit on the bytes produced for any one entry, on the total across > entries, and on the number of entries — refusing rather than > allocating when a declared size, the declared total, or the entry > count exceeds that limit, and stopping if an entry inflates past the > size it declares (§7). The manifest contains no active content. > > The application may read and write the SQLite database. The format > grants it no capability to reach the network, the filesystem beyond > the file itself, or other origins. > > Privacy: the file may contain personal data the application stored. It > contains no tracking, and the specification requires that a host send > nothing when opening a file. > > Interoperability considerations: > > The format is versioned by the manifestVersion field in the manifest. > A reader accepts the versions it implements and refuses others, > reporting a refusal that tells the person to update the host (§9.1). > The specification defines versions 2 and 3. A conformance suite and an > independent reference reader in Python are published with the > specification. > > Published specification: DAI Container Format v0.2, §2 (the sectioned > form), §7 (verification), and §9 (manifestVersion 3): > https://github.com/dynamicapplicationinterface/dai- > core/blob/main/docs/spec-v0.2.md > > Applications which use this media: The DAI opener > (https://opendai.app) the DAI desktop application, and the dai > command line tool; any host implementing the specification. > > Fragment identifier considerations: N/A > Restrictions on usage: N/A > Provisional registration? (standards tree only): No > > Additional information: > > Deprecated alias names for this type: N/A > Magic number(s): the first four bytes are DAI (0x44 0x41 0x49 0x00) > File extension(s): '.dai' > Macintosh file type code: N/A > Object Identifiers: N/A > > Other Information & Comments: N/A > > Person to contact for further information: > > Name: Christopher Whitlow > Email: info@dynamicapplicationinterface.io > > Intended usage: COMMON > > Author/Change controller: Christopher Whitlow / Dynamic Application > Interface Opensource Project > > === > > Best regards, > > David Dong > IANA Services Sr. Specialist > > On Wed Sep 09 19:54:13 2026, superuser@gmail.com wrote: > > A couple of minor things. > > > > -MSK > > > > On Tue, Sep 8, 2026 at 6:25 PM David Dong via RT > > <iana-mime-comment@iana.org> wrote: > > > Name: Christopher Whitlow > > > > > > Email: info@dynamicapplicationinterface.io > > > > > > Media type name: application > > > > > > Media subtype name: vnd.dai > > > > > > Required parameters: N/A > > > > > > Optional parameters: N/A > > > > > > Encoding considerations: binary > > > > > > The file is a sectioned container: a header, a section table, page- > > > aligned sections holding a JSON manifest, a zip archive of the > > > application, and a SQLite database, and a 64-byte footer. The > > > footer > > > carries a generation counter and the SHA-256 of the database > > > section. > > > > > > Security considerations: A DAI container carries executable > > > content: > > > an HTML application intended to run only inside a host that applies > > > the isolation defined in §4 of the specification, namely an opaque- > > > origin sandboxed frame under a Content Security Policy that permits > > > no network connection of any kind. A host that does not apply that > > > isolation MUST NOT execute the content. > > > > > > The container is a sectioned binary file holding a JSON manifest, a > > > zip archive of the application, and a SQLite database. The manifest > > > carries SHA-256 digests of every archive entry and MAY carry an > > > ECDSA > > > P-256 signature over them in a COSE_Sign1 envelope. A host MUST > > > verify every digest before running anything and MUST verify the > > > signature when a key is present. The signature covers the manifest > > > and the application, not the database; the database section is > > > verified separately against a SHA-256 digest held in the file's > > > footer, and a host MUST check it. Verification proves the file is > > > unchanged since it was signed, not who signed it. §8 and §9.6 of > > > the > > > specification describe what a host may and may not claim about a > > > publisher. > > > > BCP 14 language isn't appropriate in the registration template. > > Normative stuff (security or otherwise) should be in the > > specification. > > > > > Because the archive must be inflated before its manifest can be > > > checked, a reader MUST bound decompression by the declared size of > > > each entry, the declared total, and the entry count, and MUST > > > refuse > > > a file that exceeds those bounds rather than allocate for it. The > > > manifest contains no active content. > > > > > > The application may read and write the SQLite database. The format > > > grants it no capability to reach the network, the filesystem beyond > > > the file itself, or other origins. > > > > > > Privacy: the file may contain personal data the application stored. > > > It contains no tracking, and the specification requires that a host > > > send nothing on open. > > > > > > Interoperability considerations: The format is versioned by > > > `manifestVersion` in the manifest. Readers accept versions 2 and 3 > > > and refuse others by name. A conformance suite and an independent > > > reference reader in Python are published with the specification. > > > > What does "by name" mean here? > > > > > Published specification: DAI Container Format v0.2, §2 (the > > > sectioned > > > form) and §9 (manifestVersion 3): > > > <https://github.com/dynamicapplicationinterface/dai- > > > core/blob/main/docs/spec-v0.2.md> > > > > > > Applications which use this media: The DAI opener > > > (<https://opendai.app>), the DAI desktop application, and the `dai` > > > command line tool; any host implementing the specification. > > > > > > Fragment identifier considerations: N/A > > > > > > Restrictions on usage: N/A > > > > > > Provisional registration? (standards tree only): No > > > > > > Additional information: > > > > > > 1. Deprecated alias names for this type: N/A > > > 2. Magic number(s): the first four bytes are `DAI` (0x44 0x41 0x49 > > > 0x00) > > > 3. File extension(s): '.dai' > > > 4. Macintosh file type code: N/A > > > 5. Object Identifiers: N/A > > > > > > General Comments: N/A > > > > > > Person to contact for further information: > > > > > > 1. Name: Christopher Whitlow > > > 2. Email: info@dynamicapplicationinterface.io > > > > > > Intended usage: COMMON > > > > > > N/A > > > > What's this dangling "N/A" for? > > > > > Author/Change controller: Christopher Whitlow / Dynamic Application > > > Interface Opensource Project
- [media-types] [IANA #1459410] application/vnd.dai… David Dong via RT
- [media-types] Re: [IANA #1459410] application/vnd… Murray S. Kucherawy
- [media-types] [IANA #1459410] application/vnd.dai… Amanda Baber via RT
- [media-types] Re: [IANA #1459410] application/vnd… Murray S. Kucherawy