Begriffe, die im Wiki, in der CLI-Ausgabe oder im Portal auftauchen, kurz erklärt.
API-Key
Ein langer, geheimer String, der im Portal unter API Keys erzeugt und in Ihrer CI als Secret hinterlegt wird. Authentifiziert CLI- und CI-Anfragen gegen das Portal, zum Beispiel CLI-Downloads und den Lizenzabruf. Mehr unter API-Keys verwalten.
Baseline
Ein Schnappschuss vorhandener Findings, geschrieben mit
--write-baseline. Wird er über --baseline wieder übergeben, werden
die erfassten Findings unterdrückt, sodass nur neue Findings gemeldet
werden und den Build blockieren. Nützlich, wenn CodeCharter in eine bestehende
Codebasis eingeführt wird.
Bundle
Ein signiertes ZIP-Archiv (.cgbundle) mit den Regeln eines Profils.
Bundles lädt codecharter restore aus dem Portal herunter; alternativ
lassen sie sich offline in .codecharter/config.yml über einen path:-Eintrag
referenzieren.
Ccr-Datei
Die Dateiendung für CodeCharter-Regeln. Eine .ccr-Datei enthält
Metadaten (@name, @severity, ...) und eine LINQ-Query gegen
das Schema. Siehe Datei-Struktur.
Channel
Release-Channel der CodeCharter-Distributionen. Alle aktuellen Releases erscheinen im Channel Stable.
CLI
Die Standalone-Kommandozeilen-Variante von CodeCharter. Liegt als selbst-enthaltenes Binary für Windows, Linux und macOS vor, läuft ohne installierte .NET-Runtime.
CodeCharter-DSL
Die kleine LINQ-ähnliche Sprache, in der eigene Regeln geschrieben werden. Siehe DSL-Referenz.
Determinismus
CodeCharter-Eigenschaft: gleicher Source-Code und gleiche Regelmenge ergeben jedes Mal exakt die gleichen Findings, unabhängig von Rechner, Tageszeit oder Systemlast. Siehe Determinismus und Caching.
Diff-Modus
Beschränkt die Analyse auf geänderte Zeilen. Ein Unified Diff wird per
--diff übergeben, eine Git-Range per --git-ref (zum Beispiel
main..HEAD); in der GitHub Action über den Input diff. Findings und
das --fail-on-Gate gelten dann nur für geänderte Zeilen.
Finding
Ein konkreter Verstoß gegen eine Regel an einer konkreten Stelle im
Code. Hat eine Severity (info, warn, error), einen Dateipfad, eine
Zeilennummer sowie Beschreibung und Empfehlung der Regel.
GitHub Action
Die offizielle CI-Integration bochmann-software/codeguard@v1. Kapselt
die CLI, holt sie aus dem Portal mit dem konfigurierten API-Key, führt die Analyse aus
und veröffentlicht Findings als PR-Annotations.
Lizenzdatei
Die Datei codecharter.license, die die CLI vor jedem Befehl prüft.
Gesucht wird neben dem CLI-Binary, im Arbeitsverzeichnis und im
Benutzer-Konfigurationsverzeichnis; der Pfad lässt sich über --license
oder die Umgebungsvariable CODECHARTER_LICENSE überschreiben. Ist
CODECHARTER_API_KEY gesetzt, erneuert die CLI die Lizenz automatisch
über das Portal.
Lockfile
Die Datei .codecharter/codecharter.lock.json im Verzeichnis .codecharter/ Ihres
Repositorys. Sie pinnt die
aufgelösten Profil-Versionen und Bundle-Hashes: codecharter restore
lädt genau diese Bundles herunter, codecharter verify prüft den lokalen
Cache dagegen und codecharter update schreibt sie neu.
MCP-Server
Die Integration für KI-Assistenten, gestartet mit codecharter mcp.
Stellt CodeCharter-Analyse und Regel-Erstellung als MCP-Tools bereit;
codecharter mcp install registriert den Server in unterstützten
KI-Tools.
Profil
Ein versioniertes, zusammengestelltes Regelset, referenziert in
.codecharter/config.yml als slug@version (zum Beispiel
codecharter/[email protected]). CodeCharter liefert kuratierte
Plattform-Profile unter dem Präfix codecharter/; Kunden können
über das Portal eigene Profile veröffentlichen.
Rule-Pack
Eine Gruppe verwandter Regeln, ausgeliefert als Verzeichnis von
.ccr-Dateien. CodeCharter kommt mit eingebauten Packs (allgemeine
C#-Regeln, ASP.NET Core, Contracts, unerwünschte Suffixe). Eigene
Packs lassen sich beliebig ergänzen.
SARIF
Static Analysis Results Interchange Format, JSON-basierter Standard für Code-Analyse-Tools. CodeCharter kann SARIF v2.1 ausgeben; das Format wird von GitHub Code Scanning und GitLab SAST nativ konsumiert.
Selector
Der erste Teil einer Regel-Query, der bestimmt, welche Code-Elemente
geprüft werden: from t in Types, from m in Methods und so weiter.
Severity
Schweregrad eines Findings. CodeCharter kennt drei Stufen:
info: Hinweiswarn: Warnungerror: Fehler
Ob ein Finding den Build scheitern lässt, steuert die
--fail-on-Schwelle: ohne sie beendet sich die CLI bei jedem Finding
mit Exit-Code 1, auch bei info. Die GitHub Action nutzt per Default
fail-on: error.
Spec-Test
Hit- und Miss-Testfälle für eine Regel, abgelegt in einer
.spec.md-Datei neben der Regel und ausgeführt mit codecharter test,
das einen CI-tauglichen Exit-Code liefert.
Statement-Level-Facts
Die typisierten Properties an jedem Methoden-, Konstruktor- und
Property-Accessor-Body (Catches, Invocations, MemberAccesses,
Literals, BinaryExpressions, LocalDeclarations), erreichbar über
die abgeflachte AllBodies-Collection. Eine Regel liest diese direkt,
statt eine eigene m.Syntax-Traversierung für ein verbreitetes Pattern
nachzubauen.
Subscription
Die kommerzielle Lizenz für CodeCharter. Steuert, ob Downloads aus dem Portal verfügbar sind. Trial, Starter, Team, Business oder Enterprise. Siehe Plan-Übersicht.
Suppression
Eine bewusste Ausnahme zu einer Regel an einer konkreten Stelle, gesetzt
inline per Kommentar (// codecharter-disable,
// codecharter-disable-next-line). Um eine Regel komplett zu
deaktivieren oder ganze Dateien auszuschließen, dienen stattdessen
Regel-Overrides oder ein ignore-Eintrag in .codecharter/config.yml.
Mehr unter Suppressions.
TimeProvider
Die .NET-8-Abstraktion über die Systemuhr. CodeCharter enthält eine eingebaute
Regel, die direkte DateTime.Now-Aufrufe meldet und empfiehlt, stattdessen
TimeProvider per Konstruktor zu injizieren.
Trial
Der 7-tägige kostenlose Vollzugriff, den jeder neue Account beim Registrieren bekommt. Siehe Registrierung und Trial.
VSIX
Die VS-Code-Extension-Datei. Wird über das Portal als Download angeboten und installiert die CodeCharter-Extension im Editor.