Changes for version 0.001 - 2026-03-14
- Initial release
- Async OIDC client (Net::Async::Zitadel::OIDC):
- discovery_f, jwks_f, verify_token_f, userinfo_f, introspect_f
- token_f, client_credentials_token_f, refresh_token_f, exchange_authorization_code_f
- TTL-based caching: discovery_ttl (default 3600s), jwks_ttl (default 300s)
- JWKS in-flight coalescing: concurrent refresh requests share one Future
- Automatic JWKS refresh retry on token verification failure (key rotation)
- Async Management API client (Net::Async::Zitadel::Management):
- Human users: list_users_f, get_user_f, create_human_user_f, update_user_f, deactivate_user_f, reactivate_user_f, delete_user_f
- Passwords: set_password_f, request_password_reset_f
- User metadata: set_user_metadata_f, get_user_metadata_f, list_user_metadata_f
- Service users: create_service_user_f, list_service_users_f, get_service_user_f, delete_service_user_f
- Machine keys: add_machine_key_f, list_machine_keys_f, remove_machine_key_f
- Projects: list_projects_f, get_project_f, create_project_f, update_project_f, delete_project_f
- Apps: list_apps_f, get_app_f, create_oidc_app_f, update_oidc_app_f, delete_app_f
- Orgs: get_org_f, create_org_f, list_orgs_f, update_org_f, deactivate_org_f
- Roles: add_project_role_f, list_project_roles_f
- Grants: create_user_grant_f, list_user_grants_f
- Identity Providers: create_oidc_idp_f, list_idps_f, get_idp_f, update_idp_f, delete_idp_f, activate_idp_f, deactivate_idp_f
- Structured exception hierarchy (Net::Async::Zitadel::Error):
- ::Validation, ::Network, ::API (with http_status, api_message)
- Full BUILD validation for empty issuer/base_url
- Examples: examples/verify_token.pl, client_credentials.pl, manage_users.pl
- Integration test skeleton: t/10-integration.t (skipped without ZITADEL_ISSUER)
Modules
Async Perl client for Zitadel identity management (IO::Async + Future)
Structured exception classes for Net::Async::Zitadel
Async client for Zitadel Management API v1
Async OIDC client for Zitadel - token verification, JWKS, discovery
Provides
in lib/Net/Async/Zitadel/Error.pm
in lib/Net/Async/Zitadel/Error.pm
in lib/Net/Async/Zitadel/Error.pm