โ† Back to RFC Index
RFC: 0007
Title: Software Registry Conformance, Ingestion & Interoperability Specification
Author: Protocol Stewards & Registry Interoperability WG
Status: Working Draft โ€” Open for Review
Date: 2026-09-19

1. Scope & Architectural Boundary

This document defines the normative requirements for software directories, catalog registries, aggregators, and automated crawlers (collectively termed Registries) that consume, index, and present MSR JSON manifests.

The MSR Standard is an open, independent protocol. A registry (such as MySoftRank, a package index, or an AI discovery agent) is an independent consumer implementation. To claim MSR Conformance, a registry MUST satisfy the ingestion, network safety, cache discipline, and schema fidelity rules specified herein.

2. Zero-Account Ingestion & Canonical Discovery

Traditional software directories require manual, multi-page form registration behind vendor accounts, causing stale metadata and high onboarding friction. Conforming registries MUST support automated manifest ingestion:

3. Network Safety & SSRF Defense

Allowing arbitrary URL intake introduces Server-Side Request Forgery (SSRF) and resource exhaustion risks. Any crawler or ingestion pipeline in a conforming registry MUST enforce the following safeguards prior to making outbound HTTP requests:

  1. Pre-Flight DNS Resolution: The registry crawler MUST resolve target hostnames before issuing requests and strictly reject:
    • Loopback addresses (127.0.0.0/8, ::1).
    • RFC 1918 private subnets (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16).
    • Link-local and cloud provider metadata addresses (169.254.0.0/16, fe80::/10).
  2. Redirect Re-Validation: HTTP redirects (301, 302, 307, 308) MUST be validated against the same IP safety filters at every hop. Registries MUST limit redirect depth to a maximum of 5 hops.
  3. Protocol & Port Enforcement: Only https:// (and optionally http:// for local sandbox testing) on default ports (443 and 80) is permitted. Custom ports are forbidden.
  4. Resource Caps: Connection timeouts MUST NOT exceed 8 seconds. Payload downloads MUST be capped at 1 MB; larger files MUST terminate the connection immediately to prevent memory exhaustion attacks.

4. Semantic Caching & Polling Discipline

Registries MUST be good citizens of the open web and avoid hammering vendor infrastructure:

5. Ingestion Dialects & Canonical Normalization

To facilitate ecosystem migration while preserving the integrity of MSR JSON, registries MAY accept legacy and transitional formats, provided they are normalized to the canonical schema:

Format Dialect Parser Requirement Normalization Target
msr.json (Canonical) Direct validation against JSON Schema (Draft 2020-12) Canonical model without mutation.
pad.json (Transition Dialect) Native JSON key-value mapper Normalized into msr.json v2.0 structures.
pad.xml (ASP PAD 4.0) Hardened defensive XML parser (e.g. defusedxml to prevent XXE / entity expansions) Normalized into msr.json v2.0 structures.

Normalization Rules

6. Domain Authority vs. Vendor Claim Verification

While submission and read-only indexing are zero-account and frictionless, administrative control over a registry listing requires verified domain authority:

7. Zero-Drift Rule: Non-Corruption of the Canonical Schema

A registry MUST NOT fork, mutate, or introduce proprietary enum values into the canonical schema while referencing the canonical schema identifier https://msrjson.org/schemas/msr-2.0.json.

Registry-specific operational attributes (e.g. internal review aggregations, editorial rankings, click counters, sponsorship flags) MUST be stored in the registry's own private database. They MUST NOT be injected into published MSR JSON manifests.