NAME

Net::Async::Zitadel - Async Perl client for Zitadel identity management (IO::Async + Future)

VERSION

version 0.001

SYNOPSIS

use IO::Async::Loop;
use Net::Async::Zitadel;

my $loop = IO::Async::Loop->new;

my $z = Net::Async::Zitadel->new(
    issuer => 'https://zitadel.example.com',
    token  => $ENV{ZITADEL_PAT},
);
$loop->add($z);

# OIDC - verify tokens asynchronously
my $claims = $z->oidc->verify_token_f($access_token)->get;

# Management API - list users
my $users = $z->management->list_users_f(limit => 20)->get;

DESCRIPTION

Net::Async::Zitadel is an asynchronous Perl client for Zitadel, the open-source identity management platform. It wraps the WWW::Zitadel API surface with Net::Async::HTTP for non-blocking HTTP and Future-based return values.

Built on IO::Async::Notifier, it integrates naturally into any IO::Async event loop.

  • Async OIDC Client - Token verification via JWKS, discovery endpoint, userinfo. All methods return Futures.

  • Async Management API Client - CRUD operations for users, projects, applications, and organizations. All methods return Futures.

issuer

Required issuer URL, for example https://zitadel.example.com.

token

Optional Personal Access Token (PAT). Required only when using "management".

http

Lazy-built Net::Async::HTTP instance, added as a child notifier.

oidc

Lazy-built Net::Async::Zitadel::OIDC client.

management

Lazy-built Net::Async::Zitadel::Management client. Dies if token is missing.

SEE ALSO

WWW::Zitadel, Net::Async::Zitadel::OIDC, Net::Async::Zitadel::Management, IO::Async, Future

SUPPORT

Issues

Please report bugs and feature requests on GitHub at https://github.com/Getty/p5-net-async-zitadel/issues.

CONTRIBUTING

Contributions are welcome! Please fork the repository and submit a pull request.

AUTHOR

Torsten Raudssus <torsten@raudssus.de>

COPYRIGHT AND LICENSE

This software is copyright (c) 2026 by Torsten Raudssus.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.