Open in a web browser: https://slack.com/oauth/authorize?scope=bot&client_id=12345.67890
- Use Client ID from App Credentials.
- Use
bot
for scope.
require 'aws-sdk-dynamodb' | |
# DynamoDB batch write (put) routine | |
# @param items [Array<Hash>] DynamoDB items to put | |
# @param table [String] DynamoDB table name | |
def ddb_batch_put(items, table) | |
ddb = Aws::DynamoDB::Client.new | |
batch = items.map { |item| {put_request: {item: item}} if Hash === item } | |
batch.compact! | |
puts "Batch write to: #{table}, #{batch.length} items." |
# Check IP address | |
ip a | |
# Check default gateway | |
ip r | |
route -n | |
# Check DNS server | |
systemd-resolve --status |
require 'base64' | |
require 'openssl' | |
# See: https://www.twilio.com/docs/usage/security#validating-requests | |
# | |
# Example of AWS API Gateway (HTTP) + Lambda | |
def is_twilio_request_valid?(event) | |
# Create a string that is your URL with the full query string | |
url = "https://#{event['headers']['host']}#{event['rawPath']}" | |
# Sort the list of POST variables by the parameter name |
{ | |
"version":2, | |
"path":"/event", | |
"httpMethod":"GET", | |
"headers":{ | |
"Content-Length":"0", | |
"Host":"abcde12345.execute-api.us-west-2.amazonaws.com", | |
"User-Agent":"curl/7.54.0", | |
"X-Amzn-Trace-Id":"Root=1-67891233-abcdef012345678912345678", | |
"X-Forwarded-For":"192.168.1.23", |
# | |
# Build and Package RubyGems for AWS Lambda Layer Use | |
# | |
all: build package | |
build: | |
gem i firebase-ruby -Ni ruby/gems/2.5.0 | |
gem i darksky-ruby -Ni ruby/gems/2.5.0 | |
ls -m ruby/gems/2.5.0/gems |
http { | |
# Shared cache size; 1MB = 4000 sessions | |
ssl_session_cache shared:SSL:10m; | |
# Decrease timeout if resources are low | |
ssl_session_timeout 10m; | |
# Good-bye SSL | |
ssl_protocols TLSv1.1 TLSv1.2; | |
ssl_prefer_server_ciphers on; | |
ssl_ciphers ECDH+AESGCM:ECDH+AES256:ECDH+AES128:!ADH:!AECDH:!MD5; | |
# OCSP stapling |
opts = { | |
indent: ' ', | |
space: ' ', | |
object_nl: "\n", | |
array_nl: "\n" | |
} | |
JSON.fast_generate(obj, opts) |
def load_from_path(path) | |
Dir.chdir(path) { | |
Dir.foreach('.') { |f| load f unless File.directory?(f) } | |
} | |
end | |
paths = [ | |
'conf.d', | |
'plugins' | |
] |