Skip to content

List uid, gid and name collisions (admin only)

GET
/api/admin/nss/collisions
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.

The current collisions

Media typeapplication/json
object
data
required
object
collisions
required
Array<object>
object
first_seen_at
required
string
holder
required

Holder is the stored row holding the value; Other the entry contending for it.

object
deleted_at
string
dn
required
string
missing_since

MissingSince and DeletedAt are the stored row’s, absent while it resolves.

string
name
required
string
number
required

Number is the uid (accounts) or gid (groups) the entry carries.

integer
stored
required

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.

boolean
tombstone
required

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.

boolean
kind
required

Kind is the contested value: uid or user_name between accounts, gid or group_name between groups.

string
Allowed values: uid user_name gid group_name
last_seen_at
required
string
other
required

Holder is the stored row holding the value; Other the entry contending for it.

object
deleted_at
string
dn
required
string
missing_since

MissingSince and DeletedAt are the stored row’s, absent while it resolves.

string
name
required
string
number
required

Number is the uid (accounts) or gid (groups) the entry carries.

integer
stored
required

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.

boolean
tombstone
required

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.

boolean
value
required

Value is the contested uid, gid or name, as text.

string
error
string

Example

{
"data": {
"collisions": [
{
"kind": "uid"
}
]
}
}

Not authenticated

Media typeapplication/json
object
data

Data is always null on an error response.

error
required

Error is a human-readable message. Branch on the HTTP status rather than this string; it is for humans and logs.

string
error_code
required

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.

string

Example

{
"error": "certificate request \"9f1c…\" not found",
"error_code": "not_found"
}

Not authorized as admin

Media typeapplication/json
object
data

Data is always null on an error response.

error
required

Error is a human-readable message. Branch on the HTTP status rather than this string; it is for humans and logs.

string
error_code
required

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.

string

Example

{
"error": "certificate request \"9f1c…\" not found",
"error_code": "not_found"
}

NSS is disabled

Media typeapplication/json
object
data

Data is always null on an error response.

error
required

Error is a human-readable message. Branch on the HTTP status rather than this string; it is for humans and logs.

string
error_code
required

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.

string

Example

{
"error": "certificate request \"9f1c…\" not found",
"error_code": "not_found"
}