Giter Site home page Giter Site logo

globekeeper / bridges-as Goto Github PK

View Code? Open in Web Editor NEW

This project forked from matrix-org/matrix-hookshot

0.0 0.0 0.0 6.46 MB

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

Home Page: https://matrix-org.github.io/matrix-hookshot

License: Apache License 2.0

Shell 0.28% JavaScript 0.54% Rust 2.35% TypeScript 94.84% CSS 0.01% HTML 0.08% Smarty 0.68% Dockerfile 0.16% SCSS 1.06%

bridges-as's Introduction

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).

bridges-as's People

Contributors

andrewferr avatar andybalaam avatar anoadragon453 avatar arkaniad avatar babolivier avatar chvp avatar danieloni1 avatar dav-is avatar dependabot[bot] avatar frlan avatar half-shot avatar harharlinks avatar hwittenborn avatar jaller94 avatar jaywink avatar justinbot avatar laurencegill avatar mtrnord avatar psolyca avatar puffnfresh avatar roiarthurb avatar spantaleev avatar spiritcroc avatar tadzik avatar tsimonq2 avatar turt2live avatar twi1ightsparkle avatar weeman1337 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.