Vercel Flags lassen sich jetzt ohne SDK-Keys projektübergreifend nutzen

Vercel hat Project Connections eingeführt. Mit dieser Funktion kann eine Anwendung Feature Flags auswerten, die in einem anderen Vercel-Projekt desselben Teams definiert sind, ohne dass SDK-Keys verwaltet werden müssen. Bislang mussten Teams einen Server-SDK-Key in eine Umgebungsvariable kopieren und von Hand pflegen.
- Mit Project Connections kann ein Vercel-Projekt Flags aus einem anderen Projekt desselben Teams auswerten, ohne SDK-Keys zu verwenden.
- Verbundene Projekte authentifizieren sich über die Identität ihres Deployments; in der lokalen Entwicklung dient das OIDC-Token aus vercel env pull.
- Der Zugriff ist auf alle Umgebungen schreibgeschützt, und das Deployment der konsumierenden Anwendung bestimmt die Flag-Umgebung.
- Verbindungen werden auf der Connections-Seite im Flags-Bereich oder per vercel flags connections verwaltet und lassen sich ohne erneutes Deployment widerrufen.
- In allen Tarifen verfügbar; erforderlich sind @flags-sdk/vercel 1.6.0, @vercel/flags-core 1.11.0 und Vercel CLI 63.0.0 oder neuer.
So funktionieren Project Connections
Mit Project Connections kann ein Projekt Flags lesen, die in einem anderen Projekt desselben Teams liegen. Laut Vercel authentifizieren sich verbundene Projekte über die Identität ihres Deployments. Entwickler müssen daher kein gemeinsames Secret speichern oder rotieren.
Für die lokale Entwicklung holt der Befehl vercel env pull das OIDC-Token des Projekts. Verbindungen gewähren Lesezugriff auf alle Umgebungen, wobei das Deployment der konsumierenden Anwendung bestimmt, welche Flag-Umgebung ausgewertet wird. Ein Produktions-Deployment wertet beispielsweise die Produktions-Flags aus.
Vercel zufolge lässt sich der Zugriff widerrufen, ohne die konsumierende Anwendung neu zu deployen.
Verbindungen verwalten
Verbindungen werden auf der Seite „Connections“ im Bereich Flags eines Projekts verwaltet oder über die CLI mit vercel flags connections. Die Seite zeigt zwei Dinge: welche Projekte die Flags des aktuellen Projekts lesen dürfen und aus welchen Projekten das aktuelle Projekt Flags liest. Außerdem lassen sich dort Verbindungen hinzufügen oder entfernen.
In der konsumierenden Anwendung erstellen Entwickler einen Adapter mit der ID des Quellprojekts. Vercels Beispiel nutzt createVercelAdapter aus @flags-sdk/vercel, übergibt eine projectId und hängt den Adapter anschließend an eine Flag-Definition. Im Beispiel wird ein boolesches Flag mit dem Schlüssel new-checkout und dem Standardwert false gegen das verbundene Quellprojekt ausgewertet.
Verfügbarkeit und Voraussetzungen
Project Connections sind in allen Tarifen verfügbar. Für die Funktion gelten bestimmte Versionsanforderungen:
- @flags-sdk/vercel ab Version 1.6.0 oder @vercel/flags-core ab Version 1.11.0, wenn die Core-Bibliothek direkt verwendet wird.
- Vercel CLI ab Version 63.0.0, um Verbindungen über die Kommandozeile zu verwalten.
Weitere Details finden sich in der Dokumentation zu Vercel Flags.
Was das für Teams bedeutet
Teams, die mehrere Vercel-Projekte betreiben und Flags an einer zentralen Stelle definieren möchten, können diese Flags nun andernorts wiederverwenden, ohne pro konsumierender Anwendung einen Server-SDK-Key handhaben zu müssen. Da die Authentifizierung auf der Identität des Deployments beruht und der Zugriff ohne erneutes Deployment entzogen werden kann, verringert sich der manuelle Aufwand bei der Key-Verwaltung, den der bisherige Ansatz erforderte. Der schreibgeschützte Zugriff bedeutet laut der Beschreibung des Zugriffsmodells in der Quelle zudem, dass ein konsumierendes Projekt Flags zwar auswerten, aber nicht ändern kann.


