Skip to content
This repository was archived by the owner on Mar 23, 2026. It is now read-only.

IAM: Migrate OIDC Operations#13800

Merged
dfangl merged 3 commits into
iam/moto-migrationfrom
cris/unc-268
Feb 24, 2026
Merged

IAM: Migrate OIDC Operations#13800
dfangl merged 3 commits into
iam/moto-migrationfrom
cris/unc-268

Conversation

@pinzon

@pinzon pinzon commented Feb 19, 2026

Copy link
Copy Markdown
Member

Motivation

As per the IAM internalization project. This pr implements the operations and resources required for OpenID connector provider management in the IAM service.

Changes

  • New dataclass OIDCProvider in models.py with fields: arn, url, create_date, client_id_list,
    thumbprint_list, tags
  • Storage of oidc_providers by ARN in the store
  • New method _get_oidc_provider_arn to generate provider ARN from URL
  • New method _get_oidc_provider_or_raise to retrieve provider or raise NoSuchEntityException
  • Service operation added: create_open_id_connect_provider
  • Service operation added: get_open_id_connect_provider
  • Service operation added: list_open_id_connect_providers
  • Service operation added: delete_open_id_connect_provider
  • Service operation added: add_client_id_to_open_id_connect_provider
  • Service operation added: remove_client_id_from_open_id_connect_provider
  • Service operation added: update_open_id_connect_provider_thumbprint
  • Service operation added: tag_open_id_connect_provider
  • Service operation added: untag_open_id_connect_provider
  • Service operation added: list_open_id_connect_provider_tags

Tests

All the recently added tests for OIDC must be pass.

Merge after #13794

@pinzon pinzon added semver: patch Non-breaking changes which can be included in patch releases docs: skip Pull request does not require documentation changes notes: skip Pull request does not have to be mentioned in the release notes labels Feb 19, 2026
@pinzon pinzon added this to the 4.14 milestone Feb 19, 2026
@pinzon pinzon marked this pull request as ready for review February 19, 2026 21:04
@pinzon pinzon requested a review from dfangl as a code owner February 19, 2026 21:04
@github-actions

github-actions Bot commented Feb 19, 2026

Copy link
Copy Markdown

Test Results - Preflight, Unit

23 123 tests  ±0   21 252 ✅ ±0   6m 7s ⏱️ -10s
     1 suites ±0    1 871 💤 ±0 
     1 files   ±0        0 ❌ ±0 

Results for commit c1880ac. ± Comparison against base commit 00594bb.

♻️ This comment has been updated with latest results.

@github-actions

github-actions Bot commented Feb 19, 2026

Copy link
Copy Markdown

LocalStack Community integration with Pro

  2 files    2 suites   3m 1s ⏱️
518 tests 439 ✅ 68 💤 11 ❌
520 runs  439 ✅ 70 💤 11 ❌

For more details on these failures, see this check.

Results for commit c1880ac.

♻️ This comment has been updated with latest results.

@github-actions

github-actions Bot commented Feb 19, 2026

Copy link
Copy Markdown

Test Results (amd64) - Acceptance

7 tests  ±0   5 ✅ ±0   2m 59s ⏱️ ±0s
1 suites ±0   2 💤 ±0 
1 files   ±0   0 ❌ ±0 

Results for commit c1880ac. ± Comparison against base commit 00594bb.

♻️ This comment has been updated with latest results.

@github-actions

github-actions Bot commented Feb 19, 2026

Copy link
Copy Markdown

Test Results (amd64) - Integration, Bootstrap

  5 files  ±    0    5 suites  ±0   11m 47s ⏱️ - 2h 33m 34s
542 tests  - 5 485  461 ✅  - 4 946  68 💤  - 519  13 ❌  - 20 
548 runs   - 5 485  461 ✅  - 4 946  74 💤  - 519  13 ❌  - 20 

For more details on these failures, see this check.

Results for commit c1880ac. ± Comparison against base commit 00594bb.

♻️ This comment has been updated with latest results.

@dfangl dfangl left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

LGTM!

Comment on lines +3158 to +3163
if host.startswith("https://"):
host = host[8:]
elif host.startswith("http://"):
host = host[7:]
# Remove trailing slash
host = host.rstrip("/")

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

nit: urlparse or a simple split on "://" might have been easier, but it's fine 😅

Comment on lines +3381 to +3401
# Handle marker-based pagination
if marker:
# Marker is the index (0-based) as a string
try:
start_index = int(marker)
except ValueError:
start_index = 0

# Apply pagination
if max_items:
end_index = start_index + max_items
paginated_tags = tags[start_index:end_index]
is_truncated = end_index < len(tags)
else:
paginated_tags = tags[start_index:]
is_truncated = False

response = ListOpenIDConnectProviderTagsResponse(
Tags=paginated_tags,
IsTruncated=is_truncated,
)

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

We should use the PaginatedList here!

@dfangl dfangl merged commit a1ce0d7 into iam/moto-migration Feb 24, 2026
5 checks passed
@dfangl dfangl deleted the cris/unc-268 branch February 24, 2026 17:41
dfangl added a commit that referenced this pull request Feb 26, 2026
Co-authored-by: Daniel Fangl <daniel.fangl@localstack.cloud>
dfangl added a commit that referenced this pull request Feb 26, 2026
Co-authored-by: Daniel Fangl <daniel.fangl@localstack.cloud>
dfangl added a commit that referenced this pull request Mar 4, 2026
Co-authored-by: Daniel Fangl <daniel.fangl@localstack.cloud>
dfangl added a commit that referenced this pull request Mar 6, 2026
Co-authored-by: Daniel Fangl <daniel.fangl@localstack.cloud>
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

docs: skip Pull request does not require documentation changes notes: skip Pull request does not have to be mentioned in the release notes semver: patch Non-breaking changes which can be included in patch releases

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants