* Implement Datadog tracing agent and APM
* if I had a nickle....
* more double quoted strings and rubocop fixes
* put gems in the right order
* Remove skylight to prevent initializer collisions with Datadog which cause infinite loops
* remove skylight config files
* Introduce Sidekiq to the app and update RateLimitCheckerJob to use it
* fix rate limit checker spec with new sidekiq syntax
* add Sidekiq to tech stack overview
* Remove RateLimitChecker job change, add sidekiq web UI and testing support
* Initial work for streaming app shell way of using serviceworkers
* Close in on serviceworker adjustment finalization
* Add docs and loading indicator
* Remove useless code
* Don't run on API
* Update app/javascript/contentDisplayPolicy/hideBlockedContent.js
* Fix small details
* Don't run serviceworker.js code in test env
* Fix JS in serviceworker
* Move private keyword to proper place in async controller
* Change shell_version to HEROKU_SLUG_COMMIT
* Update caching config
* Add test for async_info/shell_version
We have decided enable indented-code-block because it is an expected
markdown feature. The trade-off here is that backticks will cause
rendering issues in codeblock.
* WIP use redis-session-store for sessions
* Use Redis as session storage
* Add redis-server to Travis
* Use integer for SESSION_EXPIRY_SECONDS env variable
Co-Authored-By: rhymes <rhymesete@gmail.com>
* Remove sessions b/c no custom sessions logic
* Use ApplicationConfig instead
* Rename default value
* Remove rememberable module
* Persist the user for the test
* Remove remember_me related tests
* Revert 'undo remember_me' commits
* Add redis to procfile
* Cleanup devise configuration
* Move REDIS configuration in the basic configuration section
* Make sure the expiration time can't zero
* Restore old order and remove useless comment line
* Delete legacy session cookie after login
Once deployed the server will start using the new session cookie, this makes sure the legacy one is deleted on the user's browser
* Remove redis from Procfile
* Add signed, secure and httponly to the Redis session cookie
* Add redis gem and client
* use keyword arguments in redis initializer
* check for REDISCLOUD_URL and fallback on REDIS_URL when connecting to redis
* dont parse Redis url in initializer
* Add specs for ArticleImageUploader
* Add specs for BadgeUploader
* Add specs for CoverImageUploader
* Add specs for ProfileImageUploader
* Refactor uploaders to inherit from BaseUploader
* Strip EXIF and GPS data from uploaded images
* Add ImageMagick to the docs
* Protect strip_exif
* Regenerate rubocop todo
* Fix outstanding problems
* Fix Style/FormatStringToken
* Final update to rubocop todo file
* Set RSpec/ExampleLength to max 10 and regenerate todo file