Commit Graph
100 Commits
Author SHA1 Message Date
Sam e3a616764e PERF: add frozen strings 2018-01-15 12:44:54 +11:00
Sam 2113266e51 Simplify complex conditional, add frozen strings 2018-01-15 12:44:54 +11:00
Sam 215c0d5569 FEATURE: allow system api to target users via external id or user id
usage ?api_key=XYZ&api_user_external_id=ABC
usage ?api_key=XYZ&api_user_id=123
2018-01-12 17:40:18 +11:00
Sam 5bf116e719 warn if missing user option record 2018-01-12 15:43:56 +11:00
Sam 7e3543d96f correct plugin specs 2018-01-12 14:42:05 +11:00
Sam 49ed382c2a FIX: return 429 when admin api key is limited on admin route
This also handles a general case where exceptions leak out prior to being handled by the application controller
2018-01-12 14:15:26 +11:00
Sam fc05164667 demo script for demonizing using fork exec
minor refinements to demon
2018-01-11 13:51:52 +11:00
Sam 114294d899 PERF: cache messages so re-opening composer on same topic does not issue a req 2018-01-10 14:39:39 +11:00
Sam daad2291ba simplify production switch and serve extra locales from actual site 2018-01-10 08:19:51 +11:00
Sam c9f42506b7 If login is required skip CDN 2018-01-09 17:51:53 +11:00
Sam 6b8320fea6 PERF: use cdn for extra locales 2018-01-09 17:00:42 +11:00
Sam 18a929d801 PERF: enable gzip on proxied requests 2018-01-09 13:28:05 +11:00
Sam d5fd6d2639 PERF: defer message bus on hidden tabs so only one in 1.5 seconds happens 2018-01-09 12:39:17 +11:00
Sam 6e70065291 PERF: add some minimal caching to javascripts folder 2018-01-09 12:38:15 +11:00
Sam ea63abf0f7 bypass mini profiler for locales
bypass cdn for now
2018-01-09 11:30:59 +11:00
Sam b0a7ee1aec FIX: source admin locale from cdn 2018-01-09 10:27:33 +11:00
Sam 8ff5f5f2ef FIX: cache admin locale file for 24 hours 2018-01-09 10:23:49 +11:00
Sam cecd7d0d07 FEATURE: global rate limiter can bypass local IPs 2018-01-08 08:39:17 +11:00
Sam 8d4cd57662 Update libv8 from 5.9 to 6.3 2018-01-05 17:12:04 +11:00
Sam 715cb98e95 add better diagnostics for rate limits 2018-01-05 12:14:28 +11:00
Sam 25f4d98307 improve error logging for warn_exception 2018-01-05 09:54:42 +11:00
Sam 0081de30a5 PERF: conserve memory while rebaking posts 2018-01-05 09:54:42 +11:00
Sam 030a0cd698 bump onebox for vimeo private link support 2017-12-29 09:38:25 +11:00
Sam 5ad1709dba PERF: cache service worker for 1 hour 2017-12-28 08:31:01 +11:00
Sam a9e2fc59c4 FIX: [constructor] bbcode would cause markdown crash 2017-12-27 16:11:30 +11:00
Sam 3937ff0425 FIX: don't preload json on static routes 2017-12-27 14:33:36 +11:00
Sam c30ccceade correct params 2017-12-27 13:51:16 +11:00
Sam 0c834515a9 FIX: only attempt old rebakes a maximum of 3 times 2017-12-27 12:44:41 +11:00
Sam ab2215e629 fix broken test 2017-12-21 20:19:15 +11:00
Sam b3c086a636 copy 2017-12-21 16:15:07 +11:00
Sam 62a27f9d57 FEATURE: warn if attempting to mention a group with too many members 2017-12-21 16:13:57 +11:00
Sam 081959227d FIX: unicode titles missing when visiting topic from topic list 2017-12-21 15:20:47 +11:00
Sam 252cbd8635 FIX: keyboard shortcut allowed you to open composer on closed topics 2017-12-21 13:09:18 +11:00
Sam 2423b18839 FIX: links inside quotes not opening in new tab 2017-12-21 13:00:20 +11:00
Sam 6bf3bee473 FIX: when leaving PM tab revert to user scoped search 2017-12-21 12:30:41 +11:00
Sam e756d02088 FIX: create topic keyboard shortcut not checking permissions 2017-12-21 11:23:57 +11:00
Sam 88a4ec5f1b FIX: stop forking regular backup jobs 2017-12-21 09:00:48 +11:00
Sam 7aa56fc9d9 refinement and test for batch mode on feature_topics 2017-12-20 13:58:05 +11:00
Sam bbc606988f improve message 2017-12-20 10:12:33 +11:00
Sam 9472821331 Allow plugins to specify custom nav items on mobile 2017-12-19 16:50:25 +11:00
Sam 57a1190b07 FIX: correct issue with search omitting words with multiple dots
Previously we used to break up words with dots incorrectly leading to
missing search terms
2017-12-19 16:04:24 +11:00
Sam e63a2487e3 UX: allow for iPhone X in iOS Hacks 2017-12-19 15:20:06 +11:00
Sam 1abc276451 FIX: properly omit inactive and silenced users from directory 2017-12-19 12:53:59 +11:00
Sam fb9fadf42c FIX: publish presence to allowed groups as well 2017-12-19 12:17:08 +11:00
Sam de20e36629 cancel timer when removing composer 2017-12-18 22:26:00 +11:00
Sam fd67508497 FIX: don't count users as replying long after they are done typing
Also, don't leak a large amount of redis usage for presence stuff
2017-12-18 15:41:32 +11:00
Sam 433ef4513b FEATURE: upload images and fonts in themes via hijack 2017-12-18 10:40:10 +11:00
Sam 5e90abfaea FIX: use hijack for emoji uploads 2017-12-18 10:31:19 +11:00
Sam f5b3652d97 HTML paste is experimental 2017-12-15 12:29:39 +11:00
Sam 81b3a4a3da improve spec 2017-12-15 11:42:51 +11:00
Sam f18dda2adc FEATURE: full rebake of all old posts
This limits to 100 post per 15 minutes, so it will take a while.

This will pick up CommonMark and a large amount of onebox fixes.
2017-12-15 10:28:25 +11:00
Sam 32d881399f avoid getting duplicates in docker dev paths 2017-12-15 10:11:40 +11:00
Sam e0f660d9a9 lets crash out on error 2017-12-14 18:03:17 +11:00
Sam 14cfce2827 Merge branch 'master' of github.com:discourse/discourse 2017-12-14 17:17:02 +11:00
Sam 96584403cd SECURITY: prevent staged accounts from changing email 2017-12-14 17:16:49 +11:00
Sam 67aecff59c FEATURE: store twitter supplied email for auditing 2017-12-14 15:54:32 +11:00
Sam dee498a281 correct regression 2017-12-13 17:36:36 +11:00
Sam 9d925f6b26 FIX: correctly count participants when more than 24
Also cuts out one query for the normal case
2017-12-13 17:19:42 +11:00
Sam b998efdc94 FIX: do not send mailing list emails to unapproved users 2017-12-13 15:13:17 +11:00
Sam a393d3bcbb FIX: ensure staged accounts are always inactive
If for any reason active is stored in the user model, clear it out
prior to creating an account
2017-12-13 14:22:16 +11:00
Sam 4b53be81cf corrects type
fixes #5412
2017-12-11 18:16:20 +11:00
Sam 63bdc4056d More log suppressions for rate limit exceeded 2017-12-11 17:52:57 +11:00
Sam 4986ebcf24 FEATURE: optional default off global per ip rate limiter 2017-12-11 17:52:57 +11:00
Sam 68d3c2c74f FEATURE: add global rate limiter for admin api 60 per minute
Also move configuration of admin and user api rate limiting into global
settings. This is not intended to be configurable per site
2017-12-11 11:07:22 +11:00
Sam 394abbe26b bump up proxy buffer size 2017-12-11 09:29:47 +11:00
Sam cff9b8846d FIX: rendering %lt;/div noscript in header 2017-12-08 10:30:00 +11:00
Sam 0693ed10d1 remove logging code for now 2017-12-08 08:36:35 +11:00
Sam 47c44356f8 FIX: load balanced servers do not share monotonic clock
This means then when a service is load balanced and you reach rate limits
there was a case where they counting was way off

also remove the stub from clock_gettime cause we need to be super careful with
it, so we should probably just stub by hand when needed
2017-12-07 11:48:11 +11:00
Sam 90a55d6f7c FIX: handle CORS in hijacked requests 2017-12-07 10:31:04 +11:00
Sam 995bf3c84e correct spec on Ruby 2.3 2017-12-05 07:04:41 +11:00
Sam 5a9622163d FIX: regression around rate limiter 2017-12-04 21:44:16 +11:00
Sam dd70ef3abf Revert "Revert "PERF: improve speed of rate limiter""
This reverts commit 2373d85239.
2017-12-04 21:23:11 +11:00
Sam 2373d85239 Revert "PERF: improve speed of rate limiter"
This reverts commit a9bcdd7f27.
2017-12-04 21:19:28 +11:00
Sam d041377ccf correct test that does not work with discobot 2017-12-04 18:20:05 +11:00
Sam a9bcdd7f27 PERF: improve speed of rate limiter
Also

- adds a global rate limiter option
- cleans up usage in tests
- fixes freeze_time so it handles clock_gettime
2017-12-04 18:17:30 +11:00
Sam af061efcf5 DEV: if plugins are installed do not fail the test 2017-12-04 18:17:30 +11:00
Sam 6c82a50903 Improve error handling in hijacked code 2017-12-01 16:23:32 +11:00
Sam 610d7a9412 teach acceptance test to work on the last day of the month 2017-11-30 13:20:04 +11:00
Sam 05f5df69b1 UX: Add tooltips for messages and notifications in header 2017-11-30 12:56:54 +11:00
Sam 772301bc65 woops 2017-11-30 12:32:50 +11:00
Sam bf1f6c7fe4 UX: better help text for composer collapse / discard
also: warn on collapsed close if you are to discard content
2017-11-30 12:28:00 +11:00
Sam 3334a4b539 Simplify hijack code 2017-11-29 11:54:35 +11:00
Sam f80522671b improve instrumentation and defer hijacking till last moment 2017-11-28 18:21:56 +11:00
Sam df84e1c358 Correctly track hijacked requests 2017-11-28 16:47:20 +11:00
Sam b3b55e18d1 UX: stop warping tiny onebox images 2017-11-28 12:32:35 +11:00
Sam ceaadf6246 UX: adjustments for topic title editing 2017-11-28 12:00:18 +11:00
Sam 0caa335ef0 FIX: Handle more cases where HTTP status is not correct
HTTP status was not correct with send_file which uses streaming
2017-11-28 11:00:13 +11:00
Sam ca7af7b88f FIX: displaying wrong avatar and letter avatar
correct regression where params and env is reused in production
2017-11-28 09:28:40 +11:00
Sam 5a715b7d55 lint it up 2017-11-28 07:39:24 +11:00
Sam 608207b2e5 FEATURE: avatar proxy happens in background
This ensures that even if it is slow to download avatars site will
continue to work

Also simplifies hijack pattern
2017-11-27 17:43:24 +11:00
Sam e48c280c7e correct regression 2017-11-27 15:07:13 +11:00
Sam d5e7691ae9 favicon proxy now uses hijack 2017-11-27 14:51:14 +11:00
Sam eb428ef54d FEATURE: uploads are processed a faster
Also cleans up API to always return 422 on upload error. (previously returned 200)

Uploads are processed using new hijack pattern
2017-11-27 12:43:35 +11:00
Sam a74ac90bf5 FIX: quote dropped when replying as new topic 2017-11-27 10:08:55 +11:00
Sam e0e99d4bbd PERF: hijack onebox requests so they do not use up a unicorn worker 2017-11-24 15:31:40 +11:00
Sam 407d80f1dd FEATURE: update rack-mini-profiler to latest 2017-11-24 10:28:35 +11:00
Sam 8fd09fe616 FEATURE: upgrade message bus
new version recovers very cleanly from redis flush
2017-11-24 09:23:12 +11:00
Sam e61629ed84 remove spec containing mock 2017-11-23 17:54:27 +11:00
Sam 49f97d75b7 FIX: make uploads safe for block that can run later 2017-11-23 17:28:18 +11:00
Sam 2b8d4508e5 PERF: stop running background work between requests
Use a dedicated thread to run Scheduler::Defer

This avoids blocking of a worker during operations that require waiting.

In particular uploads risked blocking a unicorn.

This also add a queue "length" that discourse prometheus consumes.
2017-11-23 15:48:47 +11:00