docs: add SECURITY.md (GitHub security policy) - #69
Merged
Conversation
Establishes the repo's vulnerability-disclosure policy at .github/SECURITY.md: - GitHub Private Vulnerability Reporting as primary channel; email fallback, with an explicit caveat if PVR is not enabled. - Honest pre-1.0 supported-versions story: fixes land on main / latest tagged line only, no backports; forks pull fixes forward themselves. - Best-effort (non-SLA) response + coordinated-disclosure expectations sized for a single, AI-assisted maintainer. - In/out-of-scope tied to the real authority boundary: license sign/verify, server-side entitlements, Stripe webhook HMAC + idempotency, secret/key leakage into the desktop, and the cargo xtask gates that enforce them. - Limited safe-harbor for good-faith research (AS-IS, no warranty). - 'If you build a product on this kit' section: forks own their own HIPAA/PCI posture, durable audit storage, and SECURITY.md.
|
| Filename | Overview |
|---|---|
| .github/SECURITY.md | New security policy document; version strings, cited file paths, and tag status all verified against the repo's current state. |
Flowchart
%%{init: {'theme': 'neutral'}}%%
flowchart TD
A[Security Reporter] -->|finds vulnerability| B{Channel selection}
B -->|PVR enabled| C[GitHub Security tab → Advisories → Report a vulnerability]
B -->|PVR unavailable| D[Email: admin@unifiedental.com]
C --> E[Private Advisory visible to reporter + maintainer only]
D --> E
E --> F[Maintainer acknowledges best-effort]
F --> G[Initial assessment + severity triage]
G --> H{In scope?}
H -->|Yes – authority boundary break| I[Agree on disclosure timeline]
H -->|No – OOS or theoretical| J[Closed / redirected upstream]
I --> K[Fix lands on main]
K --> L[GitHub Security Advisory published]
L --> M[Reporter credited]
Reviews (2): Last reviewed commit: "fix(review): address Greptile feedback +..." | Re-trigger Greptile
- Supported Versions: the repo has no release tags and Cargo.toml is 0.1.0; the v0.2.0/CHANGELOG reference was inaccurate (CHANGELOG is an unpushed local commit, not on origin/main). State version 0.1.0 / track main, no tags yet, and cite the main commit SHA in reports. (Greptile P2, line 63) - Remove the obsolete HTML maintainer comment: PVR is now enabled on the repo, so the enable-instructions hint is moot. (Greptile P2, line 26) - Convert every em dash to colon / period / parens per the repo writing style (EmDashGuard); the generated draft had used em dashes throughout.
Merged
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Sets up the repo's security policy at
.github/SECURITY.md— the file behind GitHub's Security → Security policy "Start setup" prompt.What this adds
A vulnerability-disclosure policy grounded in this repo's real authority surface, not a generic template:
admin@unifiedental.comas fallback, and an explicit "do not open public issues" rule.main/ the latest tagged line (v0.2.0, source-only) only; no backports; forks pull fixes forward themselves.crates/license-sign,crates/license-verify), server-side entitlements (services/api/src/entitlement.rs), Stripe webhook HMAC + idempotency (services/api/src/webhook.rs), secret/key leakage into the desktop, and thecargo xtask gatechecks (xtask/src/{edges,leakscan,coverage,seam_scan}.rs) that enforce them.Notes
origin/main(d436da6), so this PR is independent of the pending local CHANGELOG commit.admin@unifiedental.comfallback is easily changed — flag if you'd prefer a different address or PVR-only.