matrix-org / sydent Goto Github PK
View Code? Open in Web Editor NEWSydent: Reference Matrix Identity Server
Home Page: http://matrix.org
License: Apache License 2.0
Sydent: Reference Matrix Identity Server
Home Page: http://matrix.org
License: Apache License 2.0
I started the server with python -m sydent.sydent - everything seems to work but there is no info how I should configure web client or Android app to use the identity server.
Currently synapse gives this error:
2016-11-27 16:57:30,814 - synapse.http.server - 139 - ERROR - POST-53- Failed handle request synapse.http.server._async_render on <synapse.rest.ClientRestResource object at 0x7f5694cc1f90>: <SynapseRequest at 0x7f568ddf1518 method=POST uri=/_matrix/client/r0/account/3pid/email/requestToken clientproto=HTTP/1.1 site=8448>
Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/synapse/http/server.py", line 116, in wrapped_request_handler
yield request_handler(self, request, request_metrics)
File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", line 1126, in _inlineCallbacks
result = result.throwExceptionIntoGenerator(g)
File "/usr/lib/python2.7/dist-packages/twisted/python/failure.py", line 389, in throwExceptionIntoGenerator
return g.throw(self.type, self.value, self.tb)
File "/usr/lib/python2.7/dist-packages/synapse/http/server.py", line 255, in _async_render
callback_return = yield callback(request, **kwargs)
File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", line 1126, in _inlineCallbacks
result = result.throwExceptionIntoGenerator(g)
File "/usr/lib/python2.7/dist-packages/twisted/python/failure.py", line 389, in throwExceptionIntoGenerator
return g.throw(self.type, self.value, self.tb)
File "/usr/lib/python2.7/dist-packages/synapse/rest/client/v2_alpha/account.py", line 195, in on_POST
ret = yield self.identity_handler.requestEmailToken(**body)
File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", line 1126, in _inlineCallbacks
result = result.throwExceptionIntoGenerator(g)
File "/usr/lib/python2.7/dist-packages/twisted/python/failure.py", line 389, in throwExceptionIntoGenerator
return g.throw(self.type, self.value, self.tb)
File "/usr/lib/python2.7/dist-packages/synapse/handlers/identity.py", line 158, in requestEmailToken
params
File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", line 1128, in _inlineCallbacks
result = g.send(result)
File "/usr/lib/python2.7/dist-packages/synapse/http/client.py", line 128, in post_urlencoded_get_json
defer.returnValue(json.loads(body))
File "/usr/lib/python2.7/dist-packages/simplejson/__init__.py", line 505, in loads
return _default_decoder.decode(s)
File "/usr/lib/python2.7/dist-packages/simplejson/decoder.py", line 370, in decode
obj, end = self.raw_decode(s)
File "/usr/lib/python2.7/dist-packages/simplejson/decoder.py", line 400, in raw_decode
return self.scan_once(s, idx=_w(s, idx).end())
JSONDecodeError: Expecting value: line 2 column 1 (char 1)
Should I specify port (8090) too or will the server detect itself? If the port is specified in web client then it starts to spin but there is no response nor anything interesting in the logs. Really no idea what I'm missing here..
The ephemeral_public_keys
table gains a new row whenever a 3pid invite (via email) is sent. The token is sent as part of the email and is validated upon clicking the link.
However, after validation we do not clear the token. While this allows invites to work multiple times (for some reason?) it does lead to an ever-growing table.
It's not unheard of to expire validation emails after a few hours or days, and we should probably do that here.
It would be awesome if you could publish an official Docker image for sydent like you did for synapse.
Currently the config file is a bit of a mess. It has a collection of "default" values, but this is not the complete list of values. They are in an odd order (email things are not together for instance), and figuring out what each value does requires looking in the code (and there are no examples anywhere).
Ideally we'd have explanations in the generated config file, similar to Synapse, with examples for each one, and it would be organised better (correct ordering).
This isn't that hard, but someone needs to go ahead and do it, else every time someone sets up a Sydent dev environment they spent a couple hours figuring out how the config file works.
Trying to run sydent on Debian Jessie using SQLite version 3.18.0 results in an error.
This has previously been mentioned in #26, however the original issue is different to this one, so logging it as a new issue.
(sydent)gooseberry@servername:/opt/sydent# python -m sydent.sydent
INFO:sydent.db.sqlitedb:Using DB file sydent.db
WARNING:sydent.http.httpcommon:No HTTPS private key / cert found: not starting replication server or doing replication pushes
INFO:sydent.http.httpserver:Starting Client API HTTP server on port 8090
INFO:twisted:Site starting on 8090
INFO:twisted:Starting factory <twisted.web.server.Site instance at 0x7fda3b6c2950>
Unhandled error in Deferred:
CRITICAL:twisted:Unhandled error in Deferred:
CRITICAL:twisted:
Traceback (most recent call last):
File "/opt/sydent/local/lib/python2.7/site-packages/twisted/internet/defer.py", line 150, in maybeDeferred
result = f(*args, **kw)
File "/opt/sydent/local/lib/python2.7/site-packages/sydent/replication/pusher.py", line 76, in scheduledPush
peers = self.peerStore.getAllPeers()
File "/opt/sydent/local/lib/python2.7/site-packages/sydent/db/peers.py", line 52, in getAllPeers
res = cur.execute("select p.name, p.port, p.lastSentVersion, pk.alg, pk.key from peers p, peer_pubkeys pk "
DatabaseError: malformed database schema (medium_lower_address) - near "(": syntax error
^CINFO:twisted:Received SIGINT, shutting down.
.well-known support for federation connections
Hi,
I have Synapse, Sydent and Riot (Web) running. Creating a new account on Riot, Sydent sends a verification email right?.
Well I'm stuck there because of the following error
2019-03-01 10:01:11,782 - twisted - 154 - CRITICAL - Traceback (most recent call last): File "/home/<user>/.sydent/lib/python2.7/site-packages/twisted/web/server.py", line 199, in process self.render(resrc) File "/home/<user>/.sydent/lib/python2.7/site-packages/twisted/web/server.py", line 259, in render body = resrc.render(self) File "/home/<user>/.sydent/lib/python2.7/site-packages/twisted/web/resource.py", line 250, in render return m(request) File "/home/<user>/.sydent/lib/python2.7/site-packages/sydent/http/servlets/__init__.py", line 69, in inner return json.dumps(f(*args, **kwargs)).encode("UTF-8") File "/home/<user>/.sydent/lib/python2.7/site-packages/sydent/http/servlets/emailservlet.py", line 55, in render_POST email, clientSecret, sendAttempt, nextLink, ipaddress=ipaddress File "/home/<user>/.sydent/lib/python2.7/site-packages/sydent/validators/emailvalidator.py", line 38, in requestToken logger.basicConfig(filename='sydent.log',level=logging.DEBUG) AttributeError: 'Logger' object has no attribute 'basicConfig'
I can't understand the problem of the logger, the python logger has basicConfig and the emailvalidator.py has the logger. I already changed the path of the log for and a specific path.
Any help is appreciated
i wish that it could have more database support.
so that i could use same database when i integrate with other open source system.
thanks.
see #21
And adding a linter such as black.
Hi Folks,
the database will be empty after an clean install.
pip install https://github.com/matrix-org/sydent/tarball/master
python -m sydent.sydent
INFO:sydent.db.sqlitedb:Using DB file sydent.db
WARNING:sydent.http.httpcommon:No HTTPS private key / cert found: not starting replication server or doing replication pushes
INFO:sydent.http.httpserver:Starting Client API HTTP server on port 8090
INFO:twisted:Site starting on 8090
INFO:twisted:Starting factory <twisted.web.server.Site instance at 0x7f003e44ed40>
Unhandled error in Deferred:
CRITICAL:twisted:Unhandled error in Deferred:
CRITICAL:twisted:
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/twisted/internet/defer.py", line 150, in maybeDeferred
result = f(*args, **kw)
File "/usr/local/lib/python2.7/dist-packages/sydent/replication/pusher.py", line 76, in scheduledPush
peers = self.peerStore.getAllPeers()
File "/usr/local/lib/python2.7/dist-packages/sydent/db/peers.py", line 52, in getAllPeers
res = cur.execute("select p.name, p.port, p.lastSentVersion, pk.alg, pk.key from peers p, peer_pubkeys pk "
OperationalError: no such table: peers
/lookup
doesn't seem to work while /bulk_lookup
does.
/lookup
pulls an sgAssoc
from the DB while /bulk_lookup
just pulls an MXID associated with a address. An sgAssoc looks like the following:
{
"address": "[email protected]",
"medium": "email",
"mxid": "@ears:matrix.org",
"not_before": 1428825849161,
"not_after": 4582425849161,
"ts": 1428825849161,
"signatures": {
"matrix.org": {
"ed25519:0": "ENiU2YORYUJgE6WBMitU0mppbQjidDLanAusj8XS2nVRHPu+0t42OKA/r6zV6i2MzUbNQ3c3MiLScJuSsOiVDQ"
}
}
}
/lookup
grabs an assoc from the DB with the following code:
Which calls this SQL:
sydent/sydent/db/threepid_associations.py
Lines 105 to 123 in 207531d
My hunch is sgAssocs aren't getting properly added to the DB.
In the current implementation (https://github.com/matrix-org/sydent/blob/master/sydent/util/emailutils.py#L65-L67) sydent uses only an unauthenticated mail delivery path via an available relay host. Unfortunately, most transactional email services like Cuttlefish or Mailgun only offer authenticated routes.
Are there plans to provide an immutable infrastructure / 12factor.net compliant modeling of configuration via environment variables that includes credentials similar to http://stackoverflow.com/a/64890/1959568?
enforce proper cert checking. Blocked on getting people to switch over for now, but we could make it optional.
hi after configuration of my sydent server on https://egom.etod.me/ident
i still see No Such Resource
wherei s my problem?
When a Sydent is replicating to a few different servers, it does so sequentially. If one of those operations raises an exception, Sydent stops and doesn't continue pushing to the others. This can make it seem like a lot of the replication is broken, when actually it's just one server.
We should print the exception but continue iterating.
Unhandled Error
Traceback (most recent call last):
File "/home/vectoris/venv-sydent/local/lib/python2.7/site-packages/twisted/protocols/basic.py", line 571, in dataReceived
why = self.lineReceived(line)
File "/home/vectoris/venv-sydent/local/lib/python2.7/site-packages/twisted/web/http.py", line 1656, in lineReceived
self.allContentReceived()
File "/home/vectoris/venv-sydent/local/lib/python2.7/site-packages/twisted/web/http.py", line 1731, in allContentReceived
req.requestReceived(command, path, version)
File "/home/vectoris/venv-sydent/local/lib/python2.7/site-packages/twisted/web/http.py", line 827, in requestReceived
self.process()
--- <exception caught here> ---
File "/home/vectoris/venv-sydent/local/lib/python2.7/site-packages/twisted/web/server.py", line 189, in process
self.render(resrc)
File "/home/vectoris/venv-sydent/local/lib/python2.7/site-packages/twisted/web/server.py", line 238, in render
body = resrc.render(self)
File "/home/vectoris/venv-sydent/local/lib/python2.7/site-packages/twisted/web/resource.py", line 250, in render
return m(request)
File "sydent/http/servlets/lookupservlet.py", line 42, in render_GET
sgassoc = globalAssocStore.signedAssociationStringForThreepid(medium, address)
File "sydent/db/threepid_associations.py", line 73, in signedAssociationStringForThreepid
(medium, address, time_msec(), time_msec()))
sqlite3.ProgrammingError: You must not use 8-bit bytestrings unless you use a text_factory that can interpret 8-bit bytestrings (like text_factory = str). It is highly recommended that you instead just switch your application to Unicode strings.
(.sydent) [wangjh@localhost .sydent]$ python -m sydent.sydent
INFO:sydent.db.sqlitedb:Using DB file sydent.db
WARNING:sydent.http.httpcommon:No HTTPS private key / cert found: not starting replication server or doing replication pushes
INFO:sydent.http.httpserver:Starting Client API HTTP server on port 8090
INFO:twisted:Site starting on 8090
INFO:twisted:Starting factory <twisted.web.server.Site instance at 0x7f366710c2d8>
Unhandled error in Deferred:
CRITICAL:twisted:Unhandled error in Deferred:
CRITICAL:twisted:
Traceback (most recent call last):
File "/home/wangjh/.sydent/lib/python2.7/site-packages/twisted/internet/defer.py", line 149, in maybeDeferred
result = f(*args, **kw)
File "/home/wangjh/.sydent/lib/python2.7/site-packages/sydent/replication/pusher.py", line 76, in scheduledPush
peers = self.peerStore.getAllPeers()
File "/home/wangjh/.sydent/lib/python2.7/site-packages/sydent/db/peers.py", line 52, in getAllPeers
res = cur.execute("select p.name, p.port, p.lastSentVersion, pk.alg, pk.key from peers p, peer_pubkeys pk "
OperationalError: no such table: peers
What wrong?
hello,
Where are located the config file?
i can't find them anywhere?
Thank you
Hi everyone,
I don't know if this is the right place to ask, and I don't even know if what I am reporting really is a bug. If I'm mistaken, I apologise in advance.
By mistake, I registered (some time ago) on the matrix.org
server a username with uppercase and lowercase letters; let's say Me
. It seems that the login interface is case-insensitive, because I am able to log in with username me
on Riot web, Riot Android and Riot desktop (for Linux).
However, the Matrix ID appears to be case-sensitive: people can send me messages at @Me:matrix.org
but I never received anything sent to @me:matrix.org
.
What I really wanted was @me:matrix.org
, but I am unable to register the me
username, since the only registration interface I know is the one provided through Riot (which is case-insensitive). Moreover, the last time I checked, the ability to change a Matrix ID was still at the discussion stage (I don't even know if it's on the roadmap).
me
, i.e. a lowercase version of my current username?hi,
i got this error..
CRITICAL:twisted:Unhandled Error
Traceback (most recent call last):
File "/home/udee/.sydent/local/lib/python2.7/site-packages/twisted/protocols/basic.py", line 571, in dataReceived
why = self.lineReceived(line)
File "/home/udee/.sydent/local/lib/python2.7/site-packages/twisted/web/http.py", line 1811, in lineReceived
self.allContentReceived()
File "/home/udee/.sydent/local/lib/python2.7/site-packages/twisted/web/http.py", line 1906, in allContentReceived
req.requestReceived(command, path, version)
File "/home/udee/.sydent/local/lib/python2.7/site-packages/twisted/web/http.py", line 771, in requestReceived
self.process()
--- ---
File "/home/udee/.sydent/local/lib/python2.7/site-packages/twisted/web/server.py", line 190, in process
self.render(resrc)
File "/home/udee/.sydent/local/lib/python2.7/site-packages/twisted/web/server.py", line 241, in render
body = resrc.render(self)
File "/home/udee/.sydent/local/lib/python2.7/site-packages/twisted/web/resource.py", line 250, in render
return m(request)
File "/home/udee/.sydent/local/lib/python2.7/site-packages/sydent/http/servlets/init.py", line 69, in inner
return json.dumps(f(*args, **kwargs)).encode("UTF-8")
File "/home/udee/.sydent/local/lib/python2.7/site-packages/sydent/http/servlets/emailservlet.py", line 55, in render_POST
email, clientSecret, sendAttempt, nextLink, ipaddress=ipaddress
File "/home/udee/.sydent/local/lib/python2.7/site-packages/sydent/validators/emailvalidator.py", line 58, in requestToken
sendEmail(self.sydent, 'email.template', emailAddress, substitutions)
File "/home/udee/.sydent/local/lib/python2.7/site-packages/sydent/util/emailutils.py", line 58, in sendEmail
mailString = open(mailTemplateFile).read() % allSubstitutions
exceptions.TypeError: float argument required, not dict
anyone know ?
Support the terms of service API for ISes, including:
bind.py relies on twisted to make requests to Synapse when it should use MatrixFederationAgent. This means that .well-known files are not checked.
When trying to build a docker image for sydent, the following error occurs during build time:
Processing /sydent-master
Complete output from command python setup.py egg_info:
Installed /tmp/easy_install-kJtNbm/mock-2.0.0/.eggs/pbr-1.10.0-py2.7.egg
Installed /tmp/pip-WHdttC-build/.eggs/mock-2.0.0-py2.7.egg
Searching for setuptools_trial
Reading https://pypi.python.org/simple/setuptools_trial/
Best match: setuptools-trial 0.6.0
Downloading https://pypi.python.org/packages/6c/d8/2ec30d50a37c90f8b48b22a50e96d4c50fec7e05ca1557bb814dc219ffc3/setuptools_trial-0.6.0.tar.gz#md5=bca42190adf631b213846c2b33f3676f
Processing setuptools_trial-0.6.0.tar.gz
Writing /tmp/easy_install-1I6r7A/setuptools_trial-0.6.0/setup.cfg
Running setuptools_trial-0.6.0/setup.py -q bdist_egg --dist-dir /tmp/easy_install-1I6r7A/setuptools_trial-0.6.0/egg-dist-tmp-a4zumg
zip_safe flag not set; analyzing archive contents...
Moving setuptools_trial-0.6.0-py2.7.egg to /tmp/pip-WHdttC-build/.eggs
Installed /tmp/pip-WHdttC-build/.eggs/setuptools_trial-0.6.0-py2.7.egg
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/tmp/pip-WHdttC-build/setup.py", line 48, in <module>
long_description=read("README.rst"),
File "/usr/lib/python2.7/distutils/core.py", line 111, in setup
_setup_distribution = dist = klass(attrs)
File "/usr/local/lib/python2.7/dist-packages/setuptools/dist.py", line 269, in __init__
self.fetch_build_eggs(attrs['setup_requires'])
File "/usr/local/lib/python2.7/dist-packages/setuptools/dist.py", line 313, in fetch_build_eggs
replace_conflicting=True,
File "/usr/local/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 826, in resolve
dist = best[req.key] = env.best_match(req, ws, installer)
File "/usr/local/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 1085, in best_match
dist = working_set.find(req)
File "/usr/local/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 695, in find
raise VersionConflict(dist, req)
pkg_resources.VersionConflict: (six 1.8.0 (/usr/lib/python2.7/dist-packages), Requirement.parse('six>=1.9'))
----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-WHdttC-build/
The command '/bin/sh -c curl -fSL https://github.com/matrix-org/sydent/archive/$BV_SYN.zip -o s.zip && unzip s.zip && rm s.zip && cd /sydent-$BV_SYN && pip install . && echo $BV_SYN >
/sydent.version && rm -rf /sydent-$BV_SYN' returned a non-zero code: 1
The expected behaviour would be to install just fine.
Attempts at outbound federation when enabled results in:
ValueError: Specify client CA certificate information if and only if enabling certificate verification
This is due to setting CertificateOptions
incorrectly at:
as twisted require if verify=True
that you also specify CAs.
(.sydent) [root@izj6cbfvkmy1wfsmnlq8snz ~]# python -m sydent.sydent
Traceback (most recent call last):
File "/usr/lib64/python2.7/runpy.py", line 162, in _run_module_as_main
"__main__", fname, loader, pkg_name)
File "/usr/lib64/python2.7/runpy.py", line 72, in _run_code
exec code in run_globals
File "/root/.sydent/lib/python2.7/site-packages/sydent/sydent.py", line 43, in <module>
from http.servlets.msisdnservlet import MsisdnRequestCodeServlet, MsisdnValidateCodeServlet
File "/root/.sydent/lib/python2.7/site-packages/sydent/http/servlets/msisdnservlet.py", line 110
msg: "Verification failed: Your request was invalid."
^
SyntaxError: invalid syntax
Replication was broken for two years (#71) and we had no idea because we have absolutely no monitoring.
OK, so
add-apt-repository -s "https://matrix.org/packages/debian/ testing main"
gpg --keyserver pgp.mit.edu --recv-keys AD0592FE47F0DF61
apt-get install matrix-synapse nodejs nodejs-legacy npm
apt-get syutil
mkdir -p /opt
cd /opt
git clone https://github.com/matrix-org/sydent.git
cd /opt/sydent
apt install virtualenv
virtualenv env
source env/bin/activate
pip install setuptools_trial mock # this fails
python setup.py test # this fails too
So the first failure is
Failed building wheel for Twisted
Command "/opt/sydent/env/bin/python2 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-Fmu_QK/Twisted/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-Utbikr-record/install-record.txt --single-version-externally-managed --compile --install-headers /opt/sydent/env/include/site/python2.7/Twisted" failed with error code 1 in /tmp/pip-build-Fmu_QK/Twisted/
Here the full log. sydent.log.txt
My suggestions:
I cant install and run the sydent sucessfully, Please help me.
And how to config the sydent.conf?
Problems that can exist today:
When looking up the MXID for an email I registered some time ago ([email protected]
, on 22/08/2018), and trying to validate the signature that Sydent returns in the response, I get Signature was forged or corrupt
. The public key used to verify is ta8IQ0u1sp44HVpxYi7dFOdS/bfwDjcy4xLFlfY5KOA
, which is the one currently shown when querying https://vector.im/_matrix/identity/api/v1/pubkey/ed25519:0.
I can reproduce this issue with all of my some-months-old 3PIDs, but if I register a new email address ([email protected]
, registered today around 2PM BST), the signature is correct.
I've got this error:
ConfigParser.NoOptionError: No option 'client_http_base' in section: 'http'
Can someone explain what does this option client_http_base mean?
Make matrix-is-tester run in CI for Sydent PRs.
Federation requests now use new code from synapse to do the requests properly with .well-known lookups, but they also still call the old, simplistic implementation:
sydent/sydent/threepid/bind.py
Line 104 in bb346c4
This means the old impl replaces the domain with a server from an SRV lookup which means the new code can't do its job properly.
Looks like the call to _pickServer and all that code should just be removed and domain
put straight into the URL, and 'https' replaced with 'matrix', and then it should work.
Practically, this is causing invites not to turn up on matrix.org (and oresumably any other servers with similar setup) because the onbind requests don't go through.
Any solution to use custom sms gateway that support Egypt instead of Openmarket sms?
i am using my own identify server and want to map user mobile number with his email on my matrix home server.
Is it possible to run it with HTTPS? I deployed identity server in localhost, then deployed Matrix server and specified identity URL in homeserver.yaml:
trusted_third_party_id_servers:
- localhost:8090
After registration attempt Matrix crashing with:
2018-01-22 09:57:53,715 - synapse.http.client - 112 - INFO - POST-1- Error sending request to POST https://localhost:8090/_matrix/identity/api/v1/validate/msisdn/requestToken: ConnectError Cannot assign requested address
Is it possible to specify in Matrix settings to connect to identity server via HTTP? Or how to run identity via HTTPS?
This week, Signal released an implementation of "private contact discovery". The goal of such as mechanism is to keep the user contact lists hidden from the Signal service. They use SGX to attest that the Open Source server implementation that can reviewed and tested is the one deployed in the real service. For more information, look at https://signal.org/blog/private-contact-discovery/
I was wondering if this is something Matrix could implement too: if the Home Server can make use of SGX (i.e. it is available in the hosting machine).
email.email.template
and email.email.invite_template
config values seem to be the same thing?Firstly, thanks for your work.
Please could you add support to use phone number as a 3PID?
Thanks again.
It's used when generating validation links for emails and 3pid invites, but there is nothing in the generated config about it.
Related: #101
they aren't part of the distribution, so following the installation instructions gives you a broken install.
This is disasterous for a large mesh of sydents.
MSC1915 says that an unbind can either be authenticated by a) checking that the request is signed by the HS (done) or b) that it includes a sid
and client_secret
that demonstrates that the requester owns the 3PID in question
Unfortunately, I'm currently getting this error during installation and I'm not sure why.
python -m sydent.sydent
2018-08-05 23:33:35,619 - __main__ - 116 - INFO - Starting Sydent server
2018-08-05 23:33:35,619 - sydent.db.sqlitedb - 29 - INFO - Using DB file sydent.db
2018-08-05 23:33:35,620 - sydent.db.sqlitedb - 43 - INFO - Running schema files...
2018-08-05 23:33:35,621 - sydent.db.sqlitedb - 73 - INFO - Migrating schema from v0 to v1
Traceback (most recent call last):
File "/usr/lib/python2.7/runpy.py", line 174, in _run_module_as_main
"__main__", fname, loader, pkg_name)
File "/usr/lib/python2.7/runpy.py", line 72, in _run_code
exec code in run_globals
File "/root/.sydent/lib/python2.7/site-packages/sydent/sydent.py", line 216, in <module>
syd = Sydent()
File "/root/.sydent/lib/python2.7/site-packages/sydent/sydent.py", line 123, in __init__
self.db = SqliteDatabase(self).db
File "/root/.sydent/local/lib/python2.7/site-packages/sydent/db/sqlitedb.py", line 40, in __init__
self._upgradeSchema()
File "/root/.sydent/local/lib/python2.7/site-packages/sydent/db/sqlitedb.py", line 76, in _upgradeSchema
cur.execute("ALTER TABLE local_threepid_associations RENAME TO old_local_threepid_associations");
sqlite3.OperationalError: no such table: local_threepid_associations
Seems OpenMarket already have support for send SMS to Russia with +7 phone number code: https://www.openmarket.com/docs/Content/globalcoverage/country/russia.htm
But in Matrix we see the error: Phone numbers in this country are not currently supported (Status 400)
.
Seems that Matrix list of supported countries now is hard-coded in Sydent:
originators.1 = long:12125552368,long:12125552369
originators.44 = short:12345
originators.default = alpha:Matrix
So maybe simply adding +7 to supported codes will add Russia support?
At now Matrix Identity server Sydent use only OpenMarket as SMS gateway, that is hardcoded in https://github.com/matrix-org/sydent/blob/master/sydent/validators/msisdnvalidator.py file.
But OpenMarket at now don't support all countries, for example, miss Russia +7.
Will be good to allow using other SMS gateways via custom config in homeservers.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.