NAME

Apache::Session::Browseable::Patroni - PostgreSQL/Patroni cluster support for Apache::Session::Browseable::PgJSON

SYNOPSIS

CREATE UNLOGGED TABLE sessions (
    id varchar(64) not null primary key,
    a_session jsonb,
);

Optionally, add indexes on some fields. Example for Lemonldap::NG:

CREATE INDEX uid1 ON sessions USING BTREE ( (a_session ->> '_whatToTrace') );
CREATE INDEX  s1  ON sessions ( (a_session ->> '_session_kind') );
CREATE INDEX  u1  ON sessions ( ( cast(a_session ->> '_utime' AS bigint) ) );
CREATE INDEX ip1  ON sessions USING BTREE ( (a_session ->> 'ipAddr') );

Use it with Perl:

use Apache::Session::Browseable::Postgres;

my $args = {
     DataSource => 'dbi:Pg:sessions',
     UserName   => $db_user,
     Password   => $db_pass,
     Commit     => 1,

     # List all Patroni API available (to avoid any haproxy and/or floating IP)
     PatroniUrl => 'http://1.2.3.4:8008/cluster http://2.3.4.5:8008/cluster',
};

# Use it like L<Apache::Session::Browseable::Postgres>

DESCRIPTION

Apache::Session::Browseable provides some class methods to manipulate all sessions and add the capability to index some fields to make research faster.

Apache::Session::Browseable::Patroni implements it for PosqtgreSQL databases using "json" or "jsonb" type to be able to browse sessions and is able to dial directly with Patroni API to find the master node of PostgreSQL cluster in case of error.

SEE ALSO

http://lemonldap-ng.org, Apache::Session::Postgres

COPYRIGHT AND LICENSE

2009-2025 by Xavier Guimard
2013-2025 by Clément Oudot
2019-2025 by Maxime Besson
2013-2025 by Worteks
2023-2025 by Linagora

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.10.1 or, at your option, any later version of Perl 5 you may have available.