Wire the security threat model for agent discoverability (AGENTS.md + SECURITY.md); rename draft-THREAT-MODEL.md -> THREAT_MODEL.md - #427
Conversation
Adds AGENTS.md (## Security pointer) + SECURITY.md wiring the conventional AGENTS.md -> SECURITY.md -> THREAT_MODEL.md chain, and renames the PMC-merged draft-THREAT-MODEL.md to the canonical THREAT_MODEL.md (no longer a draft; matches the discoverable convention). No model content changes. Generated-by: Claude Code (Claude Opus 4.8)
|
Just for the record: This broke the build due to the missing ASF License header in https://github.com/apache/jackrabbit-filevault/blob/a2d8ea503cf48aef8b124ec97694eb3a09f9917c/AGENTS.md. @potiuk Any reason not including it (token usage?) What is best practice here? I raised #429 to add that. |
|
Ah .. Sorry for that. This is really the part that is variable for repository. Yes token usage is a concern.
In this case - no licence was added because the PR did not fail so my automation did not try to see which header to add 😞. But I am happy to do a follow up - unless you are happy with what you have now in #429. Just let me know which option is good for you: a) Full ASF licence This is the shortest non-ambigious way I found and this is for example what we use in Airflow (and we exclude the AGENTS.md from released sources via .gitattributes https://github.com/apache/airflow/blob/main/.gitattributes But also - depending on how you do your check, it might also need to add exclusions elsewhere in your pipeline (usually I find it out while raising PR - because PR fails with "missing licence" error :D. More details: |
This is a proposal for the Jackrabbit PMC to review — please correct, reject, or discuss as needed. Nothing here is a requirement; the maintainer is the decision-maker.
Thanks for merging the threat-model draft, Angela. Two small follow-ups make it mechanically discoverable to automated security scanners (and to any agent that follows the conventional file layout):
1. Wire the discoverability chain. This adds
AGENTS.md(a## Securitypointer) andSECURITY.md, so the conventionalAGENTS.md → SECURITY.md → THREAT_MODEL.mdchain resolves. An automated scanner mechanically follows that chain to locate the model; without it, the model file is present but the scanner can't find it — discoverability is the one hard gate before a scan can run. (On jackrabbit-oak this appends a## Securitypointer to the existingAGENTS.mdrather than creating a new one.)2. Rename
draft-THREAT-MODEL.md→THREAT_MODEL.md(optional proposal). Two reasons:draft-prefix now reads as "not yet adopted" when it is, in fact, the project's adopted model — the name undersells it.THREAT_MODEL.mdis the conventional, discoverable name. It's what theAGENTS.md → SECURITY.md → modelchain and the scanners look for by default, and it matches the layout used across the other Apache repos in this effort (e.g.apache/solr). The rename also normalizes the separator (THREAT-MODEL→THREAT_MODEL).If you'd rather keep the
draft-name (or pick a different one), just say so — the rename is the optional part; the wiring is the substantive fix, and we'll pointSECURITY.mdat whatever filename you prefer.Context: the ASF Security team is preparing the project for an automated agentic security scan. This PR changes no model content — only the file name and the discoverability wiring around it.