This integration supports Gravitee APIM 4.x, self-hosted or on Gravitee Cloud. Gravitee Access Management (AM) isn’t covered. Each integration connects one APIM organization. If you have more than one, add an integration for each. See Multi-instance support.
What Oleria discovers
Once connected, Oleria continuously discovers and maps the following from your APIM organization:-
Accounts - every console user and service account in the organization, with name, email, creation date, and last sign-in. Oleria also shows:
- Status - a user is enabled when Gravitee reports them as
ACTIVE. Pending, rejected, and archived (deleted) users can’t sign in. - Account role - the user’s organization roles. Users with the Organization ADMIN role are marked as administrators.
- Single sign-on (SSO) - users who sign in through an identity provider configured in Gravitee show SSO as required, with the provider type. Local users show SSO as not configured.
- MFA - APIM has no MFA of its own. Local users show MFA as not required, and users from an identity provider as unavailable.
- Last activity - the user’s last console sign-in, or the newest use of one of their personal access tokens, whichever is later.
- Status - a user is enabled when Gravitee reports them as
- Groups - every group in each connected environment, with its members and each member’s roles. Members who hold the group’s ADMIN role are shown as the group’s owners.
- Roles - every organization and environment role, and a role for each API, application, and group role that someone holds, such as OWNER — Payments API (API). Each role lists its Gravitee permissions. Roles that a user gets through a group show the group as their source.
- Memberships - which users belong to which groups, and who holds each role, directly or through a group.
-
Non-human identities (NHIs):
Oleria never reads token, API key, client secret, or private key values.
- Activity - the organization and environment audit trail: sign-ins, and user, membership, group, role, personal access token, application, API key, subscription, API, and identity provider events, attributed to the user who made them. Events by Oleria’s own user are kept and tagged, because the audit trail can’t tell Oleria’s changes apart from other use of that user. The audit trail needs a Gravitee Enterprise Edition licence that includes it. See Known limitations.
Prerequisites
- Gravitee APIM 4.x, with its Management API reachable from the internet over HTTPS, by a host name that resolves to a public IP address.
- For self-hosted APIM, the Management API host on Oleria’s egress allowlist. Before you connect, contact support@oleria.com with the host name, such as
apim.example.com, and ask for it to be allowlisted. Gravitee Cloud hosts (*.api.gravitee.io) are already allowlisted. - A Gravitee user with the Organization ADMIN role, to create Oleria’s service account and its token.
- Admin access on the Oleria platform to add a new integration.
Create the Oleria service account in Gravitee
1
Create a service account
In the Gravitee APIM Console, go to Organization > Users > Add user, and create a service account dedicated to Oleria, such as
oleria-governance.2
Grant Organization ADMIN
Open the service account (Organization > Users > service account) and set its organization role to ADMIN.
3
Generate a personal access token
Under Organization > Users > service account > Tokens, generate a personal access token and copy it. Gravitee shows it only once.You can use a local console user’s username and password instead. Users who sign in through an identity provider have no Gravitee password, so they can’t be used.
4
Collect the connection details
Copy your Management API URL, for example
https://apim.example.com/management, or https://<org>.<region>.api.gravitee.io/management on Gravitee Cloud. Note the organization ID if it isn’t DEFAULT. To sync only some environments, note their IDs.Gravitee permissions
Organization ADMIN holds every permission Oleria needs. The integration’s Capabilities and operation readiness section lists them by row:
Oleria also reads applications, their subscriptions, API keys, and client certificates (
APPLICATION_SUBSCRIPTION[READ], APPLICATION_DEFINITION[READ]), the audit trail (ORGANIZATION_AUDIT[READ], ENVIRONMENT_AUDIT[READ]), and the console’s sign-in settings and identity providers (ORGANIZATION_SETTINGS[READ], ORGANIZATION_IDENTITY_PROVIDER[READ]).
Remediation actions are optional. Each action lists these permissions, also held by Organization ADMIN:
Gravitee doesn’t report these permissions for a user, so before every action Oleria checks only that its user still holds Organization ADMIN. If it doesn’t, the action fails and names the permissions it needs.
Connect Gravitee to Oleria
1
Open the integration
Go to your Oleria workspace, select Integrations -> select Gravitee API Management.
2
Complete the connection form
Provide the following:
3
Confirm the connection
Select Authenticate. Before it saves anything, Oleria checks that the credential’s user holds the Organization ADMIN role, and that the user can see every environment you listed.Find the newly connected organization on the Connected tab of your Oleria Integrations page. It’s named Gravitee APIM followed by the Management API host.
- Gravitee getCurrentUser: HTTP 401 - check the personal access token, or the username and password.
- the Gravitee user must hold the Organization ADMIN role in organization ID - give the user the Organization ADMIN role, or check Organization ID (optional).
- Gravitee getCurrentUser: HTTP 404 - check that Management API URL ends with
/managementand that the organization ID exists. - configured environments are not visible to the connection - check Environment IDs (optional). Each ID must exist and be visible to the user.
Edit the integration
When you edit the integration, you can change Environment IDs (optional), Authentication method, and the credential. Management API URL and Organization ID (optional) can’t be changed. To connect a different installation or organization, add a new integration.- Leave Personal access token or Password blank to keep the stored value. If you switch the authentication method, enter the new method’s credential.
- Clear Environment IDs (optional) to sync every environment again.
Verify the integration
Confirm the organization appears on the Connected tab of your Oleria Integrations page with a status of Healthy. After the first sync completes, review the discovered accounts, groups, roles, NHIs, and activity in your Oleria workspace. In the integration’s Capabilities and operation readiness section, Read users, Read groups, and Read roles show Available. Oleria checks each row by reading a sample: users; the groups of the first connected environment; and the organization roles, users, and the members of one API and one application. If Gravitee refuses a read, the row shows Needs permission. Check that Oleria’s user still holds Organization ADMIN. If Gravitee refuses or can’t find a few items, such as one application’s members, Oleria skips them, logs each one, and syncs the rest. If every item of a kind is refused, or more than 10% of them and at least 3, the sync of accounts, groups, roles, and NHIs fails, so incomplete data is never reported as complete. A refused list of groups, APIs, or applications always fails the sync. Client certificates are the exception: if Gravitee refuses them, applications still sync without them.Remediation actions
Oleria can take these actions in Gravitee. Each needs Oleria’s user to hold Organization ADMIN. See Gravitee permissions.
Disable NHI accounts works as follows:
The Remediations page offers Revert only for Remove user from group and Disable NHI accounts. The integration supports the other reverts in these tables, but the Remediations page doesn’t offer them yet. Oleria can revert only an action that completed or partially completed, never one that failed.
- Oleria refuses to delete its own user, to remove its own Organization ADMIN role, and to delete its own user’s personal access tokens. Gravitee doesn’t say which token Oleria uses, so Oleria refuses all of them.
- Remove user from role refuses to remove the last Organization ADMIN.
- Add user to role and Remove user from role refuse the PRIMARY_OWNER role, which needs an ownership transfer in Gravitee. Gravitee also refuses Delete user while the user is the primary owner of an API or application: transfer ownership first.
- Remove user from role refuses a role the user holds only through a group, and names the group. Remove the user from that group instead. It also refuses a group role that is the user’s only role in the group: use Remove user from group instead.
- Add user to role refuses an API or application role when the user is already a direct member with another role, and a group role when the user already holds another one. Remove that role first.
- Environment roles can be changed only in a connected environment.
- Create user refuses an email address that a user who isn’t deleted already has. Gravitee doesn’t take a password when it creates a user, and has no inactive state, so password and activation settings in the request are ignored and the result says so.
- Create group refuses a name that a group in that environment already has, ignoring upper and lower case.
- If the user, role, group, or NHI is already in the state the action asks for, Oleria makes no change, and reverting the action makes no change either.
- After it changes an organization or group role, or deletes a user, Oleria reads the result again. If Gravitee accepted the change but it doesn’t show, for example because an identity provider’s role mapping applied the role again, the action fails and says so.
- Reverting an action changes only what the action changed. If the target no longer exists, the revert makes no change and says why.
Known limitations
- Audit trail needs Enterprise Edition. Activity comes from the audit trail, which needs a Gravitee Enterprise Edition licence with the
apim-audit-trailfeature. On Community Edition, Oleria collects no activity and the sync still completes. Activity has no failed sign-ins, sign-outs, or IP addresses. - No password change date or MFA. APIM doesn’t report when a user changed their password, and has no MFA of its own.
- No disable or session revocation. APIM has no disabled state for users and no session API, so users can’t be disabled, re-enabled, or signed out. Deleting is the only way to remove a user.
- APIs and plans aren’t resources. APIs appear only as the scope of API roles. Plans, subscriptions, and keyless plans aren’t shown as access to resources. Subscriptions appear on their application and its API keys.
- Other role scopes. Integration, cluster, API product, and AI catalog roles aren’t read.
- Client certificates can’t be disabled. Disable NHI accounts doesn’t apply to client certificates. To stop an application’s certificates from being used, disable the application, which pauses its subscriptions. To remove a certificate, revoke it in Gravitee.
- Network access. Oleria connects only over public HTTPS. A self-hosted Management API must be allowlisted for each customer. See Prerequisites.

