Skip to main content
ConfigView reads your Auth0 tenant through the Auth0 Management API, using a Machine-to-Machine application that an Auth0 admin creates and authorizes for read-only access. The application has a client ID and a client secret. ConfigView exchanges them for a token and asks only for read scopes. You will end up with 3 required secrets (AUTH0_DOMAIN, AUTH0_CLIENT_ID, AUTH0_CLIENT_SECRET) and 1 optional secret (AUTH0_API_AUDIENCE) in ConfigView when setup is complete.
Scope of this integration today. Auth0 is a customer-identity platform, so the people in it are mostly your customers, not your employees. ConfigView therefore focuses on how the tenant is configured and who can change it: applications and their grant types and callback URLs, connections (database, social, enterprise), APIs and which application may call which API with which scopes, roles and permissions, organizations, Actions and legacy Rules, MFA and attack-protection settings, log streams, custom domains, tenant settings, and the tenant log (admin changes, failed logins). It also collects the user directory, capped for very large tenants. It never reads user or app metadata, provider tokens, application secrets, connection credentials or Action and Rule source code. ConfigView only reads. It never creates, changes or deletes anything in Auth0.
Dashboard admins cannot be listed. Auth0’s Management API has no endpoint for the people who sign in to the Auth0 Dashboard (tenant members). ConfigView shows admin activity from the tenant log instead: every admin API call and who or which application made it. Roles in Auth0’s own RBAC (the ones you assign to users of your apps) are collected in full.

What you need

  • An Auth0 admin account, to create an application and authorize it for the Management API
  • Your tenant domain, for example acme.us.auth0.com. It is shown under Settings → General and as the Domain on any application
  • The Management API is available on every Auth0 plan. Some areas depend on your plan or on what you use: Organizations, custom domains, attack-protection features and log retention differ by plan. If an area is not on your plan, that collector skips itself and its table stays empty. That does not count as a failure.

Step 1: Open the Auth0 page in ConfigView

Open ConfigView in a second browser tab and leave it open: https://{companyname}.configview.com/admin/integrations/auth0 Paste the client secret straight into ConfigView instead of keeping it in a notes file.

Step 2: Create a Machine-to-Machine application

  1. Sign in to the Auth0 Dashboard as an admin
  2. Open Applications → Applications → Create Application
  3. Name it ConfigView, choose Machine to Machine Applications and click Create
  4. When asked to pick an API, choose Auth0 Management API
  5. Select the scopes below, and only these, then click Authorize:
read:clients, read:client_grants, read:connections, read:resource_servers, read:roles, read:users, read:organizations, read:organization_members, read:actions, read:rules, read:logs, read:log_streams, read:custom_domains, read:tenant_settings, read:attack_protection, read:guardian_factors, read:mfa_policies Every scope is optional: a collector whose scope you leave out skips itself. Leave out read:users if you do not want the user directory in ConfigView.
  1. Open the application’s Settings tab. Copy the Domain, Client ID and Client Secret
  2. Switch to the ConfigView tab and paste them into AUTH0_DOMAIN, AUTH0_CLIENT_ID and AUTH0_CLIENT_SECRET under Credentials, then click the save icon for each
Do not grant any create:, update: or delete: scope. ConfigView doesn’t need one, and the health check flags any it finds.

Custom domains

Enter the tenant’s own domain (acme.us.auth0.com), not your custom domain, in AUTH0_DOMAIN. If the first verify fails with an audience error, paste https://YOUR-TENANT.REGION.auth0.com/api/v2/ into the optional AUTH0_API_AUDIENCE.

Token limits

Auth0 counts Machine-to-Machine tokens per month, and free plans have a hard cap. ConfigView’s collectors share one token for 24 hours, so they ask for about one a day in total.

Step 3: Connect and verify

  1. Back on https://{companyname}.configview.com/admin/integrations/auth0, confirm the credentials show as saved
  2. Click Connect. ConfigView creates its tables and schedules every collector at your default run time. Stop any you don’t want under Collectors:
  1. Click Verify now. The health check reads the three secrets, gets (or reuses) a token, reads one application, lists the scopes the token carries and warns if any can write, then tries one record from each of the other areas.
If a check fails:
  • Token fails with “not authorized”. The application isn’t authorized for the Auth0 Management API. Open Applications → APIs → Auth0 Management API → Machine to Machine Applications and authorize it.
  • Token fails with 401 or 403. The domain, client ID or client secret is wrong, or the secret was rotated. Copy them again from the application’s Settings.
  • Token fails with an audience error. You use a custom domain. See Custom domains above.
  • Token fails with 429. Auth0 is limiting token requests or your monthly Machine-to-Machine quota is used up.
  • An area shows as skipped. Auth0 answered “forbidden” or “not found”: the scope isn’t granted, or the feature isn’t on your plan. Grant the scope if you want it.
  • A warning about write scopes. Remove the create:, update: and delete: scopes from the application’s Management API grant.

Data Tables

Once the scripts run, these tables are created in your database. Each table has a run_at column and a raw_json column, which holds the record as Auth0 returned it, minus anything listed under What isn’t collected. The snapshot tables keep only the newest run. auth0_logs keeps every event ever collected.

Things worth knowing

Users are mostly customers. auth0_users is your customer directory. ConfigView reads it so a person who is both a staff member and a user can be found, and so you can see counts by connection, dormant accounts and MFA enrollment. A tenant with millions of users is capped at 100,000 rows per run (AUTH0_MAX_USERS). Auth0’s user search stops at 1,000 results, so ConfigView reads users in date windows and splits any window that is too big. Admin activity comes from the tenant log. Events of type sapi are admin API calls that worked and fapi are ones that failed. They name the person (or the application, such as a Terraform provider) that made the change, the HTTP method, the path and the result. Request and response bodies are removed before storing, because they can carry secrets. The first log run reads history, later runs follow a checkpoint. The first run stores admin and security events from the last 90 days (Auth0’s search stops at 1,000 results). After that, ConfigView follows Auth0’s checkpoint paging from where it left off, so nothing is read twice and nothing is missed while collectors are down, as long as the gap is shorter than your plan’s log retention (from two days on free plans to a month on paid ones). Past that, ConfigView starts over from what Auth0 still holds. Routine successful logins are not stored. In a customer tenant, successful logins and token exchanges are the bulk of the log. ConfigView reads past them but does not store them. A user’s last_login_at and logins_count cover “who signed in”. To keep everything, set AUTH0_LOG_SKIP_TYPES to none; to skip other types, list them separated by commas. Client grants are the access map. auth0_client_grants.audience matches auth0_apis.audience, and client_id matches auth0_applications.client_id. A grant whose audience ends in /api/v2/ is a grant to the Auth0 Management API itself. Rate limit. Management API limits depend on your plan: about 2 requests a second on free and development tenants, about 15 on paid ones. Each ConfigView collector paces itself at 45 requests a minute and waits when Auth0 answers 429.

What isn’t collected

  • Application client secrets, signing keys and encryption keys
  • Connection options (client secrets, bind credentials, custom database scripts) and user identities, which hold provider access tokens
  • User metadata, app metadata, profile pictures and phone numbers
  • Action and Rule source code and Action secrets
  • Log stream destinations (endpoints, tokens and keys), and API signing secrets
  • Request and response bodies of admin API log events
  • Dashboard administrators (Auth0 does not expose them), branding, email templates and Universal Login pages