Create asset
POST/v1/assets
Legt ein Asset im aktuellen Tenant an. Einziges Pflichtfeld ist status
(ACTIVE, INACTIVE, RETIRED, IN_REPAIR, ORDERED). Alle übrigen Felder
sind optional — ein Asset trägt je nach Art völlig unterschiedliche Angaben:
ein Server hat hostname und ipAddress, eine Domain registrar und
domainExpiresAt, eine Lizenz licenseKey und seats. Welche Felder es gibt,
steht vollständig in der Schema-Referenz.
Auch name ist bewusst optional: Peripherie und Kleinteile haben oft keinen
sinnvollen Namen und werden über manufacturer + model + serialNumber
identifiziert.
assetNumber und inventoryNumber vergibt der Server aus dem Nummernkreis des
Mandanten. Diese Felder werden — wie alle server-verwalteten Felder — aus dem
Request verworfen, nicht als Fehler abgewiesen. Ein Audit-Eintrag (JSON-Patch)
entsteht in derselben Transaktion wie das Asset.
Datenmodell
Diese Operation arbeitet auf der Entität Asset (asset). Alle 221 Felder — Typ, Validierung, Pflichtangabe, Beziehungen — stehen in der Schema-Referenz.
- Pflichtfelder:
status - Server-verwaltet:
_id,schema,schemaVersion,tenantId,version,createdAt,updatedAt,createdBy,updatedBy,deletedAt,deletedBy,assetNumber— diese Felder vergibt die Plattform; im Request werden sie verworfen.
Beispiel
curl -X POST https://api.codemeta-os.de/v1/assets \
-H "X-Tenant-Id: $TENANT" \
-H "Content-Type: application/json" \
-b cookies.txt \
-d '{
"status": "ACTIVE",
"name": "Notebook Vertrieb 04",
"manufacturer": "Lenovo",
"model": "ThinkPad T14 Gen 5",
"serialNumber": "PF3ABCDE",
"partyId": "{{sandbox.partyId}}"
}'const result = await cm.assets.post({
"status": "ACTIVE",
"name": "Notebook Vertrieb 04",
"manufacturer": "Lenovo",
"model": "ThinkPad T14 Gen 5",
"serialNumber": "PF3ABCDE",
"partyId": "{{sandbox.partyId}}"
});Best Practice
Setzen Sie partyId möglichst schon beim Anlegen. Das Feld ist nicht nur eine
Verknüpfung, sondern der Anker der Datensicht customer_contact: Wer über
diesen Scope liest, sieht ausschließlich Assets der eigenen Firma. Ein Asset
ohne partyId ist für diese Nutzer:innen unsichtbar und muss später
nachgezogen werden.
Wenn Sie Geräte aus einem Inventarisierungs- oder RMM-System spiegeln, führen
Sie die Fremd-ID in sourceRef mit. Ohne diesen Anker lässt sich beim zweiten
Lauf nicht entscheiden, ob ein Gerät neu ist oder schon existiert — und Sie
legen es ein zweites Mal an.
Antwortcodes
| HTTP | Bedeutung |
|---|---|
200 |
Default Response |