Skip to content

Instantly share code, notes, and snippets.

Avatar

Eric Johnson singledigit

View GitHub Profile
@singledigit
singledigit / vue.config.js
Created Jul 8, 2019
Enable preview and live reloading on Cloud9 with Vue-CLI apps
View vue.config.js
module.exports = {
devServer: {
disableHostCheck: true,
public: 'https://[your cloud9 host id].vfs.cloud9.[region].amazonaws.com'
}
}
View node8hello.js
const http = require('http');
const hostname = '0.0.0.0';
const port = process.env.PORT || 3000;
const server = http.createServer((req, res) => {
res.statusCode = 200;
res.setHeader('Content-Type', 'text/plain');
res.end('Hello World\n');
});
@singledigit
singledigit / infrastructure.yaml
Last active Aug 17, 2018
Secure S3 hosting bucket with CloudFront distro. Only allows distro access to the bucket
View infrastructure.yaml
AWSTemplateFormatVersion: "2010-09-09"
Description: AWS S3 Hosting bucket and CloudFront Distrobution
Resources:
## Origin Access ID for CloudFront
HostAccessIdentity:
Type: "AWS::CloudFront::CloudFrontOriginAccessIdentity"
Properties:
CloudFrontOriginAccessIdentityConfig:
Comment: MyHostBucketId
@singledigit
singledigit / handler.js
Last active Jun 22, 2018
RDS Snapshot Lambda for automating manual backups.
View handler.js
const AWS = require('aws-sdk');
const rds = new AWS.RDS();
const sns = new AWS.SNS();
const prefix = `snapper-${process.env.TIME_TO_LIVE}-${process.env.TIME_TO_LIVE_METRIC}-${process.env.CLUSTER_ID}`
const createClusterSnapshot = () => {
let params = {
DBClusterIdentifier: process.env.CLUSTER_ID,
DBClusterSnapshotIdentifier: `${prefix}-${Date.now()}`,
Tags: [{ Key: 'type', Value: 'snapper' }]
@singledigit
singledigit / cognito.yaml
Last active Dec 27, 2020
Create a Cognito Authentication Backend via CloudFormation
View cognito.yaml
AWSTemplateFormatVersion: '2010-09-09'
Description: Cognito Stack
Parameters:
AuthName:
Type: String
Description: Unique Auth Name for Cognito Resources
Resources:
# Creates a role that allows Cognito to send SNS messages
SNSRole:
@singledigit
singledigit / Usage
Last active Mar 27, 2017
Aurelia value-converter allowing two string values to be used as a checkbox boolean
View Usage
<input type="checkbox" checked.bind="color | checkedValue:'Green':'Blue'" />
@singledigit
singledigit / Base File
Last active Jun 7, 2018
Cloudformation Files for Creating a Serverless CICD Pipeline
View Base File
AWSTemplateFormatVersion: '2010-09-09'
Description: 'Deployment Stack'
Parameters:
GitHubToken:
NoEcho: true
Type: String
Description: Secret. It might look something like 9b189a1654643522561f7b3ebd44a1531a4287af OAuthToken with access to Repo. Go to https://github.com/settings/tokens"
GitHubOwner:
Type: String
Description: GitHub UserName
@singledigit
singledigit / aureila-dynamic-validation-rules.js
Last active Oct 11, 2016
Dynamically build Aurelia Validation rules.
View aureila-dynamic-validation-rules.js
//This is a rough attempt at dynamically building validation rules based on a JSON document.
let rules = [];
Forms[this.viewing].map(field => {
if(field.required && !field.viewIf){
rules.push(ValidationRules.ensure(field.propName).required().rules[0])
}
if (field.required && field.viewIf) {
rules.push(ValidationRules.ensure(field.propName).required()
@singledigit
singledigit / Activate
Last active Jul 1, 2016
Code examples for Serverless Architecture Demo part 3
View Activate
activate(){
return this.auth.getSession();
}
@singledigit
singledigit / Auth Class
Last active May 2, 2018
Pattern for using Cognito User Pools as authentication against Cognito Identity
View Auth Class
import {inject} from 'aurelia-framework';
import {Session} from './session';
@inject(Session)
export class Auth {
// App specific
userPoolId = 'us-east-1_fgCWraBkF';
appClientId = '57lq262n28o7ddt8i36jcjj7qd';