Skip to content

feat!: add client profiles, captcha policies, client search, and dynamic CIMD settings - #898

Merged
rmad17 merged 4 commits into
masterfrom
fern-bot/2026-10-13_05-52-23_527
Oct 14, 2026
Merged

rmad17 merged 4 commits into
masterfrom
fern-bot/2026-10-13_05-52-23_527

Conversation

@fern-api

@fern-api fern-api Bot commented Oct 13, 2026 •

Copy link
Copy Markdown
Contributor

Adds client profiles, CAPTCHA policies, client and client grant search, and dynamic CIMD support to the Management API client, and exposes every generated resource on ManagementClient.

Breaking Changes ⚠️

The breaking changes are limited to the experimentation APIs, one field on organization search results, a connection model that no endpoint returns, and one error mapping.

  • Experiments and feature flags: experiments.update_status() and feature_flags.update_status() are removed. A separate status endpoint is no longer needed, because the status is now set through the update request: client.experimentation.experiments.update(id, status=...) and client.experimentation.feature_flags.update(id, status=...).
  • SearchOrganization: the metadata field is removed.
  • ConnectionResponseCommon: now declares its own fields instead of extending CreateConnectionCommon, and display_name is required. No endpoint returns this model, so no client call is affected.
  • Feature flag variations: variations.delete() no longer maps HTTP 400 to BadRequestError, so a 400 raises the base ApiError. Code that catches ApiError is unaffected.

Added

  • Full resource access on ManagementClient: every Management API resource is now available on the client, including agents, client_profiles, connection_profiles, events, experimentation, groups, rate_limit_policies, risk_assessments, and user_attribute_profiles.
  • Client Profiles: define a configuration that applies automatically to every client matching a rule, and manage it through client.client_profiles.
  • CAPTCHA Policies: create and manage CAPTCHA policies through client.attack_protection.captcha_policies.
  • Search for clients and client grants: find applications and grants with client.clients.search() and client.client_grants.search(), with pagination and sorting.
  • Dynamic CIMD registration: turn on dynamic registration for Client ID Metadata Document clients in tenant settings, and see each client's metadata status.
  • New settings:
    • Clients: enforce_anon_session_transfer_network_binding and oidc_support
    • Tenant settings: dpop_strict_refresh_token_binding
    • Brute force protection: form_submission_mode
    • Experiments, feature flags, and segments: status
  • Smaller additions: Google Workspace provisioning and directory sync on connection profiles, an organization member access level on organization connection events, and the passkey Guardian factor.

Changed

  • CIMD Registration: client.clients.register_cimd_client() raises ConflictError on HTTP 409 instead of ApiError. ConflictError subclasses ApiError, so existing handlers still catch it.
  • Roles: owner_id on the roles.list() filter is typed as RoleOwnerIdFilter, and owner_id on the role response types as RoleOwnerId, with SystemRoleOwnerId added. All three are string aliases, so existing code is unaffected.
  • Event stream cloud events: a0stream is now optional on the connection, group, organization, and user cloud event types. It is omitted when events are retrieved through the Events API.

Removed

  • experiments.update_status() and UpdateExperimentStatusResponseContent. Use experiments.update(id, status=...).
  • feature_flags.update_status() and UpdateFeatureFlagStatusResponseContent. Use feature_flags.update(id, status=...).
  • SearchOrganization.metadata.

@fern-api
fern-api Bot requested a review from a team as a code owner October 13, 2026 05:52
Comment thread src/auth0/management/__init__.py Fixed
@fern-api
fern-api Bot force-pushed the fern-bot/2026-10-13_05-52-23_527 branch from 526ce13 to a401a80 Compare October 13, 2026 10:25
fern-api Bot added 2 commits October 14, 2026 10:04
Generated by Fern
CLI Version: unknown
Generators:
  - fernapi/fern-python-sdk: 5.26.0
@fern-api
fern-api Bot force-pushed the fern-bot/2026-10-13_05-52-23_527 branch from a401a80 to ad252ea Compare October 14, 2026 10:04
- Restores the Auth0 telemetry headers in the base client wrapper, which
were missing from the #898 branch.
  - `User-Agent` is set to `Python/<version>`.
- `Auth0-Client` carries a base64-encoded JSON payload with the SDK
name, the SDK version (read from the package at runtime), and the Python
version.
- Custom headers passed to the client are still merged in, and the
`Authorization` header is still set last.
- Adds `UPGRADING.md` to `.fernignore` so the v6 migration guide is kept
in the repository.
- Restores `UPGRADING.md` from master
### Changes

- Adds the nine resource properties that the generated Auth0 client
exposes but `ManagementClient` and `AsyncManagementClient` did not:
`agents`, `client_profiles`, `connection_profiles`, `events`,
`experimentation`, `groups`, `rate_limit_policies`, `risk_assessments`,
and `user_attribute_profiles`. Each returns the matching typed
sub-client.
- Before this change, calls such as `client.agents.list()` raised
`AttributeError` on the wrapper, even though the generated client had
the resource.
- Adds tests that compare the public properties of `Auth0` with
`ManagementClient`, and of `AsyncAuth0` with `AsyncManagementClient`. A
resource added to the generated client without a matching wrapper
property now fails the test suite.

### References

- #898

### Testing

Covered by unit tests in `tests/management`. The new drift tests fail
when a wrapper property is missing.

- [x] This change adds unit test coverage
- [ ] This change adds integration test coverage
- [ ] This change has been tested on the latest version of the
platform/language or why not

### Checklist

- [ ] I have read the [Auth0 general contribution
guidelines](https://github.com/auth0/open-source-template/blob/master/GENERAL-CONTRIBUTING.md)
- [ ] I have read the [Auth0 Code of
Conduct](https://github.com/auth0/open-source-template/blob/master/CODE-OF-CONDUCT.md)
- [ ] All existing and new tests complete without errors
@rmad17 rmad17 changed the title SDK regeneration feat!: add client profiles, captcha policies, client search, and dynamic CIMD settings Oct 14, 2026

@rmad17 rmad17 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

@rmad17
rmad17 merged commit 835e193 into master Oct 14, 2026
9 checks passed
@rmad17
rmad17 deleted the fern-bot/2026-10-13_05-52-23_527 branch October 14, 2026 18:00
@rmad17 rmad17 mentioned this pull request Oct 14, 2026
rmad17 added a commit that referenced this pull request Oct 14, 2026
⚠️ **Breaking Changes**
- `management.experimentation.experiments.update_status()` and
`management.experimentation.feature_flags.update_status()` removed along
with `UpdateExperimentStatusResponseContent` and
`UpdateFeatureFlagStatusResponseContent`. Set status through `update(id,
status=...)` instead. `SearchOrganization.metadata` removed.
`ConnectionResponseCommon` no longer extends `CreateConnectionCommon`
and requires `display_name`, though no endpoint returns this model.
Feature flag `variations.delete()` no longer maps HTTP 400 to
`BadRequestError`, so a 400 raises the base `ApiError`
[\#898](#898)
([fern-api[bot]](https://github.com/apps/fern-api))

**Added**
- Client profiles (`management.client_profiles`), CAPTCHA policies
(`management.attack_protection.captcha_policies`), client and client
grant search (`management.clients.search()`,
`management.client_grants.search()`), and dynamic CIMD registration in
tenant settings with per-client metadata status. Client
`enforce_anon_session_transfer_network_binding` setting, `oidc_support`
on `clients.update()`, tenant `dpop_strict_refresh_token_binding`
setting, brute force protection `form_submission_mode`, `status` on
experiments, feature flags, and segments, Google Workspace provisioning
and directory sync on connection profiles, organization member access
level on organization connection events, and the passkey Guardian factor
[\#898](#898)
([fern-api[bot]](https://github.com/apps/fern-api))

**Changed**
- `management.clients.register_cimd_client()` raises `ConflictError` on
HTTP 409 instead of `ApiError`. `ConflictError` subclasses `ApiError`,
so existing handlers still catch it. Role `owner_id` filter and response
fields are typed as `RoleOwnerIdFilter` and `RoleOwnerId` string
aliases. `a0stream` is now optional on connection, group, organization,
and user cloud event types
[\#898](#898)
([fern-api[bot]](https://github.com/apps/fern-api))

**Fixed**
- `ManagementClient` and `AsyncManagementClient` now expose `agents`,
`client_profiles`, `connection_profiles`, `events`, `experimentation`,
`groups`, `rate_limit_policies`, `risk_assessments`, and
`user_attribute_profiles`, which previously raised `AttributeError`
[\#901](#901)
([developerkunal](https://github.com/developerkunal))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants