Web UI Notes
These notes describe the current Notary flow in the web app.
Main Flow Areas
The core web notary experience centers on:
- the dashboard
- the create-proof dialog
- the proof detail view
- source and status labels
- local browser proof storage
- editor-history proof actions
Dashboard Flow
The dashboard does four important things:
- loads proofs
- loads usage
- keeps the selected proof id in the route
- reselects the most recent proof after create
That means the page is built around a list-and-detail pattern, not a modal-only flow.
Create-Proof Flow
The current create flow uses four dialog steps:
- proof type
- project
- storage
- file
Modes
The dialog currently supports:
cloudlocal
If proof quota is unavailable, the UI steers the user toward local mode.
Project metadata
The create flow can attach:
projectIdprojectNamesourcePathtaskIdwhen tied to a task-backed project
Local Proof Path
Important behavior details:
- prefers IndexedDB-backed key and proof stores
- falls back to in-memory stores when needed
- uses a worker when available for local proof work
- talks to notary endpoints with CSRF-aware fetch helpers
- can later upgrade a stored local proof into an Attest receipt
In this web surface, "local proof" specifically means a browser-local proof. That is narrower than the broader product model, where Local Proofs can also be created on desktop.
The local proof database name is separate from the editor history notary database.
Local proof to Attest flow
The current sequence is:
- load the saved local proof
- build the Attest init payload from the local proof
POST /notary/attest/init- build the Attest completion payload
POST /notary/attest/complete- fetch
GET /notary/proofs/{proofId}/receipt - save the returned receipt into the local record
That means the UI is preserving the original local proof lineage while adding the server-issued receipt and cloud proofId.
Remote Proof Path
The cloud create sequence is:
- request upload URL
- upload bytes
- create proof with
uploadId
The slice also handles:
- proof listing
- usage loading
- proof detail loading
- local proof attestation
- bundle download
- receipt download
- anchor requests
For direct cloud proofs, the web app supports remote creation through /notary/proofs. That is separate from the local-proof Attest upgrade path.
Source and Status Labels
For documentation, treat the broader product model as:
- Local Proofs
- Cloud Proof
- Attest
- Anchors
The labels below are the current labels for this specific web surface.
Source labels
Current source labels:
- Local browser proof
- Local proof attest
- Cloud proof
The web app also recognizes a text source kind.
Status labels
Current friendly labels include:
- Local proof
- Attested
- Verified
- Awaiting device proof
- Anchor queued
- Anchoring
- Anchored
- Needs attention
Detail View and Downloads
It currently supports download actions for:
- local proof JSON
- local proof capsule
- receipt
- remote bundle
- stored original bytes
- anchor artifact
The detail view also summarizes storage posture. That summary changes based on:
- local proof with or without backup bytes
RECEIPT_ONLYSTORE_TREESTORE_BYTES
The detail view also makes the Attest intent explicit:
- local proofs can show Add cloud attest
- the action text says the proof can be upgraded without re-uploading the file
- attested local proofs can expose receipt download from the locally stored record
Editor History Integration
Notary also appears inside section editor history.
The current editor-history model supports:
- local snapshot proofs
- later cloud attests
- compare-plus-proof views
- export of stored proof capsules
That means notary in the web app is not limited to the standalone
/notaryscreen.