Skip to content

A bridge between our Matrix homeserver and multiple project management services, such as Traccar.

License

Notifications You must be signed in to change notification settings

globekeeper/bridges-as

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Matrix Hookshot

#hookshot:half-shot.uk Docker Image Version (latest by date)

screenshot

A Matrix bot for connecting to external services like GitHub, GitLab, JIRA, and more.

  • Several services are supported out of the box.
  • Webhooks let you connect all kinds of services, with the ability to write rich templates using JavaScript.
  • No external database is required, instead using Matrix state as a persistent store.
  • End-to-Bridge encryption allows bots to be used in encrypted Matrix rooms.
  • Powerful widgets let you configure Hookshot from a room or the Element Extensions Store.

We richly support the following integrations:

Get started by reading the setup guide!

Documentation

Documentation can be found on GitHub Pages.

You can build the documentation yourself by typing:

# cargo install mdbook
mdbook build
sensible-browser book/index.html

GlobeKeeper Related Docs

Notion PRD

The current GlobeKeeper customization to original hookshot can be divided into 2 different main functionalities:

  1. Provisioning the space-associated bridged-external-authentication:

    This provisioning endpoint is responsible of introducing a new type of service to hookshot, and by triggering the provisioner with that type, the bride will establish a new route that will authenticate/register users from external systems (currently supporting only GeoDome POST login payload) according to the provided external auth provider URL and name and the path-embedded spaceId. This endpoint is authorized using the unique provisioning secret from the config.

    This is the API for provisioning (Should be sent by VCP client when clicking on e.g - "Integrate Space" in the space settings).

  2. Actual authentication logic:

    The actual authentication logic that is triggered by the newly created route from the provisioner. Making a request to the generated endpoint will execute the following logic:

    • Authenticate against the configured external-auth-provider URL (this URL is an argument to the provisioning API) ->
    • if authenticated, continues, else it returns 401 ->
      • If the user is already registered in Dendrite -> Logs-in and returns homeserver credentials (userId, deviceId and access token)
      • If the user isn't already registered in Dendrite -> Registers the user with the format @{{localpart from email}}-{{name of external auth provider, provided in the provisioning API}}:{{homeserverUrl}} -> join the newly created user to the space configured with this bridged-auth and returns homeserver credentials (homeserver name, userId, deviceId and access token)

    This is the bridged login endpoint (what GeoDome would use essentially):

Coming-up:

  1. Traccar integration for supporting incoming GPS devices location updates and streaming them to the homeserver in a way that would allow displaying them on the map in configured rooms.
  2. ... 🤩

Debugging

For debugging purposes, toggle auto-attach in VS Code:

  1. cmnd+shift+p
  2. Debug: Toggle Auto Attach
  3. yarn
  4. yarn start

Contact

We have a Matrix support room (#hookshot:half-shot.uk).

About

A bridge between our Matrix homeserver and multiple project management services, such as Traccar.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • TypeScript 94.8%
  • Rust 2.3%
  • SCSS 1.1%
  • Smarty 0.7%
  • JavaScript 0.5%
  • Shell 0.3%
  • Other 0.3%