You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit abc2fe3
Browse filesBrowse the repository at this point in the historyBrowse files
This page is a **draft**, not an approved policy. Do not merge/deploy or enter the URL in the Chrome Web Store until the publisher and service operator approve the facts below. It describes the 0.2.0 candidate uploaded from `mdbase-reader` commit `adc9d27f86d0040320f5f26f2d96c176c33aa92b`; if the submitted ZIP changes, re-audit it. The source audit, data-category mapping and candidate hash are in `mdbase-reader/docs/chrome-web-store/` on `fix/extension-store-hardening`.
5
+
This page is a **draft**, not an approved policy. Do not merge/deploy or enter the URL in the Chrome Web Store until the publisher approves the final wording. It describes the 0.2.0 candidate uploaded from `mdbase-reader` commit `adc9d27f86d0040320f5f26f2d96c176c33aa92b`; if the submitted ZIP changes, re-audit it. The source audit, data-category mapping and candidate hash are in `mdbase-reader/docs/chrome-web-store/` on `fix/extension-store-hardening`.
6
+
7
+
## Repository findings used in the draft
8
+
9
+
-**Operator/contact:** The owner confirmed both are Callum Alpass. `mdbase-cloud-ops/docs/account-and-service-inventory.md` lists `callum@mdbase.dev` as the Google OAuth support and product email; this draft proposes that publicly reachable address for privacy requests. Confirm the actual mailbox receives requests before publication.
10
+
-**Topology:**`mdbase-cloud-ops/docs/render-production.md` describes Render Connect, hosted provider, relay broker and separate PostgreSQL databases. The hosted provider handles records/files; the control plane does not persist record payloads. `docs/r2-storage.md` describes Cloudflare R2 file objects and deferred deletion after retained references are gone. The existing `/privacy/` page already distinguishes local connector data, encrypted relay payloads and provider-readable hosted data.
11
+
-**Backups/logs:**`mdbase-cloud-ops/docs/disaster-recovery.md` and `.github/workflows/backups.yml` document Render PITR and encrypted logical exports retained for 90 days as GitHub artifacts on the database-only path. A complete AWS S3 archive is designed but gated by `RECOVERY_ARCHIVE_ENABLED`; do not claim it is live without checking that setting. `docs/render-production.md` and `docs/observability.md` describe privacy-bounded Render application logs, but do not establish a public, exact log-retention interval. Do not promise instant erasure from backups.
12
+
-**Usage/retention:**`mdbase-connect/docs/usage-report.md` describes aggregate operator reports from existing account/grant/token/usage rows and daily deletion of expired authorization/protocol-usage rows no longer needed after 395 days. This does not set a 395-day retention period for all account, audit, provider or backup data.
13
+
-**Revocation/deletion:**`mdbase-connect/apps/editor/src/ConnectApp.tsx` has application-grant revocation controls; local/hosted authority confirmation may be pending. `apps/editor/src/AccountManagement.tsx` conditionally disables account deletion when the service reports it unavailable. The ops desired `render.yaml` enables it, but a live check is required before claiming it is currently available. Browser-local extension reset is not server-side revocation. Hosted record/file deletion can leave retained versions or backups.
14
+
-**Email:**`mdbase-cloud-ops/docs/account-and-service-inventory.md` identifies Resend for account-related delivery. DOI lookups and original-site PDF requests are documented in the extension-store-hardening audit, not Connect.
6
15
7
16
## Confirm before publication
8
17
9
-
- Name the legal/person operator, effective date and a tested public contact channel for privacy/deletion requests. The Reader repository's public GitHub issue URL currently returns 404; do not use it as support contact.
10
-
- Verify production Connect, hosted-collection and relay providers/subprocessors; network metadata, logs, backups, retention and deletion. The general Connect policy covers part of this but does not establish extension-specific practices. Link to it without implying all traffic is local or end-to-end encrypted.
11
-
- Verify Connect grant revocation, collection record/file deletion and account deletion instructions. Local extension cleanup does **not** revoke a server grant or remove saved collection data.
12
-
- Confirm purposes and sharing with the operator, including no sale, unrelated use, creditworthiness/lending use and Chrome Limited Use compliance. Do not check the Web Store's three certifications merely because source code has no ad SDK.
18
+
- Test `callum@mdbase.dev` as a privacy contact, and set the effective date to the actual publication date. Confirm operator wording and the public handling process for privacy/deletion requests.
19
+
- Check live production settings for backup archive activation, log retention and account deletion. The repositories provide desired state and implementation but cannot prove all live provider settings or data already retained there.
20
+
- Confirm no sale/impermissible transfer, unrelated use, lending/creditworthiness use and Chrome Limited Use compliance as operator practices. Do not check the Web Store's three certifications merely because source code has no ad SDK.
13
21
- Reconcile Web Store data categories with the actual submitted build and backend: website content, visited URLs, authorization credentials, account identifiers, IP/location and activity/usage reporting. Recheck optional HTTPS permission and DOI traffic before claiming they stop or omit data.
14
22
- Check the published page against the production ZIP and the other Reader/Connect pages. The site's in-progress Reader documentation currently exists as untracked work in the canonical `mdbase.dev` checkout, not on this branch; coordinate separately rather than copying or overwriting it.
15
23
- After approval and deployment, fetch the public URL without authentication and verify its content, canonical URL and links before entering it in the Chrome Web Store. Save the draft, re-open “Why can't I submit?”, and submit only with explicit publisher approval.
16
24
17
25
## Validation
18
26
19
-
`pnpm check` and `pnpm build` pass. `pnpm check:links`currently reports an unrelated existing `/sdk/` → `/spec/#section-14` fragment problem on `origin/main`; the new policy's local link and inline-code checks pass after the spacing fix.
27
+
`pnpm check` and `pnpm build` pass. `pnpm check:links` reports an unrelated existing `/sdk/` → `/spec/#section-14` fragment problem on `origin/main`; new policy links and inline-code checks pass.
Copy file name to clipboardExpand all lines: src/pages/apps/reader/extension/privacy/index.astro
+45-8Lines changed: 45 additions & 8 deletions
Original file line number
Diff line number
Diff line change
@@ -10,9 +10,9 @@ import BaseLayout from "../../../../../layouts/BaseLayout.astro";
10
10
<header>
11
11
<h1>mdbase Reader browser extension privacy</h1>
12
12
<p>
13
-
This page covers the mdbase Reader browser extension. The
14
-
<ahref="/privacy/">mdbase website and Connect privacy page</a> covers the
15
-
related website and Connect service.
13
+
This page covers the mdbase Reader browser extension, operated by
14
+
Callum Alpass. The <ahref="/privacy/">mdbase website and Connect privacy page</a>
15
+
covers the related website and Connect service.
16
16
</p>
17
17
</header>
18
18
@@ -103,6 +103,28 @@ import BaseLayout from "../../../../../layouts/BaseLayout.astro";
103
103
you capture and DOI registries have their own privacy practices.
104
104
</p>
105
105
106
+
<h2>Purposes, service providers and sharing</h2>
107
+
<p>
108
+
Reader uses this information to prepare and save sources, look up citation
109
+
metadata, store annotations, access an authorized collection, recover
110
+
interrupted writes and, if enabled, recognize saved pages. Connect
111
+
processes account and grant details, routing metadata and bounded usage
112
+
counts needed to operate the service; its operator report uses aggregate
113
+
counts rather than returning individual records or page contents.
114
+
</p>
115
+
<p>
116
+
Production Connect and its hosted provider run on Render with managed
117
+
PostgreSQL. Hosted files are stored as opaque objects in Cloudflare R2;
118
+
the hosted provider handles authorized record and file operations.
119
+
Render provides database recovery, and encrypted logical database
120
+
backup artifacts are retained through GitHub Actions. Account email may
121
+
be delivered through Resend. DOI registries receive a DOI when
122
+
a lookup is made, and the original website serves content or a PDF when
123
+
you choose to capture it. These providers may process the network and
124
+
operational information necessary to provide those services. The
125
+
extension does not contain an advertising or third-party analytics SDK.
126
+
</p>
127
+
106
128
<h2>Retention and controls</h2>
107
129
<ul>
108
130
<li>
@@ -128,16 +150,31 @@ import BaseLayout from "../../../../../layouts/BaseLayout.astro";
128
150
<li>
129
151
Clearing this browser does not revoke server-side grants or delete
130
152
collection content, and does not affect other browsers. Highlights
131
-
already drawn on an open page may remain until it is reloaded. Manage
132
-
grants in Connect and remove records/files in your collection.
153
+
already drawn on an open page may remain until it is reloaded. Revoke
154
+
Reader's application access in Connect and remove records/files in
155
+
your collection using its controls. Revocation for a connector-backed
156
+
collection can remain pending until that connector confirms it.
133
157
</li>
134
158
</ul>
159
+
<p>
160
+
Connect deletes expired authorization and usage rows that are no longer
161
+
needed, generally after about 13 months. Other account, grant and audit
162
+
information can be retained while needed for service, security or legal
163
+
purposes. Hosted file deletion may first leave retained versions and
164
+
backups that are removed through maintenance or backup expiry; deletion
165
+
from all recovery copies is not immediate. The provider and Render may
166
+
retain operational logs. The <ahref="/account-deletion/">Connect account-deletion page</a>
167
+
explains account-level controls and exceptions; local collection files
168
+
on your own computers are not removed by deleting an account.
169
+
</p>
135
170
136
171
<h2>Contact and changes</h2>
137
172
<p>
138
-
<!-- Publication gate: replace this with the publisher-approved, publicly reachable privacy contact and confirm the operator's legal identity, service providers, logs, backups and deletion procedures before merging. -->
139
-
Privacy contact and effective date are pending publisher confirmation.
140
-
Changes to this policy will be posted at this address.
173
+
For privacy questions or requests, contact
174
+
<ahref="mailto:callum@mdbase.dev">Callum Alpass at callum@mdbase.dev</a>.
175
+
Changes to this policy will be posted at this address with an updated
0 commit comments