List users whose tenant anchors disagree
const url = 'http://localhost:3000/api/v1/tenant-consistency/users?classification=consistent&page=1&limit=25';const options = {method: 'GET', headers: {'X-API-Key': '<X-API-Key>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url 'http://localhost:3000/api/v1/tenant-consistency/users?classification=consistent&page=1&limit=25' \ --header 'X-API-Key: <X-API-Key>'Compares each user’s database organization memberships with the SET of values of the Keycloak organization_id attribute (order is ignored: Keycloak does not preserve it). Each row lists the organizations missing in and extra in Keycloak. Without a classification filter, consistent users are not listed. Requires Super Admin privileges.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Query Parameters
Section titled “Query Parameters”Only list users with this classification. Omit to list every inconsistent user (everything except “consistent”).
Header Parameters
Section titled “Header Parameters”UUID of the organization (tenant) the request acts in. It selects the tenant and grants nothing: the server checks membership or an open tenant switch. Not needed for global operations. A malformed value returns 400. API keys are fixed to their own organization; another organization returns 403. The x-organization-source header grants nothing.
Responses
Section titled “Responses”object
object
Logiccloud orchestrate user id; null for a “keycloak-only” account (FM-1441).
Keycloak user id, if linked.
Database primary organization, or null when the user has no membership.
object
Organization name, or null when the id names no organization (unknown).
Organizations named by the Keycloak organization_id attribute, de-duplicated (name is null when an id is unknown). A set: Keycloak does not preserve attribute order, so no position carries meaning.
object
Organization name, or null when the id names no organization (unknown).
Every value of the Keycloak organization_id attribute, de-duplicated. Order is not meaningful.
Organizations the user is a member of that the Keycloak attribute does not contain (the whole membership set when the attribute or the Keycloak account is absent).
object
Organization name, or null when the id names no organization (unknown).
Organizations named by the Keycloak attribute that the user is not a member of, including ids of organizations that do not exist (name is null).
object
Organization name, or null when the id names no organization (unknown).
Whether the logiccloud orchestrate user row is linked to a Keycloak account.
object
Users.emailVerified in the logiccloud orchestrate database, or null for a “keycloak-only” account that has no row (FM-1441).
EmailVerified in Keycloak, or null when there is no Keycloak account to read.
Rows matching the filter, before pagination.
Counts over ALL users.
object
Count of “keycloak-attribute-names-unknown-org” users.
Keycloak accounts with no logiccloud orchestrate user row, listed with the classification “keycloak-only” (FM-1441). Service-account users are not counted.
Example
{ "data": [ { "classification": "consistent" } ]}Invalid query parameter
Forbidden - Super Admin required
Keycloak is not configured