Datenmodell

Rekonstruiert aus den JSON-Antworten der Agent-API. Feldtypen sind aus den Beispieldaten abgeleitet; „ref“ bedeutet Fremdschlüssel auf eine andere Entität.

Kernbeziehungen
Agent 1───n Device 1───n Supply
                  │        └── TonerThreshold
                  ├───n Counter
                  ├─── Location ─── Customer
                  ├─── DeviceGroup ─── RecipientGroup n─n Recipient
                  └─── AlertSet 1───n AlertSetEntry

Login n─── Agent   (Rollen-Flags, assignedGroups, assignedAgents)
Contract ─── Device | DeviceGroup | global
AgentGET /json/system/agentInfo

Identität und Lizenzzähler der laufenden Agent-Instanz.

FeldTypHinweis
agentIduuid
agentMacstring
dealerNostring
widgetServiceBooked / thinAgentServiceBookedbool
clientLicenses / activatedClientLicenses / assignedLicenses / missingLicenses / neededLicensesint
managedDevices / unmanagedDevicesint
supportUntil / licenseInfo.licenseUntildate / ms-epoch
flatEnabledbool
Login (User)GET /json/backend/getLogin

Benutzerkonto inkl. Rollen-Flags. userPassword ist MD5-gehasht.

FeldTypHinweis
userId, contactIduuid
userLoginstring
userPasswordmd5-hash
manage* / monitorDevices / viewStatistics / useServiceModule / useSoapServiceboolsiehe Berechtigungstabelle
assignedGroups, assignedAgentsjson-array (string)
serverMode / agentMode / isFlatbool
deviceWebProtocol"http"|"https"
deviceWebAddress"ipAddress"|…
supportUntil, licenseUntildate
loginTypeint
Device (Printer)GET /json/devices/printDevicesPaging, /json/devices/getDevice

Verwalteter Drucker. Verknüpft mit Location, Gerätegruppe, Modell/Hersteller-Definition.

FeldTypHinweis
deviceIduuid
ipAddress, hostname, macAddressstring
serialNumber, assetNumber, contractNo, costCenterstring
manufacturerId, modelIdref → Definition
locationId, deviceGroupIdref
snmpConfigIdref → snmpConfig
counters1:n → Counter
supplies1:n → Supply
alertSetIdref → AlertSet
recordTimestamptimestamp
Supply (Verbrauchsteil)GET /json/devices/supplyParts(Paging)

Toner, Waste-Box, Fuser, OPC etc. je Gerät.

FeldTypHinweis
supplyIduuid
deviceIdref → Device
type"mono"|"color"|"waste"|"fuser"|"opc"|…
levelint (0–100)
orderStateenum
thresholdIdref → TonerThreshold
CounterGET /json/statistics/counter*

Zählerstände pro Gerät und Zeit (stündlich, täglich, historisch).

FeldTypHinweis
deviceIdref → Device
counterNamestring (siehe tCounterNames)
valuelong
timestampdatetime
Contact / RecipientGET /json/master/contacts/*

Kunden, Standorte, Empfänger für Benachrichtigungen.

FeldTypHinweis
contactIduuid
customerId, clientIdref
locationIdref → Location
recipientTypeenum → recipientTypes
emailstring
assignedGroups1:n → RecipientGroup
RecipientGroupGET /json/master/contacts/recipientGroups

Empfängergruppen; können aus Gerätegruppen erzeugt werden.

FeldTypHinweis
groupIduuid
groupNamestring
recipientsn:m → Recipient
linkedDeviceGroupIdref (optional)
AlertSet / AlertSetEntryGET /json/system/alertSets, /json/system/alertSetEntries

Regelwerke für Alarme; herstellerspezifisch oder eigener Satz.

FeldTypHinweis
setIdstring
setNamestring
isPublic, isDefaultbool
version, recordTimestampint / timestamp
TonerThresholdGET /json/system/tonerThresholds

Schwellenwerte für Nachbestellung/Wechsel je Verbrauchsteil.

FeldTypHinweis
thresholdId, thresholdName, thresholdDescstring
monoTonerThreshold / colorTonerThresholdint (%)
wasteBoxThreshold / fuserThreshold / opcThreshold / otherSuppliesThresholdint (%)
tonerThresholdDays / DaysDropPercent / DaysMinLevelint
thresholdTypeenum → thresholdTypes
isPublic, isActivebool
specificTonerThresholdsmap
ContractGET /json/system/contract

Volumen-/Klick-Kontingent; global oder je Gerät/Gruppe.

FeldTypHinweis
contractIduuid
deviceId / deviceGroupIdref (0 = global)
isGlobalbool
contingentMono / contingentColorint
contingentThresholdMono / Colorint (%)
type"disabled"|…
LicenseGET /json/system/licenses

Lizenzschlüssel, Aktivierungen, Laufzeiten.

FeldTypHinweis
licenseId, baseLicenseIdint
keyType"DemoKey"|…
productType"SCAgent"|…
agentIdref → Agent
numberOfLicesenses, activatedLicesenses, activatedSupportLicesensesintSIC – Feldname im Original
runtimeUnitLicense / runtimeLicense, runtimeUnitSupport / runtimeSupportenum + int
activationDate, deactivationDate, licenseDatedate
deactivated, invalidbool