# Open Source Policy

## Lizenzprüfung (AUTOMATISCH BEI JEDER DEPENDENCY)

### Erlaubte Lizenzen ✅

| Lizenz | Typ | Kommerziell OK |
|--------|-----|----------------|
| MIT | Permissive | ✅ |
| Apache-2.0 | Permissive | ✅ |
| BSD-2-Clause | Permissive | ✅ |
| BSD-3-Clause | Permissive | ✅ |
| ISC | Permissive | ✅ |
| MPL-2.0 | Weak Copyleft | ✅ |
| LGPL-2.1 / LGPL-3.0 | Weak Copyleft | ✅ (nur linking) |
| CC0-1.0 | Public Domain | ✅ |
| Unlicense | Public Domain | ✅ |

### Verbotene Lizenzen ❌

| Lizenz | Grund |
|--------|-------|
| GPL-2.0 / GPL-3.0 | Copyleft - infiziert Projekt |
| AGPL-3.0 | Network Copyleft - SaaS-Killer |
| SSPL | Server Side Public License |
| BSL | Business Source License |
| "Non-Commercial" | Keine kommerzielle Nutzung |
| "Educational Only" | Nur für Bildung |
| Proprietary | Keine OSS |

---

## Workflow bei neuer Dependency

### 1. Vor dem Hinzufügen prüfen

```bash
# NPM Package
npm view <package> license

# Python Package
pip show <package> | grep License

# Go Module
go-licenses check <module>
```

### 2. Bei Unklarheit

- README.md des Projekts lesen
- LICENSE-Datei prüfen
- SPDX-Identifier suchen
- Im Zweifel: **NICHT verwenden**

### 3. Nach dem Hinzufügen

**SBOM aktualisieren:** https://macmini:3002/infrastructure/sbom

```bash
# SBOM generieren
cd /Users/benjaminadmin/Projekte/breakpilot-pwa

# Python
pip-licenses --format=json > sbom/python-licenses.json

# Node.js
npx license-checker --json > sbom/node-licenses.json

# Go
go-licenses csv ./... > sbom/go-licenses.csv
```

---

## Grenzfälle

### Dual-Licensed Packages
- Wenn MIT **oder** GPL angeboten wird → MIT wählen
- Dokumentieren welche Lizenz gewählt wurde

### Transitive Dependencies
- Auch indirekte Abhängigkeiten prüfen
- `npm ls`, `pip-tree`, `go mod graph`

### Fonts & Assets
- Google Fonts: ✅ (OFL)
- Font Awesome Free: ✅ (CC BY 4.0 / OFL / MIT)
- Icons8: ❌ (Attribution required, kompliziert)

---

## Checkliste bei PR/Commit

Wenn neue Dependencies hinzugefügt wurden:

- [ ] Lizenz ist in der Whitelist
- [ ] SBOM wurde aktualisiert
- [ ] Keine GPL/AGPL-Abhängigkeiten eingeschleppt
- [ ] Bei Dual-License: MIT/Apache gewählt
