Commit graph

419 commits

Author SHA1 Message Date
Jakob Ackermann
6601e94db7 [misc] bump socket.io to 0.9.19 for node7+ support
Signed-off-by: Jakob Ackermann <das7pad@outlook.com>
2019-05-01 01:48:00 +02:00
Brian Gough
2828cc3d7f Merge pull request #45 from sharelatex/bg-update-request
update request module
2019-04-15 15:37:14 +01:00
Brian Gough
2277872022 update package.json to current version of request 2019-04-15 15:26:04 +01:00
Brian Gough
15c7c911f9 update request module 2019-04-15 14:46:58 +01:00
Brian Gough
2dbdcf5bc8 add health check to pubsub channels 2019-04-15 14:17:55 +01:00
Brian Gough
e72acacf17 downsample logging 2019-04-11 16:25:42 +01:00
Brian Gough
9eee098af4 Merge pull request #43 from sharelatex/bg-update-ioredis
update to redis-sharelatex v1.0.6 for latest ioredis
2019-04-11 15:50:56 +01:00
Brian Gough
cefdd15c5e update to redis-sharelatex v1.0.6 for latest ioredis 2019-04-11 15:49:19 +01:00
Brian Gough
ef9e97e7d1 add metric for applied-ops events 2019-04-11 15:39:28 +01:00
Brian Gough
6374a641d5 fix unit tests 2019-04-11 15:07:42 +01:00
Brian Gough
c6225d614e add /debug/events endpoint 2019-04-11 15:00:25 +01:00
Brian Gough
2a31139254 log and skip duplicate events 2019-04-11 12:53:43 +01:00
Brian Gough
893515e83f handle duplicate entries in io.sockets.clients 2019-04-09 14:48:00 +01:00
Brian Gough
936311f1fb fix eventlogger tests to use name with dashes 2019-03-22 11:20:38 +00:00
Brian Gough
efa83b4cde stub out eventlogger in unit test 2019-03-22 11:19:31 +00:00
Brian Gough
6c71ae172b return out of order events for consistency 2019-03-22 11:19:08 +00:00
Brian Gough
c5a09fcf0a add comment about downsampling 2019-03-22 11:18:34 +00:00
Brian Gough
695472a8aa fix event id parsing to allow for dashes in keys 2019-03-22 11:18:19 +00:00
Brian Gough
1ab5e52699 down-sample valid events by 1000 2019-03-21 15:52:53 +00:00
Brian Gough
e91b967bdb use per-channel event metrics 2019-03-21 14:59:39 +00:00
Brian Gough
8c82faa966 check order of messages on applied-ops channel 2019-03-21 14:59:39 +00:00
Brian Gough
57c5ec14bd check for a valid counter value in event log 2019-03-21 14:59:19 +00:00
Brian Gough
9b25374cd3 use time-based cleaning of event log 2019-03-21 14:59:19 +00:00
Brian Gough
befe4be517 add check for duplicate events 2019-03-19 14:22:11 +00:00
Henry Oswald
b9e3853a47 add sentry into settings.defaults 2019-03-05 17:33:52 +00:00
Henry Oswald
5119db43a7 Merge pull request #37 from sharelatex/ho-continual-pub-sub-traffic
setup continualPubsubTraffic to keep pub sub happy
2019-02-19 11:28:06 +00:00
Henry Oswald
26e903f384 setup continualPubsubTraffic
this keeps the pub sub channel ticking along happily
2019-02-15 17:04:49 +00:00
Chrystal Griffiths
507c4e5ce2 Fix test to accommodate changes to anonymous users 2019-02-15 15:18:17 +00:00
Chrystal Maria Griffiths
0b88a63444 Merge pull request #35 from sharelatex/cmg-anonymous-display-name
Nameless logged in user labelled as anonymous
2019-02-15 14:53:18 +00:00
Henry Oswald
6fb6086ba1 remove console.log 2019-02-12 14:28:42 +00:00
Chrystal Griffiths
26acdfd072 Add comment explaining why not sending anon data up 2019-02-12 14:06:59 +00:00
Chrystal Griffiths
bb06f82e04 Still send cursorData for logged in users 2019-02-12 14:00:47 +00:00
Chrystal Griffiths
2ec760403f Revert to method not sending cursorData because of duplication 2019-02-11 11:52:14 +00:00
Chrystal Griffiths
cb12e1c6f6 Send an empty string for every nameless user 2019-02-08 15:39:51 +00:00
Henry Oswald
1fc1b4206e add shutDownInProgress check into sig listening 2019-02-07 13:57:38 +00:00
Henry Oswald
d85bf5cedb remove extra logging line 2019-02-06 15:26:12 +00:00
Henry Oswald
37d1c96051 add logging 2019-02-04 16:59:36 +00:00
Henry Oswald
a07e516f65 update redis key 2019-02-04 10:22:26 +00:00
Henry Oswald
0939a558d7 point real time to web api 2019-02-01 19:27:56 +00:00
Henry Oswald
6cdfd5b659 added http auth to config 2019-02-01 17:25:45 +00:00
Henry Oswald
23e0ce678e call app real-time 2019-01-31 15:33:11 +00:00
Henry Oswald
2e46cfb3eb bump node redis to 1.0.5 2019-01-25 16:38:42 +00:00
Henry Oswald
08e48afcb9 more logging 2019-01-25 10:57:36 +00:00
Henry Oswald
338bee061c remove the cluster key as well 2019-01-25 10:50:34 +00:00
Henry Oswald
01d3d9d13e remove natmap 2019-01-25 10:37:00 +00:00
Henry Oswald
2b1f67b6fa remove natmap from defaults config 2019-01-25 10:30:31 +00:00
Henry Oswald
b193045a2a log out real time settings 2019-01-25 10:04:26 +00:00
Henry Oswald
e1b742c215 add logging 2019-01-23 10:15:00 +00:00
Henry Oswald
73b2c1ec05 auto wrap redis from env vars 2019-01-23 10:11:26 +00:00
Henry Oswald
397b65abf7 put settings on all redis's 2019-01-22 17:06:43 +00:00
Henry Oswald
52014c851b bump redis 2019-01-22 17:00:48 +00:00
Henry Oswald
2cd3e6f18f added logging in settings 2019-01-22 16:49:22 +00:00
Henry Oswald
150483eece put redis keys back in for web 2019-01-22 16:44:39 +00:00
Henry Oswald
9517aac86d bump redis version 2019-01-22 16:02:13 +00:00
Henry Oswald
e3618acf20 mvp2 for redis-cluster 2019-01-22 15:53:24 +00:00
Christopher Hoskin
3288d6d321 Add **/*.map to .gitignore 2019-01-08 14:28:10 +00:00
Christopher Hoskin
4a3711aba8 Bump settings to v1.1.0 2019-01-08 14:26:05 +00:00
Christopher Hoskin
c6fa764a6a Add app.js.map to .gitignore 2019-01-03 18:04:50 +00:00
Christopher Hoskin
b7e8bf3c4c Bump logger to 1.5.7 2019-01-03 17:58:10 +00:00
Christopher Hoskin
cda65ad1ca Bump build scripts to 1.1.10 2019-01-03 16:21:33 +00:00
Christopher Hoskin
cd362f22be Move to v2 metrics 2019-01-03 16:17:31 +00:00
Christopher Hoskin
ba24e2686e Merge branch 'master' into csh-ho-docker-issue-1338-bulk-upgrade 2019-01-03 16:08:40 +00:00
Christopher Hoskin
9e7f84cd0d Bump node version to 6.15.1 2018-12-27 08:23:18 +00:00
Henry Oswald
bbd88e75eb fix broken tests 2018-12-05 15:41:12 +00:00
Henry Oswald
7a7f1aed91 remove console.log 2018-12-05 15:39:27 +00:00
Henry Oswald
d4e8bc1d4b remove metrics.set as we don't support it atm 2018-12-05 15:29:23 +00:00
Henry Oswald
5ad7482385 update config to take explicit redis configs 2018-12-05 14:43:45 +00:00
Henry Oswald
cdf605e171 inject metrics root and bump lib to 2.0.8 2018-12-05 14:01:15 +00:00
Henry Oswald
78b779a338 try different metrics 2018-12-04 16:21:20 +00:00
Henry Oswald
258617fbd4 bump metrics 2018-12-04 15:58:42 +00:00
Henry Oswald
fa3dd21d0c Merge branch 'master' into ho-docker 2018-12-04 15:22:03 +00:00
Henry Oswald
b834049eeb improve delay ms logging 2018-12-04 14:49:34 +00:00
Henry Oswald
05611de15e use FORCE_DRAIN_MS_DELAY 2018-12-04 14:31:07 +00:00
Henry Oswald
2418e5db57 use delayExitUntilDrained 2018-12-04 14:22:06 +00:00
Henry Oswald
8073cdea75 improve logging 2018-12-04 14:17:59 +00:00
Henry Oswald
7f2decae4d start drain after 3 hours 2018-12-04 14:06:39 +00:00
Henry Oswald
9a851d6cce mvp for safe shutdown 2018-12-04 13:47:04 +00:00
Henry Oswald
fc2d2405f4 log out io clients 2018-12-04 13:39:16 +00:00
Henry Oswald
2282518c90 print out req.query 2018-12-04 13:26:47 +00:00
Henry Oswald
64f3d32c6c log out status calls 2018-12-04 13:22:09 +00:00
Henry Oswald
034e627a8a bump metrics and shrinkwrap 2018-12-04 13:14:50 +00:00
Henry Oswald
57cd7c734a add debugging 2018-12-03 14:34:46 +00:00
Henry Oswald
ca2af0af32 make cookies configurable via env vars 2018-12-03 14:05:03 +00:00
Henry Oswald
bbc11ae1b5 add DOCUMENT_UPDATER_HOST as option 2018-10-19 19:42:33 +01:00
Henry Oswald
477c446ea8 add web-api host as ana option 2018-10-19 19:31:12 +01:00
Henry Oswald
63d7bb501b return a 200 for root path for google health check 2018-10-19 16:44:40 +01:00
Alasdair Smith
4a495dbd1f Use setting instead of hard-coding port 2018-10-09 11:53:49 +01:00
Henry Oswald
ff8afb6c24 pass redis port 2018-10-03 15:01:31 +01:00
Henry Oswald
e322e46900 update build scripts 2018-10-03 14:21:02 +01:00
Henry Oswald
3a89bf0957 pass redis password through as env var 2018-10-03 14:20:20 +01:00
Henry Oswald
327fa79f1c update build scripts, acceptence tests now pass. includes dockerfile 1.1.3 2018-05-23 15:00:46 +01:00
Alberto Fernández Capel
8c10c737dc Setup travis ci 2018-04-19 14:37:46 +01:00
James Allen
3d050f647b Provide hosts as environment settings and add npm run start script 2017-12-29 08:15:32 +00:00
Shane Kilkelly
7295342ec2 fix existance checks for first_name and last_name 2017-12-18 11:13:19 +00:00
Shane Kilkelly
675814f1b1 Handle the case where the user has only a last_name set 2017-12-13 10:28:35 +00:00
Shane Kilkelly
06c8729ce7 If a user has only their first_name set, don't label as Anonymous 2017-12-12 15:27:50 +00:00
Brian Gough
c8ad331551 fix unit tests 2017-11-13 09:41:04 +00:00
Brian Gough
b734f7a3f7 convert errors to warnings 2017-11-10 15:01:23 +00:00
Shane Kilkelly
3b39464aa5 Merge branch 'master' into sk-unlisted-projects 2017-11-02 10:58:41 +00:00
Brian Gough
5c8291a8da fix sentry initialisation 2017-10-30 16:14:44 +00:00
Brian Gough
009f8a3eae add sentry support 2017-10-30 16:14:29 +00:00
Brian Gough
17ac7719c3 Merge pull request #23 from sharelatex/bg-upgrade-ioredis
upgrade ioredis
2017-10-30 14:06:18 +00:00
Brian Gough
0568aada17 upgrade to node 6 2017-10-30 13:46:37 +00:00
Brian Gough
cc118fa230 remove unnecessary ioredis package 2017-10-30 13:44:09 +00:00
Brian Gough
510ee6bf4f use ioredis 3 via redis-sharelatex 2017-10-30 13:43:36 +00:00
Shane Kilkelly
c5e602c0a9 Fix typo 2017-10-26 16:00:06 +01:00
Brian Gough
168d646328 exit if mock servers fail to start 2017-10-20 15:19:20 +01:00
Shane Kilkelly
76673d5f0a Change anonToken to anonymousAccessToken 2017-10-20 10:10:58 +01:00
Shane Kilkelly
438bb28c04 Get anonToken from joinProject payload 2017-09-29 16:32:46 +01:00
Shane Kilkelly
d4c735c3ea Pass anonymous-read token along as header to web-api 2017-09-26 14:21:41 +01:00
Alasdair Smith
6470577c3f Add acceptance tests for joinDoc variadic 2017-09-22 11:01:11 +01:00
Alasdair Smith
785d6e2eea Add tests for comment & change encoding 2017-09-22 10:56:08 +01:00
Alasdair Smith
b8d3f34e54 Fix joinDoc tests not passing options arg and restructure tests 2017-09-22 10:56:08 +01:00
Alasdair Smith
ed252db25e Merge pull request #18 from sharelatex/as-encode-ranges
Encoding changes & comments in ranges
2017-09-22 09:48:42 +01:00
Alasdair Smith
a0505afb23 Be defensive on comment text 2017-09-22 09:34:10 +01:00
Alasdair Smith
c67150ea10 Ensure falsy value doesn't fail conditional 2017-09-22 09:33:29 +01:00
Alasdair Smith
937bf82a2f Return callback with guard 2017-09-22 09:25:24 +01:00
Alasdair Smith
5d8e201732 Don't return obj 2017-09-21 16:58:03 +01:00
Alasdair Smith
a299d7335d Fix incorrect var 2017-09-21 16:56:18 +01:00
Alasdair Smith
90d05dc6dd Make args order consistent 2017-09-21 16:56:09 +01:00
Alasdair Smith
3966e2f85b Make variadic options more explicit 2017-09-21 16:55:49 +01:00
Alasdair Smith
790b9ea8ed Switch order of args 2017-09-21 15:19:19 +01:00
Alasdair Smith
55c880e1dd DRY up a bit 2017-09-21 15:07:15 +01:00
Alasdair Smith
b796879c9f Handle options not being passed 2017-09-21 14:58:49 +01:00
Alasdair Smith
aa6e0d0d69 Only encode ranges if option passed 2017-09-21 14:23:16 +01:00
Alasdair Smith
9f503f1e9f First pass at encoding changes & comments in ranges 2017-09-21 13:25:55 +01:00
Joe Green
dc8f4ffc2a Update Jenkinsfile 2017-09-21 11:03:07 +01:00
Joe Green
0b41d32cbb Update Jenkinsfile 2017-09-21 10:59:41 +01:00
Joe Green
72ef354206 build.txt 2017-09-04 14:54:05 +01:00
Joe Green
3dae68a4f0 Create Jenkinsfile 2017-08-11 14:24:46 +01:00
Brian Gough
ab6fe1d948 check for null bytes from JSON.stringify 2017-06-01 11:27:56 +01:00
James Allen
642134da79 Don't return a user if there is no entry
ioredis returns a blank object, {}, if there is no key with hgetall.
Previously, node-redis returned nil. So we need to check for a blank
object as well as a nil object.
2017-05-16 11:06:05 +01:00
James Allen
a8917b933f Remove multi call to make compatible with redis-cluster 2017-05-11 17:27:28 +01:00
James Allen
01d0b63f2c Update config for websessions 2017-05-10 15:52:35 +01:00
James Allen
d04be1c000 Update redis-sharelatex 2017-05-09 17:09:00 +01:00
James Allen
720f24427a Use new redis-sharelatex with support for cluster 2017-05-02 15:51:17 +01:00
Shane Kilkelly
ed76d57bf8 Add a .nvmrc file 2017-03-27 14:51:46 +01:00
James Allen
d8ff8ba098 Merge pull request #11 from sharelatex/ja-allow-readonly-comments
Allow readonly users to submit comments
2017-03-20 14:25:03 +00:00
James Allen
8766646149 Allow users to send a comment update if they are read-only 2017-03-15 15:45:52 +00:00
James Allen
d939f6cd65 Remove some old logging 2017-03-15 15:45:18 +00:00
Brian Gough
d468f662ac handle disconnects of unauthenticated users 2017-02-23 12:04:36 +00:00
Shane Kilkelly
50930cd7b1 Don't npm rebuild inside container 2017-02-20 10:14:41 +00:00
James Allen
9fd099c24f Update getDoc signature to match reality 2017-01-16 17:09:44 +01:00
James Allen
f66d631886 Merge branch 'master' into ja-track-changes 2017-01-13 13:40:42 +01:00
Brian Gough
e5160d9a36 log client id when disconnecting on otUpdateError
only log errors for connected clients
2016-12-16 14:43:51 +00:00
James Allen
bf2620ee0c Return ranges from docupdater to client 2016-12-08 11:37:31 +00:00
James Allen
5d377713d6 Try to fix issue with acceptance tests timing out 2016-12-08 11:25:25 +00:00
James Allen
7bade0a8bb Merge branch 'master' of github.com:sharelatex/real-time-sharelatex 2016-12-08 11:16:22 +00:00
James Allen
9cf0eb5540 Add in acceptance test script 2016-12-08 11:14:27 +00:00
James Allen
4cff89becc Fix acceptance tests 2016-12-08 11:12:07 +00:00
Shane Kilkelly
de18231ef1 clarify purpose of redis client 2016-11-09 12:09:15 +00:00
Shane Kilkelly
41868ddda3 Make real-time work with web sessions in redis-cluster 2016-11-09 12:06:32 +00:00
Brian Gough
2e0f5b74db send connectionAccepted/Rejected events on connect
let the client know whether it has successfully authenticated
2016-10-28 15:41:57 +01:00
James Allen
6fa2a81baf Make breakout logic after draining N clients more clear 2016-10-24 16:54:56 +01:00
James Allen
7107d9adcd Delete logging that will be noisy in production 2016-10-24 16:40:10 +01:00
James Allen
59d042e264 Add end point to start draining clients 2016-10-24 16:36:09 +01:00
Shane Kilkelly
185bc7e635 Update session code 2016-09-07 08:58:35 +01:00
Brian Gough
8ffec68250 add comment about fallback case 2016-09-05 12:46:52 +01:00
Brian Gough
ef85bce3b8 track permissions when clients join and leave docs 2016-09-05 12:46:52 +01:00
Brian Gough
9ab19c5d03 avoid double callback 2016-09-02 16:34:14 +01:00
James Allen
51939512ac Return semantic error if doc ops range is not loaded 2016-05-31 14:21:23 +01:00
James Allen
f4a465ea69 Return a 'not authorized' error if the user is not logged in/authorized 2016-05-31 11:49:51 +01:00
James Allen
343ec9d708 Add in flags that track how often each callback is called 2016-05-26 15:46:45 +01:00
James Allen
030abc5340 Don't flush to track changes now that this happens in doc updater 2016-01-20 17:51:24 +00:00
James Allen
b28e5ac6b2 Use configurable app name if present 2015-12-07 11:49:55 +00:00
James Allen
73cd1a3e92 Use latest version of metrics with suitable event loop monitoring 2015-12-03 16:50:56 +00:00
James Allen
5b17764da2 Pin down logger version number 2015-12-01 17:28:26 +00:00
James Allen
3580e3ba6b Update to latest logger 2015-12-01 17:18:45 +00:00
James Allen
830d676f4f Add in limit on all JSON parsing 2015-12-01 11:05:49 +00:00
James Allen
92d18d7e2e Reduce limit to actuall 1Mb, not 1Gb 2015-11-30 15:40:03 +00:00
James Allen
0372fa3203 Add in extra logging about size of messages 2015-11-30 15:25:09 +00:00
James Allen
503b766dcc For duplicate ops only send ack to submitting client
When a duplicate op is received, we only need to ack it to client
that sent it. Only that client is having trouble, and all other clients
will already have received it.
2015-11-19 10:58:28 +00:00
James Allen
669cb0c085 Merge branch 'master' of github.com:sharelatex/real-time-sharelatex 2015-08-31 14:04:59 +01:00
James Allen
da28b0fc70 Use updated metrics with unlimited socket config 2015-08-31 14:04:54 +01:00
Henry Oswald
3c70acd560 added metrics into realtime around doc update manager 2015-08-29 08:26:16 +01:00
James Allen
d79793c34f Monitor get document times 2015-08-29 08:22:43 +01:00
Henry Oswald
42e7d5d4b6 make startup message consistent 2015-04-30 15:05:31 +01:00
James Allen
985abe42fe Release version 0.1.4 2015-03-20 14:21:17 +00:00
James Allen
5da5c5c435 Accept arrays of messages to send to client 2015-03-12 14:32:35 +00:00
James Allen
536118b0cf Relay messages received via HTTP into the project 2015-03-03 17:15:19 +00:00
James Allen
5ee71a423d Release version 0.1.3 2015-02-26 11:23:01 +00:00
James Allen
f0462f0b1f Bump version to 0.1.2 2015-02-10 13:14:13 +00:00
David Renshaw
f72fa9de34 'request' is a production dependency 2015-02-09 17:34:01 -05:00
James Allen
79cd0e6a5c Record user id correctly when updating position 2015-02-05 13:41:31 +00:00
James Allen
99ac814c7d Truncate error stack traces to 10 lines 2014-11-25 09:17:26 +00:00
James Allen
7a9f7f0870 Don't print massive stack trace when there is no room_id 2014-11-24 22:28:50 +00:00
James Allen
d62dc7ca3a Don't be so verbose with client update errors 2014-11-24 15:42:26 +00:00
James Allen
43a008c0bc Stub logger in unit tests 2014-11-24 15:42:13 +00:00
James Allen
0ed7d0c811 Ignore messages with null room_id 2014-11-24 12:09:12 +00:00
James Allen
57a34e940e Authorize users before updating their cursor positions 2014-11-24 12:05:05 +00:00
James Allen
a48c8aad92 Support anonymous access 2014-11-21 11:48:59 +00:00
James Allen
2a05045600 Add in redis health check 2014-11-20 16:56:09 +00:00
James Allen
4d691cf543 Delete client.coffee 2014-11-17 15:09:55 +00:00
James Allen
cddb4e7279 Add cookie parser dependency 2014-11-17 15:01:37 +00:00
James Allen
2cb365d2b4 Add /status end point 2014-11-17 14:38:43 +00:00
James Allen
14ace64bc6 Ignore grunt forever output 2014-11-17 14:35:32 +00:00
James Allen
ce587a00ba Send web requests with HTTP auth 2014-11-17 14:35:07 +00:00
James Allen
66dfafdebe Add metrics into all end points 2014-11-17 13:12:49 +00:00
James Allen
8bc6d0e291 Unify logging 2014-11-17 12:46:27 +00:00
James Allen
7b275e9e0e Add acceptence tests for leaving(disconnecting) from a project 2014-11-17 12:23:30 +00:00
James Allen
80b7875414 Add in leaveProject handler 2014-11-14 16:51:55 +00:00
James Allen
fd56655529 Add in track changes and doc updater flushing calls 2014-11-14 15:53:59 +00:00
James Allen
347ceaaf03 Listen for updates from doc updater and send them to clients 2014-11-14 15:30:18 +00:00
James Allen
b6f51fdafd Refactor acceptance tests to wait for connection before proceeding 2014-11-14 10:21:54 +00:00
James Allen
fef5f6b775 Add acceptance tests for applyOtUpdate 2014-11-14 10:12:35 +00:00
James Allen
f0e69bfe2d Add appltOtUpdate end point (sans acceptance tests for now) 2014-11-13 17:07:05 +00:00
James Allen
cc1c85ebf8 Distribute server side socket.io updates over Redis Pub/Sub 2014-11-13 16:03:37 +00:00
James Allen
e769819521 Add in clientTracking.updatePosition end point 2014-11-13 15:27:18 +00:00
James Allen
84778b5961 Mark user as connected for cursor updates when joining project 2014-11-13 13:05:49 +00:00
James Allen
f7482014ce Import ConnectedUsersManager from web 2014-11-13 12:27:46 +00:00
James Allen
6ed2a0d04d Refactor client attribute fetching and logging 2014-11-13 12:03:43 +00:00
James Allen
431abdc6eb Add leaveDoc acceptance tests 2014-11-13 11:54:10 +00:00
James Allen
0b18edeff3 Add in /clients and /client/:client_id status end points 2014-11-13 11:48:49 +00:00
James Allen
8b923d2fda Add in leaveDoc end point 2014-11-12 16:51:48 +00:00
James Allen
eb8ccc0298 Create joinDoc socket.io end point 2014-11-12 15:54:55 +00:00
James Allen
919b192e16 Add in null check 2014-11-10 11:40:19 +00:00
James Allen
dc60f2b736 Add acceptance test for unauthorized project joining 2014-11-10 11:38:26 +00:00
James Allen
02c0a3a867 Create joinProject socket.io endpoint 2014-11-10 11:27:08 +00:00
James Allen
fbf983c2ff Create framework for real-time API with session authentication 2014-11-07 17:38:12 +00:00