Solutions2Share
Trust Center

Policy Enforcer

Policy Enforcer überwacht die von Teams Manager verwalteten Microsoft-365-Gruppen und Teams, erkennt Änderungen, die gegen Ihre Governance-Richtlinien verstoßen, und behebt sie automatisch oder leitet sie in Microsoft Teams an eine prüfende Person weiter. Die Anwendung liest Änderungsereignisse aus dem Verzeichnis-Audit-Protokoll von Microsoft Entra über Microsoft Graph, gleicht sie mit den in Teams Manager definierten Richtlinien ab und stellt — nur dort, wo ein Administrator eine automatische Behebung konfiguriert hat — den letzten bekannten regelkonformen Wert im Tenant des Kunden wieder her. Die gesamte Verarbeitung läuft in von Solutions2Share betriebenen Azure-Diensten in der EU.

Datenverwaltungspraktiken

Alle Daten werden im Auftrag des Kunden-Tenants verarbeitet und pro Tenant isoliert (siehe Architektur- und Flussdiagramm). Policy Enforcer ist eine Erweiterung von Teams Manager: Richtliniendefinitionen und verwaltete Bereiche werden ausschließlich lesend aus Teams Manager übernommen; Policy Enforcer schreibt nie in Teams Manager. Alle Dienste und Datenspeicher von Policy Enforcer werden in Microsoft-Azure-Rechenzentren betrieben, die Solutions2Share in der Region Germany West Central (EU) nutzt. Die Anmeldung, Microsoft Graph und der Azure Bot Service, der Teams-Nachrichten zustellt, sind globale Microsoft-365-/Azure-Dienste.

Policy Enforcer liest keine Chat- oder Kanalnachrichten, keine E-Mails und keine Dokumentinhalte.

Die Anwendung greift auf folgende Datentypen zu, verarbeitet und speichert sie:

Governance-Konfiguration

Richtliniendefinitionen und verwaltete Bereiche (Microsoft-365-Gruppen-ID, Anzeigename, Vorlagenname und Teams-Manager-Metadatenwerte) aus der Teams-Manager-Instanz des Kunden sowie die Liste der Teams-Manager-Administratoren (Objekt-ID, UPN oder E-Mail-Adresse), anhand derer festgelegt wird, wer Policy Enforcer verwalten darf. Speicherung & Aufbewahrung: Azure SQL Database als Snapshot, der alle 30 Minuten aktualisiert wird; Aufbewahrung für die Laufzeit des Abonnements.

Gruppen-Änderungsereignisse und Verstöße

Gruppenverwaltungsereignisse aus dem Verzeichnis-Audit-Protokoll, ausschließlich für verwaltete Bereiche: die geänderte Eigenschaft (Team-Name, Sichtbarkeit, Vertraulichkeitsbezeichnung, Besitzer, Mitglieder), ihr alter und neuer Wert sowie die auslösende Person (UPN bzw. bei App-Änderungen der Anwendungsname). Ein erkannter Richtlinienverstoß wird zusammen mit seinem Bearbeitungsstatus, der prüfenden Person (Objekt-ID) und einem optionalen Kommentar gespeichert. Speicherung & Aufbewahrung: Azure SQL Database für die Laufzeit des Abonnements.

Regelkonforme Ausgangswerte

Der letzte regelkonforme Wert jeder überwachten Eigenschaft pro verwaltetem Bereich (z. B. der genehmigte Team-Name oder die Vertraulichkeitsbezeichnung), um ihn nach einem Verstoß wiederherstellen zu können. Speicherung & Aufbewahrung: Azure SQL Database für die Laufzeit des Abonnements.

Planner- und OneNote-Namen

Die Titel von Planner-Plänen und die Namen von OneNote-Notizbüchern verwalteter Gruppen. Aufgaben und Notizbuchseiten werden nicht gelesen. Speicherung & Aufbewahrung: Gespeichert werden nur geänderte Namen als Teil eines Verstoßes (siehe oben).

Verzeichnis-Profildaten (bei Bedarf gelesen)

Anzeigename, E-Mail-Adresse, UPN und Profilbild von Benutzern sowie Besitzer und Mitglieder verwalteter Gruppen — bei Bedarf gelesen, um Namen in der App und in Benachrichtigungen anzuzeigen und zu ermitteln, wer einen Verstoß prüfen muss. Speicherung & Aufbewahrung: keine Speicherung; Profilbilder werden höchstens eine Stunde im Arbeitsspeicher zwischengespeichert.

Daten für Microsoft-Teams-Benachrichtigungen

Für den Versand von Adaptive-Card-Benachrichtigungen speichert Policy Enforcer die Teams-Konversationsreferenz des Policy-Enforcer-Bots pro Empfänger sowie einen Zustellnachweis pro Karte (Objekt-ID des Empfängers, Teams-Nachrichten-ID, Zustellstatus). Speicherung & Aufbewahrung: Azure SQL Database für die Laufzeit des Abonnements.

Tenant- und Dienstkontodaten

Tenant-ID und -Name, Tenant-Einstellungen und — falls verbunden — die Objekt-ID des Dienstkontos für delegierte Vorgänge (siehe Microsoft Graph). Das Refresh-Token des Dienstkontos wird auf Anwendungsebene mit AES-256-GCM verschlüsselt und an die Tenant-ID gebunden; der Schlüssel liegt in Azure Key Vault. Speicherung & Aufbewahrung: Azure SQL Database für die Laufzeit des Abonnements.

Diagnosetelemetrie

Anfragen, Abhängigkeitsaufrufe und Fehler aus Web-UI, API und Hintergrundprozessen werden an Azure Application Insights / Log Analytics in derselben Region gesendet. In der Telemetrie von API und Web-UI werden E-Mail-Adressen, Objekt-IDs und Authorization-Header vor dem Versand entfernt. Erweitertes Diagnoseprotokoll von Microsoft-Graph-Anfrage- und -Antworttexten (maximal 16 KB, ohne Authorization-Header) ist standardmäßig deaktiviert und wird nur zur Fehleranalyse pro Tenant aktiviert. Speicherung & Aufbewahrung: 30 Tage.

Änderungserkennung ab Onboarding. Policy Enforcer bewertet Änderungen ab dem Zeitpunkt, an dem ein Tenant eingerichtet wird; historische Änderungen vor dem Onboarding werden weder durchsucht noch gemeldet.

Microsoft Graph

Policy Enforcer verwendet eine einzige mandantenfähige Microsoft-Entra-App-Registrierung. Ein Tenant-Administrator erteilt die Administratorzustimmung einmalig beim Onboarding. Erkennung und die meisten Behebungen laufen im Hintergrund mit Anwendungsberechtigungen. Einige wenige Vorgänge, die Microsoft Graph nicht mit Anwendungsberechtigungen unterstützt (Ändern der Vertraulichkeitsbezeichnung einer Gruppe, Umbenennen eines Planner-Plans, Lesen und Umbenennen von OneNote-Notizbüchern), laufen mit delegierten Berechtigungen eines dedizierten Dienstkontos, das ein Tenant-Administrator bei der Einrichtung verbindet. Abgesehen von der Installation der eigenen Teams-App für eine prüfende Person, die eine Benachrichtigung erhalten soll, schreibt Policy Enforcer nur in den Tenant, um eine verwaltete Gruppe nach einem Richtlinienverstoß auf ihren letzten regelkonformen Zustand zurückzusetzen — es löscht niemals Gruppen, Teams, Benutzer, Dateien oder Inhalte. Die Scope-Namen sind die Microsoft-Graph-Berechtigungsnamen, wie sie im Zustimmungsdialog angezeigt werden, und werden als Code dargestellt.

ScopeBeschreibungBegründungAdmin-Zustimmung erforderlichTyp
AuditLog.Read.AllAlle Audit-Protokolldaten lesen.Gruppenverwaltungsereignisse aus dem Verzeichnis-Audit-Protokoll lesen, um Richtlinienverstöße zu erkennen.JaAnwendung
Group.ReadWrite.AllAlle Gruppen lesen und schreiben.Verwaltete Gruppen lesen; nach einem Verstoß den Gruppennamen wiederherstellen oder die Sichtbarkeit auf privat zurücksetzen.JaAnwendung
GroupMember.ReadWrite.AllAlle Gruppenmitgliedschaften lesen und schreiben.Besitzer und Mitglieder lesen; einen entfernten Pflicht-Besitzer bzw. ein Pflicht-Mitglied wieder hinzufügen.JaAnwendung
User.Read.AllVollständige Profile aller Benutzer lesen.Benutzernamen in der App und in Benachrichtigungen anzeigen; die für einen verwalteten Bereich zuständigen prüfenden Personen ermitteln.JaAnwendung
SensitivityLabels.Read.AllVertraulichkeitsbezeichnungen lesen.Namen statt IDs von Vertraulichkeitsbezeichnungen in Verstößen und Benachrichtigungen anzeigen.JaAnwendung
InformationProtectionPolicy.Read.AllAlle veröffentlichten Bezeichnungen und Bezeichnungsrichtlinien der Organisation lesen.Die genehmigte Vertraulichkeitsbezeichnung vor der Wiederherstellung nachschlagen.JaAnwendung
Tasks.Read.AllAlle Aufgaben lesen.Umbenannte Planner-Pläne in verwalteten Gruppen erkennen (nur Plantitel).JaAnwendung
AppCatalog.Read.AllAlle App-Kataloge lesen.Die Policy-Enforcer-App im Teams-App-Katalog des Tenants finden.JaAnwendung
TeamsAppInstallation.ReadWriteSelfForUser.AllDer Teams-App erlauben, sich selbst für alle Benutzer zu verwalten.Die Policy-Enforcer-App für eine prüfende Person installieren, damit der Bot eine Benachrichtigung zustellen kann. Beschränkt auf Policy Enforcer selbst.JaAnwendung
openid, profile, email, offline_access, User.ReadAnmelden und grundlegendes Benutzerprofil lesen; Zugriff aufrechterhalten.Benutzer anmelden (Teams-Single-Sign-On) und das Dienstkonto verbunden halten.NeinDelegiert
Group.ReadWrite.AllAlle Gruppen lesen und schreiben.Die Vertraulichkeitsbezeichnung einer Gruppe wiederherstellen (Dienstkonto; mit Anwendungsberechtigungen nicht unterstützt).JaDelegiert
Tasks.ReadWriteAufgaben und Pläne des Benutzers erstellen, lesen, aktualisieren und löschen.Den Titel eines umbenannten Planner-Plans wiederherstellen (Dienstkonto).NeinDelegiert
Notes.Read.AllAlle OneNote-Notizbücher lesen, auf die der Benutzer zugreifen kann.Umbenannte OneNote-Notizbücher in verwalteten Gruppen erkennen (nur Notizbuchnamen; Dienstkonto).NeinDelegiert
Files.ReadWrite.AllVollzugriff auf alle Dateien, auf die der Benutzer zugreifen kann.Den Namen eines umbenannten OneNote-Notizbuchs wiederherstellen, das als Datei gespeichert ist (Dienstkonto; nur Umbenennen, kein Zugriff auf Inhalte).NeinDelegiert

Vollständige Beschreibungen aller Berechtigungen sind in der Microsoft Graph-Berechtigungsreferenz veröffentlicht.

SharePoint-/weitere Workload-Berechtigungen

Nicht zutreffend. Policy Enforcer greift ausschließlich über Microsoft Graph auf Microsoft 365 zu. Die SharePoint-REST-API, Exchange Online, die Office 365 Management API oder andere Workload-APIs werden nicht verwendet, und es werden keine Berechtigungen dafür angefordert.

Microsoft Teams-Apps: Sicherheit und Compliance

Policy Enforcer wird als Microsoft Teams-App mit einer persönlichen Registerkarte (der Web-UI) und einem persönlichen Bot für Adaptive-Card-Benachrichtigungen bereitgestellt. Das App-Manifest fordert ausschließlich die Geräteberechtigungen identity und messageTeamMembers an, deklariert keine ressourcenspezifischen Zustimmungen (RSC), keine Messaging-Erweiterungen und keine Team- oder Gruppenchat-Bereiche und führt nur den Policy-Enforcer-Host als gültige Domain. Benutzer melden sich per Teams-Single-Sign-On an.

Der Bot sendet:

  • Verstoßbenachrichtigungen — eine 1:1-Adaptive-Card an die Besitzer der betroffenen Gruppe und/oder die Policy-Enforcer-Administratoren mit einer Schaltfläche, die den Prüfdialog öffnet. Die Karte wird aktualisiert, sobald der Verstoß behoben oder verworfen wurde.
  • Behebungshinweise — nach der Behebung bestimmter Verstöße einen Hinweis im Kanal „Allgemein“ des betroffenen Teams, den der Bot über den Teams-Kanal veröffentlicht, nicht über einen Schreibzugriff per Microsoft Graph.
  • Antworten — eine Willkommensnachricht bei der Installation sowie kurze Hilfe-/Status-Antworten, wenn ein Benutzer dem Bot schreibt.

Der Bot liest den Text an ihn gesendeter Nachrichten nur, um diese Befehle zu erkennen; der Nachrichtentext wird nicht gespeichert.

Architektur- und Flussdiagramm

Azure-Architektur für Policy Enforcer in drei Spalten. Links der Microsoft-365-Tenant des Kunden: der Microsoft-Teams-Client mit der persönlichen Registerkarte und dem Bot von Policy Enforcer, Microsoft Entra ID (App-Registrierung, Anmeldung, Administratorzustimmung), Microsoft Graph (Verzeichnis-Audit-Protokoll, Gruppen, Besitzer und Mitglieder, Vertraulichkeitsbezeichnungen, Planner-Plantitel, OneNote-Notizbuchnamen, bedingte Wiederherstellungen) und der Azure Bot Service. In der Mitte die Azure-Umgebung von Solutions2Share in Germany West Central: App Service (Web-UI und API, Bot-Endpunkt), Function App (Timer- und Queue-Worker), Service Bus, Azure SQL Database, Key Vault, Storage-Konto sowie Application Insights mit Log Analytics. Rechts verbundene Dienste: Teams Manager (schreibgeschützt), und das Solutions2Share License Management Center. Nummerierte orangefarbene Verbindungen zeigen (1) den Aufruf von App Service aus dem Teams-Client, (2) die Anmeldung bei Microsoft Entra ID, (3) die schreibgeschützte Synchronisierung aus Teams Manager, (4) das Lesen und Wiederherstellen über Microsoft Graph durch die Function App und (5) die Zustellung von Karten über den Azure Bot Service zurück nach Teams.

Datenfluss: (1) Ein Benutzer öffnet die Policy-Enforcer-App in Microsoft Teams, die die Web-UI aus App Service lädt und dessen API aufruft; (2) der Benutzer wird per Teams-Single-Sign-On angemeldet, und jede API-Anfrage trägt ein Microsoft-Entra-Token, das die API prüft (Signatur, Aussteller, Zielgruppe, Tenant); (3) alle 30 Minuten werden Richtliniendefinitionen und verwaltete Bereiche schreibgeschützt aus Teams Manager synchronisiert, über ein schreibgeschütztes Datenbankkonto, dessen Zugriff auf die Netzwerkadressen des Policy-Enforcer-Dienstes beschränkt ist; (4) alle 10 Minuten liest die Function App neue Gruppenverwaltungsereignisse aus dem Verzeichnis-Audit-Protokoll über Microsoft Graph, bewertet sie über Service-Bus-Warteschlangen anhand der Richtlinien, speichert erkannte Verstöße in Azure SQL und stellt — sofern der Administrator die automatische Behebung gewählt hat — den letzten regelkonformen Wert über Microsoft Graph wieder her, nachdem geprüft wurde, dass sich der Wert in der Zwischenzeit nicht erneut geändert hat; (5) Policy Enforcer sendet oder aktualisiert eine Adaptive Card über den Azure Bot Service, und die prüfende Person übernimmt im Prüfdialog eine Lösung oder verwirft den Verstoß. Alle Compute-Komponenten senden Telemetrie an Application Insights und Log Analytics.

Policy Enforcer verwendet drei bewusst getrennte Authentifizierungsabläufe auf einer einzigen mandantenfähigen Microsoft-Entra-App-Registrierung:

  1. Anmeldung (delegiert). Benutzer melden sich per Teams-Single-Sign-On mit ihrem Microsoft-Geschäftskonto an. Die API akzeptiert nur für die Policy-Enforcer-App ausgestellte Token und leitet den Tenant aus dem geprüften Token ab.
  2. Hintergrundverarbeitung (Anwendung). Nach der Administratorzustimmung beziehen Hintergrundprozesse Anwendungstoken für den Tenant des Kunden. Die Anmeldeinformationen der App liegen in Azure Key Vault und werden nie an den Browser übermittelt; der Browser erhält niemals ein Microsoft-Graph-Token.
  3. Dienstkonto (delegiert, optional). Für die wenigen unter Microsoft Graph aufgeführten Vorgänge verbindet ein Tenant-Administrator ein dediziertes Dienstkonto. Dessen Refresh-Token wird mit AES-256-GCM verschlüsselt und an den Tenant gebunden; Token werden pro Vorgang mit dem minimal nötigen Scope angefordert.

Die Tenant-Isolation wird durch die in jedem Token enthaltene Tenant-ID erzwungen: Jede Anfrage ist auf den Tenant ihres geprüften Tokens beschränkt, jeder tenantbezogene Datensatz trägt diese Tenant-ID, und Graph-Token werden pro Tenant ausgestellt. Innerhalb eines Tenants ist der Zugriff rollenbasiert: Nur Teams-Manager-Administratoren können Policy Enforcer konfigurieren, und Gruppenbesitzer können — sofern aktiviert — Verstöße in ihren eigenen Bereichen prüfen. Alle Geheimnisse liegen in Azure Key Vault und werden von den Diensten über ihre systemseitig zugewiesenen verwalteten Identitäten gelesen; alle Endpunkte sind ausschließlich per HTTPS erreichbar, und die Datenbankverbindung ist verschlüsselt.

Ressourcen-Endpunkte

Domains, die aus dem Netzwerk bzw. Browser des Kunden erreichbar sein müssen.

NameKommentar
app-pe-prod.azurewebsites.netDie Web-UI von Policy Enforcer, ihre API und Echtzeit-Aktualisierungen (WebSocket), geladen innerhalb von Microsoft Teams.
login.microsoftonline.comMicrosoft Entra ID — Anmeldung, Administratorzustimmung und OAuth-Token-Ausstellung (Browser und Backend).
*.applicationinsights.azure.comAzure Application Insights — Diagnosetelemetrie der Web-UI (Browser).

Ausgehende Backend-Verbindungen (informativ)

Ausgehende Aufrufe des von Solutions2Share betriebenen Backends. Diese sind kundenseitig nicht konfigurierbar und werden aus Transparenzgründen aufgeführt.

NameKommentar
graph.microsoft.comMicrosoft Graph — Lesen des Audit-Protokolls, Lesen von Gruppen und Wiederherstellungen nach Verstößen.
smba.trafficmanager.netAzure Bot Service (Bot-Framework-Connector für Microsoft Teams) — Zustellung von Teams-Benachrichtigungen.
s2slicensing.azurewebsites.netSolutions2Share License Management Center — Validierung der Produktberechtigung (nur Tenant-ID und Produktname).
*.database.windows.netAzure SQL Database — Datenspeicher von Policy Enforcer und schreibgeschützte Teams-Manager-Verbindung.
*.servicebus.windows.netAzure Service Bus — Warteschlangen für die Hintergrundverarbeitung.
*.vault.azure.netAzure Key Vault — Geheimnisse und Schlüssel.
*.blob.core.windows.net, *.queue.core.windows.net, *.table.core.windows.netAzure Storage — Laufzeitspeicher der Hintergrundprozesse.

Abhängigkeiten

Von Policy Enforcer verwendete Drittanbieter-Bibliotheken. Die Versionen entsprechen dem aktuellen Release.

Server

NameVersionUrlLicense
@azure/functions4.16.0npmjs.com/package/@azure/functionsMIT
@azure/identity4.13.1npmjs.com/package/@azure/identityMIT
@azure/keyvault-secrets4.11.2npmjs.com/package/@azure/keyvault-secretsMIT
@azure/monitor-opentelemetry1.18.0npmjs.com/package/@azure/monitor-opentelemetryMIT
@azure/msal-node5.2.2 / 2.16.3npmjs.com/package/@azure/msal-nodeMIT
@azure/service-bus7.9.5npmjs.com/package/@azure/service-busMIT
@azure/storage-blob12.31.0npmjs.com/package/@azure/storage-blobMIT
@microsoft/microsoft-graph-client3.0.7npmjs.com/package/@microsoft/microsoft-graph-clientMIT
@nestjs/axios4.0.1npmjs.com/package/@nestjs/axiosMIT
@nestjs/cache-manager3.1.2npmjs.com/package/@nestjs/cache-managerMIT
@nestjs/common11.1.24npmjs.com/package/@nestjs/commonMIT
@nestjs/config4.0.4npmjs.com/package/@nestjs/configMIT
@nestjs/core11.1.24npmjs.com/package/@nestjs/coreMIT
@nestjs/platform-express11.1.24npmjs.com/package/@nestjs/platform-expressMIT
@nestjs/platform-socket.io11.1.24npmjs.com/package/@nestjs/platform-socket.ioMIT
@nestjs/serve-static5.0.5npmjs.com/package/@nestjs/serve-staticMIT
@nestjs/websockets11.1.24npmjs.com/package/@nestjs/websocketsMIT
@opentelemetry/api1.9.1npmjs.com/package/@opentelemetry/apiApache-2.0
@opentelemetry/api-logs0.208.0npmjs.com/package/@opentelemetry/api-logsApache-2.0
@prisma/adapter-mssql7.8.0npmjs.com/package/@prisma/adapter-mssqlApache-2.0
@prisma/client7.8.0npmjs.com/package/@prisma/clientApache-2.0
@sendgrid/mail8.1.6npmjs.com/package/@sendgrid/mailMIT
async-mutex0.5.0npmjs.com/package/async-mutexMIT
axios1.16.1npmjs.com/package/axiosMIT
botbuilder4.23.3npmjs.com/package/botbuilderMIT
botframework-connector4.23.3npmjs.com/package/botframework-connectorMIT
cache-manager7.2.8npmjs.com/package/cache-managerMIT
class-transformer0.5.1npmjs.com/package/class-transformerMIT
class-validator0.15.1npmjs.com/package/class-validatorMIT
dotenv17.4.2npmjs.com/package/dotenvBSD-2-Clause
durable-functions3.3.1npmjs.com/package/durable-functionsMIT
http-proxy-middleware3.0.5npmjs.com/package/http-proxy-middlewareMIT
jose6.2.3npmjs.com/package/joseMIT
mssql12.5.4npmjs.com/package/mssqlMIT
prisma7.8.0npmjs.com/package/prismaApache-2.0
reflect-metadata0.2.2npmjs.com/package/reflect-metadataApache-2.0
rxjs7.8.2npmjs.com/package/rxjsApache-2.0
socket.io4.8.3npmjs.com/package/socket.ioMIT

Client-Pakete

NameVersionUrlLicense
@azure/msal-browser5.11.0npmjs.com/package/@azure/msal-browserMIT
@fluentui/react-components9.73.8npmjs.com/package/@fluentui/react-componentsMIT
@fluentui/react-icons2.0.328npmjs.com/package/@fluentui/react-iconsMIT
@microsoft/applicationinsights-web3.4.1npmjs.com/package/@microsoft/applicationinsights-webMIT
@microsoft/teams-js2.53.0npmjs.com/package/@microsoft/teams-jsMIT
@reduxjs/toolkit2.12.0npmjs.com/package/@reduxjs/toolkitMIT
@tanstack/react-query5.100.14npmjs.com/package/@tanstack/react-queryMIT
axios1.16.1npmjs.com/package/axiosMIT
i18next26.2.0npmjs.com/package/i18nextMIT
i18next-browser-languagedetector8.2.1npmjs.com/package/i18next-browser-languagedetectorMIT
react19.2.5npmjs.com/package/reactMIT
react-dom19.2.5npmjs.com/package/react-domMIT
react-i18next17.0.8npmjs.com/package/react-i18nextMIT
react-image-crop11.0.10npmjs.com/package/react-image-cropISC
react-pdf10.4.1npmjs.com/package/react-pdfMIT
react-redux9.3.0npmjs.com/package/react-reduxMIT
react-router-dom7.15.1npmjs.com/package/react-router-domMIT
socket.io-client4.8.3npmjs.com/package/socket.io-clientMIT

Build- und Test-Tooling

Wird ausschließlich zum Bauen und Testen der App verwendet; wird weder an den Browser ausgeliefert noch auf dem Server bereitgestellt.

NameVersionUrlLicense
@rsbuild/core1.7.5npmjs.com/package/@rsbuild/coreMIT
@rsbuild/plugin-react1.4.6npmjs.com/package/@rsbuild/plugin-reactMIT
@nestjs/cli11.0.21npmjs.com/package/@nestjs/cliMIT
@nestjs/testing11.1.24npmjs.com/package/@nestjs/testingMIT
typescript5.9.3npmjs.com/package/typescriptApache-2.0
@typescript/native-preview7.0.0-devnpmjs.com/package/@typescript/native-previewApache-2.0
ts-node10.9.2npmjs.com/package/ts-nodeMIT
tsx4.22.3npmjs.com/package/tsxMIT
tailwindcss4.3.0npmjs.com/package/tailwindcssMIT
@tailwindcss/postcss4.3.0npmjs.com/package/@tailwindcss/postcssMIT
jest30.4.2 / 29.7.0npmjs.com/package/jestMIT
ts-jest29.4.11npmjs.com/package/ts-jestMIT
jest-environment-jsdom30.4.1npmjs.com/package/jest-environment-jsdomMIT
jest-axe10.0.0npmjs.com/package/jest-axeMIT
@testing-library/react16.3.2npmjs.com/package/@testing-library/reactMIT
@testing-library/jest-dom6.9.1npmjs.com/package/@testing-library/jest-domMIT
@testing-library/user-event14.6.1npmjs.com/package/@testing-library/user-eventMIT
msw2.14.6npmjs.com/package/mswMIT
undici6.27.0npmjs.com/package/undiciMIT
supertest7.2.2npmjs.com/package/supertestMIT
@playwright/test1.61.0npmjs.com/package/@playwright/testApache-2.0
@axe-core/playwright4.12.1npmjs.com/package/@axe-core/playwrightMPL-2.0
eslint9.39.4npmjs.com/package/eslintMIT
typescript-eslint8.59.4npmjs.com/package/typescript-eslintMIT
prettier3.8.3npmjs.com/package/prettierMIT

Policy Enforcer verwendet keine Analyse- oder Werbe-Tracker von Drittanbietern. Das Backend von Policy Enforcer übermittelt Kundendaten ausschließlich an Microsoft-/Azure-Dienste und das Solutions2Share License Management Center.

Antwort nicht gefunden?Kontaktiere uns