git.iko.soy/typeable/nixpkgs
on master help sign in
keycloak-metrics-spi: init at 2.5.3
commit6f5636223cf615d2c304c8335ee072726d775191 authorBenjamin Staffin <benley@gmail.com> dateTue 22 Mar 2022, 19:57 (5 years ago) parenta12b2ce
3 files changed+42−1
nixos/tests/keycloak.nix+15−1 pkgs/servers/keycloak/all-plugins.nix+1 pkgs/servers/keycloak/keycloak-metrics-spi/default.nix+26
nixos/tests/keycloak.nix+15−1
@@ -37,6 +37,7 @@ let
3737 };
3838 plugins = with config.services.keycloak.package.plugins; [
3939 keycloak-discord
40+ keycloak-metrics-spi
4041 ];
4142 };
4243
@@ -104,8 +105,21 @@ let
104105 ### Realm Setup ###
105106
106107 # Get an admin interface access token
108+ keycloak.succeed("""
109+ curl -sSf -d 'client_id=admin-cli' \
110+ -d 'username=admin' \
111+ -d 'password=${initialAdminPassword}' \
112+ -d 'grant_type=password' \
113+ '${frontendUrl}/realms/master/protocol/openid-connect/token' \
114+ | jq -r '"Authorization: bearer " + .access_token' >admin_auth_header
115+ """)
116+
117+ # Register the metrics SPI
107118 keycloak.succeed(
108− "curl -sSf -d 'client_id=admin-cli' -d 'username=admin' -d 'password=${initialAdminPassword}' -d 'grant_type=password' '${frontendUrl}/realms/master/protocol/openid-connect/token' | jq -r '\"Authorization: bearer \" + .access_token' >admin_auth_header"
119+ "${pkgs.jre}/bin/keytool -import -alias snakeoil -file ${certs.ca.cert} -storepass aaaaaa -keystore cacert.jks -noprompt",
120+ "KC_OPTS='-Djavax.net.ssl.trustStore=cacert.jks -Djavax.net.ssl.trustStorePassword=aaaaaa' ${pkgs.keycloak}/bin/kcadm.sh config credentials --server '${frontendUrl}' --realm master --user admin --password '${initialAdminPassword}'",
121+ "KC_OPTS='-Djavax.net.ssl.trustStore=cacert.jks -Djavax.net.ssl.trustStorePassword=aaaaaa' ${pkgs.keycloak}/bin/kcadm.sh update events/config -s 'eventsEnabled=true' -s 'adminEventsEnabled=true' -s 'eventsListeners+=metrics-listener'",
122+ "curl -sSf '${frontendUrl}/realms/master/metrics' | grep '^keycloak_admin_event_UPDATE'"
109123 )
110124
111125 # Publish the realm, including a test OIDC client and user
pkgs/servers/keycloak/all-plugins.nix+1
@@ -3,4 +3,5 @@
33{
44 scim-for-keycloak = callPackage ./scim-for-keycloak {};
55 keycloak-discord = callPackage ./keycloak-discord {};
6+ keycloak-metrics-spi = callPackage ./keycloak-metrics-spi {};
67}
pkgs/servers/keycloak/keycloak-metrics-spi/default.nixnew file+26
@@ -0,0 +1,26 @@
1+{ stdenv, lib, fetchurl }:
2+
3+stdenv.mkDerivation rec {
4+ pname = "keycloak-metrics-spi";
5+ version = "2.5.3";
6+
7+ src = fetchurl {
8+ url = "https://github.com/aerogear/keycloak-metrics-spi/releases/download/${version}/keycloak-metrics-spi-${version}.jar";
9+ sha256 = "15lsy8wjw6nlfdfhllc45z9l5474p0lsghrwzzsssvd68bw54gwv";
10+ };
11+
12+ dontUnpack = true;
13+ dontBuild = true;
14+
15+ installPhase = ''
16+ mkdir -p $out
17+ install "$src" "$out"
18+ '';
19+
20+ meta = with lib; {
21+ homepage = "https://github.com/aerogear/keycloak-metrics-spi";
22+ description = "Keycloak Service Provider that adds a metrics endpoint";
23+ license = licenses.apsl20;
24+ maintainers = with maintainers; [ benley ];
25+ };
26+}