External app events track OAuth 2.0 authorization flows when external applications request access to MCP proxies. These events record user decisions during login and consent screens, providing visibility into which applications users authorize and the scopes they grant.Documentation Index
Fetch the complete documentation index at: https://docs.centure.ai/llms.txt
Use this file to discover all available pages before exploring further.
All external app events include the standard actor, targets, context, and metadata fields. The schemas below show event-specific fields.
Event Flow
External app authorization follows a two-step OAuth flow:- Login: User authenticates and confirms identity for the external application
- Consent: User reviews and grants (or denies) requested permissions
Target Structure
All external app events include three targets to provide complete authorization context:- external_app: The third-party application requesting access
- mcp_proxy: The MCP proxy being authorized
- project: The project containing the proxy
external_app.login_view
Records when a user views the login authorization screen for an external application.Triggered When
User is redirected to/external-apps/login with a valid login challenge from the external application’s OAuth flow.
Event Schema
external_app.login_viewAlways
/external-apps/loginWhether the user has permission to access the requested MCP proxy based on project membership and proxy access scope
Example Event
The
user_has_access_to_proxy field indicates whether authorization can proceed. Users without access see a generic error message without revealing why access was denied.external_app.login_approve
Records when a user approves login for an external application.Triggered When
User clicks the “Continue” button on the login authorization screen, confirming their identity for the external application.Event Schema
external_app.login_approveSame structure as
external_app.login_view: external_app, mcp_proxy, and project targetsAlways
/external-apps/loginExample Event
external_app.login_reject
Records when a user rejects login for an external application.Triggered When
User clicks the “Cancel” button on the login authorization screen, denying their identity confirmation for the external application.Event Schema
external_app.login_rejectSame structure as
external_app.login_view: external_app, mcp_proxy, and project targetsAlways
/external-apps/loginExample Event
external_app.consent_view
Records when a user views the consent authorization screen for an external application.Triggered When
User is redirected to/external-apps/consent with a valid consent challenge after successful login, showing the requested OAuth scopes.
Event Schema
external_app.consent_viewSame structure as
external_app.login_view: external_app, mcp_proxy, and project targetsAlways
/external-apps/consentWhether the user has permission to access the requested MCP proxy
Comma-separated list of OAuth scopes requested by the external application (e.g.,
"openid, profile, email")Example Event
external_app.consent_approve
Records when a user approves consent and grants permissions to an external application.Triggered When
User clicks the “Allow” button on the consent screen, granting the requested OAuth scopes to the external application.Event Schema
external_app.consent_approveSame structure as
external_app.login_view: external_app, mcp_proxy, and project targetsAlways
/external-apps/consentComma-separated list of OAuth scopes actually granted to the application. This is the intersection of requested scopes and scopes the user had permission to grant.
Example Event
The
granted_scopes field may differ from requested_scopes in the view event if the application requested scopes the user cannot grant. The system automatically filters to only grant valid scopes.external_app.consent_reject
Records when a user rejects consent and denies permissions to an external application.Triggered When
User clicks the “Deny” button on the consent screen, refusing to grant the requested OAuth scopes to the external application.Event Schema
external_app.consent_rejectSame structure as
external_app.login_view: external_app, mcp_proxy, and project targetsAlways
/external-apps/consentExample Event
Authorization Security
Access Validation
All authorization requests validate that the user has access to the requested MCP proxy based on:- Project membership: User must be a member of the project containing the proxy
- Proxy access scope: Proxy’s configured access restrictions (organization-wide, project-wide, or specific users)
user_has_access_to_proxy: false in these cases.
Challenge Expiration
OAuth challenges have a limited lifetime (typically 10 minutes). Expired challenges result in validation errors without generating audit log events, as the request is invalid before authorization begins.External App Isolation
External applications do not belong to organizations. Theexternal_app target contains only client metadata from the OAuth provider, not organization context. Authorization context comes from the linked MCP proxy and its parent project and organization.
Related Events
MCP Proxies
MCP proxy configuration and management events
Projects
Project creation and settings changes
Project Memberships
User access grants for projects containing proxies
API Keys
Alternative authentication method for programmatic access

