• v3.0-beta1 06f502dd89

    v3.0-beta1 Pre-release

    cadence released this 2024-09-22 03:53:58 +00:00 | 52 commits to main since this release

    This is a beta version. It is incomplete.

    You are welcome to try this version if you want to be ahead of the curve or want to get the breaking changes out of the way early.

    This version is stable, and I am using it, but it is not complete. Specifically, many of the web-based features are not implemented yet. Self-service is not implemented yet either.

    Breaking changes

    Your server must support Authenticated Media.

    You do not need to freeze media - you can stay compatible with old Matrix clients if you want. But you must upgrade your homeserver to a version that supports the authenticated media endpoints.

    Supported servers

    OOYE will check your server for Matrix v1.11 support when you run node scripts/seed.js. If your server does not have support, OOYE will not start.

    • Synapse is supported (tested)
    • Dendrite is supported (untested; it has the endpoints in a stable release)
    • Conduwuit is supported (tested)
    • Conduit is not yet supported (it has the bare endpoints, but they are not in a stable release yet)
    • Construct is not supported (it does not have the endpoints)

    You must give OOYE a public URL.

    OOYE now runs a web server on port 6693 that needs to be publicly accessible over the internet.

    Why?

    This is necessary due to Matrix introducing authenticated media - the only way for Discord API to access Matrix user avatar URLs is through OOYE's new media proxy. This also gave me the opportunity to add several other convenient web features, such as another media proxy for Matrix users to view expired Discord links, and web-based setup for bridging a new server. While it'll be a bit harder to set up OOYE initially because you'll probably have to do DNS, HTTPS, and reverse proxy configuration, I think you'll enjoy the end result.

    You will be prompted for the public URL when you run node scripts/seed.js. OOYE will check that your input is valid.

    You must run seed.js again.

    Why?

    Any registration.yaml files generated previously are incompatible with this version of OOYE. Don't worry, it's easy to generate a new registration - just run node scripts/seed.js again.

    After registration.yaml has been generated, you'll need to let your homeserver know about the updated version. seed.js will interactively guide you through this process.

    (If you have an unusual situation where you need to run seed.js non-interactively, like Nix or Docker (?), you will have to create a valid registration.yaml first. Then you can run seed.js and it will not create any interactive prompts.)

    The database is in the working directory.

    Details

    When you run seed.js, it will automatically move the database file for you. This should not impact most users.

    I suggest running the bridge with npm run start rather than node start.js, because it will set the working directory to the repo directory. (If you have an unusual situation where you need to store the database outside of the repo, set the working directory accordingly and use start.js.)

    Changelog

    Features

    • b6c23c3 User-facing web features have been added, like links to add OOYE to a Discord server, invite Matrix users, and show linked channels
      • Some features, like self-service, have not been implemented yet in this beta release
    • 37f3a59 23a7394 seed.js will show interactive prompts during initial setup, so you don't have to edit registration.yaml by hand
      • 76caaa1 YAML support is removed and all existing registration files must be re-created
      • 7d42a53 Wait for ping to work during setup, to ensure the homeserver registration works
      • 6a15f4f Check for Matrix v1.11 in setup (required for Authenticated Media)
    • d5ec013 c6175e0 Matrix users can access expired Discord attachment links as they are routed through OOYE
      • adf07ad ae9acbc Links in messages are converted automatically
      • 06f502d Only links that the bridge knows about are allowed; this is stored in the database
    • decc32f b45d0f3 c0d92ea 1ebf9e1 Discord users can access Matrix authenticated media as it is routed through the proxy
    • be405d3 6bc3eaf Migrate all legacy text commands to Discord interactions
      • 62edffb Add right click menu item for viewing which Matrix users reacted
      • 78a17b2 Add right click menu item for checking the author of a Matrix message
      • 71c553a 4b7593d Test cases

    Improvements

    • Changes to how permissions are managed
      • ddb211f 1037fe0 The new /permissions command on Discord lets Discord moderators promote or demote Matrix users
      • 3a84658 b8793da 7afe3e7 Power levels in spaces will be copied to existing and newly created rooms
      • a218774 Room avatar permission changes now require PL 50 moderator on Matrix
      • df1296e The legacy invite key in registration will be migrated to the database
      • #37 The invite key (now in the database) will apply retroactively to existing rooms
    • 42bfd03 Author metadata of Discord slash command uses is bridged to Matrix
    • 5af7d6b Add test for a generated embed on a reply
    • ee266f8 Discord reactions should be attached to the bottom of embed messages more reliably
    • a2e3f06 Notify on Matrix that the room has been unbridged when the corresponding channel is deleted (this does not freeze or brick the room)
    • b896278 256196c b8a9924 Fix type errors in scripts and make executable
    • 9e9f481 seed.js validates the URL property
    • 01af302 Move ooye.db to current working dir

    Fixes

    • a6c9619 Single character emojis are now supported
    • eaa3b87 Sticker shortcode names are no longer mangled
    • 607fd38 Fix bigint/number type in orm WHERE
    • a5518e5 Fix reading property that was always missing
    • 23a7394 Catch bridge->hs connection errors
    • f011cac Fix timestamp resolution bug
    Downloads