Add new PURL type: 'edge-extension' - #928
Open
annextuckner wants to merge 1 commit into
Open
Conversation
Add a type definition, tests, and generated documentation for Microsoft Edge Browser Extensions (Add-ons). Edge extensions share the CRX packaging, extension ID, and version formats of the 'chrome-extension' type (package-url#522). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
4 tasks
Member
|
@annextuckner Thank you for the PR and adapting the "Register new PURL type" template for the PR. We especially appreciate that you provided some failing tests. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR registers a new PURL type for Microsoft Edge Browser Extensions (Add-ons), as distributed via the Microsoft Edge Add-ons store. It follows the recently merged
chrome-extensiontype (#522) very closely, and answers the questions from the Register new PURL type template below.Why is this new PURL type needed?
Browser extensions are installable, versioned software packages and an increasingly important software supply chain surface. The
chrome-extensiontype was registered in #522; the Microsoft Edge Add-ons store is a separate marketplace with its own catalog, listings, and review process — the same extension ID can exist in one store and not the other, and versions can differ between stores — so identifying an Edge Add-on requires its own PURL type even though the underlying formats match Chrome's.What are the PURL component level definitions?
Full definition in
types/edge-extension-definition.json, with generated docs and test cases included in this PR. Edge extensions share Chrome's CRX packaging, extension ID format, and manifest version format, so the definitions intentionally mirrorchrome-extension.typeedge-extension(descriptive<browser>-extensionnaming per #522 / #673 feedback)namespacenamepermitted_characters:^[a-p]{32}$versionpermitted_characters:^\d+(\.\d+){0,3}$qualifiers/subpathhttps://microsoftedge.microsoft.com/addons— no officially documented API; known data sources are the product details endpoint athttps://microsoftedge.microsoft.com/addons/getproductdetailsbycrxid/<extension-id>and an updatecheck-style endpoint athttps://edge.microsoft.com/extensionwebstorebase/v1/crxfollowing the same Omaha/updater protocol as the Chrome Web Store.Example PURLs (all real, verified against the store's product details endpoint):
pkg:edge-extension/odfafepnkmbhccpbejgmiehpchacaeak@1.72.2(uBlock Origin)pkg:edge-extension/cimighlppcgcoapaliogpjjdehbnofhn@2026.714.1952(uBlock Origin Lite)pkg:edge-extension/nffknjpglkklphnibdiadeeeeailfnog@25.5.0(uBlock)pkg:edge-extension/odfafepnkmbhccpbejgmiehpchacaeak(latest)What input do you have from the relevant package ecosystem/community?
chrome-extensiontype registered in Add new PURL type: 'chrome-extension' #522.Are there any open questions or concerns about this new PURL type?
typerather than a qualifier.Checks
Docs and
purl-types-index.jsonregenerated withmake gendocs;make checkjsonpasses; roundtrip canonicalization of all valid test cases verified with packageurl-python.A sibling PR (#927) adds
firefox-extensionfor addons.mozilla.org.🤖 Generated with Claude Code