view mod_muc_markers/README.markdown @ 5390:f2363e6d9a64

mod_http_oauth2: Advertise the currently supported id_token signing algorithm This field is REQUIRED. The algorithm RS256 MUST be included, but isn't because we don't implement it, as that would require implementing a pile of additional cryptography and JWT stuff. Instead the id_token is signed using the client secret, which allows verification by the client, since it's a shared secret per OpenID Connect Core 1.0 ยง 10.1 under Symmetric Signatures. OpenID Connect Discovery 1.0 has a lot of REQUIRED and MUST clauses that are not supported here, but that's okay because this is served from the RFC 8414 OAuth 2.0 Authorization Server Metadata .well-known endpoint!
author Kim Alvefur <zash@zash.se>
date Sun, 30 Apr 2023 16:13:40 +0200
parents 0227fb4d1b40
children
line wrap: on
line source

# Introduction

This module adds an internal Prosody API to retrieve the last displayed message by MUC occupants.

## Requirements

The clients must support XEP-0333, and the users to be tracked must be affiliated with the room.

Currently due to lack of clarity about which id to use in acknowledgements in XEP-0333, this module
rewrites the id attribute of stanzas to match the stanza (archive) id assigned by the MUC server.

Oh yeah, and mod_muc_mam is required (or another module that adds a stanza-id), otherwise this module
won't do anything.

# Configuring

## Enabling

``` {.lua}
Component "rooms.example.net" "muc"
modules_enabled = {
    "muc_markers";
    "muc_mam";
}
```

## Settings

| Name                       | Description                                                                          | Default     |
|----------------------------|--------------------------------------------------------------------------------------|-------------|
| muc_marker_summary_on_join | Whether a summary of all the latest markers should be sent to someone entering a MUC | true        |
| muc_marker_type            | The type of marker to track (displayed/received/acknowledged)                        | "displayed" |


# Developers

## Example usage

```
local muc_markers = module:depends("muc_markers");

function something()
	local last_displayed_id = muc_markers.get_user_read_marker("user@localhost", "room@conference.localhost");
end
```