From c0fd778fd47bde855bd9aa9f185afec2c3bc247e Mon Sep 17 00:00:00 2001 From: clokep Date: Tue, 21 Sep 2021 16:33:10 +0000 Subject: [PATCH] deploy: ebd8baf61ff8e00f8de3b63c00531765672000c8 --- develop/admin_api/purge_room.html | 268 ------------- develop/admin_api/shutdown_room.html | 343 ----------------- develop/dev/cas.html | 317 --------------- develop/dev/git.html | 376 ------------------ develop/dev/git/branches.jpg | Bin 72228 -> 0 bytes develop/dev/git/clean.png | Bin 110840 -> 0 bytes develop/dev/git/squash.png | Bin 29667 -> 0 bytes develop/dev/saml.html | 294 -------------- develop/modules.html | 555 --------------------------- develop/presence_router_module.html | 461 ---------------------- develop/spam_checker.html | 360 ----------------- develop/url_previews.html | 365 ------------------ 12 files changed, 3339 deletions(-) delete mode 100644 develop/admin_api/purge_room.html delete mode 100644 develop/admin_api/shutdown_room.html delete mode 100644 develop/dev/cas.html delete mode 100644 develop/dev/git.html delete mode 100644 develop/dev/git/branches.jpg delete mode 100644 develop/dev/git/clean.png delete mode 100644 develop/dev/git/squash.png delete mode 100644 develop/dev/saml.html delete mode 100644 develop/modules.html delete mode 100644 develop/presence_router_module.html delete mode 100644 develop/spam_checker.html delete mode 100644 develop/url_previews.html diff --git a/develop/admin_api/purge_room.html b/develop/admin_api/purge_room.html deleted file mode 100644 index 26fba8ff11..0000000000 --- a/develop/admin_api/purge_room.html +++ /dev/null @@ -1,268 +0,0 @@ - - - - - - Purge Rooms - Synapse - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- - - - - - - - - - - -
-
- -
- -
- -

Deprecated: Purge room API

-

The old Purge room API is deprecated and will be removed in a future release. -See the new Delete Room API for more details.

-

This API will remove all trace of a room from your database.

-

All local users must have left the room before it can be removed.

-

The API is:

-
POST /_synapse/admin/v1/purge_room
-
-{
-    "room_id": "!room:id"
-}
-
-

You must authenticate using the access token of an admin user.

- -
- - -
-
- - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/develop/admin_api/shutdown_room.html b/develop/admin_api/shutdown_room.html deleted file mode 100644 index ac030e876d..0000000000 --- a/develop/admin_api/shutdown_room.html +++ /dev/null @@ -1,343 +0,0 @@ - - - - - - Shutdown Room - Synapse - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- - - - - - - - - - - -
-
- -
- -
- -

Deprecated: Shutdown room API

-

The old Shutdown room API is deprecated and will be removed in a future release. -See the new Delete Room API for more details.

-

Shuts down a room, preventing new joins and moves local users and room aliases automatically -to a new room. The new room will be created with the user specified by the -new_room_user_id parameter as room administrator and will contain a message -explaining what happened. Users invited to the new room will have power level --10 by default, and thus be unable to speak. The old room's power levels will be changed to -disallow any further invites or joins.

-

The local server will only have the power to move local user and room aliases to -the new room. Users on other servers will be unaffected.

-

API

-

You will need to authenticate with an access token for an admin user.

-

URL

-

POST /_synapse/admin/v1/shutdown_room/{room_id}

-

URL Parameters

-
    -
  • room_id - The ID of the room (e.g !someroom:example.com)
  • -
-

JSON Body Parameters

-
    -
  • new_room_user_id - Required. A string representing the user ID of the user that will admin -the new room that all users in the old room will be moved to.
  • -
  • room_name - Optional. A string representing the name of the room that new users will be -invited to.
  • -
  • message - Optional. A string containing the first message that will be sent as -new_room_user_id in the new room. Ideally this will clearly convey why the -original room was shut down.
  • -
-

If not specified, the default value of room_name is "Content Violation -Notification". The default value of message is "Sharing illegal content on -othis server is not permitted and rooms in violation will be blocked."

-

Response Parameters

-
    -
  • kicked_users - An integer number representing the number of users that -were kicked.
  • -
  • failed_to_kick_users - An integer number representing the number of users -that were not kicked.
  • -
  • local_aliases - An array of strings representing the local aliases that were migrated from -the old room to the new.
  • -
  • new_room_id - A string representing the room ID of the new room.
  • -
-

Example

-

Request:

-
POST /_synapse/admin/v1/shutdown_room/!somebadroom%3Aexample.com
-
-{
-    "new_room_user_id": "@someuser:example.com",
-    "room_name": "Content Violation Notification",
-    "message": "Bad Room has been shutdown due to content violations on this server. Please review our Terms of Service."
-}
-
-

Response:

-
{
-    "kicked_users": 5,
-    "failed_to_kick_users": 0,
-    "local_aliases": ["#badroom:example.com", "#evilsaloon:example.com],
-    "new_room_id": "!newroomid:example.com",
-},
-
-

Undoing room shutdowns

-

Note: This guide may be outdated by the time you read it. By nature of room shutdowns being performed at the database level, -the structure can and does change without notice.

-

First, it's important to understand that a room shutdown is very destructive. Undoing a shutdown is not as simple as pretending it -never happened - work has to be done to move forward instead of resetting the past. In fact, in some cases it might not be possible -to recover at all:

-
    -
  • If the room was invite-only, your users will need to be re-invited.
  • -
  • If the room no longer has any members at all, it'll be impossible to rejoin.
  • -
  • The first user to rejoin will have to do so via an alias on a different server.
  • -
-

With all that being said, if you still want to try and recover the room:

-
    -
  1. For safety reasons, shut down Synapse.
  2. -
  3. In the database, run DELETE FROM blocked_rooms WHERE room_id = '!example:example.org'; -
      -
    • For caution: it's recommended to run this in a transaction: BEGIN; DELETE ...;, verify you got 1 result, then COMMIT;.
    • -
    • The room ID is the same one supplied to the shutdown room API, not the Content Violation room.
    • -
    -
  4. -
  5. Restart Synapse.
  6. -
-

You will have to manually handle, if you so choose, the following:

-
    -
  • Aliases that would have been redirected to the Content Violation room.
  • -
  • Users that would have been booted from the room (and will have been force-joined to the Content Violation room).
  • -
  • Removal of the Content Violation room if desired.
  • -
- -
- - -
-
- - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/develop/dev/cas.html b/develop/dev/cas.html deleted file mode 100644 index f70e1081e9..0000000000 --- a/develop/dev/cas.html +++ /dev/null @@ -1,317 +0,0 @@ - - - - - - CAS - Synapse - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- - - - - - - - - - - -
-
- -
- -
- -

How to test CAS as a developer without a server

-

The django-mama-cas project is an -easy to run CAS implementation built on top of Django.

-

Prerequisites

-
    -
  1. Create a new virtualenv: python3 -m venv <your virtualenv>
  2. -
  3. Activate your virtualenv: source /path/to/your/virtualenv/bin/activate
  4. -
  5. Install Django and django-mama-cas: -
    python -m pip install "django<3" "django-mama-cas==2.4.0"
    -
    -
  6. -
  7. Create a Django project in the current directory: -
    django-admin startproject cas_test .
    -
    -
  8. -
  9. Follow the install directions for django-mama-cas
  10. -
  11. Setup the SQLite database: python manage.py migrate
  12. -
  13. Create a user: -
    python manage.py createsuperuser
    -
    -
      -
    1. Use whatever you want as the username and password.
    2. -
    3. Leave the other fields blank.
    4. -
    -
  14. -
  15. Use the built-in Django test server to serve the CAS endpoints on port 8000: -
    python manage.py runserver
    -
    -
  16. -
-

You should now have a Django project configured to serve CAS authentication with -a single user created.

-

Configure Synapse (and Element) to use CAS

-
    -
  1. Modify your homeserver.yaml to enable CAS and point it to your locally -running Django test server: -
    cas_config:
    -  enabled: true
    -  server_url: "http://localhost:8000"
    -  service_url: "http://localhost:8081"
    -  #displayname_attribute: name
    -  #required_attributes:
    -  #    name: value
    -
    -
  2. -
  3. Restart Synapse.
  4. -
-

Note that the above configuration assumes the homeserver is running on port 8081 -and that the CAS server is on port 8000, both on localhost.

-

Testing the configuration

-

Then in Element:

-
    -
  1. Visit the login page with a Element pointing at your homeserver.
  2. -
  3. Click the Single Sign-On button.
  4. -
  5. Login using the credentials created with createsuperuser.
  6. -
  7. You should be logged in.
  8. -
-

If you want to repeat this process you'll need to manually logout first:

-
    -
  1. http://localhost:8000/admin/
  2. -
  3. Click "logout" in the top right.
  4. -
- -
- - -
-
- - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/develop/dev/git.html b/develop/dev/git.html deleted file mode 100644 index 8c3c5bf7bb..0000000000 --- a/develop/dev/git.html +++ /dev/null @@ -1,376 +0,0 @@ - - - - - - Git Usage - Synapse - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- - - - - - - - - - - -
-
- -
- -
- -

Some notes on how we use git

-

On keeping the commit history clean

-

In an ideal world, our git commit history would be a linear progression of -commits each of which contains a single change building on what came -before. Here, by way of an arbitrary example, is the top of git log --graph b2dba0607:

-clean git graph -

Note how the commit comment explains clearly what is changing and why. Also -note the absence of merge commits, as well as the absence of commits called -things like (to pick a few culprits): -“pep8”, “fix broken -test”, -“oops”, -“typo”, or “Who's -the president?”.

-

There are a number of reasons why keeping a clean commit history is a good -thing:

-
    -
  • -

    From time to time, after a change lands, it turns out to be necessary to -revert it, or to backport it to a release branch. Those operations are -much easier when the change is contained in a single commit.

    -
  • -
  • -

    Similarly, it's much easier to answer questions like “is the fix for -/publicRooms on the release branch?” if that change consists of a single -commit.

    -
  • -
  • -

    Likewise: “what has changed on this branch in the last week?” is much -clearer without merges and “pep8” commits everywhere.

    -
  • -
  • -

    Sometimes we need to figure out where a bug got introduced, or some -behaviour changed. One way of doing that is with git bisect: pick an -arbitrary commit between the known good point and the known bad point, and -see how the code behaves. However, that strategy fails if the commit you -chose is the middle of someone's epic branch in which they broke the world -before putting it back together again.

    -
  • -
-

One counterargument is that it is sometimes useful to see how a PR evolved as -it went through review cycles. This is true, but that information is always -available via the GitHub UI (or via the little-known refs/pull -namespace).

-

Of course, in reality, things are more complicated than that. We have release -branches as well as develop and master, and we deliberately merge changes -between them. Bugs often slip through and have to be fixed later. That's all -fine: this not a cast-iron rule which must be obeyed, but an ideal to aim -towards.

-

Merges, squashes, rebases: wtf?

-

Ok, so that's what we'd like to achieve. How do we achieve it?

-

The TL;DR is: when you come to merge a pull request, you probably want to -“squash and merge”:

-

squash and merge.

-

(This applies whether you are merging your own PR, or that of another -contributor.)

-

“Squash and merge”1 takes all of the changes in the -PR, and bundles them into a single commit. GitHub gives you the opportunity to -edit the commit message before you confirm, and normally you should do so, -because the default will be useless (again: * woops typo is not a useful -thing to keep in the historical record).

-

The main problem with this approach comes when you have a series of pull -requests which build on top of one another: as soon as you squash-merge the -first PR, you'll end up with a stack of conflicts to resolve in all of the -others. In general, it's best to avoid this situation in the first place by -trying not to have multiple related PRs in flight at the same time. Still, -sometimes that's not possible and doing a regular merge is the lesser evil.

-

Another occasion in which a regular merge makes more sense is a PR where you've -deliberately created a series of commits each of which makes sense in its own -right. For example: a PR which gradually propagates a refactoring operation -through the codebase, or a -PR which is the culmination of several other -PRs. In this case the ability -to figure out when a particular change/bug was introduced could be very useful.

-

Ultimately: this is not a hard-and-fast-rule. If in doubt, ask yourself “do -each of the commits I am about to merge make sense in their own right”, but -remember that we're just doing our best to balance “keeping the commit history -clean” with other factors.

-

Git branching model

-

A lot -of -words have been -written in the past about git branching models (no really, a -lot). I tend to -think the whole thing is overblown. Fundamentally, it's not that -complicated. Here's how we do it.

-

Let's start with a picture:

-

branching model

-

It looks complicated, but it's really not. There's one basic rule: anyone is -free to merge from any more-stable branch to any less-stable branch at -any time2. (The principle behind this is that if a -change is good enough for the more-stable branch, then it's also good enough go -put in a less-stable branch.)

-

Meanwhile, merging (or squashing, as per the above) from a less-stable to a -more-stable branch is a deliberate action in which you want to publish a change -or a set of changes to (some subset of) the world: for example, this happens -when a PR is landed, or as part of our release process.

-

So, what counts as a more- or less-stable branch? A little reflection will show -that our active branches are ordered thus, from more-stable to less-stable:

-
    -
  • master (tracks our last release).
  • -
  • release-vX.Y (the branch where we prepare the next release)3.
  • -
  • PR branches which are targeting the release.
  • -
  • develop (our "mainline" branch containing our bleeding-edge).
  • -
  • regular PR branches.
  • -
-

The corollary is: if you have a bugfix that needs to land in both -release-vX.Y and develop, then you should base your PR on -release-vX.Y, get it merged there, and then merge from release-vX.Y to -develop. (If a fix lands in develop and we later need it in a -release-branch, we can of course cherry-pick it, but landing it in the release -branch first helps reduce the chance of annoying conflicts.)

-
-

[1]: “Squash and merge” is GitHub's term for this -operation. Given that there is no merge involved, I'm not convinced it's the -most intuitive name. ^

-

[2]: Well, anyone with commit access.^

-

[3]: Very, very occasionally (I think this has happened once in -the history of Synapse), we've had two releases in flight at once. Obviously, -release-v1.2 is more-stable than release-v1.3. ^

- -
- - -
-
- - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/develop/dev/git/branches.jpg b/develop/dev/git/branches.jpg deleted file mode 100644 index 715ecc8cd0638e2c31c3185b1b8b4ce03af184b0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 72228 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 jRq46&w*VnfQlxbJ?u48?;^FAGAYg5x3iwWLT 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 a63WRU6)_n=&ZoC~L&GcY1pX4p;{Vz5>>if@ diff --git a/develop/dev/git/clean.png b/develop/dev/git/clean.png deleted file mode 100644 index 3accd7ccefff4ddbac03f3ab32df0b4979ec7c6f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 110840 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­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 DdiU-@ diff --git a/develop/dev/git/squash.png b/develop/dev/git/squash.png deleted file mode 100644 index 234caca3e40b72611efe478d5e11d11213bf363f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29667 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 diff --git a/develop/dev/saml.html b/develop/dev/saml.html deleted file mode 100644 index 749b12817b..0000000000 --- a/develop/dev/saml.html +++ /dev/null @@ -1,294 +0,0 @@ - - - - - - SAML - Synapse - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

- -
- -
- - - - - - - - - - - -
-
- -
- -
- -

How to test SAML as a developer without a server

-

https://capriza.github.io/samling/samling.html (https://github.com/capriza/samling) is a great -resource for being able to tinker with the SAML options within Synapse without needing to -deploy and configure a complicated software stack.

-

To make Synapse (and therefore Riot) use it:

-
    -
  1. Use the samling.html URL above or deploy your own and visit the IdP Metadata tab.
  2. -
  3. Copy the XML to your clipboard.
  4. -
  5. On your Synapse server, create a new file samling.xml next to your homeserver.yaml with -the XML from step 2 as the contents.
  6. -
  7. Edit your homeserver.yaml to include: -
    saml2_config:
    -  sp_config:
    -    allow_unknown_attributes: true  # Works around a bug with AVA Hashes: https://github.com/IdentityPython/pysaml2/issues/388
    -    metadata:
    -      local: ["samling.xml"]   
    -
    -
  8. -
  9. Ensure that your homeserver.yaml has a setting for public_baseurl: -
    public_baseurl: http://localhost:8080/
    -
    -
  10. -
  11. Run apt-get install xmlsec1 and pip install --upgrade --force 'pysaml2>=4.5.0' to ensure -the dependencies are installed and ready to go.
  12. -
  13. Restart Synapse.
  14. -
-

Then in Riot:

-
    -
  1. Visit the login page with a Riot pointing at your homeserver.
  2. -
  3. Click the Single Sign-On button.
  4. -
  5. On the samling page, enter a Name Identifier and add a SAML Attribute for uid=your_localpart. -The response must also be signed.
  6. -
  7. Click "Next".
  8. -
  9. Click "Post Response" (change nothing).
  10. -
  11. You should be logged in.
  12. -
-

If you try and repeat this process, you may be automatically logged in using the information you -gave previously. To fix this, open your developer console (F12 or Ctrl+Shift+I) while on the -samling page and clear the site data. In Chrome, this will be a button on the Application tab.

- -
- - -
-
- - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/develop/modules.html b/develop/modules.html deleted file mode 100644 index 1f1de14915..0000000000 --- a/develop/modules.html +++ /dev/null @@ -1,555 +0,0 @@ - - - - - - Pluggable Modules - Synapse - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- - - - - - - - - - - -
-
- -
- -
- -

Modules

-

Synapse supports extending its functionality by configuring external modules.

-

Using modules

-

To use a module on Synapse, add it to the modules section of the configuration file:

-
modules:
-  - module: my_super_module.MySuperClass
-    config:
-      do_thing: true
-  - module: my_other_super_module.SomeClass
-    config: {}
-
-

Each module is defined by a path to a Python class as well as a configuration. This -information for a given module should be available in the module's own documentation.

-

Note: When using third-party modules, you effectively allow someone else to run -custom code on your Synapse homeserver. Server admins are encouraged to verify the -provenance of the modules they use on their homeserver and make sure the modules aren't -running malicious code on their instance.

-

Also note that we are currently in the process of migrating module interfaces to this -system. While some interfaces might be compatible with it, others still require -configuring modules in another part of Synapse's configuration file. Currently, only the -spam checker interface is compatible with this new system.

-

Writing a module

-

A module is a Python class that uses Synapse's module API to interact with the -homeserver. It can register callbacks that Synapse will call on specific operations, as -well as web resources to attach to Synapse's web server.

-

When instantiated, a module is given its parsed configuration as well as an instance of -the synapse.module_api.ModuleApi class. The configuration is a dictionary, and is -either the output of the module's parse_config static method (see below), or the -configuration associated with the module in Synapse's configuration file.

-

See the documentation for the ModuleApi class -here.

-

Handling the module's configuration

-

A module can implement the following static method:

-
@staticmethod
-def parse_config(config: dict) -> dict
-
-

This method is given a dictionary resulting from parsing the YAML configuration for the -module. It may modify it (for example by parsing durations expressed as strings (e.g. -"5d") into milliseconds, etc.), and return the modified dictionary. It may also verify -that the configuration is correct, and raise an instance of -synapse.module_api.errors.ConfigError if not.

-

Registering a web resource

-

Modules can register web resources onto Synapse's web server using the following module -API method:

-
def ModuleApi.register_web_resource(path: str, resource: IResource) -> None
-
-

The path is the full absolute path to register the resource at. For example, if you -register a resource for the path /_synapse/client/my_super_module/say_hello, Synapse -will serve it at http(s)://[HS_URL]/_synapse/client/my_super_module/say_hello. Note -that Synapse does not allow registering resources for several sub-paths in the /_matrix -namespace (such as anything under /_matrix/client for example). It is strongly -recommended that modules register their web resources under the /_synapse/client -namespace.

-

The provided resource is a Python class that implements Twisted's IResource -interface (such as Resource).

-

Only one resource can be registered for a given path. If several modules attempt to -register a resource for the same path, the module that appears first in Synapse's -configuration file takes priority.

-

Modules must register their web resources in their __init__ method.

-

Registering a callback

-

Modules can use Synapse's module API to register callbacks. Callbacks are functions that -Synapse will call when performing specific actions. Callbacks must be asynchronous, and -are split in categories. A single module may implement callbacks from multiple categories, -and is under no obligation to implement all callbacks from the categories it registers -callbacks for.

-

Modules can register callbacks using one of the module API's register_[...]_callbacks -methods. The callback functions are passed to these methods as keyword arguments, with -the callback name as the argument name and the function as its value. This is demonstrated -in the example below. A register_[...]_callbacks method exists for each module type -documented in this section.

-

Spam checker callbacks

-

Spam checker callbacks allow module developers to implement spam mitigation actions for -Synapse instances. Spam checker callbacks can be registered using the module API's -register_spam_checker_callbacks method.

-

The available spam checker callbacks are:

-
async def check_event_for_spam(event: "synapse.events.EventBase") -> Union[bool, str]
-
-

Called when receiving an event from a client or via federation. The module can return -either a bool to indicate whether the event must be rejected because of spam, or a str -to indicate the event must be rejected because of spam and to give a rejection reason to -forward to clients.

-
async def user_may_invite(inviter: str, invitee: str, room_id: str) -> bool
-
-

Called when processing an invitation. The module must return a bool indicating whether -the inviter can invite the invitee to the given room. Both inviter and invitee are -represented by their Matrix user ID (e.g. @alice:example.com).

-
async def user_may_create_room(user: str) -> bool
-
-

Called when processing a room creation request. The module must return a bool indicating -whether the given user (represented by their Matrix user ID) is allowed to create a room.

-
async def user_may_create_room_alias(user: str, room_alias: "synapse.types.RoomAlias") -> bool
-
-

Called when trying to associate an alias with an existing room. The module must return a -bool indicating whether the given user (represented by their Matrix user ID) is allowed -to set the given alias.

-
async def user_may_publish_room(user: str, room_id: str) -> bool
-
-

Called when trying to publish a room to the homeserver's public rooms directory. The -module must return a bool indicating whether the given user (represented by their -Matrix user ID) is allowed to publish the given room.

-
async def check_username_for_spam(user_profile: Dict[str, str]) -> bool
-
-

Called when computing search results in the user directory. The module must return a -bool indicating whether the given user profile can appear in search results. The profile -is represented as a dictionary with the following keys:

-
    -
  • user_id: The Matrix ID for this user.
  • -
  • display_name: The user's display name.
  • -
  • avatar_url: The mxc:// URL to the user's avatar.
  • -
-

The module is given a copy of the original dictionary, so modifying it from within the -module cannot modify a user's profile when included in user directory search results.

-
async def check_registration_for_spam(
-    email_threepid: Optional[dict],
-    username: Optional[str],
-    request_info: Collection[Tuple[str, str]],
-    auth_provider_id: Optional[str] = None,
-) -> "synapse.spam_checker_api.RegistrationBehaviour"
-
-

Called when registering a new user. The module must return a RegistrationBehaviour -indicating whether the registration can go through or must be denied, or whether the user -may be allowed to register but will be shadow banned.

-

The arguments passed to this callback are:

-
    -
  • email_threepid: The email address used for registering, if any.
  • -
  • username: The username the user would like to register. Can be None, meaning that -Synapse will generate one later.
  • -
  • request_info: A collection of tuples, which first item is a user agent, and which -second item is an IP address. These user agents and IP addresses are the ones that were -used during the registration process.
  • -
  • auth_provider_id: The identifier of the SSO authentication provider, if any.
  • -
-
async def check_media_file_for_spam(
-    file_wrapper: "synapse.rest.media.v1.media_storage.ReadableFileWrapper",
-    file_info: "synapse.rest.media.v1._base.FileInfo",
-) -> bool
-
-

Called when storing a local or remote file. The module must return a boolean indicating -whether the given file can be stored in the homeserver's media store.

-

Account validity callbacks

-

Account validity callbacks allow module developers to add extra steps to verify the -validity on an account, i.e. see if a user can be granted access to their account on the -Synapse instance. Account validity callbacks can be registered using the module API's -register_account_validity_callbacks method.

-

The available account validity callbacks are:

-
async def is_user_expired(user: str) -> Optional[bool]
-
-

Called when processing any authenticated request (except for logout requests). The module -can return a bool to indicate whether the user has expired and should be locked out of -their account, or None if the module wasn't able to figure it out. The user is -represented by their Matrix user ID (e.g. @alice:example.com).

-

If the module returns True, the current request will be denied with the error code -ORG_MATRIX_EXPIRED_ACCOUNT and the HTTP status code 403. Note that this doesn't -invalidate the user's access token.

-
async def on_user_registration(user: str) -> None
-
-

Called after successfully registering a user, in case the module needs to perform extra -operations to keep track of them. (e.g. add them to a database table). The user is -represented by their Matrix user ID.

-

Third party rules callbacks

-

Third party rules callbacks allow module developers to add extra checks to verify the -validity of incoming events. Third party event rules callbacks can be registered using -the module API's register_third_party_rules_callbacks method.

-

The available third party rules callbacks are:

-
async def check_event_allowed(
-    event: "synapse.events.EventBase",
-    state_events: "synapse.types.StateMap",
-) -> Tuple[bool, Optional[dict]]
-
-

-This callback is very experimental and can and will break without notice. Module developers -are encouraged to implement check_event_for_spam from the spam checker category instead. -

-

Called when processing any incoming event, with the event and a StateMap -representing the current state of the room the event is being sent into. A StateMap is -a dictionary that maps tuples containing an event type and a state key to the -corresponding state event. For example retrieving the room's m.room.create event from -the state_events argument would look like this: state_events.get(("m.room.create", "")). -The module must return a boolean indicating whether the event can be allowed.

-

Note that this callback function processes incoming events coming via federation -traffic (on top of client traffic). This means denying an event might cause the local -copy of the room's history to diverge from that of remote servers. This may cause -federation issues in the room. It is strongly recommended to only deny events using this -callback function if the sender is a local user, or in a private federation in which all -servers are using the same module, with the same configuration.

-

If the boolean returned by the module is True, it may also tell Synapse to replace the -event with new data by returning the new event's data as a dictionary. In order to do -that, it is recommended the module calls event.get_dict() to get the current event as a -dictionary, and modify the returned dictionary accordingly.

-

Note that replacing the event only works for events sent by local users, not for events -received over federation.

-
async def on_create_room(
-    requester: "synapse.types.Requester",
-    request_content: dict,
-    is_requester_admin: bool,
-) -> None
-
-

Called when processing a room creation request, with the Requester object for the user -performing the request, a dictionary representing the room creation request's JSON body -(see the spec -for a list of possible parameters), and a boolean indicating whether the user performing -the request is a server admin.

-

Modules can modify the request_content (by e.g. adding events to its initial_state), -or deny the room's creation by raising a module_api.errors.SynapseError.

-

Presence router callbacks

-

Presence router callbacks allow module developers to specify additional users (local or remote) -to receive certain presence updates from local users. Presence router callbacks can be -registered using the module API's register_presence_router_callbacks method.

-

The available presence router callbacks are:

-
async def get_users_for_states(
-    self,
-    state_updates: Iterable["synapse.api.UserPresenceState"],
-) -> Dict[str, Set["synapse.api.UserPresenceState"]]:
-
-

Requires get_interested_users to also be registered

-

Called when processing updates to the presence state of one or more users. This callback can -be used to instruct the server to forward that presence state to specific users. The module -must return a dictionary that maps from Matrix user IDs (which can be local or remote) to the -UserPresenceState changes that they should be forwarded.

-

Synapse will then attempt to send the specified presence updates to each user when possible.

-
async def get_interested_users(
-        self, 
-        user_id: str
-) -> Union[Set[str], "synapse.module_api.PRESENCE_ALL_USERS"]
-
-

Requires get_users_for_states to also be registered

-

Called when determining which users someone should be able to see the presence state of. This -callback should return complementary results to get_users_for_state or the presence information -may not be properly forwarded.

-

The callback is given the Matrix user ID for a local user that is requesting presence data and -should return the Matrix user IDs of the users whose presence state they are allowed to -query. The returned users can be local or remote.

-

Alternatively the callback can return synapse.module_api.PRESENCE_ALL_USERS -to indicate that the user should receive updates from all known users.

-

For example, if the user @alice:example.org is passed to this method, and the Set -{"@bob:example.com", "@charlie:somewhere.org"} is returned, this signifies that Alice -should receive presence updates sent by Bob and Charlie, regardless of whether these users -share a room.

-

Porting an existing module that uses the old interface

-

In order to port a module that uses Synapse's old module interface, its author needs to:

-
    -
  • ensure the module's callbacks are all asynchronous.
  • -
  • register their callbacks using one or more of the register_[...]_callbacks methods -from the ModuleApi class in the module's __init__ method (see this section -for more info).
  • -
-

Additionally, if the module is packaged with an additional web resource, the module -should register this resource in its __init__ method using the register_web_resource -method from the ModuleApi class (see this section for -more info).

-

The module's author should also update any example in the module's configuration to only -use the new modules section in Synapse's configuration file (see this section -for more info).

-

Example

-

The example below is a module that implements the spam checker callback -user_may_create_room to deny room creation to user @evilguy:example.com, and registers -a web resource to the path /_synapse/client/demo/hello that returns a JSON object.

-
import json
-
-from twisted.web.resource import Resource
-from twisted.web.server import Request
-
-from synapse.module_api import ModuleApi
-
-
-class DemoResource(Resource):
-    def __init__(self, config):
-        super(DemoResource, self).__init__()
-        self.config = config
-
-    def render_GET(self, request: Request):
-        name = request.args.get(b"name")[0]
-        request.setHeader(b"Content-Type", b"application/json")
-        return json.dumps({"hello": name})
-
-
-class DemoModule:
-    def __init__(self, config: dict, api: ModuleApi):
-        self.config = config
-        self.api = api
-
-        self.api.register_web_resource(
-            path="/_synapse/client/demo/hello",
-            resource=DemoResource(self.config),
-        )
-
-        self.api.register_spam_checker_callbacks(
-            user_may_create_room=self.user_may_create_room,
-        )
-
-    @staticmethod
-    def parse_config(config):
-        return config
-
-    async def user_may_create_room(self, user: str) -> bool:
-        if user == "@evilguy:example.com":
-            return False
-
-        return True
-
- -
- - -
-
- - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/develop/presence_router_module.html b/develop/presence_router_module.html deleted file mode 100644 index 2206fd8b75..0000000000 --- a/develop/presence_router_module.html +++ /dev/null @@ -1,461 +0,0 @@ - - - - - - Presence Router - Synapse - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- - - - - - - - - - - -
-
- -
- -
- -

-This page of the Synapse documentation is now deprecated. For up to date -documentation on setting up or writing a presence router module, please see -this page. -

-

Presence Router Module

-

Synapse supports configuring a module that can specify additional users -(local or remote) to should receive certain presence updates from local -users.

-

Note that routing presence via Application Service transactions is not -currently supported.

-

The presence routing module is implemented as a Python class, which will -be imported by the running Synapse.

-

Python Presence Router Class

-

The Python class is instantiated with two objects:

-
    -
  • A configuration object of some type (see below).
  • -
  • An instance of synapse.module_api.ModuleApi.
  • -
-

It then implements methods related to presence routing.

-

Note that one method of ModuleApi that may be useful is:

-
async def ModuleApi.send_local_online_presence_to(users: Iterable[str]) -> None
-
-

which can be given a list of local or remote MXIDs to broadcast known, online user -presence to (for those users that the receiving user is considered interested in). -It does not include state for users who are currently offline, and it can only be -called on workers that support sending federation. Additionally, this method must -only be called from the process that has been configured to write to the -the presence stream. -By default, this is the main process, but another worker can be configured to do -so.

-

Module structure

-

Below is a list of possible methods that can be implemented, and whether they are -required.

-

parse_config

-
def parse_config(config_dict: dict) -> Any
-
-

Required. A static method that is passed a dictionary of config options, and -should return a validated config object. This method is described further in -Configuration.

-

get_users_for_states

-
async def get_users_for_states(
-    self,
-    state_updates: Iterable[UserPresenceState],
-) -> Dict[str, Set[UserPresenceState]]:
-
-

Required. An asynchronous method that is passed an iterable of user presence -state. This method can determine whether a given presence update should be sent to certain -users. It does this by returning a dictionary with keys representing local or remote -Matrix User IDs, and values being a python set -of synapse.handlers.presence.UserPresenceState instances.

-

Synapse will then attempt to send the specified presence updates to each user when -possible.

-

get_interested_users

-
async def get_interested_users(self, user_id: str) -> Union[Set[str], str]
-
-

Required. An asynchronous method that is passed a single Matrix User ID. This -method is expected to return the users that the passed in user may be interested in the -presence of. Returned users may be local or remote. The presence routed as a result of -what this method returns is sent in addition to the updates already sent between users -that share a room together. Presence updates are deduplicated.

-

This method should return a python set of Matrix User IDs, or the object -synapse.events.presence_router.PresenceRouter.ALL_USERS to indicate that the passed -user should receive presence information for all known users.

-

For clarity, if the user @alice:example.org is passed to this method, and the Set -{"@bob:example.com", "@charlie:somewhere.org"} is returned, this signifies that Alice -should receive presence updates sent by Bob and Charlie, regardless of whether these -users share a room.

-

Example

-

Below is an example implementation of a presence router class.

-
from typing import Dict, Iterable, Set, Union
-from synapse.events.presence_router import PresenceRouter
-from synapse.handlers.presence import UserPresenceState
-from synapse.module_api import ModuleApi
-
-class PresenceRouterConfig:
-    def __init__(self):
-        # Config options with their defaults
-        # A list of users to always send all user presence updates to
-        self.always_send_to_users = []  # type: List[str]
-        
-        # A list of users to ignore presence updates for. Does not affect
-        # shared-room presence relationships
-        self.blacklisted_users = []  # type: List[str]
-
-class ExamplePresenceRouter:
-    """An example implementation of synapse.presence_router.PresenceRouter.
-    Supports routing all presence to a configured set of users, or a subset
-    of presence from certain users to members of certain rooms.
-
-    Args:
-        config: A configuration object.
-        module_api: An instance of Synapse's ModuleApi.
-    """
-    def __init__(self, config: PresenceRouterConfig, module_api: ModuleApi):
-        self._config = config
-        self._module_api = module_api
-
-    @staticmethod
-    def parse_config(config_dict: dict) -> PresenceRouterConfig:
-        """Parse a configuration dictionary from the homeserver config, do
-        some validation and return a typed PresenceRouterConfig.
-
-        Args:
-            config_dict: The configuration dictionary.
-
-        Returns:
-            A validated config object.
-        """
-        # Initialise a typed config object
-        config = PresenceRouterConfig()
-        always_send_to_users = config_dict.get("always_send_to_users")
-        blacklisted_users = config_dict.get("blacklisted_users")
-
-        # Do some validation of config options... otherwise raise a
-        # synapse.config.ConfigError.
-        config.always_send_to_users = always_send_to_users
-        config.blacklisted_users = blacklisted_users
-
-        return config
-
-    async def get_users_for_states(
-        self,
-        state_updates: Iterable[UserPresenceState],
-    ) -> Dict[str, Set[UserPresenceState]]:
-        """Given an iterable of user presence updates, determine where each one
-        needs to go. Returned results will not affect presence updates that are
-        sent between users who share a room.
-
-        Args:
-            state_updates: An iterable of user presence state updates.
-
-        Returns:
-          A dictionary of user_id -> set of UserPresenceState that the user should 
-          receive.
-        """
-        destination_users = {}  # type: Dict[str, Set[UserPresenceState]
-
-        # Ignore any updates for blacklisted users
-        desired_updates = set()
-        for update in state_updates:
-            if update.state_key not in self._config.blacklisted_users:
-                desired_updates.add(update)
-
-        # Send all presence updates to specific users
-        for user_id in self._config.always_send_to_users:
-            destination_users[user_id] = desired_updates
-
-        return destination_users
-
-    async def get_interested_users(
-        self,
-        user_id: str,
-    ) -> Union[Set[str], PresenceRouter.ALL_USERS]:
-        """
-        Retrieve a list of users that `user_id` is interested in receiving the
-        presence of. This will be in addition to those they share a room with.
-        Optionally, the object PresenceRouter.ALL_USERS can be returned to indicate
-        that this user should receive all incoming local and remote presence updates.
-
-        Note that this method will only be called for local users.
-
-        Args:
-          user_id: A user requesting presence updates.
-
-        Returns:
-          A set of user IDs to return additional presence updates for, or
-          PresenceRouter.ALL_USERS to return presence updates for all other users.
-        """
-        if user_id in self._config.always_send_to_users:
-            return PresenceRouter.ALL_USERS
-
-        return set()
-
-

A note on get_users_for_states and get_interested_users

-

Both of these methods are effectively two different sides of the same coin. The logic -regarding which users should receive updates for other users should be the same -between them.

-

get_users_for_states is called when presence updates come in from either federation -or local users, and is used to either direct local presence to remote users, or to -wake up the sync streams of local users to collect remote presence.

-

In contrast, get_interested_users is used to determine the users that presence should -be fetched for when a local user is syncing. This presence is then retrieved, before -being fed through get_users_for_states once again, with only the syncing user's -routing information pulled from the resulting dictionary.

-

Their routing logic should thus line up, else you may run into unintended behaviour.

-

Configuration

-

Once you've crafted your module and installed it into the same Python environment as -Synapse, amend your homeserver config file with the following.

-
presence:
-  enabled: true
-
-  presence_router:
-    module: my_module.ExamplePresenceRouter
-    config:
-      # Any configuration options for your module. The below is an example.
-      # of setting options for ExamplePresenceRouter.
-      always_send_to_users: ["@presence_gobbler:example.org"]
-      blacklisted_users:
-        - "@alice:example.com"
-        - "@bob:example.com"
-      ...
-
-

The contents of config will be passed as a Python dictionary to the static -parse_config method of your class. The object returned by this method will -then be passed to the __init__ method of your module as config.

- -
- - -
-
- - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/develop/spam_checker.html b/develop/spam_checker.html deleted file mode 100644 index 1186bdef1e..0000000000 --- a/develop/spam_checker.html +++ /dev/null @@ -1,360 +0,0 @@ - - - - - - Spam Checker - Synapse - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- - - - - - - - - - - -
-
- -
- -
- -

-This page of the Synapse documentation is now deprecated. For up to date -documentation on setting up or writing a spam checker module, please see -this page. -

-

Handling spam in Synapse

-

Synapse has support to customize spam checking behavior. It can plug into a -variety of events and affect how they are presented to users on your homeserver.

-

The spam checking behavior is implemented as a Python class, which must be -able to be imported by the running Synapse.

-

Python spam checker class

-

The Python class is instantiated with two objects:

-
    -
  • Any configuration (see below).
  • -
  • An instance of synapse.module_api.ModuleApi.
  • -
-

It then implements methods which return a boolean to alter behavior in Synapse. -All the methods must be defined.

-

There's a generic method for checking every event (check_event_for_spam), as -well as some specific methods:

-
    -
  • user_may_invite
  • -
  • user_may_create_room
  • -
  • user_may_create_room_alias
  • -
  • user_may_publish_room
  • -
  • check_username_for_spam
  • -
  • check_registration_for_spam
  • -
  • check_media_file_for_spam
  • -
-

The details of each of these methods (as well as their inputs and outputs) -are documented in the synapse.events.spamcheck.SpamChecker class.

-

The ModuleApi class provides a way for the custom spam checker class to -call back into the homeserver internals.

-

Additionally, a parse_config method is mandatory and receives the plugin config -dictionary. After parsing, It must return an object which will be -passed to __init__ later.

-

Example

-
from synapse.spam_checker_api import RegistrationBehaviour
-
-class ExampleSpamChecker:
-    def __init__(self, config, api):
-        self.config = config
-        self.api = api
-
-    @staticmethod
-    def parse_config(config):
-        return config
-        
-    async def check_event_for_spam(self, foo):
-        return False  # allow all events
-
-    async def user_may_invite(self, inviter_userid, invitee_userid, room_id):
-        return True  # allow all invites
-
-    async def user_may_create_room(self, userid):
-        return True  # allow all room creations
-
-    async def user_may_create_room_alias(self, userid, room_alias):
-        return True  # allow all room aliases
-
-    async def user_may_publish_room(self, userid, room_id):
-        return True  # allow publishing of all rooms
-
-    async def check_username_for_spam(self, user_profile):
-        return False  # allow all usernames
-
-    async def check_registration_for_spam(
-        self,
-        email_threepid,
-        username,
-        request_info,
-        auth_provider_id,
-    ):
-        return RegistrationBehaviour.ALLOW  # allow all registrations
-
-    async def check_media_file_for_spam(self, file_wrapper, file_info):
-        return False  # allow all media
-
-

Configuration

-

Modify the spam_checker section of your homeserver.yaml in the following -manner:

-

Create a list entry with the keys module and config.

-
    -
  • -

    module should point to the fully qualified Python class that implements your -custom logic, e.g. my_module.ExampleSpamChecker.

    -
  • -
  • -

    config is a dictionary that gets passed to the spam checker class.

    -
  • -
-

Example

-

This section might look like:

-
spam_checker:
-  - module: my_module.ExampleSpamChecker
-    config:
-      # Enable or disable a specific option in ExampleSpamChecker.
-      my_custom_option: true
-
-

More spam checkers can be added in tandem by appending more items to the list. An -action is blocked when at least one of the configured spam checkers flags it.

-

Examples

-

The Mjolnir project is a full fledged -example using the Synapse spam checking API, including a bot for dynamic -configuration.

- -
- - -
-
- - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/develop/url_previews.html b/develop/url_previews.html deleted file mode 100644 index 0d6d5ab232..0000000000 --- a/develop/url_previews.html +++ /dev/null @@ -1,365 +0,0 @@ - - - - - - URL Previews - Synapse - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
- - - - - - - - - - - -
-
- -
- -
- -

URL Previews

-

Design notes on a URL previewing service for Matrix:

-

Options are:

-
    -
  1. Have an AS which listens for URLs, downloads them, and inserts an event that describes their metadata.
  2. -
-
    -
  • Pros: -
      -
    • Decouples the implementation entirely from Synapse.
    • -
    • Uses existing Matrix events & content repo to store the metadata.
    • -
    -
  • -
  • Cons: -
      -
    • Which AS should provide this service for a room, and why should you trust it?
    • -
    • Doesn't work well with E2E; you'd have to cut the AS into every room
    • -
    • the AS would end up subscribing to every room anyway.
    • -
    -
  • -
-
    -
  1. Have a generic preview API (nothing to do with Matrix) that provides a previewing service:
  2. -
-
    -
  • Pros: -
      -
    • Simple and flexible; can be used by any clients at any point
    • -
    -
  • -
  • Cons: -
      -
    • If each HS provides one of these independently, all the HSes in a room may needlessly DoS the target URI
    • -
    • We need somewhere to store the URL metadata rather than just using Matrix itself
    • -
    • We can't piggyback on matrix to distribute the metadata between HSes.
    • -
    -
  • -
-
    -
  1. Make the synapse of the sending user responsible for spidering the URL and inserting an event asynchronously which describes the metadata.
  2. -
-
    -
  • Pros: -
      -
    • Works transparently for all clients
    • -
    • Piggy-backs nicely on using Matrix for distributing the metadata.
    • -
    • No confusion as to which AS
    • -
    -
  • -
  • Cons: -
      -
    • Doesn't work with E2E
    • -
    • We might want to decouple the implementation of the spider from the HS, given spider behaviour can be quite complicated and evolve much more rapidly than the HS. It's more like a bot than a core part of the server.
    • -
    -
  • -
-
    -
  1. Make the sending client use the preview API and insert the event itself when successful.
  2. -
-
    -
  • Pros: -
      -
    • Works well with E2E
    • -
    • No custom server functionality
    • -
    • Lets the client customise the preview that they send (like on FB)
    • -
    -
  • -
  • Cons: -
      -
    • Entirely specific to the sending client, whereas it'd be nice if /any/ URL was correctly previewed if clients support it.
    • -
    -
  • -
-
    -
  1. Have the option of specifying a shared (centralised) previewing service used by a room, to avoid all the different HSes in the room DoSing the target.
  2. -
-

Best solution is probably a combination of both 2 and 4.

-
    -
  • Sending clients do their best to create and send a preview at the point of sending the message, perhaps delaying the message until the preview is computed? (This also lets the user validate the preview before sending)
  • -
  • Receiving clients have the option of going and creating their own preview if one doesn't arrive soon enough (or if the original sender didn't create one)
  • -
-

This is a bit magical though in that the preview could come from two entirely different sources - the sending HS or your local one. However, this can always be exposed to users: "Generate your own URL previews if none are available?"

-

This is tantamount also to senders calculating their own thumbnails for sending in advance of the main content - we are trusting the sender not to lie about the content in the thumbnail. Whereas currently thumbnails are calculated by the receiving homeserver to avoid this attack.

-

However, this kind of phishing attack does exist whether we let senders pick their thumbnails or not, in that a malicious sender can send normal text messages around the attachment claiming it to be legitimate. We could rely on (future) reputation/abuse management to punish users who phish (be it with bogus metadata or bogus descriptions). Bogus metadata is particularly bad though, especially if it's avoidable.

-

As a first cut, let's do #2 and have the receiver hit the API to calculate its own previews (as it does currently for image thumbnails). We can then extend/optimise this to option 4 as a special extra if needed.

-

API

-
GET /_matrix/media/r0/preview_url?url=http://wherever.com
-200 OK
-{
-    "og:type"        : "article"
-    "og:url"         : "https://twitter.com/matrixdotorg/status/684074366691356672"
-    "og:title"       : "Matrix on Twitter"
-    "og:image"       : "https://pbs.twimg.com/profile_images/500400952029888512/yI0qtFi7_400x400.png"
-    "og:description" : "“Synapse 0.12 is out! Lots of polishing, performance &amp;amp; bugfixes: /sync API, /r0 prefix, fulltext search, 3PID invites https://t.co/5alhXLLEGP”"
-    "og:site_name"   : "Twitter"
-}
-
-
    -
  • Downloads the URL -
      -
    • If HTML, just stores it in RAM and parses it for OG meta tags -
        -
      • Download any media OG meta tags to the media repo, and refer to them in the OG via mxc:// URIs.
      • -
      -
    • -
    • If a media filetype we know we can thumbnail: store it on disk, and hand it to the thumbnailer. Generate OG meta tags from the thumbnailer contents.
    • -
    • Otherwise, don't bother downloading further.
    • -
    -
  • -
- -
- - -
-
- - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file