# owasp/www-project-ai-security-and-privacy-guide architecture

> Architecture diagram of the GitHub repository owasp/www-project-ai-security-and-privacy-guide, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-25). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/owasp/www-project-ai-security-and-privacy-guide
- Repository: https://github.com/owasp/www-project-ai-security-and-privacy-guide

## Overview

OWASP AI Exchange is a collaborative, public AI security and privacy knowledge site. Visitors browse its guidance, threat and control material, and supporting community information; they can also search the site and access a PDF edition. Hugo templates render Markdown content into the published site. The README documents Pagefind search and GoatCounter analytics. Source excerpts are limited, so detailed browser wiring and the implementation of several documented capabilities are not inferred.

Main entry points: [`content/ai_exchange/content/docs`](https://github.com/owasp/www-project-ai-security-and-privacy-guide/tree/main/content/ai_exchange/content/docs) (Security guidance), [`content/ai_exchange/content`](https://github.com/owasp/www-project-ai-security-and-privacy-guide/tree/main/content/ai_exchange/content) (Community pages), [`content/ai_exchange/content/docs/1_general_controls.md`](https://github.com/owasp/www-project-ai-security-and-privacy-guide/blob/main/content/ai_exchange/content/docs/1_general_controls.md) (General controls), [`content/ai_exchange/content/docs/2_threats_through_use.md`](https://github.com/owasp/www-project-ai-security-and-privacy-guide/blob/main/content/ai_exchange/content/docs/2_threats_through_use.md) (Threats through use)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_guidance["Security guidance"]
  node_docs["Security guidance"]
  node_general["General controls"]
  node_threats["Threats through use"]
  node_development["Development threats"]
  node_runtime["Runtime threats"]
  node_testing["Security testing<br/>[5_testing.md]"]
  node_privacy["Privacy<br/>[6_privacy.md]"]
end

subgraph group_community["Community content"]
  node_community_pages["Community pages"]
  node_media["Media library"]
  node_contributors_list["Contributor listing<br/>[contributors.csv]"]
end

subgraph group_presentation["Site presentation"]
  node_hugo["Hugo renderer"]
  node_layouts["Page templates"]
  node_browser["Published website"]
  node_responsive_tables["Responsive tables<br/>[script.js]"]
end

subgraph group_services["Publishing services"]
  node_pagefind["Pagefind search"]
  node_pdf["PDF edition"]
  node_goatcounter["GoatCounter"]
end

node_visitor(("Site visitor"))
node_contributors(("Contributors"))

node_contributors -->|"contribute content"| node_community_pages
node_contributors -->|"contribute guidance"| node_docs
node_docs -->|"render content"| node_hugo
node_general -->|"render controls"| node_hugo
node_threats -->|"render threats"| node_hugo
node_development -->|"render threats"| node_hugo
node_runtime -->|"render threats"| node_hugo
node_testing -->|"render guidance"| node_hugo
node_privacy -->|"render guidance"| node_hugo
node_community_pages -->|"render pages"| node_hugo
node_media -->|"render media"| node_hugo
node_contributors_list -->|"render listing"| node_hugo
node_layouts -->|"provide templates"| node_hugo
node_hugo -->|"publish pages"| node_browser
node_browser -->|"serve content"| node_visitor
node_browser -->|"run script"| node_responsive_tables
node_visitor -->|"search content"| node_pagefind
node_visitor -->|"read edition"| node_pdf
node_browser -.->|"send pageviews"| node_goatcounter

click node_docs "https://github.com/owasp/www-project-ai-security-and-privacy-guide/tree/main/content/ai_exchange/content/docs"
click node_general "https://github.com/owasp/www-project-ai-security-and-privacy-guide/blob/main/content/ai_exchange/content/docs/1_general_controls.md"
click node_threats "https://github.com/owasp/www-project-ai-security-and-privacy-guide/blob/main/content/ai_exchange/content/docs/2_threats_through_use.md"
click node_development "https://github.com/owasp/www-project-ai-security-and-privacy-guide/blob/main/content/ai_exchange/content/docs/3_development_time_threats.md"
click node_runtime "https://github.com/owasp/www-project-ai-security-and-privacy-guide/blob/main/content/ai_exchange/content/docs/4_runtime_application_security_threats.md"
click node_testing "https://github.com/owasp/www-project-ai-security-and-privacy-guide/blob/main/content/ai_exchange/content/docs/5_testing.md"
click node_privacy "https://github.com/owasp/www-project-ai-security-and-privacy-guide/blob/main/content/ai_exchange/content/docs/6_privacy.md"
click node_community_pages "https://github.com/owasp/www-project-ai-security-and-privacy-guide/tree/main/content/ai_exchange/content"
click node_media "https://github.com/owasp/www-project-ai-security-and-privacy-guide/tree/main/content/ai_exchange/content/media"
click node_contributors_list "https://github.com/owasp/www-project-ai-security-and-privacy-guide/blob/main/content/ai_exchange/content/contributors.csv"
click node_layouts "https://github.com/owasp/www-project-ai-security-and-privacy-guide/tree/main/content/ai_exchange/layouts"
click node_responsive_tables "https://github.com/owasp/www-project-ai-security-and-privacy-guide/blob/main/content/ai_exchange/static/js/script.js"
click node_pdf "https://github.com/owasp/www-project-ai-security-and-privacy-guide/blob/main/content/ai_exchange/static/OWASP-AI-Exchange.pdf"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_docs,node_general,node_threats,node_development,node_runtime,node_testing,node_privacy toneBlue
class node_community_pages,node_media,node_contributors_list toneAmber
class node_hugo,node_layouts,node_browser,node_responsive_tables toneMint
class node_pagefind,node_pdf,node_goatcounter toneRose
class node_visitor,node_contributors toneIndigo
```

## Components

### Security guidance

- [Security guidance](https://github.com/owasp/www-project-ai-security-and-privacy-guide/tree/main/content/ai_exchange/content/docs): `content/ai_exchange/content/docs`
- [General controls](https://github.com/owasp/www-project-ai-security-and-privacy-guide/blob/main/content/ai_exchange/content/docs/1_general_controls.md): `content/ai_exchange/content/docs/1_general_controls.md`
- [Threats through use](https://github.com/owasp/www-project-ai-security-and-privacy-guide/blob/main/content/ai_exchange/content/docs/2_threats_through_use.md): `content/ai_exchange/content/docs/2_threats_through_use.md`
- [Development threats](https://github.com/owasp/www-project-ai-security-and-privacy-guide/blob/main/content/ai_exchange/content/docs/3_development_time_threats.md): `content/ai_exchange/content/docs/3_development_time_threats.md`
- [Runtime threats](https://github.com/owasp/www-project-ai-security-and-privacy-guide/blob/main/content/ai_exchange/content/docs/4_runtime_application_security_threats.md): `content/ai_exchange/content/docs/4_runtime_application_security_threats.md`
- [Security testing](https://github.com/owasp/www-project-ai-security-and-privacy-guide/blob/main/content/ai_exchange/content/docs/5_testing.md): `content/ai_exchange/content/docs/5_testing.md`
- [Privacy](https://github.com/owasp/www-project-ai-security-and-privacy-guide/blob/main/content/ai_exchange/content/docs/6_privacy.md): `content/ai_exchange/content/docs/6_privacy.md`

### Community content

- [Community pages](https://github.com/owasp/www-project-ai-security-and-privacy-guide/tree/main/content/ai_exchange/content): `content/ai_exchange/content`
- [Media library](https://github.com/owasp/www-project-ai-security-and-privacy-guide/tree/main/content/ai_exchange/content/media): `content/ai_exchange/content/media`
- [Contributor listing](https://github.com/owasp/www-project-ai-security-and-privacy-guide/blob/main/content/ai_exchange/content/contributors.csv): `content/ai_exchange/content/contributors.csv`

### Site presentation

- **Hugo renderer**
- [Page templates](https://github.com/owasp/www-project-ai-security-and-privacy-guide/tree/main/content/ai_exchange/layouts): `content/ai_exchange/layouts`
- **Published website**
- [Responsive tables](https://github.com/owasp/www-project-ai-security-and-privacy-guide/blob/main/content/ai_exchange/static/js/script.js): `content/ai_exchange/static/js/script.js`

### Publishing services

- **Pagefind search**
- [PDF edition](https://github.com/owasp/www-project-ai-security-and-privacy-guide/blob/main/content/ai_exchange/static/OWASP-AI-Exchange.pdf): `content/ai_exchange/static/OWASP-AI-Exchange.pdf`
- **GoatCounter**

### Other components

- **Site visitor**
- **Contributors**

## Connections

- Contributors → Community pages: contribute content
- Contributors → Security guidance: contribute guidance
- Security guidance → Hugo renderer: render content
- General controls → Hugo renderer: render controls
- Threats through use → Hugo renderer: render threats
- Development threats → Hugo renderer: render threats
- Runtime threats → Hugo renderer: render threats
- Security testing → Hugo renderer: render guidance
- Privacy → Hugo renderer: render guidance
- Community pages → Hugo renderer: render pages
- Media library → Hugo renderer: render media
- Contributor listing → Hugo renderer: render listing
- Page templates → Hugo renderer: provide templates
- Hugo renderer → Published website: publish pages
- Published website → Site visitor: serve content
- Published website → Responsive tables: run script
- Site visitor → Pagefind search: search content
- Site visitor → PDF edition: read edition
- Published website → GoatCounter: send pageviews
