Johannes Löthberg
702c020e58
Fix check for bind_address
...
The empty string is a valid setting for the bind_address option, so
explicitly check for None here instead.
Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>
2016-12-20 01:37:50 +01:00
Johannes Löthberg
7dfd70fc83
Add support for specifying multiple bind addresses
...
Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>
2016-12-18 21:51:56 +01:00
Mark Haines
689f4cb914
Update comment
2016-08-22 16:17:31 +01:00
Mark Haines
c8f9b45bc2
Add usage stats to prometheus monitoring
2016-08-22 15:34:38 +01:00
Erik Johnston
24f36469bc
Add federation /version API
2016-08-05 16:36:07 +01:00
Erik Johnston
66868119dc
Add metrics for psutil derived memory usage
2016-07-20 16:00:21 +01:00
Mark Haines
13e334506c
Remove the legacy v0 content upload API.
...
The existing content can still be downloaded. The last upload to the
matrix.org server was in January 2015, so it is probably safe to remove
the upload API.
2016-06-21 11:47:39 +01:00
Mark Haines
7dbb473339
Add function to load config without generating it
...
Renames ``load_config`` to ``load_or_generate_config``
Adds a method called ``load_config`` that just loads the
config.
The main synapse.app.homeserver will continue to use
``load_or_generate_config`` to retain backwards compat.
However new worker processes can use ``load_config`` to
load the config avoiding some of the cruft needed to generate
the config.
As the new ``load_config`` method is expected to be used by new
configs it removes support for the legacy commandline overrides
that ``load_or_generate_config`` supports
2016-06-09 18:50:38 +01:00
Erik Johnston
dded389ac1
Allow setting of gc.set_thresholds
2016-06-07 15:45:56 +01:00
Mark Haines
f22f46f4f9
Move the listenTCP call outside the manhole function
2016-04-25 14:59:21 +01:00
Mark Haines
5905f36f05
Split out setting up the manhole to a separate file
2016-04-22 17:09:15 +01:00
Mark Haines
62607d5452
Merge branch 'develop' into markjh/split_out_site.py
...
Conflicts:
synapse/app/homeserver.py
2016-04-22 16:26:57 +01:00
Mark Haines
e856036f4c
Move SynapseSite to its own file
2016-04-22 16:09:55 +01:00
Mark Haines
9e7aa98c22
Split out create_resource_tree to a separate file
2016-04-22 15:40:51 +01:00
Mark Haines
82d7eea7e3
Move the versionstring code out of app.homeserver into util
2016-04-11 14:57:09 +01:00
Erik Johnston
8aab9d87fa
Don't require config to create database
2016-04-06 14:15:45 +01:00
Mark Haines
239badea9b
Use syntax that works on both py2.7 and py3
2016-03-07 20:13:10 +00:00
Daniel Wagner-Hall
95481e7ba7
Merge pull request #571 from matrix-org/daniel/asids
...
Mark AS users with their AS's ID
2016-03-03 13:56:28 +00:00
Mark Haines
60a0f81c7a
Add a /replication API for extracting the updates that happened on
...
synapse
This is necessary for replicating the data in synapse to be visible to a
separate service because presence and typing notifications aren't stored
in a database so won't be visible to another process.
This API can be used to either get the raw data by requesting the tables
themselves or to just receive notifications for updates by following the
streams meta-stream.
Returns updates for each table requested a JSON array of arrays with a
row for each row in the table.
Each table is prefixed by a header row with the: name of the table,
current stream_id position for the table, number of rows, number of
columns and the names of the columns.
This is followed by the rows that have been added to the server since
the requester last asked.
The API has a timeout and is hooked up to the notifier so that a slave
can long poll for updates.
2016-03-01 14:49:41 +00:00
Daniel Wagner-Hall
763360594d
Mark AS users with their AS's ID
2016-02-11 17:26:42 +00:00
Erik Johnston
2c1fbea531
Fix up logcontexts
2016-02-08 14:26:45 +00:00
Daniel Wagner-Hall
737c4223ef
Host /media/r0 as well as /media/v1
2016-02-05 10:47:46 +00:00
Daniel Wagner-Hall
6a9f1209df
Error if macaroon key is missing from config
...
Currently we store all access tokens in the DB, and fall back to that
check if we can't validate the macaroon, so our fallback works here, but
for guests, their macaroons don't get persisted, so we don't get to
find them in the database. Each restart, we generate a new ephemeral
key, so guests lose access after each server restart.
I tried to fix up the config stuff to be less insane, but gave up, so
instead I bolt on yet another piece of custom one-off insanity.
Also, add some basic tests for config generation and loading.
2016-02-05 01:58:23 +00:00
Erik Johnston
f8aae79a72
Simplify get_rooms
2016-02-03 13:24:35 +00:00
Daniel Wagner-Hall
d83d004ccd
Fix flake8 warnings for new flake8
2016-02-02 17:18:50 +00:00
Erik Johnston
167d1df699
Merge pull request #534 from matrix-org/erikj/setup
...
Add a Homeserver.setup method
2016-01-28 14:45:36 +00:00
Erik Johnston
7ed2bbeb11
Clean up a bit. Add comment
2016-01-28 14:32:05 +00:00
Erik Johnston
a6477d5933
Remove chdir
2016-01-28 09:19:55 +00:00
Erik Johnston
fa90c180ee
Merge branch 'develop' of github.com:matrix-org/synapse into erikj/setup
2016-01-27 17:37:33 +00:00
Erik Johnston
9fda8b5193
Don't turn on profiling
2016-01-26 18:27:23 +00:00
Erik Johnston
87f9477b10
Add a Homeserver.setup method.
...
This is for setting up dependencies that require work on startup. This
is useful for the DataStore that wants to read a bunch from the database
before initiliazing.
2016-01-26 15:51:06 +00:00
Erik Johnston
9959d9ece8
Remove redundated BaseHomeServer
2016-01-26 13:52:29 +00:00
Erik Johnston
44b4fc5f50
Use compiled regex
2016-01-13 11:47:32 +00:00
Erik Johnston
8f8b884430
Don't log urlencoded access_tokens
2016-01-08 17:48:08 +00:00
Erik Johnston
33bef689c1
Turn on core dumps
2016-01-07 15:34:30 +00:00
Erik Johnston
5727922106
Merge pull request #473 from matrix-org/erikj/ssh_manhole
...
Change manhole to use ssh
2016-01-07 14:36:16 +00:00
Erik Johnston
c9ae1d1ee5
Change manhole to use ssh
2016-01-07 13:59:02 +00:00
Matthew Hodgson
6c28ac260c
copyrights
2016-01-07 04:26:29 +00:00
Daniel Wagner-Hall
11a974da21
Add /_matrix/versions to report supported versions
2016-01-06 18:08:52 +00:00
Daniel Wagner-Hall
bf32922e5a
Log when starting stats reporting
2016-01-06 14:13:34 +00:00
Daniel Wagner-Hall
797691f908
Log on stats scheduling
2016-01-06 14:04:27 +00:00
Daniel Wagner-Hall
7a8ba4c9a0
Actually host r0 and unstable prefixes
2015-12-08 15:26:52 +00:00
Mark Haines
6a5ff5f223
Track the time spent in the database per request.
...
and track the number of transactions that request started.
2015-12-07 17:56:11 +00:00
Mark Haines
d6059bdd2a
Fix warnings
2015-12-04 11:34:23 +00:00
Mark Haines
a412b9a465
Run the background updates when starting synapse.
2015-11-10 15:50:58 +00:00
Erik Johnston
fa1cf5ef34
Move static folder into synapse
...
This is because otherwise it won't get picked up by python packaging.
This also fixes the problem where the "static" folder was found if
synapse wasn't started from that directory.
2015-10-26 15:37:44 +00:00
Mark Haines
9020860479
Only turn on the twisted deferred debugging if full_twisted_stacktraces is set in the config
2015-10-13 17:50:44 +01:00
Mark Haines
7639c3d9e5
Bounce all deferreds through the reactor to make debugging easier.
...
If all deferreds wait a reactor tick before resolving then there is
always a chance to add an errback to the deferred so that stacktraces
get reported, rather than being discarded.
2015-10-13 17:13:04 +01:00
Erik Johnston
17c80c8a3d
rename schema_prepare to prepare_database
2015-10-13 13:56:22 +01:00
Erik Johnston
ec398af41c
Expose error more nicely
2015-10-13 11:43:43 +01:00
Mark Haines
7a5818ed81
Note that GzipFile was removed in comment that referenced it
2015-09-22 18:27:22 +01:00
Mark Haines
184ba0968a
synapse/app/homeserver.py:GzipFile was unused
2015-09-22 18:25:30 +01:00
Daniel Wagner-Hall
b6e0303c83
Catch stats-reporting errors
2015-09-22 13:34:29 +01:00
Daniel Wagner-Hall
7213588083
Implement configurable stats reporting
...
SYN-287
This requires that HS owners either opt in or out of stats reporting.
When --generate-config is passed, --report-stats must be specified
If an already-generated config is used, and doesn't have the
report_stats key, it is requested to be set.
2015-09-22 12:57:40 +01:00
Mark Haines
0b5c9adeb5
Merge pull request #267 from matrix-org/markjh/missing_requirements
...
Print an example "pip install" line for a missing requirement
2015-09-18 18:52:08 +01:00
Daniel Wagner-Hall
2c746382e0
Merge branch 'daniel/insecureclient' into develop
2015-09-09 14:27:30 +01:00
Daniel Wagner-Hall
6485f03d91
Fix random formatting
2015-09-09 13:05:00 +01:00
Daniel Wagner-Hall
81a93ddcc8
Allow configuration to ignore invalid SSL certs
...
This will be useful for sytest, and sytest only, hence the aggressive
config key name.
2015-09-09 12:02:07 +01:00
Mark Haines
73e4ad4b8b
Merge branch 'master' into develop
...
Conflicts:
setup.py
2015-09-07 15:06:46 +01:00
Erik Johnston
1002bbd732
Change log level to info
2015-09-03 09:51:01 +01:00
Mark Haines
3cdfd37d95
Print an example "pip install" line for a missing requirement
2015-09-01 16:47:26 +01:00
Matthew Hodgson
d71af2ee12
don't log the whole DB config (including postgres password...)
2015-08-29 22:23:21 +01:00
Erik Johnston
d33f31d741
Print the correct pip install line when failing due to lack of matrix-angular-sdk
2015-08-25 15:33:23 +01:00
Erik Johnston
37403ab06c
Update the log message
2015-08-25 14:19:09 +01:00
Erik Johnston
d9088c923f
Remove dependency on matrix-angular-sdk
2015-08-25 13:34:50 +01:00
Erik Johnston
86cef6a91b
Allow specifying a directory to host a web client from
2015-08-25 12:01:23 +01:00
Paul "LeoNerd" Evans
efe60d5e8c
Only print the pidfile path on startup if requested by a commandline flag
2015-08-07 16:36:42 +01:00
Erik Johnston
0e58d19163
Merge pull request #187 from matrix-org/erikj/sanitize_logging
...
Sanitize logging
2015-06-19 11:35:59 +01:00
Erik Johnston
eb928c9f52
Add site_tag to logger
2015-06-19 10:16:48 +01:00
Eric Myhre
9e5a353663
Make upload dir a configurable path.
...
Fixes SYN-425.
Signed-off-by: Eric Myhre <hash@exultant.us>
2015-06-18 23:38:20 -05:00
Erik Johnston
aaa749d366
Disable twisted access logging. Move access logging to SynapseRequest object
2015-06-15 18:18:05 +01:00
Erik Johnston
cee69441d3
Log more when we have processed the request
2015-06-15 17:11:44 +01:00
Erik Johnston
b5209c5744
Create SynapseRequest that overrides __repr__ to not print access_token
2015-06-15 16:37:04 +01:00
Erik Johnston
a005b7269a
Add backwards compat support for metrics, manhole and webclient config options
2015-06-12 17:44:23 +01:00
Erik Johnston
942e39e87c
PEP8
2015-06-12 17:13:54 +01:00
Erik Johnston
9c5fc81c2d
Correctly handle x_forwaded listener option
2015-06-12 17:13:23 +01:00
Erik Johnston
fd2c07bfed
Use config.listeners
2015-06-12 15:33:07 +01:00
Erik Johnston
c42ed47660
Fix up create_resource_tree
2015-06-12 11:52:52 +01:00
Erik Johnston
522f285f9b
Add config option to disable compression of http responses
2015-06-01 13:36:30 +01:00
Erik Johnston
a7b65bdedf
Add config option to turn off freezing events. Use new encode_json api and ujson.loads
2015-05-29 12:17:33 +01:00
Erik Johnston
1ce1509989
s/metric_interface/metric_bind_host/
2015-05-22 14:51:22 +01:00
Erik Johnston
8bb85c8c5a
Update log line
2015-05-22 14:48:06 +01:00
Erik Johnston
59a0682f3e
Enable changing the interface the metrics listener binds to
2015-05-22 13:13:07 +01:00
David Baker
19505e0392
Disable GZip encoding on static file resources as per comment
2015-05-19 13:20:25 +01:00
Erik Johnston
677be13ffc
Revert accidental commit
2015-05-19 13:12:28 +01:00
Erik Johnston
2b7120e233
SYN-383: Handle the fact the server might not have signed things
2015-05-19 12:49:38 +01:00
David Baker
6e1ad283cf
Support gzip encoding for client, client v2 and web client resources (SYN-176).
2015-05-14 16:39:19 +01:00
Mark Haines
4a7a4a5b6c
Optional profiling using cProfile
2015-05-06 17:08:00 +01:00
Mark Haines
2d4d2bbae4
Merge branch 'develop' into markjh/config_cleanup
...
Conflicts:
synapse/config/captcha.py
2015-04-30 16:54:55 +01:00
David Baker
054aa0d58c
Do access log using python's logging stuff, just under a separate logger name
2015-04-30 16:21:38 +01:00
David Baker
d89a9f7283
Add an access_log
...
SYN-161 #resolve
2015-04-30 13:58:13 +01:00
Mark Haines
6b69ddd17a
remove duplicate parse_size method
2015-04-30 04:26:29 +01:00
Mark Haines
d624e2a638
Manually generate the default config yaml, remove most of the commandline arguments for synapse anticipating that people will use the yaml instead. Simpify implementing config options by not requiring the classes to hit the super class
2015-04-30 04:24:44 +01:00
Erik Johnston
e7a6edb0ee
Revert previous
2015-04-29 18:37:30 +01:00
Erik Johnston
c27d6ad6b5
Only start pushers when synapse has fully started
2015-04-29 18:25:24 +01:00
Mark Haines
f2d90d5c02
Fix whitespace
2015-04-29 14:53:23 +01:00
Mark Haines
845b0b2c97
Check requirements before doing anything else when running the homeserver
2015-04-29 14:52:42 +01:00
Erik Johnston
64991b0c8b
Merge pull request #129 from matrix-org/key_distribution
...
Key distribution v2
2015-04-29 13:34:38 +01:00
Mark Haines
4ad8b45155
Merge branch 'develop' into key_distribution
...
Conflicts:
synapse/config/homeserver.py
2015-04-29 13:15:14 +01:00
Erik Johnston
cd0864121b
Make postgres database error slightly more helpful
2015-04-29 12:12:25 +01:00