summaryrefslogtreecommitdiffstats
path: root/docs
AgeCommit message (Collapse)Author
2022-08-26Don't allow to close polls twiceJoas Schilling
Signed-off-by: Joas Schilling <coding@schilljs.com>
2022-08-18Expose message expiration for chat message objectsJoas Schilling
Signed-off-by: Joas Schilling <coding@schilljs.com>
2022-08-12Merge pull request #7472 from nextcloud/jwt-authJoas Schilling
Implement JWT auth for signaling connections (hello v2)
2022-08-09Fix table formatingVitor Mattos
Signed-off-by: Vitor Mattos <vitor@php.rio>
2022-08-04Document "hello-v2-token-key" capability.Joachim Bauch
Signed-off-by: Joachim Bauch <bauch@struktur.de>
2022-08-03Document "helloAuthParams" in signaling settings.Joachim Bauch
Signed-off-by: Joachim Bauch <bauch@struktur.de>
2022-07-25Merge pull request #7624 from nextcloud/aaronsegura-patch-1Joas Schilling
[Documentation] Set proper header for requesting JSON response
2022-07-22Set proper header for requesting JSON responseAaron Segura
Signed-off-by: Aaron Segura <aaron@aaronsegura.com>
2022-07-22Fix issues mentioned in the polls reviewJoas Schilling
* Question is limited to 32k chars (not multibyte save, so an emoji is 3-4 chars) * Json encoded options array is limited to 60k chars (not multibyte save, so an emoji is 3-4 chars) * Options on creation are now validated to be strings * Options array on creating needs to be at least 2 strings long * Options on voting are now validated to be integers * System messages `poll_voted` do not contain the actor anymore to be okay with the hidden result mode Signed-off-by: Joas Schilling <coding@schilljs.com>
2022-07-04Add a capabilityJoas Schilling
Signed-off-by: Joas Schilling <coding@schilljs.com>
2022-07-03Update iOS requirementsSystemKeeper
Since https://github.com/nextcloud/talk-ios/pull/736 talk-ios targets iOS 12 as minimum iOS version. Signed-off-by: Marcel Müller <marcel-mueller@gmx.de>
2022-07-01Add json noteJoas Schilling
Signed-off-by: Joas Schilling <coding@schilljs.com>
2022-07-01Better document arraysJoas Schilling
Signed-off-by: Joas Schilling <coding@schilljs.com>
2022-07-01Fix table structures so IDEs stop complaining even though it is valid markdownJoas Schilling
Signed-off-by: Joas Schilling <coding@schilljs.com>
2022-07-01Adjust language handling in the system messageJoas Schilling
Signed-off-by: Joas Schilling <coding@schilljs.com>
2022-07-01Rename textVitor Mattos
Signed-off-by: Vitor Mattos <vitor@php.rio>
2022-07-01Add system message in chat.mdVitor Mattos
Signed-off-by: Vitor Mattos <vitor@php.rio>
2022-06-30Rename message expire to expire dateVitor Mattos
Signed-off-by: Vitor Mattos <vitor@php.rio>
2022-06-30Rename more ttl to message-expireVitor Mattos
Signed-off-by: Vitor Mattos <vitor@php.rio>
2022-06-30Rename time to live to message expireVitor Mattos
Signed-off-by: Vitor Mattos <vitor@php.rio>
2022-06-30Rename ttl to message expireVitor Mattos
Signed-off-by: Vitor Mattos <vitor@php.rio>
2022-06-30DocumentationVitor Mattos
Signed-off-by: Vitor Mattos <vitor@php.rio>
2022-06-30Merge pull request #7473 from nextcloud/feature/3089/password-policyJoas Schilling
Implement password policy checker
2022-06-29Fix the array structure of "voted" attribute with PHP json_encodeJoas Schilling
Signed-off-by: Joas Schilling <coding@schilljs.com>
2022-06-29Document poll system messagesJoas Schilling
Signed-off-by: Joas Schilling <coding@schilljs.com>
2022-06-29Implement password policy checkerJoas Schilling
Signed-off-by: Joas Schilling <coding@schilljs.com>
2022-06-21Add real participant modeDaniel Calviño Sánchez
The real participant mode is specific to Talkbuchet CLI and intended only for development. This mode does not use Talkbuchet.js at all, and just uses the real Talk app in the Nextcloud server to join the room and, optionally, the call with a real participant. Although it would provide the most accurate results in most cases it is not suitable for load tests of the server or other clients, as the use of real participants limits the number of participants that can be created by the system running the CLI without saturating the CPU (unless a remote Selenium server with plenty of available sessions is used). Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2022-06-21Expose connections and virtual participants to CLIDaniel Calviño Sánchez
The variables need to be exposed through a function, as the CLI has to copy the elements defined by Talkbuchet.js to the global scope when loading it, but if a variable is later overwritten the copied one would not reflect it. Note that CLI does not directly use the exposed publishers, subscribers and virtual participants; they are just exposed in case they need to be used by custom scripts. Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2022-06-21Add support for virtual participant mode to CLIDaniel Calviño Sánchez
Siege and virtual participant modes are independent one from the other, so at any given time the CLI only provides the global functions that belong to the mode currently active. By default the CLI starts in siege mode. Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2022-06-20Extract code specific to siege modeDaniel Calviño Sánchez
In order to add support for the virtual participant mode in a following commit the Talkbuchet wrapper class was split in a base class with the common code and a subclass with the code specific to siege mode. Similarly, the global helper functions were also split between the common ones and the siege specific ones, which will only be defined when "switchToSiegeMode()" is called (done by default). Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2022-06-20Add virtual participant modeDaniel Calviño Sánchez
In the virtual participant mode Talkbuchet can be used to add participants to a call and thus perform load test in clients. Virtual participants require much less resources than real participants in the system running Talkbuchet, so it makes possible to add a lot more participants than what would be possible with real participants. Note, however, that a single browser can run just a single virtual participant. Therefore, virtual participants are recommended to be used through the CLI (the support will be introduced in a following commit). Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2022-06-20Add helper methods to join calls and leave calls and roomsDaniel Calviño Sánchez
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2022-06-20Take credentials into account when joining a roomDaniel Calviño Sánchez
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2022-06-20Wait until the room is joined in the HPB before returningDaniel Calviño Sánchez
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2022-06-20Remove half-working code related to sieges with guest usersDaniel Calviño Sánchez
Automatically joining the room after getting the "hello" message is needed only for guest users. However, sieges as guest users are not possible, as joining the room a second time from the same browser causes the first guest to be unregistered. Due to this the code to automatically join the room is removed. The method to join the room, however, is kept, as it will be used by the "Virtual participant" mode to be introduced in a later commit. Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2022-06-20Show hint about settings when subscribers are not allowed to connectDaniel Calviño Sánchez
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2022-06-20Add helper functions to print connection statsDaniel Calviño Sánchez
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2022-06-20Print connection ID when checking themDaniel Calviño Sánchez
This makes possible to identify which connection has a problem and further investigate it if desired. Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2022-06-20Print progress while starting the connections of a siegeDaniel Calviño Sánchez
Starting tens or hundreds of connections may take a while, so the progress is now printed to prevent the user from wondering if it is working or not. Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2022-06-20Nullify stream when starting media againDaniel Calviño Sánchez
This ensures that if media can not be started again for some reason (for example, if neither audio nor video are now enabled) the old stream will not be kept. Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2022-06-20Guard against null streamsDaniel Calviño Sánchez
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2022-06-20Fix configured warning timeout not honoured when starting a siegeDaniel Calviño Sánchez
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2022-06-20Find default browser in Talkbuchet CLIDaniel Calviño Sánchez
When Talkbuchet CLI is executed through the Talkbuchet runner the browser available in the Docker image is automatically found, thus removing the need to explicitly set it. If Talkbuchet CLI is executed by other means, or if a remote Selenium server is used, the browser still needs to be explicitly set. Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2022-06-20Add support for Firefox in Talkbuchet runnerDaniel Calviño Sánchez
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2022-06-20Add support for Firefox in Talkbuchet CLIDaniel Calviño Sánchez
Firefox requires asynchronous functions to be executed using "executeAsync", and logs to be got using the BiDi protocol. Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2022-06-20Add helper class to get browser logs with BiDi protocolDaniel Calviño Sánchez
WebDriver BiDi protocol provides bidirectional communication between a WebDriver client and a web browser. In the original WebDriver protocol the client sends requests, but the browser is not able to send requests to the client on its own. Therefore, if a log was written by the browser the browser could not notify the client, and the client will not notice the log until it explicitly performs a new request. With the BiDi protocol the client can subscribe to events in the browser, so the browser will send them as soon as they happen. A new helper class is introduced to get browser logs using the BiDi protocol. Objects of this helper class will start their own thread to ensure that the logs can be received as soon as they happen, as the main Python thread could be be blocked waiting while a script is being executed in the browser and that script can cause log messages to be printed. Unfortunately, Chromium does not implement yet getting the logs using the BiDi protocol, so they still need to be got in the old way. Firefox, on the other hand, only allows getting the logs through BiDi, so the BiDi helper introduced here will be required to add support for Firefox. Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2022-06-20Add explicit method to run asynchronous codeDaniel Calviño Sánchez
Executing "await someFunctionCall()" as synchronous code works as expected in Chromium (the execution will not return until the awaited function ended). However, it does not when explicit Promises are used (it returns as soon as the main code finished, without waiting for the Promise to be fulfilled). WebDriver provides an explicit way to execute asynchronous functions and signal when they finished to return, so this is used now for all asynchronous code. This will also make possible to add support for Firefox, as in Firefox asynchronous functions executed as synchronous return immediately, so they need to be explicitly executed as asynchronous. Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2022-06-20Add global functions to start and stop siegesDaniel Calviño Sánchez
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2022-06-20Add helper script to run Talkbuchet in a Docker containerDaniel Calviño Sánchez
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2022-06-20Add CLI to run TalkbuchetDaniel Calviño Sánchez
Talkbuchet is a JavaScript script meant to be loaded and run in a browser. However, until now that required manually copying and pasting the script in a browser console. This commit adds a Python script that uses Selenium to launch a new browser, load Talkbuchet in it and control it through the Python script. Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>