SQL-Registry
Zuletzt geändert: 18.07.2026 15:19

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 #

MethodePfadScopeZweck
GET/api/v1/registry/value?path=...registry:readEinzelnen Wert lesen
GET/api/v1/registry/subtree?path=...registry:readTeilbaum in einem Roundtrip
PUT/api/v1/registry/valueregistry:writeWert schreiben (Body: path, value, type)
DELETE/api/v1/registry/value?path=...registry:writeWert 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 #

HTTPCodeBedeutung
403REGISTRY_PATH_FORBIDDENPfad außerhalb der Allowlist des Clients
403REGISTRY_CRYPT_FORBIDDEN*.crypt-Werte sind über die API gesperrt
404REGISTRY_VALUE_NOT_FOUNDWert existiert nicht
400VALIDATION_QUERY_INVALIDPfad-Syntax ungültig