Skip to content

Commit a89b4ee

Browse files
feat: Add default domain endpoints, connection key provisioning, tenant SCIM listing; remove MiiCard/Renren providers (#801)
### Changes #### New API Endpoints - Add `custom_domains.get_default()`- retrieve the tenant's default domain (`GET /custom-domains/default`) - Add `custom_domains.set_default(domain)` - set the default custom domain for the tenant (`PATCH /custom-domains/default`) - Add `connections.keys.create(id, request)` - provision initial connection keys for Okta/OIDC strategies enabling zero-downtime Private Key JWT transitions (`POST /connections/{id}/keys`) - Add `connections.scim_configuration.list(from_, take)` - retrieve paginated list of all SCIM configurations at the tenant level (`GET /connections-scim-configurations`) #### Updated Endpoints **Client Grants** - `client_grants.create()` -`client_id` is now optional; `audience` is the first required parameter (signature reorder) **LinkedIn Connections** - Restructure `ConnectionOptionsLinkedin`- base class changed from `ConnectionOptionsOAuth2Common` to `ConnectionOptionsCommon` - Add new LinkedIn-specific types: `ConnectionClientIdLinkedin`, `ConnectionClientSecretLinkedin`, `ConnectionFreeformScopesLinkedin`, `ConnectionScopeLinkedin` - Add `full_profile`, `network`, `openid` boolean fields to LinkedIn options **Documentation Improvements** - Update Lucene query syntax links from HTTP to HTTPS across Users and Custom Domains endpoints - Add parameter descriptions for `oidc_backchannel_logout`, `jwt_configuration`, `encryption_key`, `mobile` on Clients endpoints - Improve `user_metadata` / `app_metadata` descriptions on Users endpoints #### Removed Types (Legacy Providers) - Remove MiiCard connection support - `ConnectionOptionsMiicard`, `ConnectionResponseContentMiicard`, `CreateConnectionRequestContentMiicard` and related types - Remove Renren connection support - `ConnectionOptionsRenren`, `ConnectionResponseContentRenren`, `CreateConnectionRequestContentRenren` and related types - Remove `ConnectionDpopSigningAlgEnum` (deprecated) #### New Types - Add default domain response types: `GetDefaultCanonicalDomainResponseContent`, `GetDefaultCustomDomainResponseContent`, `GetDefaultDomainResponseContent`, `UpdateDefaultDomainResponseContent` - Add connection keys types: `PostConnectionKeysAlgEnum`, `PostConnectionKeysRequestContent`, `PostConnectionsKeysResponseContent`, `PostConnectionsKeysResponseContentItem` - Add `ListScimConfigurationsResponseContent`, `ScimConfiguration` for tenant-level SCIM listing - Add `SynchronizeGroupsEnum`, `SynchronizeGroupsEaEnum` for group synchronization - Add `ConnectionApiEnableGroups`, `ConnectionApiEnableGroupsGoogleApps` for group enablement ### Testing - 559 tests pass (1 skipped), 0 failures across the full test suite - 4 new wire tests added: `test_customDomains_get_default`, `test_customDomains_set_default`, `test_connections_keys_create`, `test_connections_scimConfiguration_list_` Co-authored-by: fern-api[bot] <115122769+fern-api[bot]@users.noreply.github.com> Co-authored-by: Snehil Kishore <snehil.kishore@okta.com>
1 parent 10c6a76 commit a89b4ee

File tree

109 files changed

+2258
-440
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

109 files changed

+2258
-440
lines changed

reference.md

Lines changed: 396 additions & 94 deletions
Large diffs are not rendered by default.

src/auth0/management/branding/phone/templates/client.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -260,6 +260,7 @@ def test(
260260
Destination of the testing phone notification
261261
262262
delivery_method : typing.Optional[PhoneProviderDeliveryMethodEnum]
263+
Medium to use to send the notification
263264
264265
request_options : typing.Optional[RequestOptions]
265266
Request-specific configuration.
@@ -572,6 +573,7 @@ async def test(
572573
Destination of the testing phone notification
573574
574575
delivery_method : typing.Optional[PhoneProviderDeliveryMethodEnum]
576+
Medium to use to send the notification
575577
576578
request_options : typing.Optional[RequestOptions]
577579
Request-specific configuration.

src/auth0/management/branding/phone/templates/raw_client.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -625,6 +625,7 @@ def test(
625625
Destination of the testing phone notification
626626
627627
delivery_method : typing.Optional[PhoneProviderDeliveryMethodEnum]
628+
Medium to use to send the notification
628629
629630
request_options : typing.Optional[RequestOptions]
630631
Request-specific configuration.
@@ -1311,6 +1312,7 @@ async def test(
13111312
Destination of the testing phone notification
13121313
13131314
delivery_method : typing.Optional[PhoneProviderDeliveryMethodEnum]
1315+
Medium to use to send the notification
13141316
13151317
request_options : typing.Optional[RequestOptions]
13161318
Request-specific configuration.

src/auth0/management/client_grants/client.py

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -117,8 +117,8 @@ def list(
117117
def create(
118118
self,
119119
*,
120-
client_id: str,
121120
audience: str,
121+
client_id: typing.Optional[str] = OMIT,
122122
organization_usage: typing.Optional[ClientGrantOrganizationUsageEnum] = OMIT,
123123
allow_any_organization: typing.Optional[bool] = OMIT,
124124
scope: typing.Optional[typing.Sequence[str]] = OMIT,
@@ -132,12 +132,12 @@ def create(
132132
133133
Parameters
134134
----------
135-
client_id : str
136-
ID of the client.
137-
138135
audience : str
139136
The audience (API identifier) of this client grant
140137
138+
client_id : typing.Optional[str]
139+
ID of the client.
140+
141141
organization_usage : typing.Optional[ClientGrantOrganizationUsageEnum]
142142
143143
allow_any_organization : typing.Optional[bool]
@@ -170,13 +170,12 @@ def create(
170170
token="YOUR_TOKEN",
171171
)
172172
client.client_grants.create(
173-
client_id="client_id",
174173
audience="audience",
175174
)
176175
"""
177176
_response = self._raw_client.create(
178-
client_id=client_id,
179177
audience=audience,
178+
client_id=client_id,
180179
organization_usage=organization_usage,
181180
allow_any_organization=allow_any_organization,
182181
scope=scope,
@@ -423,8 +422,8 @@ async def main() -> None:
423422
async def create(
424423
self,
425424
*,
426-
client_id: str,
427425
audience: str,
426+
client_id: typing.Optional[str] = OMIT,
428427
organization_usage: typing.Optional[ClientGrantOrganizationUsageEnum] = OMIT,
429428
allow_any_organization: typing.Optional[bool] = OMIT,
430429
scope: typing.Optional[typing.Sequence[str]] = OMIT,
@@ -438,12 +437,12 @@ async def create(
438437
439438
Parameters
440439
----------
441-
client_id : str
442-
ID of the client.
443-
444440
audience : str
445441
The audience (API identifier) of this client grant
446442
443+
client_id : typing.Optional[str]
444+
ID of the client.
445+
447446
organization_usage : typing.Optional[ClientGrantOrganizationUsageEnum]
448447
449448
allow_any_organization : typing.Optional[bool]
@@ -481,16 +480,15 @@ async def create(
481480
482481
async def main() -> None:
483482
await client.client_grants.create(
484-
client_id="client_id",
485483
audience="audience",
486484
)
487485
488486
489487
asyncio.run(main())
490488
"""
491489
_response = await self._raw_client.create(
492-
client_id=client_id,
493490
audience=audience,
491+
client_id=client_id,
494492
organization_usage=organization_usage,
495493
allow_any_organization=allow_any_organization,
496494
scope=scope,

src/auth0/management/client_grants/raw_client.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -152,8 +152,8 @@ def list(
152152
def create(
153153
self,
154154
*,
155-
client_id: str,
156155
audience: str,
156+
client_id: typing.Optional[str] = OMIT,
157157
organization_usage: typing.Optional[ClientGrantOrganizationUsageEnum] = OMIT,
158158
allow_any_organization: typing.Optional[bool] = OMIT,
159159
scope: typing.Optional[typing.Sequence[str]] = OMIT,
@@ -167,12 +167,12 @@ def create(
167167
168168
Parameters
169169
----------
170-
client_id : str
171-
ID of the client.
172-
173170
audience : str
174171
The audience (API identifier) of this client grant
175172
173+
client_id : typing.Optional[str]
174+
ID of the client.
175+
176176
organization_usage : typing.Optional[ClientGrantOrganizationUsageEnum]
177177
178178
allow_any_organization : typing.Optional[bool]
@@ -707,8 +707,8 @@ async def _get_next():
707707
async def create(
708708
self,
709709
*,
710-
client_id: str,
711710
audience: str,
711+
client_id: typing.Optional[str] = OMIT,
712712
organization_usage: typing.Optional[ClientGrantOrganizationUsageEnum] = OMIT,
713713
allow_any_organization: typing.Optional[bool] = OMIT,
714714
scope: typing.Optional[typing.Sequence[str]] = OMIT,
@@ -722,12 +722,12 @@ async def create(
722722
723723
Parameters
724724
----------
725-
client_id : str
726-
ID of the client.
727-
728725
audience : str
729726
The audience (API identifier) of this client grant
730727
728+
client_id : typing.Optional[str]
729+
ID of the client.
730+
731731
organization_usage : typing.Optional[ClientGrantOrganizationUsageEnum]
732732
733733
allow_any_organization : typing.Optional[bool]

src/auth0/management/clients/client.py

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,7 @@ def list(
151151
Optional filter by a comma-separated list of application types.
152152
153153
q : typing.Optional[str]
154-
Advanced Query in <a href="http://www.lucenetutorial.com/lucene-query-syntax.html">Lucene</a> syntax.<br /><b>Permitted Queries</b>:<br /><ul><li><i>client_grant.organization_id:{organization_id}</i></li><li><i>client_grant.allow_any_organization:true</i></li></ul><b>Additional Restrictions</b>:<br /><ul><li>Cannot be used in combination with other filters</li><li>Requires use of the <i>from</i> and <i>take</i> paging parameters (checkpoint paginatinon)</li><li>Reduced rate limits apply. See <a href="https://auth0.com/docs/troubleshoot/customer-support/operational-policies/rate-limit-policy/rate-limit-configurations/enterprise-public">Rate Limit Configurations</a></li></ul><i><b>Note</b>: Recent updates may not be immediately reflected in query results</i>
154+
Advanced Query in <a href="https://lucene.apache.org/core/2_9_4/queryparsersyntax.html">Lucene</a> syntax.<br /><b>Permitted Queries</b>:<br /><ul><li><i>client_grant.organization_id:{organization_id}</i></li><li><i>client_grant.allow_any_organization:true</i></li></ul><b>Additional Restrictions</b>:<br /><ul><li>Cannot be used in combination with other filters</li><li>Requires use of the <i>from</i> and <i>take</i> paging parameters (checkpoint paginatinon)</li><li>Reduced rate limits apply. See <a href="https://auth0.com/docs/troubleshoot/customer-support/operational-policies/rate-limit-policy/rate-limit-configurations/enterprise-public">Rate Limit Configurations</a></li></ul><i><b>Note</b>: Recent updates may not be immediately reflected in query results</i>
155155
156156
request_options : typing.Optional[RequestOptions]
157157
Request-specific configuration.
@@ -288,6 +288,7 @@ def create(
288288
oidc_logout : typing.Optional[ClientOidcBackchannelLogoutSettings]
289289
290290
oidc_backchannel_logout : typing.Optional[ClientOidcBackchannelLogoutSettings]
291+
Configuration for OIDC backchannel logout (deprecated, in favor of oidc_logout)
291292
292293
session_transfer : typing.Optional[ClientSessionTransferConfiguration]
293294
@@ -677,6 +678,7 @@ def update(
677678
oidc_logout : typing.Optional[ClientOidcBackchannelLogoutSettings]
678679
679680
oidc_backchannel_logout : typing.Optional[ClientOidcBackchannelLogoutSettings]
681+
Configuration for OIDC backchannel logout (deprecated, in favor of oidc_logout)
680682
681683
session_transfer : typing.Optional[ClientSessionTransferConfiguration]
682684
@@ -699,8 +701,10 @@ def update(
699701
URLs that are valid to redirect to after logout from Auth0
700702
701703
jwt_configuration : typing.Optional[ClientJwtConfiguration]
704+
An object that holds settings related to how JWTs are created
702705
703706
encryption_key : typing.Optional[ClientEncryptionKey]
707+
The client's encryption key
704708
705709
sso : typing.Optional[bool]
706710
<code>true</code> to use Auth0 instead of the IdP to do Single Sign On, <code>false</code> otherwise (default: <code>false</code>)
@@ -745,6 +749,7 @@ def update(
745749
client_metadata : typing.Optional[ClientMetadata]
746750
747751
mobile : typing.Optional[ClientMobile]
752+
Configuration related to native mobile apps
748753
749754
initiate_login_uri : typing.Optional[str]
750755
Initiate login uri, must be https
@@ -1011,7 +1016,7 @@ async def list(
10111016
Optional filter by a comma-separated list of application types.
10121017
10131018
q : typing.Optional[str]
1014-
Advanced Query in <a href="http://www.lucenetutorial.com/lucene-query-syntax.html">Lucene</a> syntax.<br /><b>Permitted Queries</b>:<br /><ul><li><i>client_grant.organization_id:{organization_id}</i></li><li><i>client_grant.allow_any_organization:true</i></li></ul><b>Additional Restrictions</b>:<br /><ul><li>Cannot be used in combination with other filters</li><li>Requires use of the <i>from</i> and <i>take</i> paging parameters (checkpoint paginatinon)</li><li>Reduced rate limits apply. See <a href="https://auth0.com/docs/troubleshoot/customer-support/operational-policies/rate-limit-policy/rate-limit-configurations/enterprise-public">Rate Limit Configurations</a></li></ul><i><b>Note</b>: Recent updates may not be immediately reflected in query results</i>
1019+
Advanced Query in <a href="https://lucene.apache.org/core/2_9_4/queryparsersyntax.html">Lucene</a> syntax.<br /><b>Permitted Queries</b>:<br /><ul><li><i>client_grant.organization_id:{organization_id}</i></li><li><i>client_grant.allow_any_organization:true</i></li></ul><b>Additional Restrictions</b>:<br /><ul><li>Cannot be used in combination with other filters</li><li>Requires use of the <i>from</i> and <i>take</i> paging parameters (checkpoint paginatinon)</li><li>Reduced rate limits apply. See <a href="https://auth0.com/docs/troubleshoot/customer-support/operational-policies/rate-limit-policy/rate-limit-configurations/enterprise-public">Rate Limit Configurations</a></li></ul><i><b>Note</b>: Recent updates may not be immediately reflected in query results</i>
10151020
10161021
request_options : typing.Optional[RequestOptions]
10171022
Request-specific configuration.
@@ -1157,6 +1162,7 @@ async def create(
11571162
oidc_logout : typing.Optional[ClientOidcBackchannelLogoutSettings]
11581163
11591164
oidc_backchannel_logout : typing.Optional[ClientOidcBackchannelLogoutSettings]
1165+
Configuration for OIDC backchannel logout (deprecated, in favor of oidc_logout)
11601166
11611167
session_transfer : typing.Optional[ClientSessionTransferConfiguration]
11621168
@@ -1570,6 +1576,7 @@ async def update(
15701576
oidc_logout : typing.Optional[ClientOidcBackchannelLogoutSettings]
15711577
15721578
oidc_backchannel_logout : typing.Optional[ClientOidcBackchannelLogoutSettings]
1579+
Configuration for OIDC backchannel logout (deprecated, in favor of oidc_logout)
15731580
15741581
session_transfer : typing.Optional[ClientSessionTransferConfiguration]
15751582
@@ -1592,8 +1599,10 @@ async def update(
15921599
URLs that are valid to redirect to after logout from Auth0
15931600
15941601
jwt_configuration : typing.Optional[ClientJwtConfiguration]
1602+
An object that holds settings related to how JWTs are created
15951603
15961604
encryption_key : typing.Optional[ClientEncryptionKey]
1605+
The client's encryption key
15971606
15981607
sso : typing.Optional[bool]
15991608
<code>true</code> to use Auth0 instead of the IdP to do Single Sign On, <code>false</code> otherwise (default: <code>false</code>)
@@ -1638,6 +1647,7 @@ async def update(
16381647
client_metadata : typing.Optional[ClientMetadata]
16391648
16401649
mobile : typing.Optional[ClientMobile]
1650+
Configuration related to native mobile apps
16411651
16421652
initiate_login_uri : typing.Optional[str]
16431653
Initiate login uri, must be https

src/auth0/management/clients/credentials/client.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,7 @@ def create(
7878
alg: typing.Optional[PublicKeyCredentialAlgorithmEnum] = OMIT,
7979
parse_expiry_from_cert: typing.Optional[bool] = OMIT,
8080
expires_at: typing.Optional[dt.datetime] = OMIT,
81+
kid: typing.Optional[str] = OMIT,
8182
request_options: typing.Optional[RequestOptions] = None,
8283
) -> PostClientCredentialResponseContent:
8384
"""
@@ -139,6 +140,9 @@ def create(
139140
expires_at : typing.Optional[dt.datetime]
140141
The ISO 8601 formatted date representing the expiration of the credential. If not specified (not recommended), the credential never expires. Applies to `public_key` credential type.
141142
143+
kid : typing.Optional[str]
144+
Optional kid (Key ID), used to uniquely identify the credential. If not specified, a kid value will be auto-generated. The kid header parameter in JWTs sent by your client should match this value. Valid format is [0-9a-zA-Z-_]{10,64}
145+
142146
request_options : typing.Optional[RequestOptions]
143147
Request-specific configuration.
144148
@@ -168,6 +172,7 @@ def create(
168172
alg=alg,
169173
parse_expiry_from_cert=parse_expiry_from_cert,
170174
expires_at=expires_at,
175+
kid=kid,
171176
request_options=request_options,
172177
)
173178
return _response.data
@@ -364,6 +369,7 @@ async def create(
364369
alg: typing.Optional[PublicKeyCredentialAlgorithmEnum] = OMIT,
365370
parse_expiry_from_cert: typing.Optional[bool] = OMIT,
366371
expires_at: typing.Optional[dt.datetime] = OMIT,
372+
kid: typing.Optional[str] = OMIT,
367373
request_options: typing.Optional[RequestOptions] = None,
368374
) -> PostClientCredentialResponseContent:
369375
"""
@@ -425,6 +431,9 @@ async def create(
425431
expires_at : typing.Optional[dt.datetime]
426432
The ISO 8601 formatted date representing the expiration of the credential. If not specified (not recommended), the credential never expires. Applies to `public_key` credential type.
427433
434+
kid : typing.Optional[str]
435+
Optional kid (Key ID), used to uniquely identify the credential. If not specified, a kid value will be auto-generated. The kid header parameter in JWTs sent by your client should match this value. Valid format is [0-9a-zA-Z-_]{10,64}
436+
428437
request_options : typing.Optional[RequestOptions]
429438
Request-specific configuration.
430439
@@ -462,6 +471,7 @@ async def main() -> None:
462471
alg=alg,
463472
parse_expiry_from_cert=parse_expiry_from_cert,
464473
expires_at=expires_at,
474+
kid=kid,
465475
request_options=request_options,
466476
)
467477
return _response.data

src/auth0/management/clients/credentials/raw_client.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,7 @@ def create(
126126
alg: typing.Optional[PublicKeyCredentialAlgorithmEnum] = OMIT,
127127
parse_expiry_from_cert: typing.Optional[bool] = OMIT,
128128
expires_at: typing.Optional[dt.datetime] = OMIT,
129+
kid: typing.Optional[str] = OMIT,
129130
request_options: typing.Optional[RequestOptions] = None,
130131
) -> HttpResponse[PostClientCredentialResponseContent]:
131132
"""
@@ -187,6 +188,9 @@ def create(
187188
expires_at : typing.Optional[dt.datetime]
188189
The ISO 8601 formatted date representing the expiration of the credential. If not specified (not recommended), the credential never expires. Applies to `public_key` credential type.
189190
191+
kid : typing.Optional[str]
192+
Optional kid (Key ID), used to uniquely identify the credential. If not specified, a kid value will be auto-generated. The kid header parameter in JWTs sent by your client should match this value. Valid format is [0-9a-zA-Z-_]{10,64}
193+
190194
request_options : typing.Optional[RequestOptions]
191195
Request-specific configuration.
192196
@@ -206,6 +210,7 @@ def create(
206210
"alg": alg,
207211
"parse_expiry_from_cert": parse_expiry_from_cert,
208212
"expires_at": expires_at,
213+
"kid": kid,
209214
},
210215
headers={
211216
"content-type": "application/json",
@@ -662,6 +667,7 @@ async def create(
662667
alg: typing.Optional[PublicKeyCredentialAlgorithmEnum] = OMIT,
663668
parse_expiry_from_cert: typing.Optional[bool] = OMIT,
664669
expires_at: typing.Optional[dt.datetime] = OMIT,
670+
kid: typing.Optional[str] = OMIT,
665671
request_options: typing.Optional[RequestOptions] = None,
666672
) -> AsyncHttpResponse[PostClientCredentialResponseContent]:
667673
"""
@@ -723,6 +729,9 @@ async def create(
723729
expires_at : typing.Optional[dt.datetime]
724730
The ISO 8601 formatted date representing the expiration of the credential. If not specified (not recommended), the credential never expires. Applies to `public_key` credential type.
725731
732+
kid : typing.Optional[str]
733+
Optional kid (Key ID), used to uniquely identify the credential. If not specified, a kid value will be auto-generated. The kid header parameter in JWTs sent by your client should match this value. Valid format is [0-9a-zA-Z-_]{10,64}
734+
726735
request_options : typing.Optional[RequestOptions]
727736
Request-specific configuration.
728737
@@ -742,6 +751,7 @@ async def create(
742751
"alg": alg,
743752
"parse_expiry_from_cert": parse_expiry_from_cert,
744753
"expires_at": expires_at,
754+
"kid": kid,
745755
},
746756
headers={
747757
"content-type": "application/json",

0 commit comments

Comments
 (0)