{"id":21630030,"url":"https://github.com/mozilla-services/msisdn-gateway","last_synced_at":"2025-07-17T12:32:51.048Z","repository":{"id":16127024,"uuid":"18872252","full_name":"mozilla-services/msisdn-gateway","owner":"mozilla-services","description":"INACTIVE - http://mzl.la/ghe-archive - An MSISDN based Authentication Server.","archived":true,"fork":false,"pushed_at":"2019-03-28T02:26:19.000Z","size":2316,"stargazers_count":18,"open_issues_count":0,"forks_count":10,"subscribers_count":9,"default_branch":"master","last_synced_at":"2025-03-29T01:29:19.409Z","etag":null,"topics":["inactive","unmaintained"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mozilla-services.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-04-17T08:49:19.000Z","updated_at":"2024-07-23T12:38:09.000Z","dependencies_parsed_at":"2022-09-24T06:21:56.850Z","dependency_job_id":null,"html_url":"https://github.com/mozilla-services/msisdn-gateway","commit_stats":null,"previous_names":[],"tags_count":15,"template":false,"template_full_name":null,"purl":"pkg:github/mozilla-services/msisdn-gateway","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mozilla-services%2Fmsisdn-gateway","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mozilla-services%2Fmsisdn-gateway/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mozilla-services%2Fmsisdn-gateway/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mozilla-services%2Fmsisdn-gateway/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mozilla-services","download_url":"https://codeload.github.com/mozilla-services/msisdn-gateway/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mozilla-services%2Fmsisdn-gateway/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265606728,"owners_count":23796998,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["inactive","unmaintained"],"created_at":"2024-11-25T02:09:35.820Z","updated_at":"2025-07-17T12:32:50.656Z","avatar_url":"https://github.com/mozilla-services.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"MSISDN Gateway\n==============\n\n[![Build Status](https://travis-ci.org/mozilla-services/msisdn-gateway.svg?branch=master)](https://travis-ci.org/mozilla-services/msisdn-gateway)\n\nThis is a proof of concept of an MSISDN Gateway server that takes a phone number and\nregister it using an SMS validation mechanism.\n\n[API docs](API.md)\n\n[Mailing list](https://mail.mozilla.org/listinfo/loop-services-dev)\n\n[Dummy client](https://github.com/ferjm/msisdn-verifier-client)\n\n\nRegistration process flow\n-------------------------\n\n  1. The client sends a request to ``/register``.\n\n  -- The server chooses the verification process based on MSISDN, MCC and MNC\n     codes and returns a session token and a verify endpoint.\n\n  2. The client sends a request to ``/sms/verify`` (the verify endpoint).\n\n  -- The server sends a SMS text message containing a pin code, and returns the\n     number that was used to send it (the phone number of the server, useful\n     for silent SMS catch)\n\n  3. The client sends a request to verify the pin code (to ``/sms/verify_code``)\n     with the session token and the pin code and gets back a BrowserID\n     certificate.\n  4. If needed, the client can also ask for a new pin code using the\n     ``/sms/resend_code`` URL and its sessionToken.\n  5. Finally the client can unregister itself using the ``/unregister`` URL\n     and its sessionToken.\n\n\nWhat is the needed stack?\n-------------------------\n\n\u003cimg src=\"http://www.gliffy.com/go/publish/image/5799498/L.png\" /\u003e\n\n\nHow to install?\n---------------\n\nYou will need to have redis-server installed:\n\n### Linux\n\n    apt-get install redis-server\n\n### OS X\n\nAssuming you have brew installed, use it to install redis:\n\n    brew install redis\n\nIf you need to restart it (after configuration update):\n\n    brew services restart redis\n\n### All Platforms\n\nThen clone the loop server and install its dependencies:\n\n    git clone https://github.com/mozilla-services/msisdn-gateway.git\n    cd msisdn-gateway \u0026\u0026 make install\n\n\nHow to run it?\n--------------\n\nYou can create your configuration file in `config/{NODE_ENV}.json`\n\nYou need to generate the BrowserId keys by running `./bin/generate-keypair` and\nadd them to your configuration file.\n\n`development` is the default environment.\n\n    make runserver\n\nis equivalent to:\n\n    NODE_ENV=development make runserver\n\n\nHow to run the tests?\n---------------------\n\nTo run DynamoDB tests you will need to install and run [fake_dynamo](https://github.com/ananthakumaran/fake_dynamo) or [ddbmock](https://pypi.python.org/pypi/ddbmock)\n\nFakeDynamo needs ruby, ruby-dev(el) and rubygems.\n\n    make test\n\n\nHow to update translation?\n--------------------------\n\n    make update-l10n\n\nAnd for automated scripts:\n\n    make update-l10n NOVERIFY=yes\n\n\nEstimate Redis Memory Usage\n---------------------------\n\n    usage = nbUsers * 1216 + 600000 (bytes)\n\n - For 3.5M users 4 GB\n - For 10M users 12 GB\n\nThe biggest AWS Elasticache Redis virtual machine is 68GB large so if\nwe want to handle more that 60M users we will probably want to do some\nsharding to have one redis for MSISDN validation and another one for\nhawkSession management.\n\n - 600000 bytes is the size of an empty redis-server.\n - 1216 bytes is the fixed size of a given user including:\n    - It's hawkSessionToken\n    - It's code validation related data\n    - It's MSISDN related data\n\nThe /unregister endpoint drops everything about a user.\n\n\nWhere to report bugs?\n---------------------\n\nYou should report bugs/issues or feature requests via [Github Issues](https://github.com/mozilla-services/msisdn-gateway/issues)\n\n\nLicense\n-------\n\nThe MSISDN Gateway code is released under the terms of the\n[Mozilla Public License v2.0](http://www.mozilla.org/MPL/2.0/). See the\n`LICENSE` file at the root of the repository.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmozilla-services%2Fmsisdn-gateway","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmozilla-services%2Fmsisdn-gateway","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmozilla-services%2Fmsisdn-gateway/lists"}