From 374dfad41431ab5d80126f5f0340173709ae06a9 Mon Sep 17 00:00:00 2001 From: Sadie Powell Date: Fri, 7 Jun 2024 10:13:32 +0100 Subject: [PATCH] Update the docs for v4.0.0rc1. --- docs/4/change-log.md | 32 ++++++++++ docs/4/configuration/_oper.yml | 7 +++ docs/4/installation/centos.md | 46 ++++++++++++++ docs/4/installation/debian.md | 54 ++++++++++++++++ docs/4/installation/index.md | 14 ++++- docs/4/installation/rocky.md | 46 ++++++++++++++ docs/4/installation/source.md | 2 +- docs/4/installation/ubuntu.md | 54 ++++++++++++++++ docs/4/installation/windows-source.md | 2 +- docs/4/installation/windows.md | 37 +++++++++++ docs/4/modules/argon2.yml | 64 ++----------------- docs/4/modules/blockamsg.yml | 56 ++++++++++++++++- docs/4/modules/log_sql.yml | 2 +- docs/4/modules/mysql.yml | 88 ++++++++++++++++++++++++++- docs/packaging.md | 2 +- 15 files changed, 439 insertions(+), 67 deletions(-) create mode 100644 docs/4/installation/centos.md create mode 100644 docs/4/installation/debian.md create mode 100644 docs/4/installation/rocky.md create mode 100644 docs/4/installation/ubuntu.md create mode 100644 docs/4/installation/windows.md mode change 120000 => 100644 docs/4/modules/blockamsg.yml mode change 120000 => 100644 docs/4/modules/mysql.yml diff --git a/docs/4/change-log.md b/docs/4/change-log.md index e109ef2c8..e63395e5b 100644 --- a/docs/4/change-log.md +++ b/docs/4/change-log.md @@ -6,6 +6,38 @@ title: v4 Change Log This page lists changes which have happened between releases. +### InspIRCd 4.0.0rc1 + +**This release candidate version of InspIRCd was released on 2024-06-07.** + +- Added `--protocoldebug` to allow the logging of I/O traffic in debug logs. + +- Added `` to allow configuring an oper account to rely on other fields instead of a password for authentication. + +- Added `` to allow configuring whether non-web WebSocket connections are allowed. + +- Added nullability attributes to all core module events. + +- Added support for SRV record lookup to the `mysql` module. + +- Changed `--debug` to only enable logging at the debug level and automatically enable `--nofork`. + +- Changed `OnPreMessage` to allow customising the prefix rank of the message target. + +- Changed the terminal logger to use a cleaner format. + +- Fixed messages from the `opmoderated` module appearing in the channel history. + +- Fixed resyncing the customversion when the config reloads. + +- Removed support for configuring the Argon2 version in the `argon2` module. + +- Removed the unused hops field from the `SERVER` S2S message. + +- Updated the credits. + +- Windows releases will now be automatically built by CI. + ### InspIRCd 4.0.0a26 **This pre-release version of InspIRCd was released on 2024-04-15.** diff --git a/docs/4/configuration/_oper.yml b/docs/4/configuration/_oper.yml index 1a6301edc..c85855aa0 100644 --- a/docs/4/configuration/_oper.yml +++ b/docs/4/configuration/_oper.yml @@ -32,6 +32,12 @@ attributes: default: null description: |- The password for this server operator account. +- name: nopassword + type: Boolean + required: false + default: 'No' + description: |- + If enabled then the password field will not be used. You MUST use some other restriction field if this is enabled. - name: type type: Text required: true @@ -95,6 +101,7 @@ example: |- ```xml + saltlength="16"> ``` - name: argon2d description: |- @@ -111,19 +97,6 @@ configuration: default: '*See <argon2:saltlength>*' description: |- The length of the salt in bytes. - - name: version - type: Number - required: false - default: '*See <argon2:version>*' - description: |- - The version of the Argon2d algorithm to use. - details: |- - The version field should be set to one of the following values: - - Value | Description - ------ | ----------- - 10 | Use version 1.0 of the Argon2d algorithm. - 13 | Use version 1.3 of the Argon2d algorithm. example: |- ```xml @@ -132,8 +105,7 @@ configuration: lanes="1" threads="1" length="32" - saltlength="16" - version="13"> + saltlength="16"> ``` - name: argon2i description: |- @@ -175,19 +147,6 @@ configuration: default: '*See <argon2:saltlength>*' description: |- The length of the salt in bytes. - - name: version - type: Number - required: false - default: '*See <argon2:version>*' - description: |- - The version of the Argon2i algorithm to use. - details: |- - The version field should be set to one of the following values: - - Value | Description - ------ | ----------- - 10 | Use version 1.0 of the Argon2i algorithm. - 13 | Use version 1.3 of the Argon2i algorithm. example: |- ```xml @@ -196,8 +155,7 @@ configuration: lanes="1" threads="1" length="32" - saltlength="16" - version="13"> + saltlength="16"> ``` - name: argon2id description: |- @@ -239,19 +197,6 @@ configuration: default: '*See <argon2:saltlength>*' description: |- The length of the salt in bytes. - - name: version - type: Number - required: false - default: '*See <argon2:version>*' - description: |- - The version of the Argon2id algorithm to use. - details: |- - The version field should be set to one of the following values: - - Value | Description - ------ | ----------- - 10 | Use version 1.0 of the Argon2id algorithm. - 13 | Use version 1.3 of the Argon2id algorithm. example: |- ```xml @@ -260,8 +205,7 @@ configuration: lanes="1" threads="1" length="32" - saltlength="16" - version="13"> + saltlength="16"> ``` special_notes: |- diff --git a/docs/4/modules/blockamsg.yml b/docs/4/modules/blockamsg.yml deleted file mode 120000 index 0b818f35a..000000000 --- a/docs/4/modules/blockamsg.yml +++ /dev/null @@ -1 +0,0 @@ -../../3/modules/blockamsg.yml \ No newline at end of file diff --git a/docs/4/modules/blockamsg.yml b/docs/4/modules/blockamsg.yml new file mode 100644 index 000000000..3edf3136d --- /dev/null +++ b/docs/4/modules/blockamsg.yml @@ -0,0 +1,55 @@ +name: blockamsg + +description: |- + This module blocks mass messages sent using the `/AME` and `/AMSG` commands that exist in clients such as mIRC and HexChat. + +configuration: +- name: blockamsg + description: |- + The `` tag defines settings about how the blockamsg module should behave. This tag can only be defined once. + attributes: + - name: delay + type: Duration + required: false + default: 3s + description: |- + The duration between identical messages to consider them a mass message or 0 to allow any gap. + - name: action + type: Text + required: false + default: killopers + description: |- + The action to take when the module has detected a user sending a mass message. + details: |- + The action field should be set to one of the following values: + + Value | Description + ----------- | ----------- + kill | Disconnect the sending user from the server. + killopers | Disconnect the sending user from the server and notify server operators. + notice | Inform the sending user that their repeated message has been discarded. + noticeopers | Inform the sending user that their repeated message has been discarded and notify server operators. + silent | Silently discard repeated messages. + + example: |- + ```xml + + ``` +- name: class + description: |- + This module extends [the core `` field](/{{ version }}/configuration#class) with the following values: + extends: true + added_values: + - name: servers/ignore-blockamsg + description: |- + Allows server operators to send messages with the `/AMSG` and `/AME` commands. + details: "" + example: |- + Allows server operators with the class named BasicOper to send messages with the `/AMSG` and `/AME` commands.commands + + ```xml + + ``` diff --git a/docs/4/modules/log_sql.yml b/docs/4/modules/log_sql.yml index 06a73793b..32f4e29d4 100644 --- a/docs/4/modules/log_sql.yml +++ b/docs/4/modules/log_sql.yml @@ -51,4 +51,4 @@ configuration: special_notes: |- {% include "3/modules/_sql_table.md" %} - Example schemas for the server operator database are available in [the `sql` subdirectory of the InspIRCd configuration directory](https://github.com/inspircd/inspircd/tree/master/docs/sql). You can define your own schema as long as your query returns the required columns. + Example schemas for the server operator database are available in [the `sql` subdirectory of the InspIRCd configuration directory](https://github.com/inspircd/inspircd/tree/insp4/docs/sql). You can define your own schema as long as your query returns the required columns. diff --git a/docs/4/modules/mysql.yml b/docs/4/modules/mysql.yml deleted file mode 120000 index 1affe5f81..000000000 --- a/docs/4/modules/mysql.yml +++ /dev/null @@ -1 +0,0 @@ -../../3/modules/mysql.yml \ No newline at end of file diff --git a/docs/4/modules/mysql.yml b/docs/4/modules/mysql.yml new file mode 100644 index 000000000..30703d1ab --- /dev/null +++ b/docs/4/modules/mysql.yml @@ -0,0 +1,87 @@ +name: mysql + +depends_on: + what: a third-party library ([libmysqlclient](https://dev.mysql.com/downloads/connector/c/)) + +description: |- + This module provides the ability for SQL modules to query a MySQL database. + +configuration: +- name: database + description: |- + The `` tag defines a MySQL database to connect to. This tag can be defined as many times as required. + attributes: + - name: module + type: Text + required: true + default: null + description: |- + *This MUST be set to "mysql" to connect to a MySQL database.* + - name: id + type: Text + required: true + default: null + description: |- + The name that SQL-using modules can refer to this `` tag using. + - name: host + type: Text + required: true + default: null + description: |- + The hostname or IP address of a MySQL server. + - name: port + type: Number + required: true + default: null + description: |- + The port on which the MySQL server is listening. + - name: user + type: Text + required: true + default: null + description: |- + The username to log into the MySQL server with. + - name: pass + type: Text + required: true + default: null + description: |- + The password to log into the MySQL server with. + - name: name + type: Text + required: true + default: null + description: |- + The name of the MySQL database to use. + - name: charset + type: Text + required: false + default: null + description: |- + If defined then a custom character set to use with the MySQL server. + - name: srv + type: Boolean + required: false + default: 'No' + description: |- + If enabled then connect to MySQL by [looking up the real host and port from a DNS SRV record](https://dev.mysql.com/doc/refman/8.4/en/connecting-using-dns-srv.html). + - name: tls + type: Boolean + required: false + default: 'No' + description: |- + Whether to connect to the MySQL server using TLS (SSL). + details: "" + example: |- + ```xml + + ``` diff --git a/docs/packaging.md b/docs/packaging.md index 57b34abc0..518d15585 100644 --- a/docs/packaging.md +++ b/docs/packaging.md @@ -8,7 +8,7 @@ title: Packaging advice Other than to [older branches which are still supported](https://github.com/inspircd/inspircd/security/policy#supported-versions) we generally do not provide non-security patch backports due to it requiring a significant amount of work on our behalf. Please try to avoid backporting patches by only shipping the latest version of InspIRCd wherever possible. -Make sure to pass the `--distribution-label` option with a label that uniquely identifies your specific package and package version (e.g. mewos3.14) to configure when building. This helps us identify distribution packaged versions when people ask for support. See our [official RPM package sources](https://github.com/inspircd/inspircd-packages/blob/master/rpm/inspircd.spec.in) for an example of how to use this. +Make sure to pass the `--distribution-label` option with a label that uniquely identifies your specific package and package version (e.g. mewos3.14) to configure when building. This helps us identify distribution packaged versions when people ask for support. See our [official RPM package sources](https://github.com/inspircd/inspircd-packages/blob/v4/rpm/inspircd.spec.in) for an example of how to use this. Please don't ship preconfigured config files as they become outdated very quickly and result in us having to answer the same support questions over and over again. Our example files should be well documented enough for users to create their own config files.