* Get a job created that can create a webhook subscription for a twitch user login * Remove ngork url * Refactor add store the access token in the cache * Get a controller stood up to recieve the webhooks. Now they just need to be processed * Get User columns added and got webhook controller bones working * Update the webhook job to use the User * Add a way for the User to input their Twitch User Name. Plus a linter fix * Delay webhook registration when profile is updated * Don't add _ in username * Use String columns * Quick fix and add some more requests specs * Specs for the webhook job * Get a show page Twitch Live Streams. Just a straight embed of the Twitch Everything Embed UI. Works surprisingly well responsively, and works on all screen sizes * Fix Gemfile.lock from merge issues * Add support for expired tokens and add spec * Add secrets to webhook registration and clean up spec to remove token logic * Verify webhook secret and spec it * Add rake task to enqueue webhook registration for all Users. This can be used from Heroku Scheduler * Update the lease seconds to be for 5 days * Actually lets do 7 so we can refresh twice a week and try to make sure that we can always miss one * Hijack the existing Twitch logo instead of making a duplicate one * Remove comment and replace with log line * Remove some white space * Log to Airbrake when webhook errors occur * Move to passing in an id instead of User object * Extract logic from Job to Service object * Capitilize in the view * Move out of models and into services * Remove letover stub * Remove one usage of Faraday * Use HTTParty for all the HTTP here
161 lines
6.3 KiB
Text
161 lines
6.3 KiB
Text
# Most of the things are optional. If you need to use a
|
|
# custom key, please create an application.yml for it
|
|
|
|
enable_defaults! { ENV["RACK_ENV"] != "production" }
|
|
|
|
################################################
|
|
############## Basic configuration #############
|
|
################################################
|
|
|
|
# App domain + Protocol setting for development
|
|
variable :APP_DOMAIN, :String, default: "localhost:3000"
|
|
variable :APP_PROTOCOL, :String, default: "http://"
|
|
variable :COMMUNITY_NAME, :String, default: "DEV(local)"
|
|
|
|
# Logo
|
|
variable :LOGO_SVG, :String, default: ""
|
|
|
|
# Default staff account's id
|
|
variable :DEVTO_USER_ID, :Integer, default: 1
|
|
|
|
# Service timeout length
|
|
variable :RACK_TIMEOUT_WAIT_TIMEOUT, :Integer, default: 100_000
|
|
variable :RACK_TIMEOUT_SERVICE_TIMEOUT, :Integer, default: 100_000
|
|
|
|
# Production related config that can be ignored
|
|
variable :DEPLOYMENT_SIGNATURE, :String, default: "Optional"
|
|
|
|
################################################
|
|
############## 3rd Party Services ##############
|
|
################################################
|
|
|
|
# It's best if you have the following configured
|
|
# for more development experience
|
|
|
|
# Github for github related access
|
|
variable :GITHUB_KEY, :String, default: "Optional"
|
|
variable :GITHUB_SECRET, :String, default: "Optional"
|
|
variable :GITHUB_TOKEN, :String, default: "Optional"
|
|
|
|
# Twitter for normal twitter access
|
|
variable :TWITTER_ACCESS_TOKEN, :String, default: "Optional"
|
|
variable :TWITTER_ACCESS_TOKEN_SECRET, :String, default: "Optional"
|
|
variable :TWITTER_KEY, :String, default: "Optional"
|
|
variable :TWITTER_SECRET, :String, default: "Optional"
|
|
|
|
################################################
|
|
######### Optional 3rd Party Services ##########
|
|
################################################
|
|
|
|
# Airbrake for error tracking
|
|
variable :AIRBRAKE_API_KEY, :String, default: "Optional"
|
|
variable :AIRBRAKE_PROJECT_ID, :integer, default: 0o0000
|
|
|
|
# Algolia for search (not optional)
|
|
only_in_test = proc { ENV["RACK_ENV"] == "test" ? "test-test" : nil }
|
|
variable :ALGOLIASEARCH_API_KEY, :String, default: only_in_test
|
|
variable :ALGOLIASEARCH_APPLICATION_ID, :String, default: only_in_test
|
|
variable :ALGOLIASEARCH_SEARCH_ONLY_KEY, :String, default: only_in_test
|
|
|
|
# AWS for images storages
|
|
variable :AWS_ID, :String, default: "Optional"
|
|
variable :AWS_SECRET, :String, default: "Optional"
|
|
variable :AWS_BUCKET_NAME, :String, default: "Optional"
|
|
|
|
# AWS SDK
|
|
variable :AWS_DEFAULT_REGION, :String, default: "us-east-1"
|
|
variable :AWS_SDK_KEY, :String, default: "Optional"
|
|
variable :AWS_SDK_SECRET, :String, default: "Optional"
|
|
|
|
# AWS for video storage
|
|
variable :AWS_S3_INPUT_BUCKET, :String, default: "Optional"
|
|
variable :AWS_S3_VIDEO_ID, :String, default: "Optional"
|
|
variable :AWS_S3_VIDEO_KEY, :String, default: "Optional"
|
|
|
|
# Buffer for sending to buffer
|
|
variable :BUFFER_ACCESS_TOKEN, :String, default: "Optional"
|
|
variable :BUFFER_FACEBOOK_ID, :String, default: "Optional"
|
|
variable :BUFFER_LINKEDIN_ID, :String, default: "Optional"
|
|
variable :BUFFER_PROFILE_ID, :Integer, default: 0
|
|
variable :BUFFER_TWITTER_ID, :String, default: "Optional"
|
|
|
|
# Cloudinary for image resizing and cache??
|
|
variable :CLOUDINARY_API_KEY, :String, default: "Optional"
|
|
variable :CLOUDINARY_API_SECRET, :String, default: "Optional"
|
|
variable :CLOUDINARY_CLOUD_NAME, :String, default: "Optional"
|
|
variable :CLOUDINARY_SECURE, :String, default: "Optional"
|
|
|
|
# HTML/CSS to Image for generating social preview images
|
|
variable :HCTI_API_USER_ID, :String, default: "Optional"
|
|
variable :HCTI_API_KEY, :String, default: "Optional"
|
|
|
|
# Dacast for streaming
|
|
variable :DACAST_STREAM_CODE, :String, default: "Optional"
|
|
|
|
# Fastly for edge caching
|
|
variable :FASTLY_API_KEY, :String, default: "Optional"
|
|
variable :FASTLY_SERVICE_ID, :String, default: "Optional"
|
|
|
|
# Google analytic
|
|
variable :GA_SERVICE_ACCOUNT_JSON, :String, default: "Optional"
|
|
variable :GA_TRACKING_ID, :String, default: "Optional"
|
|
variable :GA_OPTIMIZE_ID, :String, default: "Optional"
|
|
variable :GA_VIEW_ID, :String, default: "Optional"
|
|
variable :GA_FETCH_RATE, :Integer, default: 25
|
|
|
|
# Mailchimp for mails
|
|
variable :MAILCHIMP_API_KEY, :String, default: "Optional-valid"
|
|
variable :MAILCHIMP_NEWSLETTER_ID, :String, default: "Optional"
|
|
variable :MAILCHIMP_SUSTAINING_MEMBERS_ID, :String, default: "Optional"
|
|
variable :MAILCHIMP_TAG_MODERATORS_ID, :String, default: "Optional"
|
|
variable :MAILCHIMP_COMMUNITY_MODERATORS_ID, :String, default: "Optional"
|
|
|
|
# Email digest frequency
|
|
variable :PERIODIC_EMAIL_DIGEST_MAX, :Integer, default: 0
|
|
variable :PERIODIC_EMAIL_DIGEST_MIN, :Integer, default: 2
|
|
|
|
# Pusher for DEV Connect/notfications
|
|
variable :PUSHER_APP_ID, :String, default: "Optional"
|
|
variable :PUSHER_CLUSTER, :String, default: "Optional"
|
|
variable :PUSHER_KEY, :String, default: "Optional"
|
|
variable :PUSHER_SECRET, :String, default: "Optional"
|
|
variable :PUSHER_BEAMS_ID, :String, default: "Optional"
|
|
variable :PUSHER_BEAMS_KEY, :String, default: "Optional"
|
|
|
|
# Google recaptcha
|
|
variable :RECAPTCHA_SECRET, :String, default: "Optional"
|
|
variable :RECAPTCHA_SITE, :String, default: "Optional"
|
|
|
|
# Slack for customer alerts
|
|
variable :SLACK_CHANNEL, :String, default: "Optional"
|
|
variable :SLACK_WEBHOOK_URL, :String, default: "Optional"
|
|
|
|
# Stripe for payment system
|
|
variable :STRIPE_PUBLISHABLE_KEY, :String, default: "Optional"
|
|
variable :STRIPE_SECRET_KEY, :String, default: "Optional"
|
|
variable :STRIPE_CANCELLATION_SECRET, :String, default: "Optional"
|
|
|
|
# For browser webpush notifications (webpush gem) (totally random base64 nums)
|
|
variable :VAPID_PUBLIC_KEY, :String, default: "dGhpcyBpcyBkZXYudG8gdGVzdCBkYXRh"
|
|
variable :VAPID_PRIVATE_KEY, :String, default: "VGhpcyBpcyBtb3JlIHRlc3QgZGF0YQ=="
|
|
|
|
# For video calling in DEV Connect
|
|
variable :TWILIO_ACCOUNT_SID, :String, default: "Optional"
|
|
variable :TWILIO_VIDEO_API_KEY, :String, default: "Optional"
|
|
variable :TWILIO_VIDEO_API_SECRET, :String, default: "Optional"
|
|
|
|
# For Twitch live stream integration
|
|
variable :TWITCH_CLIENT_ID, :String, default: "Optional"
|
|
variable :TWITCH_CLIENT_SECRET, :String, default: "Optional"
|
|
variable :TWITCH_WEBHOOK_SECRET, :String, default: "Optional"
|
|
|
|
# Trending tags on home page
|
|
variable :TRENDING_TAGS, :String, default: "git,beginners"
|
|
|
|
##### Legacy test related env vars ######
|
|
variable :FACEBOOK_PIXEL_ID, :String, default: "Optional"
|
|
variable :SMARTY_STREETS_WEB_KEY, :String, default: "Optional"
|
|
|
|
group :production do
|
|
variable :SECRET_KEY_BASE, :String
|
|
end
|