{"action":"created","issue":{"url":"https://api.github.com/repos/gotthardp/lorawan-server/issues/251","repository_url":"https://api.github.com/repos/gotthardp/lorawan-server","labels_url":"https://api.github.com/repos/gotthardp/lorawan-server/issues/251/labels{/name}","comments_url":"https://api.github.com/repos/gotthardp/lorawan-server/issues/251/comments","events_url":"https://api.github.com/repos/gotthardp/lorawan-server/issues/251/events","html_url":"https://github.com/gotthardp/lorawan-server/issues/251","id":280895640,"number":251,"title":"Suggestion: REST \"Web hooks\" for Device OTAA join/unjoin","user":{"login":"Eric24","id":685316,"avatar_url":"https://avatars0.githubusercontent.com/u/685316?v=4","gravatar_id":"","url":"https://api.github.com/users/Eric24","html_url":"https://github.com/Eric24","followers_url":"https://api.github.com/users/Eric24/followers","following_url":"https://api.github.com/users/Eric24/following{/other_user}","gists_url":"https://api.github.com/users/Eric24/gists{/gist_id}","starred_url":"https://api.github.com/users/Eric24/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Eric24/subscriptions","organizations_url":"https://api.github.com/users/Eric24/orgs","repos_url":"https://api.github.com/users/Eric24/repos","events_url":"https://api.github.com/users/Eric24/events{/privacy}","received_events_url":"https://api.github.com/users/Eric24/received_events","type":"User","site_admin":false},"labels":[{"id":415595250,"url":"https://api.github.com/repos/gotthardp/lorawan-server/labels/enhancement","name":"enhancement","color":"84b6eb","default":true}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":1,"created_at":"2017-12-11T05:07:08Z","updated_at":"2017-12-11T12:55:20Z","closed_at":null,"author_association":"NONE","body":"From a database standpoint (assuming an OTAA operational mode), Devices are the objects that there will be most of in any given application. While it's convenient to store Device configurations within the Mnesia database, it would be a nice alternative to allow those configurations to be stored externally, and have the server request authentication and configuration data from that external source upon receiving a 'join'.\r\n\r\nWhen a device attempts to join, instead of looking up the device in the local Mnesia database, make a \"join\" REST call to the configured third-party server. The server will authenticate the device and return its configuration data (as JSON). Once the device is authenticated, it is stored in the Mnesia database as a Node until it is normally removed (i.e. communications timeout). And at that time, a separate \"unjoin\" REST transaction is made to the same third-party server, simply providing a notification that the device is no longer active.\r\n\r\nAs an added enhancement, multiple third-party servers could be configured (similar to Connectors), possibly based on a partial match, RegEx, or range-check of the DevEUI."},"comment":{"url":"https://api.github.com/repos/gotthardp/lorawan-server/issues/comments/350716513","html_url":"https://github.com/gotthardp/lorawan-server/issues/251#issuecomment-350716513","issue_url":"https://api.github.com/repos/gotthardp/lorawan-server/issues/251","id":350716513,"user":{"login":"altishchenko","id":19464159,"avatar_url":"https://avatars2.githubusercontent.com/u/19464159?v=4","gravatar_id":"","url":"https://api.github.com/users/altishchenko","html_url":"https://github.com/altishchenko","followers_url":"https://api.github.com/users/altishchenko/followers","following_url":"https://api.github.com/users/altishchenko/following{/other_user}","gists_url":"https://api.github.com/users/altishchenko/gists{/gist_id}","starred_url":"https://api.github.com/users/altishchenko/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/altishchenko/subscriptions","organizations_url":"https://api.github.com/users/altishchenko/orgs","repos_url":"https://api.github.com/users/altishchenko/repos","events_url":"https://api.github.com/users/altishchenko/events{/privacy}","received_events_url":"https://api.github.com/users/altishchenko/received_events","type":"User","site_admin":false},"created_at":"2017-12-11T12:55:20Z","updated_at":"2017-12-11T12:55:20Z","author_association":"CONTRIBUTOR","body":"Or, at least try to?\n\nAlexander Tishchenko\nM: +7 (916) 704-61-57\nE: atishch@gmail.com\n\n\n\n> 11 дек. 2017 г., в 14:20, Petr Gotthard <notifications@github.com> написал(а):\n> \n> This sound like a support for an external Join Server. Is there some existing Join Server we could integrate with?\n> \n> —\n> You are receiving this because you are subscribed to this thread.\n> Reply to this email directly, view it on GitHub <https://github.com/gotthardp/lorawan-server/issues/251#issuecomment-350696297>, or mute the thread <https://github.com/notifications/unsubscribe-auth/ASj_38Bqg71yV8CRHABhYl8nbO1pG0Nkks5s_RAGgaJpZM4Q83yp>.\n> \n\n"}}
{"actor":{"display_login":"altishchenko"}}