Home / The OWASP Wire / How the OWASP Wire works
Industry news, read from a vault · beta
How the OWASP Wire works
The data is in a vault the agents write to; this site holds the read key and draws it. Here is how, what the pages rely on, and the wire's own documents, read from the same vault.
How this site reads the vault
The wire’s data lives in an encrypted sgit vault that its agents write to, with the key that writes it held by them and not by this site. This site holds the vault’s read key, published on purpose, and each wire page opens the vault in your browser: it derives the address of the vault’s head pointer, fetches ciphertext from https://dev.send.sgraph.ai, decrypts it with Web Crypto, walks the commit’s tree and reads data/bundle.json, data/deliveries.json, data/releases.json, docs/*.md. Nothing from the vault is run; it is drawn as text, and the documents are rendered from their markdown by a renderer that escapes. The pointer is re-checked at most every two minutes, so a commit by the wire’s agents is on the page within that, with no release of this site. Objects that cannot change are cached in the browser for good. The OWASP Wire is one of 3 wires on this site (The Industry Wire, The AWS Wire); they share one code (wire/wire.js), one contract, and one config each (admin/build/wire-vault.owasp.json).
data/bundle.json having beats, stories, sources, personas and brief (edition, window, kind, status, editor_note, lead, threads, beats), on each story carrying id, beat, headline, date, summary, quote, quote_source_url, primary, coverage, entities, why_it_matters, personas, confidence, status and primary_fetched, and on data/deliveries.json rows of story, persona, status, connections and withheld_reason. When the vault has data/releases.json (wire-releases/v1: releases newest first, each with id, at, edition, title, summary, and the story ids added, updated and withdrawn), the edition shows the releases since the reader’s last visit; the desk writes it on every publish (its runbook’s step 11), as the brief asked, and the page still stands when it is missing. Three more fields are drawn when they are there and nothing breaks when they are not: a story’s changes, a list of {at, what} that the desk appends to when it corrects the story, drawn under the story; the brief’s corrections, the desk’s note of what the edition corrected, in the edition’s header; and the brief’s updated_in_edition, story ids flagged Updated like the ids a release names. A story’s edition, when it is not the current one, is said in the story’s meta line. A vault that describes itself in wire (id, title, beats, personal_persona) offers every persona but the personal one as a public lens; without it the page offers the Industry Wire’s six. A map (title, intro, entities each with id, name, kind, aliases, facts, leaders, standards, notes) is drawn as a list of entities, each with the stories whose entities values match its name or an alias. A stack (persona, what, services each with id, name, aliases, runtime, watch; extra_concerns; deadlines each with what, date, then, source; later) is drawn as the deadlines in the edition’s header and each service with the items whose delivery to the stack’s persona connects through the service’s id. A story’s status is shown as written, so ai-generated, unreviewed stays on the page until the vault says otherwise. The commit message of the head is shown on every wire page.To read it without this site: sgit clone sgit_public_read_b09571f053cc19f5f8b50f8a8d0d82a115e07282fca14e58e7c3328975cd9d79:eitf274v. The read key is sgit_public_read_b09571f053cc19f5f8b50f8a8d0d82a115e07282fca14e58e7c3328975cd9d79:eitf274v.
The wire’s own documents
Read from the vault as committed: the architecture, the sources policy, the workflows where the vault has them, and the runbook that the wire’s agent starts from.
Opening the vault…
For an agent
How newsroom.sgit.ai reads The OWASP Wire's vault (eitf274v on https://dev.send.sgraph.ai, read key sgit_public_read_b09571f053cc19f5f8b50f8a8d0d82a115e07282fca14e58e7c3328975cd9d79:eitf274v): the head pointer, the commit, the tree, then data/bundle.json, data/deliveries.json, data/releases.json and docs/*.md, decrypted in the browser and drawn as text. The contract the pages rely on is on this page: the required fields, the release file the desk writes on every publish, the optional changes[], corrections and updated_in_edition the page draws when present, and the optional wire, map and stack. The vault's own documents are in it: `sgit clone sgit_public_read_b09571f053cc19f5f8b50f8a8d0d82a115e07282fca14e58e7c3328975cd9d79:eitf274v`. The other wires on this site follow the same contract.