List uid, gid and name collisions (admin only)
const url = 'https://example.com/api/admin/nss/collisions';const options = {method: 'GET', headers: {'X-Ssoossh-Key-Secret': '<X-Ssoossh-Key-Secret>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url https://example.com/api/admin/nss/collisions \ --header 'X-Ssoossh-Key-Secret: <X-Ssoossh-Key-Secret>'Every pair of directory entries contending for one uid, gid or name, oldest first: the stored row holding the value, the other entry (stored, or refused and known only by what it carried), whether the holder is a tombstone, and since when. Neither side is served while a pair lasts. A pair goes when either entry is read again without the clash, at the latest on the next full sync.
Authorizations
Section titled “Authorizations”Responses
Section titled “Responses”The current collisions
object
object
object
Holder is the stored row holding the value; Other the entry contending for it.
object
MissingSince and DeletedAt are the stored row’s, absent while it resolves.
Number is the uid (accounts) or gid (groups) the entry carries.
Stored is false for an entry the sync refused to store because the holder has its number or name; it is known only by what it carried.
Tombstone is true for a stored row the directory no longer has and that is kept, holding its number and name, until nss.tombstone_retention or an admin purges it.
Kind is the contested value: uid or user_name between accounts, gid or group_name between groups.
Holder is the stored row holding the value; Other the entry contending for it.
object
MissingSince and DeletedAt are the stored row’s, absent while it resolves.
Number is the uid (accounts) or gid (groups) the entry carries.
Stored is false for an entry the sync refused to store because the holder has its number or name; it is known only by what it carried.
Tombstone is true for a stored row the directory no longer has and that is kept, holding its number and name, until nss.tombstone_retention or an admin purges it.
Value is the contested uid, gid or name, as text.
Example
{ "data": { "collisions": [ { "kind": "uid" } ] }}Not authenticated
object
Data is always null on an error response.
Error is a human-readable message. Branch on the HTTP status rather than this string; it is for humans and logs.
ErrorCode is a machine-readable error classifier. One of the error_code constants from internal/apitypes; use this to decide whether to retry or branch on the failure mode.
Example
{ "error": "certificate request \"9f1c…\" not found", "error_code": "not_found"}Not authorized as admin
object
Data is always null on an error response.
Error is a human-readable message. Branch on the HTTP status rather than this string; it is for humans and logs.
ErrorCode is a machine-readable error classifier. One of the error_code constants from internal/apitypes; use this to decide whether to retry or branch on the failure mode.
Example
{ "error": "certificate request \"9f1c…\" not found", "error_code": "not_found"}NSS is disabled
object
Data is always null on an error response.
Error is a human-readable message. Branch on the HTTP status rather than this string; it is for humans and logs.
ErrorCode is a machine-readable error classifier. One of the error_code constants from internal/apitypes; use this to decide whether to retry or branch on the failure mode.
Example
{ "error": "certificate request \"9f1c…\" not found", "error_code": "not_found"}