From 40fb85c926f36967fc01320a70feec60be60efb6 Mon Sep 17 00:00:00 2001 From: Vikram Rangnekar Date: Thu, 11 Apr 2019 01:10:51 -0400 Subject: [PATCH] Improve the demo experience --- .dockerignore | 2 +- .gitignore | 2 +- config/dev.yml | 6 +++-- config/prod.yml | 2 +- demo | 9 +++++++ docker-compose.yml | 14 +++------- example/nginx.conf | 25 ----------------- fresh.conf | 2 +- {example => rails-app}/.gitignore | 0 {example => rails-app}/.ruby-version | 0 {example => rails-app}/Dockerfile | 0 {example => rails-app}/Gemfile | 0 {example => rails-app}/Gemfile.lock | 0 {example => rails-app}/README.md | 0 {example => rails-app}/Rakefile | 0 .../app/assets/config/manifest.js | 0 .../app/assets/images/.keep | 0 .../app/assets/javascripts/application.js | 0 .../app/assets/javascripts/cable.js | 0 .../app/assets/javascripts/channels/.keep | 0 .../app/assets/javascripts/products.coffee | 0 .../app/assets/stylesheets/application.css | 0 .../app/assets/stylesheets/products.scss | 0 .../app/assets/stylesheets/scaffolds.scss | 0 .../app/channels/application_cable/channel.rb | 0 .../channels/application_cable/connection.rb | 0 .../app/controllers/application_controller.rb | 0 .../app/controllers/concerns/.keep | 0 .../app/controllers/products_controller.rb | 0 .../app/helpers/application_helper.rb | 0 .../app/helpers/products_helper.rb | 0 .../app/jobs/application_job.rb | 0 .../app/mailers/application_mailer.rb | 2 +- .../app/models/application_record.rb | 0 .../app/models/concerns/.keep | 0 {example => rails-app}/app/models/customer.rb | 0 {example => rails-app}/app/models/product.rb | 0 {example => rails-app}/app/models/purchase.rb | 0 {example => rails-app}/app/models/user.rb | 0 .../app/views/layouts/application.html.erb | 0 .../app/views/layouts/mailer.html.erb | 0 .../app/views/layouts/mailer.text.erb | 0 .../app/views/products/_form.html.erb | 0 .../app/views/products/_product.json.jbuilder | 0 .../app/views/products/edit.html.erb | 0 .../app/views/products/index.html.erb | 0 .../app/views/products/index.json.jbuilder | 0 .../app/views/products/new.html.erb | 0 .../app/views/products/show.html.erb | 0 .../app/views/products/show.json.jbuilder | 0 {example => rails-app}/bin/bundle | 0 {example => rails-app}/bin/rails | 0 {example => rails-app}/bin/rake | 0 {example => rails-app}/bin/setup | 0 {example => rails-app}/bin/spring | 0 {example => rails-app}/bin/update | 0 {example => rails-app}/bin/yarn | 0 {example => rails-app}/config.ru | 0 {example => rails-app}/config/application.rb | 0 {example => rails-app}/config/boot.rb | 0 {example => rails-app}/config/cable.yml | 0 .../config/credentials.yml.enc | 0 {example => rails-app}/config/database.yml | 0 {example => rails-app}/config/environment.rb | 0 .../config/environments/development.rb | 0 .../config/environments/production.rb | 6 ++--- .../config/environments/test.rb | 0 .../application_controller_renderer.rb | 2 +- .../config/initializers/assets.rb | 0 .../initializers/backtrace_silencers.rb | 0 .../initializers/content_security_policy.rb | 0 .../config/initializers/cookies_serializer.rb | 0 .../config/initializers/devise.rb | 2 +- .../initializers/filter_parameter_logging.rb | 0 .../config/initializers/inflections.rb | 0 .../config/initializers/mime_types.rb | 0 .../config/initializers/secret_tokens.rb | 0 .../config/initializers/wrap_parameters.rb | 0 .../config/locales/devise.en.yml | 0 {example => rails-app}/config/locales/en.yml | 0 {example => rails-app}/config/puma.rb | 0 {example => rails-app}/config/routes.rb | 0 {example => rails-app}/config/spring.rb | 0 {example => rails-app}/config/storage.yml | 0 .../20190322181705_devise_create_users.rb | 0 .../20190322181706_devise_create_customers.rb | 0 .../migrate/20190322181710_create_products.rb | 0 .../db/migrate/20190322200743_purchases.rb | 0 .../20190405042247_add_search_column.rb | 0 {example => rails-app}/db/schema.rb | 0 {example => rails-app}/db/seeds.rb | 2 +- .../demo.yml | 7 +++-- {example => rails-app}/entrypoint.sh | 0 {example => rails-app}/lib/assets/.keep | 0 {example => rails-app}/lib/tasks/.keep | 0 {example => rails-app}/log/.keep | 0 {example => rails-app}/package.json | 0 {example => rails-app}/public/404.html | 0 {example => rails-app}/public/422.html | 0 {example => rails-app}/public/500.html | 0 .../public/apple-touch-icon-precomposed.png | 0 .../public/apple-touch-icon.png | 0 {example => rails-app}/public/favicon.ico | 0 {example => rails-app}/public/robots.txt | 0 {example => rails-app}/storage/.keep | 0 .../test/application_system_test_case.rb | 0 {example => rails-app}/test/controllers/.keep | 0 .../controllers/products_controller_test.rb | 0 {example => rails-app}/test/fixtures/.keep | 0 .../test/fixtures/customers.yml | 0 .../test/fixtures/files/.keep | 0 .../test/fixtures/products.yml | 0 .../test/fixtures/users.yml | 0 {example => rails-app}/test/helpers/.keep | 0 {example => rails-app}/test/integration/.keep | 0 {example => rails-app}/test/mailers/.keep | 0 {example => rails-app}/test/models/.keep | 0 .../test/models/customer_test.rb | 0 .../test/models/product_test.rb | 0 .../test/models/user_test.rb | 0 {example => rails-app}/test/system/.keep | 0 .../test/system/products_test.rb | 0 {example => rails-app}/test/test_helper.rb | 0 {example => rails-app}/vendor/.keep | 0 serv/serv.go | 27 ++++++++++++++----- 125 files changed, 50 insertions(+), 60 deletions(-) create mode 100755 demo delete mode 100644 example/nginx.conf rename {example => rails-app}/.gitignore (100%) rename {example => rails-app}/.ruby-version (100%) rename {example => rails-app}/Dockerfile (100%) rename {example => rails-app}/Gemfile (100%) rename {example => rails-app}/Gemfile.lock (100%) rename {example => rails-app}/README.md (100%) rename {example => rails-app}/Rakefile (100%) rename {example => rails-app}/app/assets/config/manifest.js (100%) rename {example => rails-app}/app/assets/images/.keep (100%) rename {example => rails-app}/app/assets/javascripts/application.js (100%) rename {example => rails-app}/app/assets/javascripts/cable.js (100%) rename {example => rails-app}/app/assets/javascripts/channels/.keep (100%) rename {example => rails-app}/app/assets/javascripts/products.coffee (100%) rename {example => rails-app}/app/assets/stylesheets/application.css (100%) rename {example => rails-app}/app/assets/stylesheets/products.scss (100%) rename {example => rails-app}/app/assets/stylesheets/scaffolds.scss (100%) rename {example => rails-app}/app/channels/application_cable/channel.rb (100%) rename {example => rails-app}/app/channels/application_cable/connection.rb (100%) rename {example => rails-app}/app/controllers/application_controller.rb (100%) rename {example => rails-app}/app/controllers/concerns/.keep (100%) rename {example => rails-app}/app/controllers/products_controller.rb (100%) rename {example => rails-app}/app/helpers/application_helper.rb (100%) rename {example => rails-app}/app/helpers/products_helper.rb (100%) rename {example => rails-app}/app/jobs/application_job.rb (100%) rename {example => rails-app}/app/mailers/application_mailer.rb (65%) rename {example => rails-app}/app/models/application_record.rb (100%) rename {example => rails-app}/app/models/concerns/.keep (100%) rename {example => rails-app}/app/models/customer.rb (100%) rename {example => rails-app}/app/models/product.rb (100%) rename {example => rails-app}/app/models/purchase.rb (100%) rename {example => rails-app}/app/models/user.rb (100%) rename {example => rails-app}/app/views/layouts/application.html.erb (100%) rename {example => rails-app}/app/views/layouts/mailer.html.erb (100%) rename {example => rails-app}/app/views/layouts/mailer.text.erb (100%) rename {example => rails-app}/app/views/products/_form.html.erb (100%) rename {example => rails-app}/app/views/products/_product.json.jbuilder (100%) rename {example => rails-app}/app/views/products/edit.html.erb (100%) rename {example => rails-app}/app/views/products/index.html.erb (100%) rename {example => rails-app}/app/views/products/index.json.jbuilder (100%) rename {example => rails-app}/app/views/products/new.html.erb (100%) rename {example => rails-app}/app/views/products/show.html.erb (100%) rename {example => rails-app}/app/views/products/show.json.jbuilder (100%) rename {example => rails-app}/bin/bundle (100%) rename {example => rails-app}/bin/rails (100%) rename {example => rails-app}/bin/rake (100%) rename {example => rails-app}/bin/setup (100%) rename {example => rails-app}/bin/spring (100%) rename {example => rails-app}/bin/update (100%) rename {example => rails-app}/bin/yarn (100%) rename {example => rails-app}/config.ru (100%) rename {example => rails-app}/config/application.rb (100%) rename {example => rails-app}/config/boot.rb (100%) rename {example => rails-app}/config/cable.yml (100%) rename {example => rails-app}/config/credentials.yml.enc (100%) rename {example => rails-app}/config/database.yml (100%) rename {example => rails-app}/config/environment.rb (100%) rename {example => rails-app}/config/environments/development.rb (100%) rename {example => rails-app}/config/environments/production.rb (94%) rename {example => rails-app}/config/environments/test.rb (100%) rename {example => rails-app}/config/initializers/application_controller_renderer.rb (85%) rename {example => rails-app}/config/initializers/assets.rb (100%) rename {example => rails-app}/config/initializers/backtrace_silencers.rb (100%) rename {example => rails-app}/config/initializers/content_security_policy.rb (100%) rename {example => rails-app}/config/initializers/cookies_serializer.rb (100%) rename {example => rails-app}/config/initializers/devise.rb (99%) rename {example => rails-app}/config/initializers/filter_parameter_logging.rb (100%) rename {example => rails-app}/config/initializers/inflections.rb (100%) rename {example => rails-app}/config/initializers/mime_types.rb (100%) rename {example => rails-app}/config/initializers/secret_tokens.rb (100%) rename {example => rails-app}/config/initializers/wrap_parameters.rb (100%) rename {example => rails-app}/config/locales/devise.en.yml (100%) rename {example => rails-app}/config/locales/en.yml (100%) rename {example => rails-app}/config/puma.rb (100%) rename {example => rails-app}/config/routes.rb (100%) rename {example => rails-app}/config/spring.rb (100%) rename {example => rails-app}/config/storage.yml (100%) rename {example => rails-app}/db/migrate/20190322181705_devise_create_users.rb (100%) rename {example => rails-app}/db/migrate/20190322181706_devise_create_customers.rb (100%) rename {example => rails-app}/db/migrate/20190322181710_create_products.rb (100%) rename {example => rails-app}/db/migrate/20190322200743_purchases.rb (100%) rename {example => rails-app}/db/migrate/20190405042247_add_search_column.rb (100%) rename {example => rails-app}/db/schema.rb (100%) rename {example => rails-app}/db/seeds.rb (98%) rename docker-compose.image.yml => rails-app/demo.yml (62%) rename {example => rails-app}/entrypoint.sh (100%) rename {example => rails-app}/lib/assets/.keep (100%) rename {example => rails-app}/lib/tasks/.keep (100%) rename {example => rails-app}/log/.keep (100%) rename {example => rails-app}/package.json (100%) rename {example => rails-app}/public/404.html (100%) rename {example => rails-app}/public/422.html (100%) rename {example => rails-app}/public/500.html (100%) rename {example => rails-app}/public/apple-touch-icon-precomposed.png (100%) rename {example => rails-app}/public/apple-touch-icon.png (100%) rename {example => rails-app}/public/favicon.ico (100%) rename {example => rails-app}/public/robots.txt (100%) rename {example => rails-app}/storage/.keep (100%) rename {example => rails-app}/test/application_system_test_case.rb (100%) rename {example => rails-app}/test/controllers/.keep (100%) rename {example => rails-app}/test/controllers/products_controller_test.rb (100%) rename {example => rails-app}/test/fixtures/.keep (100%) rename {example => rails-app}/test/fixtures/customers.yml (100%) rename {example => rails-app}/test/fixtures/files/.keep (100%) rename {example => rails-app}/test/fixtures/products.yml (100%) rename {example => rails-app}/test/fixtures/users.yml (100%) rename {example => rails-app}/test/helpers/.keep (100%) rename {example => rails-app}/test/integration/.keep (100%) rename {example => rails-app}/test/mailers/.keep (100%) rename {example => rails-app}/test/models/.keep (100%) rename {example => rails-app}/test/models/customer_test.rb (100%) rename {example => rails-app}/test/models/product_test.rb (100%) rename {example => rails-app}/test/models/user_test.rb (100%) rename {example => rails-app}/test/system/.keep (100%) rename {example => rails-app}/test/system/products_test.rb (100%) rename {example => rails-app}/test/test_helper.rb (100%) rename {example => rails-app}/vendor/.keep (100%) diff --git a/.dockerignore b/.dockerignore index f85941e..9224713 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1,4 +1,4 @@ -example +demo tmp *.md web/build diff --git a/.gitignore b/.gitignore index f8fbcbe..967c560 100644 --- a/.gitignore +++ b/.gitignore @@ -21,7 +21,7 @@ /Godeps /tmp /tmp/runner-build -/example/tmp +/demo/tmp .vscode main diff --git a/config/dev.yml b/config/dev.yml index 2b99a2a..2b5935a 100644 --- a/config/dev.yml +++ b/config/dev.yml @@ -1,4 +1,4 @@ -title: Super Graph Development +app_name: "Super Graph Development" host_port: 0.0.0.0:8080 web_ui: true debug_level: 1 @@ -39,7 +39,7 @@ auth: version: 5.2 # Found in 'Rails.application.config.secret_key_base' - secret_key_base: 0a248500a64c01184edb4d7ad3a805488f8097ac761b76aaa6c17c01dcb7af03a2f18ba61b2868134b9c7b79a122bc0dadff4367414a2d173297bfea92be5566 + secret_key_base: 0a248500a64c01184edbf8097ac... # Remote cookie store. (memcache or redis) # url: redis://127.0.0.1:6379 @@ -66,6 +66,8 @@ database: dbname: app_development user: postgres password: '' + + #schema: "public" #pool_size: 10 #max_retries: 0 #log_level: "debug" diff --git a/config/prod.yml b/config/prod.yml index 2ef6c59..8588175 100644 --- a/config/prod.yml +++ b/config/prod.yml @@ -1,4 +1,4 @@ -title: Super Graph Production +app_name: "Super Graph Production" host_port: 0.0.0.0:8080 web_ui: false debug_level: 0 diff --git a/demo b/demo new file mode 100755 index 0000000..d16ce79 --- /dev/null +++ b/demo @@ -0,0 +1,9 @@ +#!/bin/bash + +if [ "$1" == "setup" ]; then + docker-compose -f rails-app/demo.yml run web rake db:drop db:create db:migrate db:seed +elif [ "$1" == "run" ]; then + docker-compose -f rails-app/demo.yml up +else + echo "./demo [setup|run]" +fi \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index 11030a6..c76dac8 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -3,13 +3,6 @@ services: db: image: postgres - # nginx: - # image: nginx:latest - # volumes: - # - ./example/nginx.conf:/etc/nginx/nginx.conf - # ports: - # - 3001:3001 - super_graph: build: context: . @@ -26,13 +19,12 @@ services: command: fresh -c fresh.conf web: - build: example/. + build: rails-app/. command: bash -c "rm -f tmp/pids/server.pid && bundle exec rails s -p 3000 -b '0.0.0.0'" volumes: - - ./example:/app + - ./rails-app:/app ports: - "3000:3000" depends_on: - db - - super_graph - # - nginx \ No newline at end of file + - super_graph \ No newline at end of file diff --git a/example/nginx.conf b/example/nginx.conf deleted file mode 100644 index 1107f6e..0000000 --- a/example/nginx.conf +++ /dev/null @@ -1,25 +0,0 @@ -events { } - -http { - server { - server_name localhost; - listen 3001; - - location /api/v1/graphql { - proxy_pass http://super_graph:8080; - proxy_redirect off; - #rewrite ^/api/v1/graphql$ $1 break; - } - - location /super-graph { - proxy_pass http://super_graph:8080; - proxy_redirect off; - rewrite ^/super-graph/(.*)$ /$1 break; - } - - location / { - proxy_pass http://web:3000; - proxy_redirect off; - } - } -} \ No newline at end of file diff --git a/fresh.conf b/fresh.conf index 13dbb7c..e1a8f9b 100644 --- a/fresh.conf +++ b/fresh.conf @@ -4,7 +4,7 @@ build_name: runner-build build_log: runner-build-errors.log valid_ext: .go, .tpl, .tmpl, .html, .yml no_rebuild_ext: .tpl, .tmpl, .html -ignored: web, tmp, vendor, example, docs +ignored: web, tmp, vendor, demo, docs build_delay: 600 colors: 1 log_color_main: cyan diff --git a/example/.gitignore b/rails-app/.gitignore similarity index 100% rename from example/.gitignore rename to rails-app/.gitignore diff --git a/example/.ruby-version b/rails-app/.ruby-version similarity index 100% rename from example/.ruby-version rename to rails-app/.ruby-version diff --git a/example/Dockerfile b/rails-app/Dockerfile similarity index 100% rename from example/Dockerfile rename to rails-app/Dockerfile diff --git a/example/Gemfile b/rails-app/Gemfile similarity index 100% rename from example/Gemfile rename to rails-app/Gemfile diff --git a/example/Gemfile.lock b/rails-app/Gemfile.lock similarity index 100% rename from example/Gemfile.lock rename to rails-app/Gemfile.lock diff --git a/example/README.md b/rails-app/README.md similarity index 100% rename from example/README.md rename to rails-app/README.md diff --git a/example/Rakefile b/rails-app/Rakefile similarity index 100% rename from example/Rakefile rename to rails-app/Rakefile diff --git a/example/app/assets/config/manifest.js b/rails-app/app/assets/config/manifest.js similarity index 100% rename from example/app/assets/config/manifest.js rename to rails-app/app/assets/config/manifest.js diff --git a/example/app/assets/images/.keep b/rails-app/app/assets/images/.keep similarity index 100% rename from example/app/assets/images/.keep rename to rails-app/app/assets/images/.keep diff --git a/example/app/assets/javascripts/application.js b/rails-app/app/assets/javascripts/application.js similarity index 100% rename from example/app/assets/javascripts/application.js rename to rails-app/app/assets/javascripts/application.js diff --git a/example/app/assets/javascripts/cable.js b/rails-app/app/assets/javascripts/cable.js similarity index 100% rename from example/app/assets/javascripts/cable.js rename to rails-app/app/assets/javascripts/cable.js diff --git a/example/app/assets/javascripts/channels/.keep b/rails-app/app/assets/javascripts/channels/.keep similarity index 100% rename from example/app/assets/javascripts/channels/.keep rename to rails-app/app/assets/javascripts/channels/.keep diff --git a/example/app/assets/javascripts/products.coffee b/rails-app/app/assets/javascripts/products.coffee similarity index 100% rename from example/app/assets/javascripts/products.coffee rename to rails-app/app/assets/javascripts/products.coffee diff --git a/example/app/assets/stylesheets/application.css b/rails-app/app/assets/stylesheets/application.css similarity index 100% rename from example/app/assets/stylesheets/application.css rename to rails-app/app/assets/stylesheets/application.css diff --git a/example/app/assets/stylesheets/products.scss b/rails-app/app/assets/stylesheets/products.scss similarity index 100% rename from example/app/assets/stylesheets/products.scss rename to rails-app/app/assets/stylesheets/products.scss diff --git a/example/app/assets/stylesheets/scaffolds.scss b/rails-app/app/assets/stylesheets/scaffolds.scss similarity index 100% rename from example/app/assets/stylesheets/scaffolds.scss rename to rails-app/app/assets/stylesheets/scaffolds.scss diff --git a/example/app/channels/application_cable/channel.rb b/rails-app/app/channels/application_cable/channel.rb similarity index 100% rename from example/app/channels/application_cable/channel.rb rename to rails-app/app/channels/application_cable/channel.rb diff --git a/example/app/channels/application_cable/connection.rb b/rails-app/app/channels/application_cable/connection.rb similarity index 100% rename from example/app/channels/application_cable/connection.rb rename to rails-app/app/channels/application_cable/connection.rb diff --git a/example/app/controllers/application_controller.rb b/rails-app/app/controllers/application_controller.rb similarity index 100% rename from example/app/controllers/application_controller.rb rename to rails-app/app/controllers/application_controller.rb diff --git a/example/app/controllers/concerns/.keep b/rails-app/app/controllers/concerns/.keep similarity index 100% rename from example/app/controllers/concerns/.keep rename to rails-app/app/controllers/concerns/.keep diff --git a/example/app/controllers/products_controller.rb b/rails-app/app/controllers/products_controller.rb similarity index 100% rename from example/app/controllers/products_controller.rb rename to rails-app/app/controllers/products_controller.rb diff --git a/example/app/helpers/application_helper.rb b/rails-app/app/helpers/application_helper.rb similarity index 100% rename from example/app/helpers/application_helper.rb rename to rails-app/app/helpers/application_helper.rb diff --git a/example/app/helpers/products_helper.rb b/rails-app/app/helpers/products_helper.rb similarity index 100% rename from example/app/helpers/products_helper.rb rename to rails-app/app/helpers/products_helper.rb diff --git a/example/app/jobs/application_job.rb b/rails-app/app/jobs/application_job.rb similarity index 100% rename from example/app/jobs/application_job.rb rename to rails-app/app/jobs/application_job.rb diff --git a/example/app/mailers/application_mailer.rb b/rails-app/app/mailers/application_mailer.rb similarity index 65% rename from example/app/mailers/application_mailer.rb rename to rails-app/app/mailers/application_mailer.rb index 286b223..1976bf2 100644 --- a/example/app/mailers/application_mailer.rb +++ b/rails-app/app/mailers/application_mailer.rb @@ -1,4 +1,4 @@ class ApplicationMailer < ActionMailer::Base - default from: 'from@example.com' + default from: 'from@demo.com' layout 'mailer' end diff --git a/example/app/models/application_record.rb b/rails-app/app/models/application_record.rb similarity index 100% rename from example/app/models/application_record.rb rename to rails-app/app/models/application_record.rb diff --git a/example/app/models/concerns/.keep b/rails-app/app/models/concerns/.keep similarity index 100% rename from example/app/models/concerns/.keep rename to rails-app/app/models/concerns/.keep diff --git a/example/app/models/customer.rb b/rails-app/app/models/customer.rb similarity index 100% rename from example/app/models/customer.rb rename to rails-app/app/models/customer.rb diff --git a/example/app/models/product.rb b/rails-app/app/models/product.rb similarity index 100% rename from example/app/models/product.rb rename to rails-app/app/models/product.rb diff --git a/example/app/models/purchase.rb b/rails-app/app/models/purchase.rb similarity index 100% rename from example/app/models/purchase.rb rename to rails-app/app/models/purchase.rb diff --git a/example/app/models/user.rb b/rails-app/app/models/user.rb similarity index 100% rename from example/app/models/user.rb rename to rails-app/app/models/user.rb diff --git a/example/app/views/layouts/application.html.erb b/rails-app/app/views/layouts/application.html.erb similarity index 100% rename from example/app/views/layouts/application.html.erb rename to rails-app/app/views/layouts/application.html.erb diff --git a/example/app/views/layouts/mailer.html.erb b/rails-app/app/views/layouts/mailer.html.erb similarity index 100% rename from example/app/views/layouts/mailer.html.erb rename to rails-app/app/views/layouts/mailer.html.erb diff --git a/example/app/views/layouts/mailer.text.erb b/rails-app/app/views/layouts/mailer.text.erb similarity index 100% rename from example/app/views/layouts/mailer.text.erb rename to rails-app/app/views/layouts/mailer.text.erb diff --git a/example/app/views/products/_form.html.erb b/rails-app/app/views/products/_form.html.erb similarity index 100% rename from example/app/views/products/_form.html.erb rename to rails-app/app/views/products/_form.html.erb diff --git a/example/app/views/products/_product.json.jbuilder b/rails-app/app/views/products/_product.json.jbuilder similarity index 100% rename from example/app/views/products/_product.json.jbuilder rename to rails-app/app/views/products/_product.json.jbuilder diff --git a/example/app/views/products/edit.html.erb b/rails-app/app/views/products/edit.html.erb similarity index 100% rename from example/app/views/products/edit.html.erb rename to rails-app/app/views/products/edit.html.erb diff --git a/example/app/views/products/index.html.erb b/rails-app/app/views/products/index.html.erb similarity index 100% rename from example/app/views/products/index.html.erb rename to rails-app/app/views/products/index.html.erb diff --git a/example/app/views/products/index.json.jbuilder b/rails-app/app/views/products/index.json.jbuilder similarity index 100% rename from example/app/views/products/index.json.jbuilder rename to rails-app/app/views/products/index.json.jbuilder diff --git a/example/app/views/products/new.html.erb b/rails-app/app/views/products/new.html.erb similarity index 100% rename from example/app/views/products/new.html.erb rename to rails-app/app/views/products/new.html.erb diff --git a/example/app/views/products/show.html.erb b/rails-app/app/views/products/show.html.erb similarity index 100% rename from example/app/views/products/show.html.erb rename to rails-app/app/views/products/show.html.erb diff --git a/example/app/views/products/show.json.jbuilder b/rails-app/app/views/products/show.json.jbuilder similarity index 100% rename from example/app/views/products/show.json.jbuilder rename to rails-app/app/views/products/show.json.jbuilder diff --git a/example/bin/bundle b/rails-app/bin/bundle similarity index 100% rename from example/bin/bundle rename to rails-app/bin/bundle diff --git a/example/bin/rails b/rails-app/bin/rails similarity index 100% rename from example/bin/rails rename to rails-app/bin/rails diff --git a/example/bin/rake b/rails-app/bin/rake similarity index 100% rename from example/bin/rake rename to rails-app/bin/rake diff --git a/example/bin/setup b/rails-app/bin/setup similarity index 100% rename from example/bin/setup rename to rails-app/bin/setup diff --git a/example/bin/spring b/rails-app/bin/spring similarity index 100% rename from example/bin/spring rename to rails-app/bin/spring diff --git a/example/bin/update b/rails-app/bin/update similarity index 100% rename from example/bin/update rename to rails-app/bin/update diff --git a/example/bin/yarn b/rails-app/bin/yarn similarity index 100% rename from example/bin/yarn rename to rails-app/bin/yarn diff --git a/example/config.ru b/rails-app/config.ru similarity index 100% rename from example/config.ru rename to rails-app/config.ru diff --git a/example/config/application.rb b/rails-app/config/application.rb similarity index 100% rename from example/config/application.rb rename to rails-app/config/application.rb diff --git a/example/config/boot.rb b/rails-app/config/boot.rb similarity index 100% rename from example/config/boot.rb rename to rails-app/config/boot.rb diff --git a/example/config/cable.yml b/rails-app/config/cable.yml similarity index 100% rename from example/config/cable.yml rename to rails-app/config/cable.yml diff --git a/example/config/credentials.yml.enc b/rails-app/config/credentials.yml.enc similarity index 100% rename from example/config/credentials.yml.enc rename to rails-app/config/credentials.yml.enc diff --git a/example/config/database.yml b/rails-app/config/database.yml similarity index 100% rename from example/config/database.yml rename to rails-app/config/database.yml diff --git a/example/config/environment.rb b/rails-app/config/environment.rb similarity index 100% rename from example/config/environment.rb rename to rails-app/config/environment.rb diff --git a/example/config/environments/development.rb b/rails-app/config/environments/development.rb similarity index 100% rename from example/config/environments/development.rb rename to rails-app/config/environments/development.rb diff --git a/example/config/environments/production.rb b/rails-app/config/environments/production.rb similarity index 94% rename from example/config/environments/production.rb rename to rails-app/config/environments/production.rb index 692941e..bd6db27 100644 --- a/example/config/environments/production.rb +++ b/rails-app/config/environments/production.rb @@ -32,7 +32,7 @@ Rails.application.configure do # `config.assets.precompile` and `config.assets.version` have moved to config/initializers/assets.rb # Enable serving of images, stylesheets, and JavaScripts from an asset server. - # config.action_controller.asset_host = 'http://assets.example.com' + # config.action_controller.asset_host = 'http://assets.demo.com' # Specifies the header that your server uses for sending files. # config.action_dispatch.x_sendfile_header = 'X-Sendfile' # for Apache @@ -43,8 +43,8 @@ Rails.application.configure do # Mount Action Cable outside main process or domain # config.action_cable.mount_path = nil - # config.action_cable.url = 'wss://example.com/cable' - # config.action_cable.allowed_request_origins = [ 'http://example.com', /http:\/\/example.*/ ] + # config.action_cable.url = 'wss://demo.com/cable' + # config.action_cable.allowed_request_origins = [ 'http://demo.com', /http:\/\/demo.*/ ] # Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies. # config.force_ssl = true diff --git a/example/config/environments/test.rb b/rails-app/config/environments/test.rb similarity index 100% rename from example/config/environments/test.rb rename to rails-app/config/environments/test.rb diff --git a/example/config/initializers/application_controller_renderer.rb b/rails-app/config/initializers/application_controller_renderer.rb similarity index 85% rename from example/config/initializers/application_controller_renderer.rb rename to rails-app/config/initializers/application_controller_renderer.rb index 89d2efa..90e3bc4 100644 --- a/example/config/initializers/application_controller_renderer.rb +++ b/rails-app/config/initializers/application_controller_renderer.rb @@ -2,7 +2,7 @@ # ActiveSupport::Reloader.to_prepare do # ApplicationController.renderer.defaults.merge!( -# http_host: 'example.org', +# http_host: 'demo.org', # https: false # ) # end diff --git a/example/config/initializers/assets.rb b/rails-app/config/initializers/assets.rb similarity index 100% rename from example/config/initializers/assets.rb rename to rails-app/config/initializers/assets.rb diff --git a/example/config/initializers/backtrace_silencers.rb b/rails-app/config/initializers/backtrace_silencers.rb similarity index 100% rename from example/config/initializers/backtrace_silencers.rb rename to rails-app/config/initializers/backtrace_silencers.rb diff --git a/example/config/initializers/content_security_policy.rb b/rails-app/config/initializers/content_security_policy.rb similarity index 100% rename from example/config/initializers/content_security_policy.rb rename to rails-app/config/initializers/content_security_policy.rb diff --git a/example/config/initializers/cookies_serializer.rb b/rails-app/config/initializers/cookies_serializer.rb similarity index 100% rename from example/config/initializers/cookies_serializer.rb rename to rails-app/config/initializers/cookies_serializer.rb diff --git a/example/config/initializers/devise.rb b/rails-app/config/initializers/devise.rb similarity index 99% rename from example/config/initializers/devise.rb rename to rails-app/config/initializers/devise.rb index ec9f0cb..bcdb53c 100644 --- a/example/config/initializers/devise.rb +++ b/rails-app/config/initializers/devise.rb @@ -18,7 +18,7 @@ Devise.setup do |config| # Configure the e-mail address which will be shown in Devise::Mailer, # note that it will be overwritten if you use your own mailer class # with default "from" parameter. - config.mailer_sender = 'please-change-me-at-config-initializers-devise@example.com' + config.mailer_sender = 'admin@demo.com' # Configure the class responsible to send e-mails. # config.mailer = 'Devise::Mailer' diff --git a/example/config/initializers/filter_parameter_logging.rb b/rails-app/config/initializers/filter_parameter_logging.rb similarity index 100% rename from example/config/initializers/filter_parameter_logging.rb rename to rails-app/config/initializers/filter_parameter_logging.rb diff --git a/example/config/initializers/inflections.rb b/rails-app/config/initializers/inflections.rb similarity index 100% rename from example/config/initializers/inflections.rb rename to rails-app/config/initializers/inflections.rb diff --git a/example/config/initializers/mime_types.rb b/rails-app/config/initializers/mime_types.rb similarity index 100% rename from example/config/initializers/mime_types.rb rename to rails-app/config/initializers/mime_types.rb diff --git a/example/config/initializers/secret_tokens.rb b/rails-app/config/initializers/secret_tokens.rb similarity index 100% rename from example/config/initializers/secret_tokens.rb rename to rails-app/config/initializers/secret_tokens.rb diff --git a/example/config/initializers/wrap_parameters.rb b/rails-app/config/initializers/wrap_parameters.rb similarity index 100% rename from example/config/initializers/wrap_parameters.rb rename to rails-app/config/initializers/wrap_parameters.rb diff --git a/example/config/locales/devise.en.yml b/rails-app/config/locales/devise.en.yml similarity index 100% rename from example/config/locales/devise.en.yml rename to rails-app/config/locales/devise.en.yml diff --git a/example/config/locales/en.yml b/rails-app/config/locales/en.yml similarity index 100% rename from example/config/locales/en.yml rename to rails-app/config/locales/en.yml diff --git a/example/config/puma.rb b/rails-app/config/puma.rb similarity index 100% rename from example/config/puma.rb rename to rails-app/config/puma.rb diff --git a/example/config/routes.rb b/rails-app/config/routes.rb similarity index 100% rename from example/config/routes.rb rename to rails-app/config/routes.rb diff --git a/example/config/spring.rb b/rails-app/config/spring.rb similarity index 100% rename from example/config/spring.rb rename to rails-app/config/spring.rb diff --git a/example/config/storage.yml b/rails-app/config/storage.yml similarity index 100% rename from example/config/storage.yml rename to rails-app/config/storage.yml diff --git a/example/db/migrate/20190322181705_devise_create_users.rb b/rails-app/db/migrate/20190322181705_devise_create_users.rb similarity index 100% rename from example/db/migrate/20190322181705_devise_create_users.rb rename to rails-app/db/migrate/20190322181705_devise_create_users.rb diff --git a/example/db/migrate/20190322181706_devise_create_customers.rb b/rails-app/db/migrate/20190322181706_devise_create_customers.rb similarity index 100% rename from example/db/migrate/20190322181706_devise_create_customers.rb rename to rails-app/db/migrate/20190322181706_devise_create_customers.rb diff --git a/example/db/migrate/20190322181710_create_products.rb b/rails-app/db/migrate/20190322181710_create_products.rb similarity index 100% rename from example/db/migrate/20190322181710_create_products.rb rename to rails-app/db/migrate/20190322181710_create_products.rb diff --git a/example/db/migrate/20190322200743_purchases.rb b/rails-app/db/migrate/20190322200743_purchases.rb similarity index 100% rename from example/db/migrate/20190322200743_purchases.rb rename to rails-app/db/migrate/20190322200743_purchases.rb diff --git a/example/db/migrate/20190405042247_add_search_column.rb b/rails-app/db/migrate/20190405042247_add_search_column.rb similarity index 100% rename from example/db/migrate/20190405042247_add_search_column.rb rename to rails-app/db/migrate/20190405042247_add_search_column.rb diff --git a/example/db/schema.rb b/rails-app/db/schema.rb similarity index 100% rename from example/db/schema.rb rename to rails-app/db/schema.rb diff --git a/example/db/seeds.rb b/rails-app/db/seeds.rb similarity index 98% rename from example/db/seeds.rb rename to rails-app/db/seeds.rb index 2380d94..b26706a 100644 --- a/example/db/seeds.rb +++ b/rails-app/db/seeds.rb @@ -18,7 +18,7 @@ purchase_count = 100 full_name: Faker::Name.name, avatar: Faker::Avatar.image, phone: Faker::PhoneNumber.cell_phone, - email: "user#{i}@example.com", + email: "user#{i}@demo.com", password: pwd, password_confirmation: pwd ) diff --git a/docker-compose.image.yml b/rails-app/demo.yml similarity index 62% rename from docker-compose.image.yml rename to rails-app/demo.yml index cbc420f..da66b0b 100644 --- a/docker-compose.image.yml +++ b/rails-app/demo.yml @@ -13,10 +13,9 @@ services: - "8080:8080" web: - build: example/. - command: bash -c "rm -f tmp/pids/server.pid && bundle exec rails s -p 3000 -b '0.0.0.0'" - volumes: - - ./example:/app + image: dosco/super-graph-demo:latest + environment: + RAILS_ENV: "development" ports: - "3000:3000" depends_on: diff --git a/example/entrypoint.sh b/rails-app/entrypoint.sh similarity index 100% rename from example/entrypoint.sh rename to rails-app/entrypoint.sh diff --git a/example/lib/assets/.keep b/rails-app/lib/assets/.keep similarity index 100% rename from example/lib/assets/.keep rename to rails-app/lib/assets/.keep diff --git a/example/lib/tasks/.keep b/rails-app/lib/tasks/.keep similarity index 100% rename from example/lib/tasks/.keep rename to rails-app/lib/tasks/.keep diff --git a/example/log/.keep b/rails-app/log/.keep similarity index 100% rename from example/log/.keep rename to rails-app/log/.keep diff --git a/example/package.json b/rails-app/package.json similarity index 100% rename from example/package.json rename to rails-app/package.json diff --git a/example/public/404.html b/rails-app/public/404.html similarity index 100% rename from example/public/404.html rename to rails-app/public/404.html diff --git a/example/public/422.html b/rails-app/public/422.html similarity index 100% rename from example/public/422.html rename to rails-app/public/422.html diff --git a/example/public/500.html b/rails-app/public/500.html similarity index 100% rename from example/public/500.html rename to rails-app/public/500.html diff --git a/example/public/apple-touch-icon-precomposed.png b/rails-app/public/apple-touch-icon-precomposed.png similarity index 100% rename from example/public/apple-touch-icon-precomposed.png rename to rails-app/public/apple-touch-icon-precomposed.png diff --git a/example/public/apple-touch-icon.png b/rails-app/public/apple-touch-icon.png similarity index 100% rename from example/public/apple-touch-icon.png rename to rails-app/public/apple-touch-icon.png diff --git a/example/public/favicon.ico b/rails-app/public/favicon.ico similarity index 100% rename from example/public/favicon.ico rename to rails-app/public/favicon.ico diff --git a/example/public/robots.txt b/rails-app/public/robots.txt similarity index 100% rename from example/public/robots.txt rename to rails-app/public/robots.txt diff --git a/example/storage/.keep b/rails-app/storage/.keep similarity index 100% rename from example/storage/.keep rename to rails-app/storage/.keep diff --git a/example/test/application_system_test_case.rb b/rails-app/test/application_system_test_case.rb similarity index 100% rename from example/test/application_system_test_case.rb rename to rails-app/test/application_system_test_case.rb diff --git a/example/test/controllers/.keep b/rails-app/test/controllers/.keep similarity index 100% rename from example/test/controllers/.keep rename to rails-app/test/controllers/.keep diff --git a/example/test/controllers/products_controller_test.rb b/rails-app/test/controllers/products_controller_test.rb similarity index 100% rename from example/test/controllers/products_controller_test.rb rename to rails-app/test/controllers/products_controller_test.rb diff --git a/example/test/fixtures/.keep b/rails-app/test/fixtures/.keep similarity index 100% rename from example/test/fixtures/.keep rename to rails-app/test/fixtures/.keep diff --git a/example/test/fixtures/customers.yml b/rails-app/test/fixtures/customers.yml similarity index 100% rename from example/test/fixtures/customers.yml rename to rails-app/test/fixtures/customers.yml diff --git a/example/test/fixtures/files/.keep b/rails-app/test/fixtures/files/.keep similarity index 100% rename from example/test/fixtures/files/.keep rename to rails-app/test/fixtures/files/.keep diff --git a/example/test/fixtures/products.yml b/rails-app/test/fixtures/products.yml similarity index 100% rename from example/test/fixtures/products.yml rename to rails-app/test/fixtures/products.yml diff --git a/example/test/fixtures/users.yml b/rails-app/test/fixtures/users.yml similarity index 100% rename from example/test/fixtures/users.yml rename to rails-app/test/fixtures/users.yml diff --git a/example/test/helpers/.keep b/rails-app/test/helpers/.keep similarity index 100% rename from example/test/helpers/.keep rename to rails-app/test/helpers/.keep diff --git a/example/test/integration/.keep b/rails-app/test/integration/.keep similarity index 100% rename from example/test/integration/.keep rename to rails-app/test/integration/.keep diff --git a/example/test/mailers/.keep b/rails-app/test/mailers/.keep similarity index 100% rename from example/test/mailers/.keep rename to rails-app/test/mailers/.keep diff --git a/example/test/models/.keep b/rails-app/test/models/.keep similarity index 100% rename from example/test/models/.keep rename to rails-app/test/models/.keep diff --git a/example/test/models/customer_test.rb b/rails-app/test/models/customer_test.rb similarity index 100% rename from example/test/models/customer_test.rb rename to rails-app/test/models/customer_test.rb diff --git a/example/test/models/product_test.rb b/rails-app/test/models/product_test.rb similarity index 100% rename from example/test/models/product_test.rb rename to rails-app/test/models/product_test.rb diff --git a/example/test/models/user_test.rb b/rails-app/test/models/user_test.rb similarity index 100% rename from example/test/models/user_test.rb rename to rails-app/test/models/user_test.rb diff --git a/example/test/system/.keep b/rails-app/test/system/.keep similarity index 100% rename from example/test/system/.keep rename to rails-app/test/system/.keep diff --git a/example/test/system/products_test.rb b/rails-app/test/system/products_test.rb similarity index 100% rename from example/test/system/products_test.rb rename to rails-app/test/system/products_test.rb diff --git a/example/test/test_helper.rb b/rails-app/test/test_helper.rb similarity index 100% rename from example/test/test_helper.rb rename to rails-app/test/test_helper.rb diff --git a/example/vendor/.keep b/rails-app/vendor/.keep similarity index 100% rename from example/vendor/.keep rename to rails-app/vendor/.keep diff --git a/serv/serv.go b/serv/serv.go index a6f5c34..dcc874d 100644 --- a/serv/serv.go +++ b/serv/serv.go @@ -35,6 +35,7 @@ var ( ) type config struct { + AppName string `mapstructure:"app_name"` Env string HostPort string `mapstructure:"host_port"` WebUI bool `mapstructure:"web_ui"` @@ -75,6 +76,7 @@ type config struct { DBName string User string Password string + Schema string PoolSize int `mapstructure:"pool_size"` MaxRetries int `mapstructure:"max_retries"` LogLevel string `mapstructure:"log_level"` @@ -124,18 +126,18 @@ func initConf() (*config, error) { vi.SetDefault("web_ui", false) vi.SetDefault("debug_level", 0) vi.SetDefault("enable_tracing", false) + vi.SetDefault("auth_fail_block", "always") vi.SetDefault("database.type", "postgres") vi.SetDefault("database.host", "localhost") vi.SetDefault("database.port", 5432) vi.SetDefault("database.user", "postgres") - vi.SetDefault("database.password", "") vi.SetDefault("env", "development") vi.BindEnv("env", "GO_ENV") - vi.SetDefault("auth.rails_redis.max_idle", 80) - vi.SetDefault("auth.rails_redis.max_active", 12000) + vi.SetDefault("auth.rails.max_idle", 80) + vi.SetDefault("auth.rails.max_active", 12000) if err := vi.ReadInConfig(); err != nil { return nil, err @@ -160,10 +162,11 @@ func initConf() (*config, error) { func initDB(c *config) (*pg.DB, error) { opt := &pg.Options{ - Addr: strings.Join([]string{c.DB.Host, c.DB.Port}, ":"), - User: c.DB.User, - Password: c.DB.Password, - Database: c.DB.DBName, + Addr: strings.Join([]string{c.DB.Host, c.DB.Port}, ":"), + User: c.DB.User, + Password: c.DB.Password, + Database: c.DB.DBName, + ApplicationName: c.AppName, } if c.DB.PoolSize != 0 { @@ -174,6 +177,16 @@ func initDB(c *config) (*pg.DB, error) { opt.MaxRetries = c.DB.MaxRetries } + if len(c.DB.Schema) != 0 { + opt.OnConnect = func(conn *pg.Conn) error { + _, err := conn.Exec("set search_path=?", c.DB.Schema) + if err != nil { + return err + } + return nil + } + } + db := pg.Connect(opt) if db == nil { return nil, errors.New("failed to connect to postgres db")