<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Contributing on bouine</title><link>https://bouine.org/v0.4/docs/contributing/</link><description>Recent content in Contributing on bouine</description><generator>Hugo</generator><language>en</language><atom:link href="https://bouine.org/v0.4/docs/contributing/index.xml" rel="self" type="application/rss+xml"/><item><title>Codebase guide</title><link>https://bouine.org/v0.4/docs/contributing/codebase/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://bouine.org/v0.4/docs/contributing/codebase/</guid><description>&lt;h2 id="package-map"&gt;Package map&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Package&lt;/th&gt;
 &lt;th style="text-align: right"&gt;Layer&lt;/th&gt;
 &lt;th&gt;Purpose&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;internal/server&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: right"&gt;L1&lt;/td&gt;
 &lt;td&gt;HTTP/1.1, TLS, route matching&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;internal/storage&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: right"&gt;L2&lt;/td&gt;
 &lt;td&gt;Hot store, warm tier, WAL, SIEVE&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;internal/cache&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: right"&gt;L3&lt;/td&gt;
 &lt;td&gt;RFC 9111 state machine and handler&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;internal/origin&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: right"&gt;L4&lt;/td&gt;
 &lt;td&gt;Upstream pools, health checks, hedged transport&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;internal/cluster&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: right"&gt;L5&lt;/td&gt;
 &lt;td&gt;memberlist gossip, hash ring, peer fetch&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;internal/admin&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: right"&gt;L6&lt;/td&gt;
 &lt;td&gt;Admin HTTP API&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;internal/observability&lt;/code&gt;&lt;/td&gt;
 &lt;td style="text-align: right"&gt;L7&lt;/td&gt;
 &lt;td&gt;Metrics, logs, access log&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;| &lt;code&gt;pkg/api&lt;/code&gt; | public | Wire types shared by SDK and admin |
| &lt;code&gt;pkg/bouineapi&lt;/code&gt; | public | Go SDK |&lt;/p&gt;</description></item><item><title>Security</title><link>https://bouine.org/v0.4/docs/contributing/security/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://bouine.org/v0.4/docs/contributing/security/</guid><description>&lt;p&gt;Report security issues via GitHub&amp;rsquo;s


&lt;a class="link link--text" href="https://github.com/bouine-cache/bouine/security/advisories/new" rel="external"&gt;Private vulnerability reporting&lt;/a&gt;
— it creates a tracked, embargoed advisory. No security email alias is
published.&lt;/p&gt;
&lt;h2 id="scope"&gt;Scope&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;bouine binary&lt;/li&gt;
&lt;li&gt;Helm chart&lt;/li&gt;
&lt;li&gt;Container image&lt;/li&gt;
&lt;li&gt;Go SDK&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="examples-of-high-impact-issues"&gt;Examples of high-impact issues&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Cache poisoning that leaks one user&amp;rsquo;s response to another&lt;/li&gt;
&lt;li&gt;HTTP request smuggling through the data plane&lt;/li&gt;
&lt;li&gt;Admin API authentication bypass&lt;/li&gt;
&lt;li&gt;Peer impersonation in cluster mode&lt;/li&gt;
&lt;li&gt;Path traversal in warm-tier storage&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="hardening-checklist"&gt;Hardening checklist&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Keep admin port private; expose only through internal network or mTLS.&lt;/li&gt;
&lt;li&gt;Use TLS verification for upstreams.&lt;/li&gt;
&lt;li&gt;Run containers as non-root.&lt;/li&gt;
&lt;li&gt;Use NetworkPolicy for cluster and admin ports.&lt;/li&gt;
&lt;li&gt;Monitor purge/ban rates for misuse.&lt;/li&gt;
&lt;li&gt;Do not log request/response bodies or credentials.&lt;/li&gt;
&lt;/ul&gt;</description></item></channel></rss>