hosted/ifttt/api/index.html

187 lines
8.1 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>IF.TTT — Developers / API</title>
<meta
name="description"
content="Developer-facing overview of the IF.TTT public receipt surface: stable no-login URLs, HTML fallbacks for sandboxes, and offline verification bundles."
/>
<link rel="stylesheet" href="../style.css" />
</head>
<body>
<header class="top">
<div class="wrap top__inner">
<a class="brand" href="../" aria-label="IF.TTT home">
<img class="brand__logo" src="../assets/if-logo-simple.svg" alt="" aria-hidden="true" />
<span class="brand__text">
<span class="brand__title">IF.TTT</span>
<span class="brand__sub">Developers / API</span>
</span>
</a>
<nav class="nav" aria-label="Primary">
<a href="../#verify">Verify</a>
<a href="../verticals/">Verticals</a>
<a href="../governance/">Governance</a>
<a href="../whitepaper/">Whitepaper</a>
<a href="../about/">About</a>
<a class="lang" href="../fr/" aria-label="French">FR</a>
</nav>
</div>
</header>
<main id="top">
<section class="hero">
<div class="wrap hero__grid">
<div class="hero__copy">
<p class="kicker">Public receipt surface (no login)</p>
<h1>Stable URLs, predictable verification.</h1>
<p class="lede">
IF.TTT is intentionally boring from a developer perspective: compute hashes, publish receipts, and keep the proof surface stable. The
system is designed for third parties who are not inside your network.
</p>
<div class="panel">
<h3>What “VERIFIED” means (black/white)</h3>
<div class="bw">
<div class="bw__row">
<div class="bw__k">Verified</div>
<div class="bw__v">The bytes you can download hash to the same values shown on the trace receipt.</div>
</div>
<div class="bw__row">
<div class="bw__k">Quantum ready</div>
<div class="bw__v">A postquantum signature receipt exists (additive; integrity hashes still stand).</div>
</div>
<div class="bw__row">
<div class="bw__k">Not implied</div>
<div class="bw__v">Compliance, intent, or correctness of interpretation.</div>
</div>
</div>
</div>
</div>
<aside class="hero__card" aria-label="Share surface reference">
<div class="card">
<div class="card__media">
<img src="../assets/red-team-stamp-600.png" alt="EYES ONLY // DAVE stamp" loading="lazy" />
</div>
<div class="card__hdr">
<div class="badge badge--ok">SHARE SURFACE</div>
<div class="badge">NOLOGIN</div>
</div>
<div class="card__body">
<pre class="code"><code>https://infrafabric.io/static/trace/&lt;shareId&gt;
https://infrafabric.io/static/dossier/&lt;shareId&gt;
https://infrafabric.io/static/dossier/&lt;shareId&gt;/download
https://infrafabric.io/static/pack/&lt;shareId&gt;.md
https://infrafabric.io/static/review/&lt;shareId&gt;.md
https://infrafabric.io/static/marketing/&lt;shareId&gt;.md
https://infrafabric.io/static/source/&lt;source_sha256&gt;.pdf</code></pre>
</div>
</div>
</aside>
</div>
</section>
<section class="section">
<div class="wrap">
<h2>HTML fallback (for sandboxed reviewers)</h2>
<p class="sub">
Some external review environments can load HTML but reject downloadable binaries or raw markdown. For those, we publish HTML views alongside
the raw assets.
</p>
<div class="grid2">
<div class="panel">
<h3>Raw</h3>
<pre class="code"><code>/static/pack/&lt;shareId&gt;.md
/static/review/&lt;shareId&gt;.md
/static/marketing/&lt;shareId&gt;.md</code></pre>
</div>
<div class="panel">
<h3>HTML view</h3>
<pre class="code"><code>/static/pack/&lt;shareId&gt;
/static/review/&lt;shareId&gt;
/static/marketing/&lt;shareId&gt;</code></pre>
</div>
</div>
</div>
</section>
<section class="section section--alt">
<div class="wrap">
<h2>Offline verification (triage bundles)</h2>
<p class="sub">Download a bundle (lightweight/standard/full) and verify without relying on the live site.</p>
<div class="verify">
<div class="panel">
<h3>Bundle selector (demo)</h3>
<div class="links">
<a class="linkrow" href="https://infrafabric.io/static/hosted/review/trace-bundles/d70ed99a/index.html" target="_blank" rel="noreferrer">
<span class="linkrow__t">Triage selector (HTML)</span>
<span class="linkrow__u">https://infrafabric.io/static/hosted/review/trace-bundles/d70ed99a/index.html</span>
</a>
<a class="linkrow" href="https://infrafabric.io/static/hosted/iftrace.html" target="_blank" rel="noreferrer">
<span class="linkrow__t">Verifier (HTML)</span>
<span class="linkrow__u">https://infrafabric.io/static/hosted/iftrace.html</span>
</a>
<a class="linkrow" href="https://infrafabric.io/static/hosted/iftrace.py" target="_blank" rel="noreferrer">
<span class="linkrow__t">Verifier (download)</span>
<span class="linkrow__u">https://infrafabric.io/static/hosted/iftrace.py</span>
</a>
</div>
<p class="fine">
Note: some “web fetchers” reject <code>.tar.gz</code> with a client-side error even when browsers/curl succeed. Use the HTML views and
download bundles locally.
</p>
</div>
<div class="panel">
<h3>Verify (CLI)</h3>
<pre class="code"><code>curl -fsSL -o iftrace.py 'https://infrafabric.io/static/hosted/iftrace.py'
python3 iftrace.py verify trace_bundle_&lt;id&gt;_standard.tar.gz --expected-sha256 &lt;sha256&gt;</code></pre>
<p class="fine">If hashes match, the receipts integrity claim is satisfied.</p>
</div>
</div>
</div>
</section>
<section class="section">
<div class="wrap">
<h2>Docs</h2>
<div class="links">
<a class="linkrow" href="https://infrafabric.io/static/hosted/review/ifttt-paper-update/2025-12-28/review-pack.html" target="_blank" rel="noreferrer">
<span class="linkrow__t">IF.TTT paper update (review pack)</span>
<span class="linkrow__u">https://infrafabric.io/static/hosted/review/ifttt-paper-update/2025-12-28/review-pack.html</span>
</a>
</div>
</div>
</section>
</main>
<footer class="footer">
<div class="wrap footer__inner">
<div class="muted">InfraFabric • IF.TTT receipts are designed to be legible to the governed.</div>
<div class="muted">
<a href="../">IF.TTT</a> · <a href="../governance/">Governance</a> · <a href="mailto:ds@infrafabric.io">ds@infrafabric.io</a>
<span class="bottombar__sep">·</span> Danny Stocker
</div>
</div>
</footer>
<div class="bottombar" aria-label="Quick links">
<div class="wrap bottombar__inner">
<div class="bottombar__left">
<a href="../verticals/finance/">Finance</a>
<a href="../verticals/legal/">Legal</a>
<a href="../verticals/sciences/">Sciences</a>
<a href="../verticals/government/">Government</a>
</div>
<div class="bottombar__right">
<a href="../api/">Developers</a>
<span class="bottombar__sep">|</span>
<a href="../api/">API</a>
</div>
</div>
</div>
</body>
</html>