Zion Boggan
repos/Oversight/integrations/outlook/README.md
zionboggan.com ↗
82 lines · markdown
History for this file →
1
# Oversight Inspector for Outlook
2
 
3
Read-mode Outlook task pane that verifies and decrypts `.sealed` attachments
4
using the same parse/verify/decrypt pipeline as the public web inspector at
5
<https://oversightprotocol.dev/viewer/>. No second crypto stack, no second
6
container parser, no telemetry.
7
 
8
Status: **hosted pilot scaffold**. The manifest, task pane HTML, JS, icons,
9
and pilot landing page are live under
10
<https://oversightprotocol.dev/integrations/outlook/>. The remaining gate is
11
an Outlook tenant load-test against classic and hybrid sealed attachments. The
12
architecture decisions are recorded in [`docs/OUTLOOK.md`](../../docs/OUTLOOK.md).
13
 
14
## Files
15
 
16
| File | Purpose |
17
|---|---|
18
| `index.html` | Hosted pilot page with sideload links, scope, and next checks |
19
| `manifest.xml` | Office add-in 1.1 manifest, `MailApp` type, read-mode task pane |
20
| `taskpane.html` | UI shell: status badge, attachment picker, manifest summary, decrypt panel |
21
| `taskpane.js` | Office.js + viewer-module integration; reuses `parseSealed`, `verifyManifestSignature`, `decryptSealed` |
22
| `assets/` | Icons referenced by `manifest.xml` (64 px, 128 px). Placeholders pending design. |
23
 
24
## Hosting
25
 
26
The task pane and its imports are served over HTTPS from the URL declared in
27
`manifest.xml` (`SourceLocation`). Production target is
28
`https://oversightprotocol.dev/integrations/outlook/`, which lives under
29
`gh-pages` next to `viewer/`.
30
 
31
To deploy: copy this directory's contents into the public site tree at
32
`integrations/outlook/` and push `gh-pages` (the standard site deploy step).
33
Same-origin imports of `/viewer/viewer.js` and the vendored noble bundles work
34
automatically once both paths are on the same host.
35
 
36
## Sideload (developer)
37
 
38
1. For the hosted pilot, use
39
   `https://oversightprotocol.dev/integrations/outlook/manifest.xml` directly.
40
2. For local development, build a local manifest with `SourceLocation` pointing at your dev URL
41
   (e.g., `https://localhost:3000/integrations/outlook/taskpane.html` if you
42
   are serving locally). Outlook requires HTTPS even for localhost; use
43
   `office-addin-dev-certs` or your own self-signed pair.
44
3. **Outlook on the web**: open any message > the More (`...`) menu >
45
   `Get Add-ins` > `My add-ins` > `Add a custom add-in` > `Add from file...`
46
   and pick your local `manifest.xml`.
47
4. **Outlook desktop**: Home tab > `Get Add-ins` > same path.
48
5. Open a message that has a `.sealed` or `.oversight` attachment. The task
49
   pane will offer to load and verify it.
50
 
51
## Tenant install
52
 
53
For a pilot deployment a Microsoft 365 admin uploads `manifest.xml` in the
54
admin centre under `Integrated apps > Upload custom apps > Office Add-in >
55
Provide link to the manifest file` (or by uploading the XML directly). The
56
admin assigns the add-in to a user group and Outlook surfaces it on the
57
ribbon for those users.
58
 
59
## Permissions
60
 
61
`ReadItem` is the only requested scope. The add-in does not modify the
62
message, send anything from the user's mailbox, or access any folders other
63
than the open message. Decryption keys come from the user's pasted
64
`identity.json` and stay in task-pane memory for the lifetime of that
65
message view.
66
 
67
## What's missing for a real pilot
68
 
69
- [x] Hosted pilot page and manifest URL under `oversightprotocol.dev`.
70
- [ ] Replace placeholder icons in `assets/` before AppSource review.
71
- [ ] A short demo video or screenshots for the AppSource listing once we
72
      decide AppSource is in scope.
73
- [ ] End-to-end test inside an Outlook dev tenant against a hybrid `.sealed`
74
      attachment.
75
- [ ] Decision: do we accept the `.oversight` extension Codex is shipping on
76
      the mobile side as a synonym for `.sealed`? The activation rule already
77
      covers any attachment, so this only affects the task pane's filename
78
      filter.
79
- [ ] Localization beyond `en-US` once a customer asks.
80
 
81
Sealing-from-Outlook (compose mode) is intentionally out of scope for v1; see
82
`docs/OUTLOOK.md` for the rationale.