Annotate

mod_stats39/README.markdown @ 5193:2bb29ece216b

mod_http_oauth2: Implement stateless dynamic client registration Replaces previous explicit registration that required either the additional module mod_adhoc_oauth2_client or manually editing the database. That method was enough to have something to test with, but would not probably not scale easily. Dynamic client registration allows creating clients on the fly, which may be even easier in theory. In order to not allow basically unauthenticated writes to the database, we implement a stateless model here. per_host_key := HMAC(config -> oauth2_registration_key, hostname) client_id := JWT { client metadata } signed with per_host_key client_secret := HMAC(per_host_key, client_id) This should ensure everything we need to know is part of the client_id, allowing redirects etc to be validated, and the client_secret can be validated with only the client_id and the per_host_key. A nonce injected into the client_id JWT should ensure nobody can submit the same client metadata and retrieve the same client_secret
author Kim Alvefur <zash@zash.se>
date Fri, 03 Mar 2023 21:14:19 +0100
parent 4595:bac3dae031ee
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
4451
f1a63271dcfc Add tag 'Statistics' to some modules to ease discoverability
Kim Alvefur <zash@zash.se>
parents: 3845
diff changeset
1 ---
f1a63271dcfc Add tag 'Statistics' to some modules to ease discoverability
Kim Alvefur <zash@zash.se>
parents: 3845
diff changeset
2 labels:
f1a63271dcfc Add tag 'Statistics' to some modules to ease discoverability
Kim Alvefur <zash@zash.se>
parents: 3845
diff changeset
3 - 'Statistics'
f1a63271dcfc Add tag 'Statistics' to some modules to ease discoverability
Kim Alvefur <zash@zash.se>
parents: 3845
diff changeset
4 ...
f1a63271dcfc Add tag 'Statistics' to some modules to ease discoverability
Kim Alvefur <zash@zash.se>
parents: 3845
diff changeset
5
3844
c240934703bc mod_stats39: Add a README
Kim Alvefur <zash@zash.se>
parents:
diff changeset
6 This module provides **public** access to Prosodys
c240934703bc mod_stats39: Add a README
Kim Alvefur <zash@zash.se>
parents:
diff changeset
7 [internal statistics][doc:statistics] trough the
c240934703bc mod_stats39: Add a README
Kim Alvefur <zash@zash.se>
parents:
diff changeset
8 [XEP-0039: Statistics Gathering] protocol. This is a simple protocol
c240934703bc mod_stats39: Add a README
Kim Alvefur <zash@zash.se>
parents:
diff changeset
9 that returns triplets of name, unit and value for each know statistic
c240934703bc mod_stats39: Add a README
Kim Alvefur <zash@zash.se>
parents:
diff changeset
10 collected by Prosody. The names used are the internal names assigned by
c240934703bc mod_stats39: Add a README
Kim Alvefur <zash@zash.se>
parents:
diff changeset
11 modules or statsmanager, names from the registry are **not** used.
c240934703bc mod_stats39: Add a README
Kim Alvefur <zash@zash.se>
parents:
diff changeset
12
c240934703bc mod_stats39: Add a README
Kim Alvefur <zash@zash.se>
parents:
diff changeset
13 # Configuration
c240934703bc mod_stats39: Add a README
Kim Alvefur <zash@zash.se>
parents:
diff changeset
14
c240934703bc mod_stats39: Add a README
Kim Alvefur <zash@zash.se>
parents:
diff changeset
15 Enabled as usual by adding to [`modules_enabled`][doc:modules_enabled]:
c240934703bc mod_stats39: Add a README
Kim Alvefur <zash@zash.se>
parents:
diff changeset
16
c240934703bc mod_stats39: Add a README
Kim Alvefur <zash@zash.se>
parents:
diff changeset
17 ```lua
c240934703bc mod_stats39: Add a README
Kim Alvefur <zash@zash.se>
parents:
diff changeset
18 -- Enable Prosodys internal statistics gathering
c240934703bc mod_stats39: Add a README
Kim Alvefur <zash@zash.se>
parents:
diff changeset
19 statistics = "internal"
c240934703bc mod_stats39: Add a README
Kim Alvefur <zash@zash.se>
parents:
diff changeset
20
c240934703bc mod_stats39: Add a README
Kim Alvefur <zash@zash.se>
parents:
diff changeset
21 -- and enable the module
c240934703bc mod_stats39: Add a README
Kim Alvefur <zash@zash.se>
parents:
diff changeset
22 modules_enabled = {
c240934703bc mod_stats39: Add a README
Kim Alvefur <zash@zash.se>
parents:
diff changeset
23 -- other modules
c240934703bc mod_stats39: Add a README
Kim Alvefur <zash@zash.se>
parents:
diff changeset
24 "stats39";
c240934703bc mod_stats39: Add a README
Kim Alvefur <zash@zash.se>
parents:
diff changeset
25 }
c240934703bc mod_stats39: Add a README
Kim Alvefur <zash@zash.se>
parents:
diff changeset
26 ```
c240934703bc mod_stats39: Add a README
Kim Alvefur <zash@zash.se>
parents:
diff changeset
27
c240934703bc mod_stats39: Add a README
Kim Alvefur <zash@zash.se>
parents:
diff changeset
28 # Usage
c240934703bc mod_stats39: Add a README
Kim Alvefur <zash@zash.se>
parents:
diff changeset
29
c240934703bc mod_stats39: Add a README
Kim Alvefur <zash@zash.se>
parents:
diff changeset
30
c240934703bc mod_stats39: Add a README
Kim Alvefur <zash@zash.se>
parents:
diff changeset
31 ## Example
c240934703bc mod_stats39: Add a README
Kim Alvefur <zash@zash.se>
parents:
diff changeset
32
c240934703bc mod_stats39: Add a README
Kim Alvefur <zash@zash.se>
parents:
diff changeset
33 Statistics can be queried from the XML console of clients that have one:
c240934703bc mod_stats39: Add a README
Kim Alvefur <zash@zash.se>
parents:
diff changeset
34
c240934703bc mod_stats39: Add a README
Kim Alvefur <zash@zash.se>
parents:
diff changeset
35 ```xml
c240934703bc mod_stats39: Add a README
Kim Alvefur <zash@zash.se>
parents:
diff changeset
36 C:
c240934703bc mod_stats39: Add a README
Kim Alvefur <zash@zash.se>
parents:
diff changeset
37 <iq type="get" to="example.com" id="dTMERjt5">
c240934703bc mod_stats39: Add a README
Kim Alvefur <zash@zash.se>
parents:
diff changeset
38 <query xmlns="http://jabber.org/protocol/stats"/>
c240934703bc mod_stats39: Add a README
Kim Alvefur <zash@zash.se>
parents:
diff changeset
39 </iq>
c240934703bc mod_stats39: Add a README
Kim Alvefur <zash@zash.se>
parents:
diff changeset
40
c240934703bc mod_stats39: Add a README
Kim Alvefur <zash@zash.se>
parents:
diff changeset
41 S:
c240934703bc mod_stats39: Add a README
Kim Alvefur <zash@zash.se>
parents:
diff changeset
42 <iq type="result" to="example.com" id="dTMERjt5">
c240934703bc mod_stats39: Add a README
Kim Alvefur <zash@zash.se>
parents:
diff changeset
43 <query xmlns="http://jabber.org/protocol/stats">
3845
117f0fb8cb15 mod_stats39: Add actual example stats
Kim Alvefur <zash@zash.se>
parents: 3844
diff changeset
44 <stat name="cpu.clock:amount" value="0.212131"/>
117f0fb8cb15 mod_stats39: Add actual example stats
Kim Alvefur <zash@zash.se>
parents: 3844
diff changeset
45 <stat name="cpu.percent:amount" value="0"/>
117f0fb8cb15 mod_stats39: Add actual example stats
Kim Alvefur <zash@zash.se>
parents: 3844
diff changeset
46 <stat name="memory.allocated:amount" value="8.30259e+06"/>
117f0fb8cb15 mod_stats39: Add actual example stats
Kim Alvefur <zash@zash.se>
parents: 3844
diff changeset
47 <stat name="memory.allocated_mmap:amount" value="401408"/>
117f0fb8cb15 mod_stats39: Add actual example stats
Kim Alvefur <zash@zash.se>
parents: 3844
diff changeset
48 <stat name="memory.lua:amount" value="6.21347e+06"/>
117f0fb8cb15 mod_stats39: Add actual example stats
Kim Alvefur <zash@zash.se>
parents: 3844
diff changeset
49 <stat name="memory.returnable:amount" value="13872"/>
117f0fb8cb15 mod_stats39: Add actual example stats
Kim Alvefur <zash@zash.se>
parents: 3844
diff changeset
50 <stat name="memory.rss:amount" value="2.03858e+07"/>
117f0fb8cb15 mod_stats39: Add actual example stats
Kim Alvefur <zash@zash.se>
parents: 3844
diff changeset
51 <stat name="memory.total:amount" value="6.53885e+07"/>
117f0fb8cb15 mod_stats39: Add actual example stats
Kim Alvefur <zash@zash.se>
parents: 3844
diff changeset
52 <stat name="memory.unused:amount" value="14864"/>
117f0fb8cb15 mod_stats39: Add actual example stats
Kim Alvefur <zash@zash.se>
parents: 3844
diff changeset
53 <stat name="memory.used:amount" value="8.28773e+06"/>
117f0fb8cb15 mod_stats39: Add actual example stats
Kim Alvefur <zash@zash.se>
parents: 3844
diff changeset
54 <stat name="/*/mod_c2s/connections:amount" value="0"/>
117f0fb8cb15 mod_stats39: Add actual example stats
Kim Alvefur <zash@zash.se>
parents: 3844
diff changeset
55 <stat name="/*/mod_c2s/ipv6:amount" value="0"/>
117f0fb8cb15 mod_stats39: Add actual example stats
Kim Alvefur <zash@zash.se>
parents: 3844
diff changeset
56 <stat name="/*/mod_s2s/connections:amount" value="0"/>
117f0fb8cb15 mod_stats39: Add actual example stats
Kim Alvefur <zash@zash.se>
parents: 3844
diff changeset
57 <stat name="/*/mod_s2s/ipv6:amount" value="0"/>
117f0fb8cb15 mod_stats39: Add actual example stats
Kim Alvefur <zash@zash.se>
parents: 3844
diff changeset
58 <stat name="stats.collection:duration" unit="seconds" value="0.000125647"/>
117f0fb8cb15 mod_stats39: Add actual example stats
Kim Alvefur <zash@zash.se>
parents: 3844
diff changeset
59 <stat name="stats.processing:duration" unit="seconds" value="0"/>
3844
c240934703bc mod_stats39: Add a README
Kim Alvefur <zash@zash.se>
parents:
diff changeset
60 </query>
c240934703bc mod_stats39: Add a README
Kim Alvefur <zash@zash.se>
parents:
diff changeset
61 </iq>
c240934703bc mod_stats39: Add a README
Kim Alvefur <zash@zash.se>
parents:
diff changeset
62 ```
c240934703bc mod_stats39: Add a README
Kim Alvefur <zash@zash.se>
parents:
diff changeset
63
4595
bac3dae031ee Add note of incompatibility with trunk since 5f15ab7c6ae5
Kim Alvefur <zash@zash.se>
parents: 4451
diff changeset
64 # Compatibly
bac3dae031ee Add note of incompatibility with trunk since 5f15ab7c6ae5
Kim Alvefur <zash@zash.se>
parents: 4451
diff changeset
65
bac3dae031ee Add note of incompatibility with trunk since 5f15ab7c6ae5
Kim Alvefur <zash@zash.se>
parents: 4451
diff changeset
66 Prosody version Works
bac3dae031ee Add note of incompatibility with trunk since 5f15ab7c6ae5
Kim Alvefur <zash@zash.se>
parents: 4451
diff changeset
67 ----------------- -------
bac3dae031ee Add note of incompatibility with trunk since 5f15ab7c6ae5
Kim Alvefur <zash@zash.se>
parents: 4451
diff changeset
68 0.9.x No
bac3dae031ee Add note of incompatibility with trunk since 5f15ab7c6ae5
Kim Alvefur <zash@zash.se>
parents: 4451
diff changeset
69 0.10.x Yes
bac3dae031ee Add note of incompatibility with trunk since 5f15ab7c6ae5
Kim Alvefur <zash@zash.se>
parents: 4451
diff changeset
70 0.11.x Yes
bac3dae031ee Add note of incompatibility with trunk since 5f15ab7c6ae5
Kim Alvefur <zash@zash.se>
parents: 4451
diff changeset
71 Trunk[^1] No
bac3dae031ee Add note of incompatibility with trunk since 5f15ab7c6ae5
Kim Alvefur <zash@zash.se>
parents: 4451
diff changeset
72
bac3dae031ee Add note of incompatibility with trunk since 5f15ab7c6ae5
Kim Alvefur <zash@zash.se>
parents: 4451
diff changeset
73 [^1]: Does not work with trunk since the [change to
bac3dae031ee Add note of incompatibility with trunk since 5f15ab7c6ae5
Kim Alvefur <zash@zash.se>
parents: 4451
diff changeset
74 OpenMetrics](https://hg.prosody.im/trunk/rev/5f15ab7c6ae5)