Giter Club home page Giter Club logo

deeplink's Introduction

Deeplink

Flyve MDM banner

License Follow twitter Project Status: Active Telegram Group IRC Chat Conventional Commits

Flyve MDM allows your company to maintain control of all mobile devices, whilst providing comprehensive protection and enhanced security for sensitive corporate data, via a centralized management console.

To get started, check out Flyve MDM website!

Table of Contents

Synopsis

Web site to resolve flyve:// deeplinks

The project consist in static html files to display the information for enrollment, the most important folder is site.

Information display

The deeplink features three ways to display the information to execute the enrollment.

Email account

When the invitation is opened from the email account of the user, in the respective device to enroll, the email will display the deeplink with the information of the invitation encoded. Also the QR code image is attached.

After opening the link the MDM Agent will recognize it and start the enrollment.

QR code display

The deeplink can also be opened in a computer's browser, in this case the deeplink will decode part of the information and display the Helpdesk information and the QR code, so the user can scan it from the MDM Agent and make the enrollment.

Mobile device browser

In case the invitation is opened with the browser of the device, it will display a button that contains the deeplink so the MDM Agent can recognize it and start the enrollment.

Redirect to the Play Store

If the App isn't installed, the deeplink will redirect to the Play Store to download the MDM Agent in order to proceed with the enrollment.

Build status

LTS Bleeding Edge
Build Status Build Status

Installation

To host your own instance of Flyve MDM Deeplink microservice, just follow these steps:

  1. Clone the project in your server directory
  2. Add your settings in the site/config.example.js file, then rename it to site/config.js
    • defaultLocation: the address to redirect in case there is no data to process by the deeplink
    • bugsnagApiKey: optional, the apikey to your bugsnag
    • deeplinkBase: the customroute for your app, for example: flyve://register
    • androidDefaultLink: the route of your application in the market place
    • iosDefaultLink: the route of your application in the apple store
  3. Add your deeplink route in Flyve MDM settings in GLPI
    • Go to Flyve MDM > General configuration > Invitation deeplink
    • Write http://my-site/deeplink/site/

Versioning

In order to provide transparency on our release cycle and to maintain backward compatibility, Flyve MDM is maintained under the Semantic Versioning guidelines. We are committed to following and complying with the rules, the best we can.

Release announcement posts on the official Teclib' blog contain summaries of the most noteworthy changes made in each release.

Contact

For notices about major changes and general discussion of Flyve MDM development, subscribe to the /r/FlyveMDM subreddit. You can also chat with us via IRC in #flyve-mdm on freenode or @flyvemdm on Telegram.

Professional Services

The Flyve MDM and GLPI Network services are available through our Partner's Network. We provide special training, bug fixes with editor subscription, contributions for new features, and more.

Obtain a personalized service experience, associated with benefits and opportunities.

Contribute

Want to file a bug, contribute some code, or improve documentation? Excellent! Read up on our guidelines for contributing and then check out one of our issues in the Issues Dashboard.

Copying

  • Name: Flyve MDM is a registered trademark of Teclib'.
  • Code: you can redistribute it and/or modify it under the terms of the GNU General Public License (GPLv3).
  • Documentation: released under Attribution 4.0 International (CC BY 4.0).

deeplink's People

Contributors

ajsb85 avatar diohz0r avatar gianfranco97 avatar naylin15 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

deeplink's Issues

Deeplink With internet Explorer.

I check DeepLink on Internet Explorer doesn't Work Show QR Code.

I check on another Browsers. Firefox, Chrome and Opera. On these Browsers working.

Version Internet Explorer.

ie

image001

Production instance broken

Describe the bug
While debugging https://github.com/flyve-mdm/glpi-plugin/issues/730 I notice the deeplink service seems to not work with a apparently valid url in an invitatoin.

image

Échec du chargement pour l’élément <script> dont la source est « http://flyve.org/deeplink/config.js ». deeplink:40
[Afficher/Masquer les détails du message.] TypeError: window.appConfig is undefined[En savoir plus] deeplink:43:1
<anonyme>
http://flyve.org/deeplink/:43:1
[Afficher/Masquer les détails du message.] TypeError: window.appConfig is undefined[En savoir plus] script.js:21:19
<anonyme>
http://flyve.org/deeplink/js/script.js:21:19

Missing documentation

Observed Results

Missing documentation

Expected behavior

Add documentation to:

  • How to install
  • Synopsis

Use a configuration file

Describe the bug
question from here:
https://forum.glpi-project.org/viewtopic.php?pid=352258#p352258

in deeplink/index.html a path to a js resource contains a leading slash. I think it should point to this file, right ?

https://github.com/flyve-mdm/deeplink/blob/develop/site/js/bugsnag-3.min.js

The api key should be configurable.

The redirection to an arbitrary we
site if ni data provided in the URL should be configurable too.

All these issues should be solved by creating a build process and by using a config.json or config.js file.


To Reproduce
Steps to reproduce the behavior:

  1. build the microservice to run in htps://server.com/path/to/service/
  2. try to use it

Micro Web Site

Hi, @Gianfranco97

We need a Web Site to resolve deeplinks.

This is the format of the URL:
https://flyve.org/flyve-mdm-deeplink/<base64>

The base64 string contain this information:
http://api.domain.com/glpi/apirest.php;45erjbudklq5865sdkjhjks;lkhjfkgsdf546634s;company's helpdesk;+33123456789;https://support.company.com;[email protected];

Please, show the support information with their proper url format (mailto:, callto:, http:...):

  • Company name
  • Phone
  • URL
  • Email

The deeplink to exec have this format:
flyve://register?data={{base64encode CSV}}

Please, also generate a QR image with the deeplink.

You can copy this design and sources to start: https://t.me/username
Use vanilla JS.

When the deeplink works (agent installed) the visibility change.
If the visibility does not change in few seconds.
We can detect the OS and redirect to the proper store (iTunnes or Google Play).

Google Play
https://play.google.com/store/apps/details?id=org.flyve.mdm.agent

iTunnes (App Store)
https://itunes.apple.com/us/app/flyve-mdm-agent

Reference:
https://developer.mozilla.org/en-US/docs/Web/API/Page_Visibility_API

Create documentation

Hi, @Naylin15

Please, create these files in this repository

  • README in markdown file format
  • LICENSE in markdown file format (GPL 3.0)
  • GitHub templates for issues and PRs
  • Contribute Guidelines

Thank you.

CI/CD fails

Hi, @Gianfranco97

The PR does not fails, but after merge, it's fails.

#!/bin/bash -eo pipefail
source ci/scripts/deploy.sh
error: pathspec 'gh-pages' did not match any file(s) known to git.
Exited with code 1

References:
#23
https://goo.gl/37QN3p

Automatic deploy to gh-pages

Is your feature request related to a problem? Please describe.
Every time a change is made in develop, it is necessary to copy these manually in the branch of gh-pages

Describe the solution you'd like
create a script to automate the process

Compatibility matrix

Hi, @Gianfranco97 / @Naylin15

It's reported by @btry

The problem is mainly because third pary apps don't trigger depplink handling in Android
the native browser tries to open the deeplink itself instead of opening our agent
for example I have to use firefox to make it work correctly

We need to create a matrix of compatibility.
Third party apps don't trigger deeplinks.

Displayed QR code invalid

Hi

When I click on the URL in my enrollment email, the QR code displayed has an invalid base 64 encoded string.

Example:
http://flyve.org/deeplink/?data=aHR0cDovLzE5Mi4xNjguMC45L35kZXRoZWdlZWsvZ2xwaS1mbHl2ZW1kbS05Mi9hcGlyZXN0LnBocFw7akE2WG80MXROT3pUUzVjS2hXaURhR3RNaDUxSk9oMGQ3a3RmQnRpa1w7MmIxMmZkYTJjZjNkZGM5MjZjNTU4YWExODgxNzFlNGQ1NDgxY2NmZTVkOGE1MTg2ZWNmNTI0ZTRkZDFiNjgzNVw7U3VwcG9ydCBOYW1lXDtTdXBwb3J0IFBob25lXDtodHRwczovL3N1cHBvcnQuY29tXDtzdXBwb3J0QHN1cHBvcnQuY29t

The URL contains a data. Its value is in the QR code displayed on screen
image

which is different from the QR code embedded in the email
image

The MDM agent throws an exception when trying to base64 decode this data. Indeed the data in this QR is:

aHR0cDovLzE5Mi4xNjguMC45L35kZXRoZWdlZWsvZ2xwaS1mbHl2ZW1kbS05Mi9hcGlyZXN0LnBocFw7akE2WG80MXROT3pUUzVjS2hXaURhR3RNaDUxSk9oMGQ3a3RmQnRpa1w7MmIxMmZkYTJjZjNkZGM5MjZjNTU4YWExODgxNzFlNGQ1NDgxY2NmZTVkOGE1MTg2ZWNmNTI0ZTRkZDFiNjgzNVw7U3VwcG9ydCBOYW1lXDtTdXBwb3J0IFBob25lXDtodHRwczovL3N1cHBvcnQuY29tXDtzdXBwb3J0QHN1cHBvcnQuY29t=

(note the equal sign at the end)

echo aHR0cDovLzE5Mi4xNjguMC45L35kZXRoZWdlZWsvZ2xwaS1mbHl2ZW1kbS05Mi9hcGlyZXN0LnBocFw7akE2WG80MXROT3pUUzVjS2hXaURhR3RNaDUxSk9oMGQ3a3RmQnRpa1w7MmIxMmZkYTJjZjNkZGM5MjZjNTU4YWExODgxNzFlNGQ1NDgxY2NmZTVkOGE1MTg2ZWNmNTI0ZTRkZDFiNjgzNVw7U3VwcG9ydCBOYW1lXDtTdXBwb3J0IFBob25lXDtodHRwczovL3N1cHBvcnQuY29tXDtzdXBwb3J0QHN1cHBvcnQuY29t | base64 -d
http://192.168.0.9/~dethegeek/glpi-flyvemdm-92/apirest.php\;jA6Xo41tNOzTS5cKhWiDaGtMh51JOh0d7ktfBtik\;2b12fda2cf3ddc926c558aa188171e4d5481ccfe5d8a5186ecf524e4dd1b6835\;Support Name\;Support Phone\;https://support.com\;[email protected]
# error message appended on the output
echo aHR0cDovLzE5Mi4xNjguMC45L35kZXRoZWdlvZ2xwaS1mbHl2ZW1kbS05Mi9hcGlyZXN0LnBocFw7akE2WG80MXROT3pUUzVjS2hXaURhR3RNaDUxSk9oMGQ3a3RmQnRpa1w7MmIxMmZkYTJjZjNkZGM5MjZjNTU4YWExODgxNzFlNGQ1NDgxY2NmZTVkOGE1MTg2ZWNmNTI0ZTRkZDFiNjgzNVw7U3VwcG9ydCBOYW1lXDtTdXBwb3J0IFBob25lXDtodHRwczovL3N1cHBvcnQuY29tXDtzdXBwb3J0QHN1cHBvcnQuY29t= | base64 -d
http://192.168.0.9/~dethegeek/glpi-flyvemdm-92/apirest.php\;jA6Xo41tNOzTS5cKhWiDaGtMh51JOh0d7ktfBtik\;2b12fda2cf3ddc926c558aa188171e4d5481ccfe5d8a5186ecf524e4dd1b6835\;Support Name\;Support Phone\;https://support.com\;[email protected]: entrée incorrecte

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.