Glossar

Ein Nachschlagewerk für die Fachbegriffe und projektspezifischen Begriffe, die in bundeshaushalt-cli verwendet werden. Die Domäne Bundeshaushalt ist deutsch; dieses Glossar nennt den englischen Begriff aus CLI und API neben dem deutschen Original, sofern es einen gibt.

Übersetzungstabelle. CLI und Client verwenden die englischen Begriffe, das Portal und die amtlichen Haushaltsdokumente die deutschen:

Deutsch Englisch / API-Begriff
Bundeshaushalt federal budget
Ausgaben expenses
Einnahmen income
Soll target (planned)
Ist actual (realised)
Einzelplan budget section (top level of single)
Funktion function (functional area)
Gruppe group (economic group)
Titel (budget) title / line item
Haushaltsjahr budget year

Die Domäne

Bundeshaushalt. Der jährliche Haushalt der Bundesregierung – ihre geplanten und tatsächlichen Ausgaben und Einnahmen, aufgeschlüsselt nach Ministerium bzw. Einzelplan, Funktion und ökonomischer Gruppe.

bundeshaushalt.de. Das offene Datenportal des Bundesministeriums der Finanzen, das den Bundeshaushalt veröffentlicht. Dieses Tool kapselt den JSON-Endpoint, der hinter den interaktiven Ansichten des Portals steht.

/internalapi/budgetData. Der einzige Endpoint, den dieser Client aufruft. Es ist eine undokumentierte, interne Route von bundeshaushalt.de (erkennbar am Pfadsegment internalapi) und keine veröffentlichte, stabile öffentliche API. Aufbau, Ratenbegrenzung oder Verfügbarkeit können sich ohne Ankündigung ändern; sie wird ohne Authentifizierung ausgeliefert.


Eine Haushaltsabfrage

Eine Abfrage besteht aus year + account, optional eingegrenzt durch quota, unit und id. Die CLI bietet sie als budget <year> <account> sowie über die Kurzbefehle expenses / income an.

year (Haushaltsjahr). Ein vierstelliges Haushaltsjahr. Die API liefert Daten ab 2012 (MIN_YEAR); die Obergrenze ist im Client wie in der CLI das nächste Jahr (maxYear(), zur Laufzeit ermittelt), weil das Portal jeden Sommer den Regierungsentwurf für das Folgejahr veröffentlicht. Bevor dieser Entwurf erscheint, antwortet das nächste Jahr mit 404 (Exit 4). Pflichtangabe.

account (Account). Welche Seite des Haushalts abgefragt wird – einer der Werte:

Pflichtangabe. Die CLI-Befehle expenses und income sind Kurzbefehle, die den Wert vorbelegen.

quota (Quota). Geplante oder tatsächliche Zahlen – einer der Werte:

Optional (--quota).

unit (Unit). Wie Haushaltselemente gruppiert werden – einer der Werte:

Optional (--unit).

id (Haushaltsstelle). Steigt in ein einzelnes Element ab, statt die oberste Ansicht zu liefern. Den Baum durchlaufen Sie, indem Sie die id eines Kindelements aus einer Antwort als nächstes --id übergeben. Optional. Ihr Präfix legt die Einheit fest (siehe „Kennungen, Einheiten & Codes“ unten): Ohne Angabe einer Einheit setzt eine G-/F--ID sie, und eine Einheit, die der ID widerspricht, wird vor jeder Anfrage abgelehnt, vom Client wie von der CLI, weil die API ein unpassendes Paar mit 404 beantwortet, auch wenn die ID existiert.


Aufbau der Antwort

BudgetData. Die Antwortstruktur von /internalapi/budgetData. Enthält meta, das ausgewählte detail, dessen children, parents und related.

BudgetMeta (meta). Metadaten zur aktuellen Ansicht: die geltenden Werte für account, year, quota und unit, ein optionales entity, die aktuelle und maximale Aufschlüsselungstiefe (levelCur / levelMax) sowie ein modifyDate / timestamp. meta enthält kein tableLabel / selectionLabel; diese stehen in detail.

BudgetElement. Eine einzelne Haushaltszeile, Gruppe oder Funktion. Wichtige Felder:

detail. Das aktuell ausgewählte Element. Hinweis: Das Feld in der Antwort steht im Singular (detail), obwohl es das eine fokussierte Element der Ansicht darstellt.

children. Die Elemente eine Ebene unter detail – die Aufschlüsselung, in die Sie mit der id eines Kindelements weiter absteigen können. Auf der untersten Ebene (einem Titel) fehlt der Schlüssel.

parents. Ein Array von LabeledElement (Paare aus ID und Bezeichnung) je Ebene, von oben bis zur Ebene des ausgewählten Elements. Jedes Array enthält alle Elemente dieser Ebene (die Geschwister), nicht nur den Pfad. Bei single ist der Pfad-Eintrag derjenige, dessen id ein Präfix der ausgewählten ID ist oder ihr entspricht.

related. Querverweise auf dasselbe Element aus Sicht anderer Dimensionen, nur auf der untersten Ebene vorhanden (darüber fehlt der Schlüssel): agency, function und group, jeweils eine flache Liste von LabeledElement-Zeilen – der Pfad des Elements in dieser Dimension, von oben nach unten.

LabeledElement. Ein minimales Paar { id?, label? }, das in parents und related ein Element benennt, ohne seine vollständigen Zahlen.


Kennungen, Einheiten & Codes

Haushaltsstelle. Die Kennung eines Haushaltselements, als id zum Absteigen verwendet. budgetNumber zeigt sie als maskierte Anzeigezeichenkette ("0901 683 01 - 165"), die die API nicht als ID annimmt. Konventionen für Präfixe:

Einzelplan. Ein Abschnitt der obersten Ebene des Haushalts, im Wesentlichen einer je Bundesministerium bzw. Verfassungsorgan. Die Einheit single gruppiert nach dieser Dimension; darunter folgen Kapitel, dann Titel.

Funktion (function). Eine funktionale Gliederung der Ausgaben nach Zweck (wofür das Geld ausgegeben wird, unabhängig davon, welches Ministerium es ausgibt). Die Einheit function gruppiert nach dieser Dimension.

Gruppe. Eine ökonomische Gliederung einer Haushaltszeile (die Art der Ausgabe oder Einnahme – z. B. Personal, Investitionen). Die Einheit group gruppiert nach dieser Dimension.

Euro. Alle value-Angaben sind Beträge in Euro (EUR).

relativeValue / relativeToParentValue. Anteilswerte: der Anteil eines Elements an der Gesamtsumme bzw. an seinem unmittelbar übergeordneten Element.


Keine Authentifizierung

Der Endpoint für Haushaltsdaten benötigt weder API-Schlüssel noch Token; dieser Client führt ausschließlich lesende GET-Anfragen aus.


Exit-Codes

Exit-Codes. Die CLI bildet Ergebnisse auf Prozess-Exit-Codes ab: 0 bei Erfolg; 4 bei 404 (nicht gefunden: eine unbekannte Haushaltsposten-ID, ein Jahr ohne Daten oder – mit --quota actual – ein Jahr, dessen Ist-Werte noch nicht veröffentlicht sind, worauf die CLI mit einem Hinweis aufmerksam macht); 1 bei allen anderen Fehlern, auch bei Aufruf- und Argumentvalidierungsfehlern (unbekannte Option, ungültiges Jahr, zweimal angegebene Option). --help/--version liefern 0.


Das Log auf stderr

Log-Eintrag (log record). Jede Diagnosezeile, die die CLI nach stderr schreibt: ein Zeitstempel, eine Stufe (ERROR, WARN, INFO) und ein Thema bundeshaushalt.<Bereich>, als Text (im Stil von log4j) oder mit --log-format jsonl als ein JSON-Objekt pro Zeile. Die Bereiche: cli (Bedienfehler, Meldungen von commander, unerwartete Fehler), api (die Antworten der API: ein Fehlerstatus und der Hinweis zu --quota actual nach einem 404 sowie eine fehlerhafte Antwort — ungültiges JSON, ein leerer Inhalt, die falsche Form oder der falsche Inhaltstyp), http (die Verbindung, die Klartext-Warnung und je Wiederholung eine WARN-Zeile vor dem Warten) und output (ein Schreibfehler auf stdout). Ein Eintrag ist immer eine Zeile; Steuerzeichen darin werden maskiert.


Bibliothek & Interna. Begriffe zum TypeScript-Client und seinen Interna – BundeshaushaltClient, die Request-Engine, Transport, Retry/Backoff, Fehlertypen, Query-Builder – stehen jetzt in DEVELOPING.md.

Quelle auf GitHub ansehen →