Skip to content

docs: add a Certifications & Trust page (FIL-895) - #28

Open
filipagr wants to merge 3 commits into
mainfrom
filipa/fil-895-compliance
Open

docs: add a Certifications & Trust page (FIL-895)#28
filipagr wants to merge 3 commits into
mainfrom
filipa/fil-895-compliance

Conversation

@filipagr

@filipagr filipagr commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

Closes the FIL-895 dangling pointer. Independent of the FIL-894 Data Deletion PR (#27) — targets main directly, builds standalone, and the two can merge in either order.

Why

ComplianceLandingPage.tsx on the website tells procurement reviewers to "check docs.fil.one for current status" — and no such page existed. Anyone following that instruction landed on a docs site covering only encryption, authentication, and API keys.

New docs/security/compliance.mdx:

  • Certification status, stated plainly. I pulled the wording from ComplianceLandingPage.tsx:275 rather than paraphrasing, so the two surfaces can't drift: no SOC 2 Type II, no ISO 27001, no third-party attestation of any kind, both actively pursued.
  • Shared-responsibility split — Fil One vs regional storage operator vs Filecoin providers. This is the part that determines what any future certification could actually cover, and it's where key custody sits.
  • What procurement can request today and from whom.
  • An explicit "what Fil One does not claim" section, modelled on the tone of the existing Object Lock compliance section, which the issue flagged as the right register.

Please sanity-check two things

  1. security@fil.one — taken from the issue text; I have not verified the mailbox exists. It appears three times.
  2. The shared-responsibility table. I derived the three layers from the documented architecture. It's accurate as far as I can tell, but it's the kind of statement a security reviewer will hold you to, so it deserves a second pair of eyes.

Independence note

Kept deliberately free of links to the Data Deletion page from #27 — with onBrokenLinks: "throw", linking to a page that doesn't exist on main yet would fail the build if this merged first. Deletion and account-closure semantics are referenced via the FAQ and Trial & Billing pages instead. Once both PRs have landed, those links are worth retargeting at Data Deletion — happy to do that as a one-line follow-up.

Verification

  • npm run build succeeds against main
  • Rendered in-browser: correct sidebar placement under Security, TOC populated, tables render
  • Mirrored into llms.txt and llms-full.txt
  • Confirmed zero references to security/data-deletion, so this stands alone

Whichever of #27 and this merges second will hit a trivial adjacent-line conflict (both add one line to the Security block in sidebars.js and a section to the same spot in the mirrors).

🤖 Generated with Claude Code

The website's Compliance LP tells procurement reviewers to "check
docs.fil.one for current status" and no such page existed — a reader following
that instruction landed on a docs site covering only encryption,
authentication, and API keys.

New security/compliance.mdx states the status plainly, using the same wording
as the website's ComplianceLandingPage.tsx so the two surfaces cannot drift:
no SOC 2 Type II, no ISO 27001, no third-party attestation of any kind, both
actively pursued. Adds the shared-responsibility split (which determines what
any future certification could actually cover), what a procurement team can
request today, and an explicit list of what Fil One does not claim.

Kept independent of the Data Deletion page (FIL-894) so the two can be
reviewed and merged in either order — deletion/account-closure semantics are
referenced via the FAQ and Trial & Billing pages, which exist on main today.
Worth retargeting those links at Data Deletion once both have landed.
@vercel

vercel Bot commented Aug 5, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
filone-docs Ready Ready Preview Aug 5, 2026 7:26pm

Request Review

Same treatment as the Data Deletion page. The old version led with what Fil
One lacks and stated the no-attestation fact twice, then closed on a four-item
"what Fil One explicitly does not claim" list. Every fact was accurate but the
page read as a disclosure notice rather than a compliance posture.

Restructured:

- Certification status now leads with the work in progress (SOC 2 Type II and
  ISO 27001 actively pursued), then states plainly that neither is held and
  there is no third-party attestation. Stated once, not twice. Dropped the
  self-deprecating "rather than leaving you to guess from this page's revision
  date".
- New "Controls in place today" table, promoted near the top: authentication,
  multi-factor, access-key scoping, encryption, WORM retention. This is the
  substance a procurement reviewer is looking for and it was previously buried
  in a single dense bullet halfway down.
- Shared responsibility kept (it is what determines what any future
  certification covers), with the key-custody and cipher consequences folded
  into one prose paragraph instead of two negative bullets.
- "Who to ask" split out so the routing is findable.
- The four "does not claim" bullets consolidated to two scope statements:
  proof-of-storage is a network property, and named regulations are use cases
  rather than certifications. No fact dropped.

Also removed every em dash from the page and its mirror sections per the
house style, using commas, colons and parentheses instead.
Prompted by comparing against Wasabi's compliance docs, which turn out to
document their Compliance mode WORM feature and name no certifications or
regulations at all. That is a different genre from this page, and the
comparison surfaced a naming collision we have and Wasabi does not.

1. Renamed the page. "Compliance" already names a specific Object Lock
   retention mode in Fil One ("Compliance mode binds every caller, including
   the account owner"), so a docs reader searching for "compliance" hit two
   unrelated things: a retention mode under Storage and a certifications page
   under Security. "Certifications & Trust" removes the collision and is the
   more accurate title, since the page covers certification status, shared
   responsibility and scope of claims rather than any compliance feature.

2. Added a disambiguation callout pointing WORM/immutability readers at
   Object Lock.

3. New "Demonstrating a control is in force" section, borrowed from Wasabi's
   "Checking for Immutability" idea. Auditors want evidence rather than a
   statement that a feature exists, and this was the one genuinely useful
   thing the page lacked. Lists what a customer can produce themselves:
   GetObjectRetention, GetBucketObjectLockConfiguration, GetObjectLegalHold
   and GetBucketVersioning, plus a reproducible 403 on deleting a retained
   object. Region-scoped honestly (GetObjectLegalHold is confirmed in
   us-east-1 only) and notes the reads need selectable key permissions.

No redirect needed: the old /security/compliance URL never shipped, since
this page has only ever existed on this branch.
@filipagr filipagr changed the title docs: add a Compliance & Certifications page (FIL-895) docs: add a Certifications & Trust page (FIL-895) Aug 5, 2026
@filipagr

filipagr commented Aug 5, 2026

Copy link
Copy Markdown
Contributor Author

Updated after comparing against Wasabi's compliance docs

Worth recording what that comparison showed, because it changed the page.

Wasabi's compliance section is not about certifications at all. The landing page is a stub; the real content is sub-pages documenting their Compliance mode feature (bucket-level WORM immutability). They name zero certifications and zero regulations in their docs, describing the technical capability instead and keeping trust material off the docs site entirely.

That precedent doesn't override FIL-895, since the reason this page exists is that our own website tells reviewers "check docs.fil.one for current status." But it surfaced a collision we have and Wasabi doesn't, plus one thing worth borrowing.

1. Renamed: Compliance & Certifications → Certifications & Trust

docs/storage/object-lock.mdx already uses "Compliance" as the name of a retention mode:

Compliance mode — The strictest protection. No user, including the account owner, can shorten the retention period or delete a locked object.

So a reader searching "compliance" in our docs hit two unrelated things, and the sidebar showed Object Lock under Storage next to a "Compliance & Certifications" page under Security. The new title removes the ambiguity and is more accurate anyway: the page is about certification status, shared responsibility and scope of claims, not about a compliance feature.

File moved to docs/security/certifications-and-trust.mdx. No redirect needed, since the old URL never shipped: this page has only ever existed on this branch.

2. Disambiguation callout

A note near the top sends WORM/immutability/legal-hold readers to Object Lock.

3. New section: "Demonstrating a control is in force"

Borrowed from Wasabi's "Checking for Immutability". Auditors want evidence, not an assertion that a feature exists, and this was the one genuinely useful thing the page lacked. It lists what a customer can produce themselves:

To show Call
An object version is under retention GetObjectRetention
A bucket's default retention policy GetBucketObjectLockConfiguration
A legal hold is active GetObjectLegalHold
Versioning is enabled GetBucketVersioning

Plus the point that a failed delete is itself reproducible evidence (403 AccessDenied on a retained object). Kept honest on scope: GetObjectLegalHold is confirmed in us-east-1 only, the reads need access-key permissions that are selectable rather than default, and a per-object cryptographic artefact still cannot be produced.


Still open from earlier: whether that Google Doc is the intended source for this page. I built from this issue's description and have not seen it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant