potiuk opened a new pull request, #5126: URL: https://github.com/apache/calcite/pull/5126
## What Adds an `AGENTS.md` at the repository root pointing at `SECURITY.md`, and adds it to `.ratignore` alongside `SECURITY.md`. ## Why CALCITE-7605 landed the threat model at `site/_docs/security_threat_model.md` together with a `SECURITY.md` that links to it. That part is complete and reads well. What is missing is the entry point. Automated agents — security scanners, code analyzers, coding assistants — locate a project's security model by following a fixed chain: ``` AGENTS.md -> SECURITY.md -> the threat model ``` `apache/calcite` has the second and third hops but not the first, so the chain cannot be walked mechanically and an agent starting from a clone has no way to find the model on its own. This matters concretely for the ASF Security team's scanning programme: we refuse to run a scan against a project whose model is not mechanically discoverable, because without the model in context the false-positive rate is more than a PMC can reasonably triage. This PR closes that gap for Calcite. ## What is in the file No new claims — everything restates the merged model: - A pointer to `SECURITY.md` and onward to `site/_docs/security_threat_model.md`. - The framing that Calcite is embedded, opens no socket, and has no authentication or authorization of its own. - The two rules that carry most of the triage weight: the **surprising vs unsurprising class loading** gate (only SPI implementations are instantiated by name, via `Class.forName(name, false, loader)` plus `isAssignableFrom`, across the enumerated SPI positions), and the **pushed-down SQL** split (generated SQL reaching a configured backend is not a vulnerability; a pushdown bug reading beyond the configured schemas is P4 and is one). - Signposts to the model's "Not a vulnerability" and "Downstream responsibilities" sections. ## Notes for reviewers - **Docs only.** No production code is touched. - **`.ratignore`:** `AGENTS.md` carries no license header, so it is excluded exactly as CALCITE-7605 excluded `SECURITY.md`. Happy to add a header and drop the `.ratignore` line instead if the PMC prefers that direction. - **No JIRA reference in the title.** CALCITE-7605 is resolved, and I did not want to reopen it or file a ticket on the project's behalf unprompted. If Calcite would like a JIRA for this, say the word and I will file one and retitle the PR to match the `[CALCITE-NNNN]` convention. - I deliberately did **not** link the rendered site URL for the threat model, since it does not resolve yet — the in-repo path is what an agent follows anyway. Opened by the ASF Security team as part of the Frontier Model Preparation scan pre-flight for Calcite, following the request on the PMC's `[GLASSWING]` thread. Review, change, or close as the PMC sees fit — the document is the project's. 🤖 Generated with [Claude Code](https://claude.com/claude-code) -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
