Ressource: registry #
Zugriff auf die EULANDA-SQL-Registry - ausschließlich über die
cn_Reg*-Prozeduren der SQL-API (nie die Tabelle direkt), Subtrees über
den Performance-Pfad cn_RegBulkRead.
Härtung: Die Registry ist mächtig, deshalb gilt zusätzlich zu den
Scopes je API-Client eine Pfad-Präfix-Allowlist
(Set-XrestApiClient -RegistryReadPrefix/-RegistryWritePrefix): Lesen
braucht einen passenden Präfix, Schreiben einen Schreib-Präfix - ohne
Treffer 403 REGISTRY_PATH_FORBIDDEN. Verschlüsselte Werte (*.crypt)
liefert oder schreibt die API grundsätzlich nicht (403
REGISTRY_CRYPT_FORBIDDEN); in Subtree-Antworten fehlen sie.
Endpunkte #
| Methode | Pfad | Scope | Zweck |
|---|---|---|---|
| GET | /api/v1/registry/value?path=... | registry:read | Einzelnen Wert lesen |
| GET | /api/v1/registry/subtree?path=... | registry:read | Teilbaum in einem Roundtrip |
| PUT | /api/v1/registry/value | registry:write | Wert schreiben (Body: path, value, type) |
| DELETE | /api/v1/registry/value?path=... | registry:write | Wert löschen (nie Schlüssel) |
path ist der volle Registry-Pfad inklusive Wertname, type beim
Schreiben string (Default), int oder text (nvarchar(max)).
Client einrichten (Server-Seite) #
Set-XrestApiClient -Udl $udl -ClientId 'shop' `
-Scope ((Get-XrestApiClient -Udl $udl -ClientId 'shop').Scopes + 'registry:read', 'registry:write') `
-RegistryReadPrefix '\VENDOR\esol\MODULES\DMS' `
-RegistryWritePrefix '\USER\.ALLUSER\PlugIn\esol.MeinShop'
Beispiele #
Wert und Teilbaum lesen (Backslashes URL-kodieren: %5C):
$h = @{ Authorization = "Bearer $key" }
$p = [uri]::EscapeDataString('\VENDOR\esol\MODULES\DMS\BaseFolder')
Invoke-RestMethod "http://localhost:8100/api/v1/registry/value?path=$p" -Headers $h
$p = [uri]::EscapeDataString('\VENDOR\esol\MODULES\DMS')
Invoke-RestMethod "http://localhost:8100/api/v1/registry/subtree?path=$p" -Headers $h
curl.exe -H "Authorization: Bearer %KEY%" "http://localhost:8100/api/v1/registry/value?path=%5CVENDOR%5Cesol%5CMODULES%5CDMS%5CBaseFolder"
curl.exe -H "Authorization: Bearer %KEY%" "http://localhost:8100/api/v1/registry/subtree?path=%5CVENDOR%5Cesol%5CMODULES%5CDMS"
Wert schreiben und löschen:
$body = @{ path = '\USER\.ALLUSER\PlugIn\esol.MeinShop\Sync\LastRun'; value = '2026-07-18T12:00:00'; type = 'string' } | ConvertTo-Json
Invoke-RestMethod 'http://localhost:8100/api/v1/registry/value' -Method Put -Headers $h -ContentType 'application/json' -Body $body
$p = [uri]::EscapeDataString('\USER\.ALLUSER\PlugIn\esol.MeinShop\Sync\LastRun')
Invoke-RestMethod "http://localhost:8100/api/v1/registry/value?path=$p" -Method Delete -Headers $h
curl.exe -X PUT -H "Authorization: Bearer %KEY%" -H "Content-Type: application/json" -d "{ \"path\": \"\\\\USER\\\\.ALLUSER\\\\PlugIn\\\\esol.MeinShop\\\\Sync\\\\LastRun\", \"value\": \"2026-07-18T12:00:00\" }" "http://localhost:8100/api/v1/registry/value"
curl.exe -X DELETE -H "Authorization: Bearer %KEY%" "http://localhost:8100/api/v1/registry/value?path=%5CUSER%5C.ALLUSER%5CPlugIn%5Cesol.MeinShop%5CSync%5CLastRun"
Fehlercodes dieser Ressource #
| HTTP | Code | Bedeutung |
|---|---|---|
| 403 | REGISTRY_PATH_FORBIDDEN | Pfad außerhalb der Allowlist des Clients |
| 403 | REGISTRY_CRYPT_FORBIDDEN | *.crypt-Werte sind über die API gesperrt |
| 404 | REGISTRY_VALUE_NOT_FOUND | Wert existiert nicht |
| 400 | VALIDATION_QUERY_INVALID | Pfad-Syntax ungültig |