{"manifestVersion":"1","app":{"name":"adms","version":"0.12.16","status":"live"},"actions":[{"id":"system.adms.punches.list.v1","title":"A page of an org's raw device punches in a time range, oldest first — the engine's nightly recompute and its replay of a missed day (#1230). `unavailable` must be read as 'not known', never as 'no punches'.","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"orgId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"from":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"to":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"cursor":{"type":"string","minLength":1,"maxLength":512},"pageSize":{"type":"integer","minimum":1,"maximum":200}},"required":["orgId","from","to"],"additionalProperties":false},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"punches":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"punchId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"deviceId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"pin":{"type":"string","minLength":1},"punchedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"deviceStatusCode":{"type":"integer","minimum":0,"maximum":255},"status":{"type":"string","enum":["generic","check-in","check-out","break-out","break-in","overtime-in","overtime-out","unknown"]},"verifyMode":{"type":"string","minLength":1},"workCode":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["punchId","deviceId","pin","punchedAt","deviceStatusCode","status","verifyMode","workCode"],"additionalProperties":false}},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["punches","nextCursor"],"additionalProperties":false}},{"id":"system.adms.wellknown.capabilities.v1","title":"The adms capabilities manifest: metadata, callable actions with schemas, public routes, emitted events, and model field catalogs. Public metadata only — a manifest never carries tenant rows.","route":"/.well-known/capabilities","inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{},"additionalProperties":false},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"manifestVersion":{"type":"string","const":"1"},"app":{"type":"object","properties":{"name":{"type":"string","pattern":"^[a-z0-9]+(-[a-z0-9]+)*$"},"version":{"type":"string","minLength":1},"status":{"type":"string","enum":["live","degraded"]}},"required":["name","version","status"],"additionalProperties":false},"actions":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^system\\.[a-z0-9]+(-[a-z0-9]+)*\\.[a-z0-9]+(-[a-z0-9]+)*\\.[a-z0-9]+(-[a-z0-9]+)*\\.v[1-9][0-9]*$"},"title":{"type":"string","minLength":1},"route":{"type":"string","pattern":"^\\/"},"inputSchema":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"outputSchema":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["id","title","inputSchema","outputSchema"],"additionalProperties":false}},"functionalities":{"type":"object","properties":{"publicRoutes":{"type":"array","items":{"type":"string","pattern":"^\\/"}},"auth":{"type":"object","properties":{"issuer":{"type":"string","format":"uri"},"authorizationEndpoint":{"type":"string","format":"uri"},"tokenEndpoint":{"type":"string","format":"uri"},"jwksUri":{"type":"string","format":"uri"}},"required":["issuer"],"additionalProperties":false},"webhooks":{"type":"array","items":{"type":"string","minLength":1}}},"required":["publicRoutes","webhooks"],"additionalProperties":false},"events":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","pattern":"^[a-z0-9][a-z0-9.-]*[a-z0-9]$"},"title":{"type":"string","minLength":1},"schema":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["name","title","schema"],"additionalProperties":false}},"models":{"type":"object","propertyNames":{"type":"string","minLength":1},"additionalProperties":{"type":"object","properties":{"title":{"type":"string","minLength":1},"schema":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"excluded":{"type":"array","items":{"type":"string","minLength":1}}},"required":["title","schema","excluded"],"additionalProperties":false}}},"required":["manifestVersion","app","actions","functionalities","events"],"additionalProperties":false}}],"functionalities":{"publicRoutes":[],"webhooks":["iclock","hikvision","ebkn"]},"events":[{"name":"adms.punch.recorded","title":"adms: punch recorded","schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"punchId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"orgId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"deviceId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"pin":{"type":"string","minLength":1},"punchedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"deviceStatusCode":{"type":"integer","minimum":0,"maximum":255},"status":{"type":"string","enum":["generic","check-in","check-out","break-out","break-in","overtime-in","overtime-out","unknown"]},"verifyMode":{"type":"string","minLength":1},"workCode":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["punchId","orgId","deviceId","pin","punchedAt","deviceStatusCode","status","verifyMode","workCode"],"additionalProperties":false}},{"name":"adms.device-usage.recorded","title":"adms: device usage recorded","schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"eventId":{"type":"string","minLength":1,"maxLength":200},"orgId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"day":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"deviceIds":{"maxItems":5000,"type":"array","items":{"type":"string","minLength":1,"maxLength":64}}},"required":["eventId","orgId","day","deviceIds"],"additionalProperties":false}},{"name":"adms.audit.recorded","title":"adms: audit recorded","schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"eventId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"occurredAt":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"orgId":{"anyOf":[{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},{"type":"null"}]},"actorUserId":{"anyOf":[{"type":"string","minLength":1,"maxLength":255},{"type":"null"}]},"actorKind":{"type":"string","enum":["user","api_key","service","system"]},"action":{"type":"string","minLength":1,"maxLength":160},"targetKind":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}]},"targetId":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}]},"outcome":{"type":"string","enum":["success","failure"]},"ip":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}]},"userAgent":{"anyOf":[{"type":"string","maxLength":512},{"type":"null"}]},"requestId":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}]},"metadata":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/$defs/__schema0"}},{"type":"null"}]}},"required":["eventId","occurredAt","orgId","actorUserId","actorKind","action","targetKind","targetId","outcome","ip","userAgent","requestId","metadata"],"additionalProperties":false,"$defs":{"__schema0":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"null"},{"type":"array","items":{"$ref":"#/$defs/__schema0"}},{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"$ref":"#/$defs/__schema0"}}]}}}}],"models":{"device":{"title":"Device fields safe to show to workflow builders","schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"serialNumber":{"type":"string"},"alias":{"anyOf":[{"type":"string"},{"type":"null"}]},"model":{"anyOf":[{"type":"string"},{"type":"null"}]},"status":{"type":"string"},"protocol":{"type":"string"},"stamp":{"type":"integer","minimum":-2147483648,"maximum":2147483647},"opStamp":{"type":"integer","minimum":-2147483648,"maximum":2147483647},"timezone":{"type":"string"},"lastSeenAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"lastHandshakeAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"connectionState":{"type":"string"},"connectionChangedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"required":["id","serialNumber","alias","model","status","protocol","stamp","opStamp","timezone","lastSeenAt","lastHandshakeAt","connectionState","connectionChangedAt","createdAt","updatedAt"],"additionalProperties":false},"excluded":["ownerType","ownerId","isapiCredentials","ipAddress","macAddress","config","lastSeenIp","deviceInfo","deviceOptions","connectorId"]},"punch":{"title":"Punch fields safe to show to workflow builders","schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"deviceId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"pin":{"type":"string"},"punchedAt":{"type":"string","format":"date-time"},"deviceStatusCode":{"type":"integer","minimum":-2147483648,"maximum":2147483647},"status":{"type":"string"},"verifyMode":{"type":"string"},"workCode":{"anyOf":[{"type":"string"},{"type":"null"}]},"receivedAt":{"type":"string","format":"date-time"}},"required":["id","deviceId","pin","punchedAt","deviceStatusCode","status","verifyMode","workCode","receivedAt"],"additionalProperties":false},"excluded":["ownerType","ownerId","rawLine"]}}}