API-Referenz
Die API ist über die ECM()-Factory zugänglich und in folgende Namespaces unterteilt:
| Namespace | Beschreibung | Referenz |
|---|---|---|
|
Ordner-, Register- und Dokumentenoperationen |
|
|
Benutzer- und Gruppenverwaltung |
|
|
Server-Metadaten und Objektdefinitionen |
|
|
Direkter SQL-Zugriff über ADO |
1. ECM-Factory
from ecmind_blue_client.ecm import ECM
from ecmind_blue_client.pool import SyncPoolClient
client = SyncPoolClient(servers="<host>:4000:1", username="<username>", password="<password>")
ecm = ECM(client)
Die ECM()-Funktion ist überladen: Ein SyncPoolClient liefert ECMSync, ein AsyncPoolClient liefert ECMAsync.
2. impersonate()
ecm.impersonate(
username: str | None = None,
*,
user_guid: str | None = None,
user_id: int | None = None,
) -> ECMSync | ECMAsync
Gibt eine neue ECM-Instanz zurück, die alle Anfragen mit dem angegebenen Benutzerkontext ausführt. Der Zielbenutzer kann auf drei Wege angegeben werden, jeder davon über einen eigenen Serverparameter:
| Argument | Serverparameter |
|---|---|
|
|
|
|
|
|
Genau eines der drei Argumente muss gesetzt sein, andernfalls wird ein ValueError ausgelöst.
Ein str ist immer ein Benutzername, niemals eine GUID — Benutzernamen können nur aus Ziffern bestehen oder wie eine GUID aussehen, deshalb müssen GUIDs explizit über user_guid übergeben werden.
Der ausführende Benutzer benötigt die Systemrolle Kontextwechsel.
Unterstützt sowohl den direkten Aufruf als auch die Verwendung als Context-Manager (with / async with).
-
Sync
-
Async
with ecm.impersonate("john") as ecm_john:
ecm_john.dms.insert(MyFolder(Title="Test"))
async with ecm.impersonate("john") as ecm_john:
await ecm_john.dms.insert(MyFolder(Title="Test"))
Die Angabe über GUID oder numerische ID funktioniert genauso:
ecm_john = ecm.impersonate(user_guid="8A1D1F2E4C7B4A9E8F0D3C5B7A9E1D2F")
ecm_john = ecm.impersonate(user_id=42)