Schritt‑für‑Schritt‑Anleitung zum Planen, Bauen und Ausliefern einer Web‑App für eine interne Entwicklerplattform: Katalog, Templates, Workflows, Berechtigungen und Auditierbarkeit.

Eine IDP‑Web‑App ist die interne „Vordertür“ zu eurem Engineering‑System. Hier finden Entwickler, was bereits existiert (Services, Bibliotheken, Umgebungen), folgen dem empfohlenen Weg zum Bauen und Betreiben von Software und fordern Änderungen an, ohne sich durch ein Dutzend Tools zu wühlen.
Genauso wichtig: sie ist nicht noch ein All‑in‑One‑Ersatz für Git, CI, Cloud‑Konsolen oder Ticketing. Das Ziel ist, Reibung zu reduzieren, indem ihr das orchestriert, was ihr bereits nutzt — den richtigen Pfad zum einfachsten Pfad macht.
Die meisten Teams bauen eine IDP‑Web‑App, weil der Alltag verlangsamt wird durch:
Die Web‑App sollte das in wiederholbare Workflows und klare, durchsuchbare Informationen verwandeln.
Eine praktische IDP‑Web‑App hat üblicherweise drei Teile:
Das Platform‑Team besitzt typischerweise das Portal‑Produkt: Experience, APIs, Templates und Guardrails.
Product‑Teams besitzen ihre Services: Metadaten aktuell halten, Docs/Runbooks pflegen und die bereitgestellten Templates übernehmen. Ein gesundes Modell ist Shared Responsibility: das Platform‑Team baut die gepflasterte Straße; Product‑Teams fahren darauf und helfen, sie zu verbessern.
Eine IDP‑Web‑App wird daran gemessen, ob sie die richtigen Personen mit den richtigen „Happy Paths“ bedient. Bevor ihr Tools oder Architekturdiagramme auswählt, klärt, wer das Portal nutzt, was diese Personen erreichen wollen und wie ihr Fortschritt messen werdet.
Die meisten IDP‑Portale haben vier Kernzielgruppen:
Wenn ihr nicht in einem Satz beschreiben könnt, wie jede Gruppe profitiert, baut ihr wahrscheinlich ein Portal, das optional wirkt.
Wählt Journeys, die wöchentlich stattfinden (nicht jährlich) und macht sie wirklich End‑to‑End:
Schreibt jede Journey als: Trigger → Schritte → berührte Systeme → erwartetes Ergebnis → Fehlermodi. Das wird euer Product‑Backlog und eure Akzeptanzkriterien.
Gute Metriken hängen direkt mit eingesparter Zeit und entfernter Reibung zusammen:
Kurz und sichtbar halten:
V1‑Scope: „Ein Portal, das Entwicklern erlaubt, einen Service aus genehmigten Templates zu erstellen, ihn im Service‑Katalog mit einem Owner zu registrieren und Deploy‑ + Health‑Status anzuzeigen. Einschließlich grundlegender RBAC und Audit‑Logs. Schließt custom Dashboards, vollständigen CMDB‑Ersatz und maßgeschneiderte Workflows aus."
Diese Aussage ist euer Filter gegen Feature‑Creep und euer Roadmap‑Anker.
Ein internes Portal ist erfolgreich, wenn es ein schmerzhaftes Problem End‑to‑End löst und sich dann das Recht verdient, zu wachsen. Der schnellste Weg ist ein enges MVP, das in Wochen — nicht Quartalen — an ein echtes Team geliefert wird.
Startet mit drei Bausteinen:
Dieses MVP ist klein, liefert aber ein klares Ergebnis: „Ich finde meinen Service und kann eine wichtige Aktion durchführen, ohne in Slack zu fragen."
Wenn ihr UX und Workflow schnell validieren wollt, kann eine vibe‑coding‑Plattform wie Koder.ai nützlich sein, um die Portal‑UI und Orchestrierungsbildschirme aus einer geschriebenen Workflow‑Spec zu prototypen. Koder.ai kann eine React‑basierte Web‑App mit einem Go + PostgreSQL‑Backend generieren und unterstützt Source‑Code‑Export, sodass Teams schnell iterieren und dennoch langfristige Besitzrechte am Code behalten.
Um die Roadmap organisiert zu halten, gruppiert Arbeit in vier Buckets:
Diese Struktur verhindert ein Portal, das „nur Katalog“ oder „nur Automation“ ist, ohne Verbindung zwischen beidem.
Automatisiert nur, was mindestens eines der Kriterien erfüllt: (1) tritt wöchentlich auf, (2) ist fehleranfällig bei manueller Ausführung, (3) erfordert Multi‑Team‑Koordination. Alles andere kann ein gut kuratierter Link zum richtigen Tool mit klaren Anweisungen und Ownership sein.
Entwerft das Portal so, dass neue Workflows sich als zusätzliche „Aktionen“ auf einer Service‑ oder Environment‑Seite einhängen lassen. Wenn jedes neue Workflow ein Navigations‑Umdenken erfordert, stockt die Adoption. Behandelt Workflows wie Module: konsistente Eingaben, konsistenter Status, konsistente Historie — so fügt ihr mehr hinzu, ohne das mentale Modell zu ändern.
Eine praktische IDP‑Portal‑Architektur hält die User‑Experience simpel, während sie die „schmutzige“ Integrationsarbeit zuverlässig im Hintergrund erledigt. Ziel ist eine einzelne Web‑App für Entwickler – auch wenn Aktionen oft Git, CI/CD, Cloud‑Accounts, Ticketing und Kubernetes übergreifen.
Es gibt drei gängige Muster, die richtige Wahl hängt davon ab, wie schnell ihr liefern müsst und wie viele Teams das Portal erweitern werden:
Mindestens erwartet ihr diese Bausteine:
Entscheidet früh, was das Portal „besitzt“ vs. nur darstellt:
Integrationen scheitern aus normalen Gründen (Rate‑Limits, transient outages, partielle Erfolge). Designt für:
Euer Service‑Katalog ist die Quelle der Wahrheit dafür, was existiert, wer es besitzt und wie es in das restliche System passt. Ein klares Datenmodell verhindert „Mystery‑Services“, doppelte Einträge und gebrochene Automationen.
Einigt euch darauf, was ein „Service“ in eurer Organisation bedeutet. Für die meisten Teams ist es eine deploybare Einheit (API, Worker, Website) mit Lifecycle.
Modelliert mindestens folgende Felder:
Fügt praktikable Metadaten hinzu, die das Portal antreiben:
Behandelt Beziehungen als First‑Class, nicht nur als Textfelder:
primary_owner_team_id plus additional_owner_team_ids).Diese relationale Struktur ermöglicht Seiten wie „Alles, was Team X besitzt“ oder „Alle Services, die diese Datenbank nutzen".
Entscheidet früh über die kanonische ID, damit keine Duplikate nach Importen entstehen. Übliche Muster:
payments‑api) mit Unique‑Constraintgithub_org/repo) wenn Repos 1:1 mit Services sindDokumentiert Namensregeln (erlaubte Zeichen, Uniqueness, Rename‑Policy) und validiert sie bei der Erstellung.
Ein Katalog scheitert, wenn er stale wird. Wählt eine oder kombiniert:
service.created oder dependency.updated)Behaltet ein last_seen_at und data_source Feld pro Record, damit ihr Frische anzeigen und Konflikte debuggen könnt.
Wenn euer IDP‑Portal vertraut werden soll, braucht es drei zusammenwirkende Dinge: Authentication (Wer bist du?), Authorization (Was darfst du?) und Auditability (Was ist passiert und wer hat es getan?). Richtet das früh richtig ein, um späteren Rework zu vermeiden — besonders wenn das Portal Produktionsänderungen handhabt.
Die meisten Firmen haben Identity‑Infrastruktur. Nutzt sie.
Macht SSO via OIDC oder SAML zum Standard‑Login‑Weg und zieht Gruppenmitgliedschaften aus eurem IdP (Okta, Azure AD, Google Workspace usw.). Mapped dann Gruppen auf Portal‑Rollen und Team‑Membership.
Das vereinfacht Onboarding („einloggen und schon in den richtigen Teams sein“), vermeidet Passwortspeicherung und lässt IT globale Policies wie MFA und Session‑Timeouts durchsetzen.
Vermeidet ein vages „Admin vs Everyone“ Modell. Ein praktisches Set an Rollen ist:
Haltet Rollen klein und verständlich. Ihr könnt später erweitern, aber ein verwirrendes Modell senkt die Adoption.
RBAC ist nötig, aber nicht ausreichend. Das Portal braucht resource‑level permissions: Zugriff sollte auf ein Team, einen Service oder eine Environment eingeschränkt werden.
Beispiele:
Implementiert dies mit einem einfachen Policy‑Pattern: (Principal) can (Action) on (Resource) if (Condition). Startet mit Team/Service‑Scope und erweitert schrittweise.
Behandelt Audit‑Logs als Produkt‑Feature, nicht als Backend‑Detail. Das Portal sollte protokollieren:
Macht Audit‑Trails leicht zugänglich: auf der Service‑Seite, in einem Workflow‑„History“‑Tab und in einer Admin‑Ansicht für Compliance. Das beschleunigt Incident‑Reviews erheblich.
Gute IDP‑UX ist nicht auf Optik reduziert — es geht darum, die Reibung beim Shippen zu minimieren. Entwickler sollten schnell drei Fragen beantworten können: Was existiert? Was kann ich erstellen? Was braucht aktuell Aufmerksamkeit?
Statt Menüs nach Backend‑Systemen zu ordnen („Kubernetes“, „Jira“, „Terraform“), strukturiert das Portal um die Arbeit, die Entwickler tatsächlich tun:
Diese aufgabenorientierte Navigation erleichtert auch Onboarding: neue Kollegen müssen eure Toolchain nicht kennen, um loszulegen.
Jede Service‑Seite sollte deutlich zeigen:
Platziert dieses „Who owns this?“ Panel weit oben, nicht in einem Tab. Bei Incidents zählt jede Sekunde.
Schnelle Suche ist die Power‑Funktion des Portals. Unterstützt Filter, die Entwickler natürlich nutzen: Team, Lifecycle (experimental/production), Tier, Sprache, Plattform und „owned by me“. Fügt klare Statusindikatoren hinzu (healthy/degraded, SLO at risk, blocked by approval), sodass Nutzer Listen scannen und entscheiden können.
Fragt beim Erstellen nur nach dem, was jetzt wirklich nötig ist. Nutzt Templates („Golden Paths") und Defaults, um vermeidbare Fehler zu verhindern — Namenskonventionen, Logging/Monitoring‑Hooks und Standard‑CI‑Einstellungen sollten vorausgefüllt sein. Versteckt optionale Felder unter „Advanced options“, damit der Happy Path schnell bleibt.
Self‑Service ist der Punkt, an dem ein internes Portal Vertrauen verdient: Entwickler sollten häufige Aufgaben End‑to‑End ohne Ticket erledigen können, während Platform‑Teams Kontrolle über Sicherheit, Compliance und Kosten behalten.
Startet mit einer kleinen Menge Workflows, die häufig und friktionsbehaftet sind. Typische „erste vier“:
Diese Workflows sollten meinungsstark sein und euren Golden Path widerspiegeln, aber kontrollierte Wahlmöglichkeiten zulassen (Sprache/Runtime, Region, Tier, Datenklassifikation).
Behandelt jeden Workflow wie eine Produkt‑API. Ein klarer Contract macht Workflows wiederverwendbar, testbar und leichter integrierbar in eure Toolchain.
Ein praktischer Contract beinhaltet:
Haltet die UX fokussiert: zeigt nur die Inputs an, über die der Entwickler tatsächlich entscheiden kann, und leitet den Rest aus dem Service‑Katalog und der Policy ab.
Genehmigungen sind für bestimmte Aktionen unvermeidbar (Produktionszugriff, sensible Daten, Kostensteigerungen). Das Portal sollte Genehmigungen vorhersehbar machen:
Wichtig: Genehmigungen gehören in die Workflow‑Engine, nicht als manuelle Nebenkommunikation. Der Entwickler sollte Status, nächste Schritte und den Grund für die Genehmigung sehen.
Jeder Workflow‑Run sollte eine permanente Aufzeichnung liefern:
Diese Historie ist eure „Paper Trail“ und euer Support‑System: wenn etwas fehlschlägt, sehen Entwickler genau, wo und warum — oft lösen sie Probleme ohne Ticket. Es gibt Platform‑Teams außerdem Daten, um Templates zu verbessern und wiederkehrende Fehler zu erkennen.
Ein IDP‑Portal fühlt sich nur dann „real“ an, wenn es Systeme lesen und Aktionen in ihnen auslösen kann. Integrationen verwandeln einen Katalog‑Eintrag in etwas, das ihr deployen, beobachten und supporten könnt.
Die meisten Portale brauchen eine Basisausstattung an Verbindungen:
Seid explizit, welche Daten read‑only sind (z. B. Pipeline‑Status) und welche write (z. B. Deployment auslösen).
API‑first Integrationen sind leichter zu testen und zu verstehen: Auth, Schemas und Fehlerbehandlung lassen sich validieren.
Nutzt Webhooks für near‑real‑time Events (PR gemerged, Pipeline fertig). Nutzt scheduled sync für Systeme, die keine Push‑Events liefern oder wo Eventual‑Consistency ok ist (z. B. nächtlicher Import von Cloud‑Accounts).
Erstellt einen dünnen Connector/Integration‑Service, der vendor‑spezifische Details in einen stabilen internen Vertrag normalisiert (z. B. Repository, PipelineRun, Cluster). Das isoliert Änderungen beim Tool‑Wechsel und hält eure Portal‑API sauber.
Praktisches Pattern:
/deployments/123)Jede Integration sollte ein kurzes Runbook haben: wie „degraded“ aussieht, wie es in der UI dargestellt wird und was zu tun ist.
Beispiele:
Haltet diese Docs nahe am Produkt (z. B. /docs/integrations), damit Entwickler nicht raten müssen.
Euer IDP‑Portal ist nicht nur UI — es ist eine Orchestrierungsschicht, die CI/CD Jobs triggert, Cloud‑Ressourcen erstellt, den Service‑Katalog aktualisiert und Genehmigungen durchsetzt. Observability erlaubt schnelle Antworten auf: „Was ist passiert?“, „Wo ist es fehlgeschlagen?“, „Wer muss handeln?"
Instrumentiert jeden Workflow‑Run mit einer Correlation‑ID, die die Anfrage von der Portal‑UI über Backend‑APIs, Genehmigungschecks und externe Tools (Git, CI, Cloud, Ticketing) verfolgt. Fügt Request Tracing hinzu, sodass eine Ansicht den vollen Pfad und die Timings jedes Schritts zeigt.
Ergänzt Traces mit strukturierten Logs (JSON) mit Feldern: Workflow‑Name, Run‑ID, Step‑Name, Ziel‑Service, Environment, Actor und Outcome. So filtert ihr einfach nach „alle fehlgeschlagenen deploy‑template Runs" oder „alles, was Service X betrifft".
Basis‑Infra‑Metriken reichen nicht. Fügt Workflow‑Metriken hinzu, die echte Outcomes widerspiegeln:
Gebt Platform‑Teams Übersichtsseiten:
Verlinkt jeden Status zu Drill‑Down‑Details und den exakten Logs/Traces für den jeweiligen Run.
Setzt Alerts für gebrochene Integrationen (z. B. wiederholte 401/403), feststeckende Genehmigungen (kein Action für N Stunden) und Sync‑Fehler. Plant Daten‑Retention: hochfrequente Logs kürzer behalten, aber Audit‑Events länger für Compliance und Untersuchungen, mit klaren Zugriffsregeln und Exportoptionen.
Sicherheit in einem IDP‑Portal funktioniert am besten, wenn sie wie „Guardrails“ wirkt, nicht wie Schranken. Ziel ist, riskante Entscheidungen zu reduzieren, indem der sichere Pfad der einfachste ist — gleichzeitig Teams Autonomie lässt.
Governance sollte beim Request‑Moment passieren (neuer Service, Repo, Environment, Cloud‑Ressource). Behandelt jedes Formular und jeden API‑Call als untrusted Input.
Durchsetzt Standards in Code, nicht nur in Docs:
Das hält den Service‑Katalog sauber und macht Audits einfacher.
Ein Portal berührt oft Credentials (CI‑Tokens, Cloud‑Keys, API‑Keys). Behandelt Secrets wie radioaktiv:
Stellt außerdem sicher, dass Audit‑Logs erfassen, wer was wann getan hat — ohne Secret‑Werte zu protokollieren.
Konzentriert euch auf realistische Risiken:
Mildern durch signierte Webhook‑Verifikation, Least‑Privilege‑Rollen und strikte Trennung zwischen Read‑ und Change‑Operationen.
Führt Security‑Checks in CI für euren Portal‑Code und die generierten Templates aus (Linting, Policy‑Checks, Dependency‑Scanning). Plant regelmäßige Reviews von:
Governance ist nachhaltig, wenn sie routinemäßig, automatisiert und sichtbar ist — nicht ein Einmalprojekt.
Ein Entwicklerportal bringt nur Wert, wenn Teams es tatsächlich nutzen. Behandelt Rollout wie einen Produkt‑Launch: klein starten, schnell lernen, dann anhand von Evidenz skalieren.
Pilott mit 1–3 motivierten, repräsentativen Teams (ein „Greenfield“ Team, ein legacy‑schweres Team, eins mit strikteren Compliance‑Anforderungen). Beobachtet, wie sie reale Aufgaben erledigen — Service registrieren, Infrastruktur anfordern, Deploys triggern — und beseitigt Reibung sofort. Ziel ist nicht Feature‑Vollständigkeit, sondern zu beweisen, dass das Portal Zeit spart und Fehler reduziert.
Bietet Migrationsschritte, die in einen normalen Sprint passen. Beispiel:
Haltet „Day‑2“ Upgrades simpel: Teams schrittweise Metadaten hinzufügen und bespoke Scripts durch Portal‑Workflows ersetzen.
Schreibt prägnante Docs für die wichtigen Workflows: „Service registrieren“, „Datenbank anfordern“, „Deploy zurückrollen“. Fügt In‑Product‑Hilfe neben Formularfeldern hinzu und verlinkt zu /docs/portal und /support für tieferen Kontext. Behandelt Docs wie Code: versioniert, reviewt und prune sie.
Plant fortlaufende Ownership von Anfang an: jemand muss das Backlog triagieren, Connectoren zu externen Tools pflegen und Nutzer supporten, wenn Automationen fehlschlagen. Definiert SLAs für Portal‑Incidents, legt eine regelmäßige Cadence für Connector‑Updates fest und reviewt Audit‑Logs, um wiederkehrende Schmerzen und Policy‑Lücken zu erkennen.
Mit zunehmender Reife wollt ihr Funktionen wie Snapshots/Rollback für Portal‑Konfiguration, vorhersehbare Deployments und einfache Environment‑Promotion über Regionen hinweg. Wenn ihr schnell baut oder experimentiert, kann Koder.ai Teams helfen, interne Apps mit Planungsmodus, Deployment/Hosting und Code‑Export aufzusetzen — nützlich, um Portal‑Features zu pilotieren, bevor sie in langfristige Platform‑Komponenten überführt werden.
Eine IDP‑Web‑App ist ein internes Entwicklerportal, das eure bestehenden Tools (Git, CI/CD, Cloud‑Konsolen, Ticketing, Secrets) orchestriert, sodass Entwickler einem konsistenten „goldenen Pfad“ folgen können. Sie soll diese Systeme nicht ersetzen, sondern häufige Aufgaben auffindbar, standardisiert und als Self‑Service verfügbar machen.
Beginnt mit Problemen, die wöchentlich auftreten:
Wenn das Portal keinen häufigen Workflow End‑to‑End schneller oder sicherer macht, wirkt es optional und die Nutzung stagniert.
Haltet V1 klein, aber vollständig:
Schickt das an ein echtes Team innerhalb von Wochen und erweitert basierend auf Nutzung und Engpässen.
Behandle Journeys als Akzeptanzkriterien: Trigger → Schritte → berührte Systeme → erwartetes Ergebnis → Fehlermodi. Gute frühe Journeys sind:
Metriken, die Reibung messen:
Eine übliche Aufteilung ist:
Macht Ownership in der UI deutlich (Team, On‑Call, Eskalation) und stützt es mit Rechten, sodass Service‑Owner Einträge ohne Platform‑Team‑Tickets pflegen können.
Beginnt mit einer einfachen, erweiterbaren Form:
Haltet Git/IAM/CI/Cloud als Systeme of Record; das Portal speichert Anfragen und Historie.
Modelle den Service als erstklassige Entität mit:
Verwendet eine kanonische ID (Slug + UUID ist üblich), modelliert Beziehungen (service↔team, service↔resource) und trackt Frische mit Feldern wie und .
Setzt auf Unternehmensidentity:
Erfasst Audit‑Events für Workflow‑Eingaben (Secrets redigiert), Genehmigungen und resultierende Änderungen und zeigt diese Historie auf Service‑ und Workflow‑Seiten, damit Teams selbst debuggen können.
Macht Integrationen resilient:
Dokumentiert Fehlermodi in einem kompakten Runbook unter z. B. /docs/integrations, damit Entwickler wissen, was zu tun ist, wenn ein externes System ausfällt.
Wähle Metriken, die du aus Workflow‑Runs, Genehmigungen und Integrationen instrumentieren kannst — nicht nur aus Umfragen.
last_seen_atdata_source